This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[TEST] sqlite3-3.7.17-1 (Cygwin 1.7.19 locking feature)

This is a big-push attempt at a version of Cygwin SQLite that will make everyone happy (ha!) whether they want POSIX advisory locking behavior or Windows mandatory locking behavior. My part of the effort is being stubborn on this point and doing the basic testing and packaging. The real magic was added by Corinna to yesterday's 1.7.19 cygwin1.dll snapshot.

This build relies on a new feature in that snapshot, so you must install it first. If you want to try this SQLite build, check with uname -r that you are in fact running the new DLL, else it will *silently* cope with the error that results. (This is a feature.)

This test build of Cygwin SQLite does several things at once:

- It switches back to a "Unix mode" build, as we tried in As a result, the hacky patch to make it use the Unix mode /tmp path selection logic has been removed.

- By default, it requests mandatory locking using the feature added in yesterday's Cygwin 1.7.19 snapshot. This should make it cooperate with native Windows programs also using SQLite despite running in Unix mode.

I have no STC for this, so I don't know if it is effective. The only test I know of requires running Tortoise SVN with all the Explorer integration features enabled, and I simply don't want to do that to my development box. The test, for those who have done this to *their* box, is to try using Cygwin svn on a directory while that same directory is open in Explorer. Bounce back and forth between the two svn clients. If they don't seem to interfere, the new feature in the Cygwin DLL is probably working as expected.

- This mandatory-locks-by-default feature of this SQLite build can be disabled by setting the new CYGWIN_SQLITE_LOCKING environment variable to "posix". (The value is not case-sensitive, so you can spell it "POSIX" if that makes you feel better.) This should finally allow those like Achim Gratz to use the official Cygwin SQLite build, as it effectively makes it behave like a stock Unix mode build.

- This build also switches the temporary storage strategy to 2, which makes it always use in-memory temporary files. Although running SQLite in pure Unix mode by setting the above environment variable should obviate the need for this, I want to try shipping SQLite so people don't need to do that for things like monotone to work. I'll consider reverting this change if there is some need for huge DB files which no longer open with this change.

Downloads are at

Broadly speaking, you want the files with "3.7.17-1" in their name. The one(s) you want may be buried a level deep, since that tree mirrors the Cygwin repository mirror structure.

If you want to test using the interactive sqlite3.exe program, it's in the package at the top level.

If you want to test instead using existing binaries dynamically linked to cygsqlite3-0.dll, you should only need to download the one package in the libsqlite3_0 subdirectory.

You shouldn't need the -devel and -debuginfo packages. Your current -devel should suffice to build against the new DLL.

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]