Opened 13 years ago
Closed 13 years ago
#31399 closed defect (fixed)
fossil 1.19 will not open new repositories after an error-free build
Reported by: | spamivore+macports@… | Owned by: | ci42 |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.3 |
Keywords: | Cc: | ||
Port: | fossil |
Description (last modified by ci42)
The current fossil port does not seem to build correctly against sqlite3. The build appears to complete successfully, but the fossil application triggers a sqlite3 error. For example:
$ fossil new foo project-id: c5bbf69fd327b1a7d821b01285b5b35a68bc391a server-id: db3f22e0eb0ba9dd284890556cb0f6abdbc33f50 admin-user: codegnome (initial password is "2536a5") $ fossil open foo fossil: SQLITE_READONLY: statement aborts at 19: [INSERT OR IGNORE INTO global_config(name,value)VALUES('repo:/private/tmp/foo',1)] attempt to write a readonly database fossil: attempt to write a readonly database INSERT OR IGNORE INTO global_config(name,value)VALUES('repo:/private/tmp/foo',1) If you have recently updated your fossil executable, you might need to run "fossil all rebuild" to bring the repository schemas up to date. $ fossil version This is fossil version 1.19 [6517b5c857] 2011-09-01 18:25:19 UTC
This error is not location dependent, and happens regardless of the directory or filename used to create/open the repository. As a result, the binary is essentially non-functional. Uninstalling and reinstalling the port seems to make no difference, either. The results are the same.
If it matters, I'm running OS X Lion with the latest version of MacPorts and the ports tree is current. The same binary seems to work when compiled against libsqlite3-0 v3.7.8-1 under Debian, so it's difficult to tell if the problem is the fossil port itself, or the version of sqlite3 it is compiling against.
Change History (5)
comment:1 Changed 13 years ago by mf2k (Frank Schima)
Owner: | changed from macports-tickets@… to ciserlohn@… |
---|
comment:2 Changed 13 years ago by ci42
Description: | modified (diff) |
---|
comment:3 Changed 13 years ago by ci42
comment:4 Changed 13 years ago by ci42
Please check the file owner and permissions of the ".fossil" file in your home directory. If you don't have write permission for it the aforementioned error occurs.
comment:5 Changed 13 years ago by ci42
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in r84762.
The fossil port tries to find and rebuild existing repositories after upgrading or installing fossil. Fossil stores information about existing repositories in a '.fossil' file in the users home directory. If there is no '.fossil' file, it will be created when the port tries to find and rebuild the existing repositories. Unfortunately if created by the port the '.fossil' file is owned by root and not writable by the user and therefor causing the aforementioned error.
Fossil should work fine if you change the file owner of '.fossil' to your user. The new version of the port checks if a '.fossil' exists. If not, it will not create a '.fossil' of it own.
Replying to spamivore+macports@…:
The port uses the sqlite version which is bundled with fossil and is not linkend against an external sqlite.
What are the file permissions of your repository and who is the file owner (output of ls -l)? The error message suggest that the repository is read-only.
I'm running OS X 10.6.8 and I can't reproduce the described behaviour. As sqlite should not be the problem, this seems to be an problem with your file permissions or something related to OS X 10.7.