Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-08 Thread Jan Nijtmans
2014/1/8 Joseph R. Justice jayare...@gmail.com:
 Ummm...  One other quite possibly naive question.  I browsed in the Fossil
 sources briefly related to the tag you mentioned previously, the
 sqlite-min-to-3.7.17 tag, and if I'm understanding what I see correctly,
 you're doing the check for the minimum supported version based on if SQLite
 is reporting if specific capabilities are available, apparently on the
 grounds that if a given capability is available then that means the version
 of SQLite available is at least X.

The reason for this approach is as follows. Although the tag suggests
that configure checks for a minimal version of 3.7.17, in reality a check
is done for the availability of the sqlite3_strglob() function. I happen to
know that this function is introduced in SQLite 3.7.17. It might happen
that some OS maintainers discover an unacceptable security risk in
the sqlite3_strglob() function and decide to distribute a patched SQLite
3.7.17 in which the sqlite3_strglob() function is not exported to applications.
In that case an implicit version check in Fossil would succeed, but it
would be a lie. For this reason a real capability check is always better
than an implicit version check.

In other words, require-sqlite_strglob would have been a better
name for this Fossil tag.

Regards,
   Jan Nijtmans
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-07 Thread Jan Nijtmans
2014/1/7 Joseph R. Justice jayare...@gmail.com:
 I assume you do not mean here that Fossil v 1.28 should be released
 concurrently with SQLite release v 3.8.3, but instead that Fossil v 1.28
 should be released when it is ready on or after the moment that SQLite
 release v 3.8.3 is tagged (be that a day, a week, a month, whenever) such
 that the source for the SQLite release v 3.8.3 can be incorporated within
 the source for Fossil v 1.28.

Yes, sure, that's exactly what I mean.

 May I ask why that run-time check cannot or should not be made in the
 release version of Fossil 1.28, rather than immediately after it is tagged
 such that it will only take effect in a release version for Fossil 1.29?

It's fully up to the Fossil-devs what should be the minimum SQLite
version Fossil is supposed to work with, and when this minimum
is updated to higher SQLite versions. My proposal is based on
a SQLite 3.8.3 release in February 2014. If that changes or if
the Fossil developers want to move forward faster than that,
it is very well possible. For Cygwin that wouldn't be a problem, as
SQLite 3.8.2 is already available now as Cygwin package. For
other OS distributions I don't know, I'll leave it to others to comment on that.

 I would agree that, unless part of the purpose (either explicit or implicit)
 for Fossil's existence is to act as a showcase and testbed for the latest
 and greatest available version of SQLite, there is no need to tie releases
 of Fossil to releases of SQLite.  Release versions of Fossil should be made
 when they are appropriate and when they are ready, which does not
 necessarily have anything to do with the release schedule of SQLite.

I agree. It would be possible to make a Fossil release at any time,
independent from SQLite. As long as Fossil doesn't use any
SQLite features which are not available yet in the latest SQLite
release, either the latest SQLite amalgamation could be shipped
with it, either the latest SQLite trunk amalgamation. The latter
choice means more risk, however small in practice.

Regards,
   Jan Nijtmans
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-07 Thread Ron Wilson
On Mon, Jan 6, 2014 at 7:52 AM, Jan Nijtmans jan.nijtm...@gmail.com wrote:

 at (1): Supporting every SQLite 3.7.x release is madness,
 SQLite 3.7.17 is more than 7 months old now, that should
 be enough time for whatever distribution to upgrade to it.


That depends on what other packages are using SQLite and how important the
distro maintainers think the the other packages are. Even when the upstream
devs of a library assert the ABI has not changed, the distro maintainers
tend to be quite conservative about when to update libraries. This is
because even if the ABI has not changed, the results returned may have
changed in a way that breaks something else.

The best way to encourage distro maintainers to stay more up to date with a
library is for the library devs to also provide an exhaustive regression
suite that the distro maintainers can use. And, when the results of any of
these tests change, provide detailed explanations as to why the results
changed.

(I have, in the past, talked to a few distro maintainers. Also, my
company's validation testers demand our (product engineering) test reports
so they can better understand the changes we made.)
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-07 Thread Jan Nijtmans
2014/1/6 Jan Nijtmans jan.nijtm...@gmail.com:
 (4) Immediately after the fossil 1.28 release, add a runtime-check
  for SQlite 2.8.2 (as suggested by Joe Mistachkin), and add
  WITHOUT ROWID to whatever SQL statement it is useful.
  Unconditionally!

Implementation here:
   http://fossil-scm.org/index.html/timeline?r=sqliteRuntimeCheck

Thanks, Joe! That's exactly what I meant, and which allows
the (ugly) condition to be removed!

Regards,
Jan Nijtmans
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-07 Thread Joseph R. Justice
On Tue, Jan 7, 2014 at 4:37 AM, Jan Nijtmans jan.nijtm...@gmail.com wrote:

 2014/1/7 Joseph R. Justice jayare...@gmail.com:



  May I ask why that run-time check cannot or should not be made in the
  release version of Fossil 1.28, rather than immediately after it is
 tagged
  such that it will only take effect in a release version for Fossil 1.29?

 It's fully up to the Fossil-devs what should be the minimum SQLite
 version Fossil is supposed to work with, and when this minimum
 is updated to higher SQLite versions. My proposal is based on
 a SQLite 3.8.3 release in February 2014. If that changes or if
 the Fossil developers want to move forward faster than that,
 it is very well possible. For Cygwin that wouldn't be a problem, as
 SQLite 3.8.2 is already available now as Cygwin package. For
 other OS distributions I don't know, I'll leave it to others to comment on
 that.


I fully agree that it's up to the Fossil upstream devs as to what should be
the minimum version of SQLite supported with any given release version of
Fossil, and also as to when the minimum version of SQLite supported should
be changed (and what it should be changed to).

My thought here was that the devs (or at least Dr. Hipp as the architect)
seem to desire to make the minimum supported version of SQLite be 3.8.2
*now*.  If that's so, why make them wait for a full release version of
Fossil (e.g. until development begins for Fossil 1.29) before they can make
that change?  After all, it's the distributions' problem to provide the
SQLite library version Fossil upstream requires, or else to patch Fossil to
work with whatever version of SQLite the distribution is willing to
provide.  (But...  See below for a countervailing point.)



Ummm...  As a sort of aside, I'd like to point out one thing here for the
benefit of the Fossil upstream devs, on the off chance they have not yet
considered it.  It's something I think is a sort of corollary / consequence
of what we're talking about that's obvious when you think about it
carefully, but which might be easy to overlook at a first quick glance.
(Ron Wilson's message kind of refers to this, but does not state it
explicitly.)  I'd like to explicitly state it for the record.

Okay.  Again, Fossil upstream devs ARE NOT REQUIRED to support using a
given release version of Fossil with any random old version of SQLite a
end-user (or distribution) wishes to use.  The upstream devs have the right
to say We only support using this release version of Fossil with at least
version XY.ZZ.Y of SQLite, and will not support using this version of
Fossil with any older version of SQLite.  The upstream devs are (in
general) all unpaid volunteers, and as such have the right to set whatever
limit on support they want to set.

However...  Just as are the Fossil upstream devs, the developers /
packagers of a given FOSS Unix/Linux distribution *are* *also* (in general)
unpaid volunteers, and as such *do* *also* have the right to set whatever
limit on support *they* (the distribution developers / packagers) want to
set!

In particular, *they* have the right to say We only support SQLite with a
maximum release version of BL.EG.H, and any software which requires a
version of SQLite more recent than this version is not supportable by us
and we will not package and distribute it in our current version of the
distribution.  The distributions ARE NOT REQUIRED to support or distribute
software which needs any random new version of SQLite a developer wishes to
use!

This means that if the minimum supported version of SQLite the Fossil
upstream devs require for their new release version is XY.ZZ.Y, and the
maximum supported version of SQLite the distribution developers will
provide for their current release version of the distro is BL.EG.H, and
XY.ZZ.Y  BL.EG.H, then the new release version of Fossil will not be made
available for that version of the distribution (at least until they raise
their maximum supported version of SQLite), and the new release version of
Fossil may not even be *useable* on that version of the distribution!

Insofar as the Fossil upstream devs *desire* their current version of
Fossil to be packaged and distributed by the various distributions (as
opposed to requiring end-users to compile / install Fossil on their own),
*this* is the problem of Fossil upstream -- to limit themselves to using
only versions of libraries which are actually available within the various
distributions (the major ones anyway) they want to have distribute their
software.

Now, I'll grant that Fossil, by its intrinsic nature and primary intended
target audience (e.g. that it is a software development tool intended for
use by software developers), isn't as constrained by this as would be an
application intended for use by typical non-technical end-users, such as
say an office productivity application or a financial / bookkeeping
application, or a game, or whatever.  Fossil can say you're a developer,
you know how to compile 

[fossil-users] New Tree-View feature requires newer sqlite.

2014-01-06 Thread Jan Nijtmans
2014/1/4 Richard Hipp d...@sqlite.org:
 OK, so I propose the following fix:

 (1) Move [bd1151126a] into a branch.
 (2) Remove the --disable-internal-sqlite option on trunk.  Require the use
 of the built-in SQLite only, since SQLite needs to be built with
 non-standard compile-time options to fully meet the needs of Fossil.
 (3) Cherry-pick check-ins after [bd1151126a] onto the trunk.
 (4) When distributions complain, we simply explain that we tried using an
 external SQLite but it introduced too many complications and bugs and that
 we now require statically linking SQLite for reasons of security and
 reliability.

 Comments?

How about this counter-proposal? Explanation follows:

(1)  Update fossil to require SQLite 3.7.17 as a minimum in stead of
  the current SQLite 3.7.0. See:
http://fossil-scm.org/index.html/timeline?r=sqlite-min-to-3.7.17
(2)  Eliminate the strglob() function from fossil, use the
  sqlite3_strglob() function (available since SQLite 3.7.17)
  instead. I tested this change: all unit-tests work fine.
(3)  After SQLite 3.8.3 is released, release fossil 1.28 with
  the EXACT SQLite 3.8.3 amalgamation included.
(4) Immediately after the fossil 1.28 release, add a runtime-check
 for SQlite 2.8.2 (as suggested by Joe Mistachkin), and add
 WITHOUT ROWID to whatever SQL statement it is useful.
 Unconditionally!
(5) Future official fossil release should contain an official released
  SQLite amagalmation as well, but less frequent: There is
 no need to make a new Fossil release after each SQLite
 release.

I think this counter-proposal will gain a lot more
sympathy to the various package-maintainers.
And it has more advantages. Explanation:

at (1): Supporting every SQLite 3.7.x release is madness,
SQLite 3.7.17 is more than 7 months old now, that should
be enough time for whatever distribution to upgrade to it.
at (2): Code duplication is always bad. Requiring SQLite
3.7.17 as a minimum makes sure the sqlite3_strglob()
function is available. That's an immediate gain.
at (3): Advantage: official SQLite releases are better
tested than intermediate ones. Fossil 1.27 contains
a SQLite 2.8.1 beta with a bug which is crucial on
Cygwin. See:
 http://osdir.com/ml/sqlite-users/2013-12/msg00193.html
This bug is discovered during release testing of
SQLite 2.8.2 (when I became Cygwin's SQLite maintainer),
if fossil would have been compiled with --disable-internal-sqlite
the bug would have been fixed now.
at (4):  If SQLite 2.8.3 is released around February, then
a reasonable Fossil 1.29 release could be done
mid 1014. That's more than enough time for
whatever distribution to upgrade to SQLite 2.8.2.
And it means that starting one month from now
Fossil developers don't need to worry about
WITHOUT ROWID support: just use it
whenever appropriate.
at (5): This means that part of the pre-release
testing of every Fossil release should be a
test using --disable-internal-sqlite, in order
to verify that Fossil really works well with
the lowest SQlite version it is documented
to work with. I volunteer to do this pre-release
test.

On Cygwin, keeping --disable-internal-sqlite would
have the advantage that fossil can take advantage
of the improved win32-longpath VFS (and the new
unix-cygwin VFS) without the Fossil maintainer
(Jari Aalto) having to replace the SQLite
amagalmation with every new Fossil release.
As soon as the Cygwin enhancements are
adopted by SQLite (in whatever modified form),
--disable-internal-sqlite doesn't give any advantage
on Cygwin any more. But as long as that
doesn't happen, I hope that --disable-internal-sqlite
will be kept as-is.

Regards,
  Jan Nijtmans
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-06 Thread Joseph R. Justice
On Mon, Jan 6, 2014 at 7:52 AM, Jan Nijtmans jan.nijtm...@gmail.com wrote:

 2014/1/4 Richard Hipp d...@sqlite.org:




 (3)  After SQLite 3.8.3 is released, release fossil 1.28 with
   the EXACT SQLite 3.8.3 amalgamation included.


I assume you do not mean here that Fossil v 1.28 should be released
concurrently with SQLite release v 3.8.3, but instead that Fossil v 1.28
should be released when it is ready on or after the moment that SQLite
release v 3.8.3 is tagged (be that a day, a week, a month, whenever) such
that the source for the SQLite release v 3.8.3 can be incorporated within
the source for Fossil v 1.28.



(4) Immediately after the fossil 1.28 release, add a runtime-check
  for SQlite 2.8.2 (as suggested by Joe Mistachkin), and add
  WITHOUT ROWID to whatever SQL statement it is useful.
  Unconditionally!


I assume here (and below) you mean SQLite 3.8.2, not 2.8.2 (and 3.8.3
instead of 2.8.3).  I also assume you mean here that it be a runtime check
requiring that *at* *least* SQLite 3.8.2 is available to Fossil (e.g.
SQLite 3.8.2 *or later*), rather than a runtime check requiring that
SQLite 3.8.2 *exactly* be available to Fossil.  (Otherwise, Fossil builds
using the embedded code copy of SQLite would fail at runtime, because
you've just specified the embedded code copy of SQLite for this version of
Fossil is 3.8.3 and not 3.8.2.)

May I ask why that run-time check cannot or should not be made in the
release version of Fossil 1.28, rather than immediately after it is tagged
such that it will only take effect in a release version for Fossil 1.29?
Sure, it means that distributions cannot distribute Fossil 1.28 (as
released by Fossil upstream) using a system-provided shared library version
of SQLite until they have updated that system-provided shared library
version of SQLite to 3.8.2 from whatever version they currently have (call
it v XY.ZZY), but so what?  Distributions are used to this sort of thing,
applications requiring a version of a system-provided library more recent
than the version they currently make available.

The distributions will just have to (1) provide a new version of the
system-provided shared library version of SQLite that is sufficiently
recent for Fossil v 1.28's needs (presumably either SQLite 3.8.2 or 3.8.3
at their discretion); (2) make sure that all the other applications they
distribute that depend on SQLite, which currently work with SQLite v
XY.ZZY, will work properly with the new version of SQLite whatever it ends
up being, and patch or update those other applications as necessary; (3)
make Fossil 1.28, the new version of SQLite, and any new versions of other
apps available to their end-users, which the end-users can update to if and
as they see fit to.  (Well, unless  the distributions patch their copy of
Fossil v 1.28 to use their copy of SQLite v XY.ZZY, but they do that at
their own risk and are responsible for all support of that combination.
Fossil upstream devs will not support that combination of software.)

This will require all end-users to update their copy of SQLite and possibly
other applications depending on SQLite if they want to use the new release
version of Fossil, but again so what?  That's what distribution packaging,
and distribution software update tools, are all about; to make sure that
sort of thing works, everything is consistent and supported, etc.




 (5) Future official fossil release should contain an official released
   SQLite amagalmation as well, but less frequent: There is
  no need to make a new Fossil release after each SQLite
  release.


I would agree that, unless part of the purpose (either explicit or
implicit) for Fossil's existence is to act as a showcase and testbed for
the latest and greatest available version of SQLite, there is no need to
tie releases of Fossil to releases of SQLite.  Release versions of Fossil
should be made when they are appropriate and when they are ready, which
does not necessarily have anything to do with the release schedule of
SQLite.

Further, release versions of Fossil should not necessarily require using
the latest and greatest release version of SQLite, unless features and
bug-fixes only available in that version of SQLite are required by the
release version of Fossil to be made.  Instead, release versions of Fossil
should only require using the oldest version of SQLite providing the
features that version of Fossil needs which the Fossil devs *are* *willing*
*to* *support* for that version of Fossil.  (If the Fossil devs say We
only support using the latest and greatest release version of SQLite
available at the time we made this release version of Fossil, well then so
be it.  The Fossil devs are volunteers, presumably not being paid (in
general) to develop and support Fossil, and are not required to do anything
they do not want to do.)

In particular...  If Fossil version M requires using SQLite version N, and
if Fossil version M+1 does not require any 

Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-04 Thread Joseph R. Justice
On Thu, Jan 2, 2014 at 9:52 PM, Nico Williams n...@cryptonector.com wrote:

More generally, trying to ensure that a) there's only one copy of
 every library in the distro/OS, b) all version dependencies match up,
 is *super* hard, if not impossible.  Eventually there are some very
 commonly used libraries where the simplest thing to do is to just ship
 multiple versions, but first the distro maintainer ought to make sure
 that the POSIX file locking disaster you mention can't happen as a
 result.


If I may ask, because I'm confused...

Is your position on distributions trying to ensure that there is only one
copy of every library in the distribution by desiring (or even requiring
mandatory) use by distribution-distributed applications of shared
system/distribution-provided versions of libraries (instead of allowing
applications to have and use private copies of libraries) that they need
that:

(a) it is generally a good or desirable thing (albeit a super hard task);

(b) it is generally a bad or undesirable thing;

(c) you have no position either way on whether it is good or bad, you are
merely noting for the record that to do it is a super hard or even
impossible task for the distributions; and/or

(d) something else altogether (and if so what if you are willing to say)?



Also, I'm curious about your claim that there are some very commonly used
libraries where the simplest thing to do is to just ship multiple
versions.  I am *not* saying this is not the case, because I simply do not
know!  I haven't even attempted to do the research (nor am I sure how or if
the research could be easily done).  I'm certainly willing to accept that
what you say on this is true.

I am wondering however if you could identify some of these libraries and/or
the distributions which ship multiple copies of them, at least if there are
any that spring quickly to your mind.  (Note, I do *not* consider that if
you do or can not identify any such libraries or distributions that this
means your claim about them is not true!  It just means that while you
might have encountered them in the past you haven't done so recently enough
to recall them easily in response to a casual request.)



Thanks for giving me a moment of your time.  Hope this is of some use,
interest.  I look forward to seeing any response to this query you might
care to make.



Joseph
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-03 Thread Ron Wilson
On Thu, Jan 2, 2014 at 2:04 PM, Joseph R. Justice jayare...@gmail.comwrote:

 
 Further, in the embedded software world at least, I expect it is often
 difficult or even impossible to update software in the first place to patch
 bugs or provide new functionality, so there is no need much less desire to
 worry about making it *easier* to update software; if you can't update it
 at all, or can only update it in the first place with the very greatest of
 effort for only the most critical of reasons (such as bugs which are
 potentially life-threatening or would cost untenable financial losses if
 they are not fixed), who cares if it's a only a little more difficult,
 relatively speaking, to update a library.


Speaking as an embedded SW developer, I can tell you that the actual SW
changes, and preparing the release package is easy. Actually making the
release, though, is a big deal. After preparing the release package, we do
regression testing. While a lot of this is automated, changes to physical
inputs (switches, sensor, etc) and checking of physical outputs
(indicators, motors, etc) is done manually, so these tests can take many
hours. Once those tests have passed, we turn the release package over to
the validation team, who preform their own (independently created) suite of
tests. Once validation gives a pass, we send copies of the package to
manufacturing and to our customer service organization. There is also
documentation to prepare, which we can mostly complete in parallel with
validation. (The validation team has access to the issue tickets, so we
only need to give them a list of the ticket numbers applicable to the
release.)

We do use 3rd party libraries. The difference is that we have full control
over what versions of each library are used. There is no one downstream
from us repackaging our SW. The binaries we release are exactly what goes
into the devices we created the SW for.

BTW, the singular of data is datum. Over time, data set has been
shortened to data, so data, as a noun, has become like sheep, which
is both singular and plural.
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-03 Thread Joseph R. Justice
On Fri, Jan 3, 2014 at 1:22 PM, Ron Wilson ronw.m...@gmail.com wrote:

 On Thu, Jan 2, 2014 at 2:04 PM, Joseph R. Justice jayare...@gmail.comwrote:



 

 Further, in the embedded software world at least, I expect it is often
 difficult or even impossible to update software in the first place to patch
 bugs or provide new functionality, so there is no need much less desire to
 worry about making it *easier* to update software; if you can't update it
 at all, or can only update it in the first place with the very greatest of
 effort for only the most critical of reasons (such as bugs which are
 potentially life-threatening or would cost untenable financial losses if
 they are not fixed), who cares if it's a only a little more difficult,
 relatively speaking, to update a library.


 Speaking as an embedded SW developer, I can tell you that the actual SW
 changes, and preparing the release package is easy. Actually making the
 release, though, is a big deal. After preparing the release package, we do
 regression testing. While a lot of this is automated, changes to physical
 inputs (switches, sensor, etc) and checking of physical outputs
 (indicators, motors, etc) is done manually, so these tests can take many
 hours. Once those tests have passed, we turn the release package over to
 the validation team, who preform their own (independently created) suite of
 tests. Once validation gives a pass, we send copies of the package to
 manufacturing and to our customer service organization. There is also
 documentation to prepare, which we can mostly complete in parallel with
 validation. (The validation team has access to the issue tickets, so we
 only need to give them a list of the ticket numbers applicable to the
 release.)

 We do use 3rd party libraries. The difference is that we have full control
 over what versions of each library are used. There is no one downstream
 from us repackaging our SW. The binaries we release are exactly what goes
 into the devices we created the SW for.


Actually...  What I was thinking of here was not anything related to
preparation of the software changes or release package, but instead the
actual deployment of the software itself into the field, and particularly
into devices which cannot be reasonably expected to be ubiquitously
networked and remotely upgradeable.  How does one update embedded software
in a VCR or DVD player, or a refrigerator, or a vehicle (car / ship /
aircraft)?  Or, for that matter, update embedded software used in an
important industrial process, such as a power plant (nuclear or otherwise),
a chemical manufacturing or processing facility, etc where failure of the
process can potentially be catastrophic so you don't *want* it to be easy
to update the software (to avoid malicious changes by third parties)?

If you have to send an actual technician out to perform an update of the
software, or perhaps worse yet expect an *end user* to do it (or even
merely enable a setting to allow it to be done remotely over a network) and
then deal with all the resulting support calls, well...  I have to think
the expense of *that* at least equals, if not easily exceeds, the expense
of preparing the update in the first place.  (All the expenses mind you,
including specifically all the ones you mention above.)  Which means you're
not going to do an update casually, or without a damn good reason to go to
the expense of getting it deployed.

I'll note however that I do not *think* this is an issue for FOSS
Unix/Linux distributions in general.  (There are distributions which have
an embedded flavor derived from them; for example, Debian has an embedded
software variant called Emdebian, see http://www.emdebian.org/ for more
information, but I highly doubt that in these cases the embedded flavor
derived distribution tail wags the primary mainstream distribution dog.)

Thanks for responding.



Joseph
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-03 Thread Ron Wilson
On Fri, Jan 3, 2014 at 1:50 PM, Joseph R. Justice jayare...@gmail.comwrote:

 Actually...  What I was thinking of here was not anything related to
 preparation of the software changes or release package, but instead the
 actual deployment of the software itself into the field, and particularly
 into devices which cannot be reasonably expected to be ubiquitously
 networked and remotely upgradeable.  How does one update embedded software
 in a VCR or DVD player, or a refrigerator, or a vehicle (car / ship /
 aircraft)?  Or, for that matter, update embedded software used in an
 important industrial process, such as a power plant (nuclear or otherwise),
 a chemical manufacturing or processing facility, etc where failure of the
 process can potentially be catastrophic so you don't *want* it to be easy
 to update the software (to avoid malicious changes by third parties)?


 Our products are actually components for products of other businesses, so
the details vary, but they are all designed to require a special program
running on a laptop or tablet to communicate with a flash loader program
that is nominally permanently resident in our devices. (It is possible to
update the flash loader, but requires extra steps.) This special program is
specific to the producer of the final product and is normally only
available to authorized service businesses. (And yes, we have variations of
our flash loader for each of the final product producers.)

To reduce the possibility of unauthorized SW being loaded into our
products, we encrypt the binary images. Our flash loader decrypts the image
as it writes the image to built in flash ROM.

How a technician connects the laptop/tablet to the component devices varies
based on the type of the final product and the producers' design standards.
Many such products, especially modern automobiles, have (possibly hidden)
service connectors that allow the service program to communicate with the
products component devices via an internal diagnostic network. Other
products require the technician to plug directly into the individual
components devices.

While I don't know much of the details, I do know that many consumer
devices like BluRay players, and even TVs, are Internet enabled, so can be
updated over the Internet. For example, my BluRay player at home has an
obscure menu option to start the player downloading and installing the
latest SW from the producer's website. If the download or installation
fails, it it will automatically retry. Since mine has an Ethernet port, I
can take it anywhere I can get Internet access (If need be, I can use
pocket sized Ethernet to WiFi adapter.)
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-03 Thread j. van den hoff

On Fri, 03 Jan 2014 19:28:10 +0100, Richard Hipp d...@sqlite.org wrote:


On Fri, Jan 3, 2014 at 1:22 PM, Ron Wilson ronw.m...@gmail.com wrote:



BTW, the singular of data is datum.



It is in Latin.  In English data is a mass noun or an uncountable
noun.  Like sand or information or water, it has no plural form  
and

always takes a singular verb.

We know that data cannot be plural in English because in English,
compound nouns never take the plural form.   And yet data is frequently
used in compound nouns:  data center, data analysis, data  
processing,

data mining, etc.  Hence, data cannot be a plural noun.


as a physicist I've never seen `data' used in its singluar form and I'm  
sure you are not completely (although mostly) right here. but
as a non-native speaker I rather resort to the Oxford Dictionary of  
English which says (citing it verbatim (modulo typos...)):


Usage: In Latin 'data' is the plural of 'datum' and, historically and in  
specialized scientific fields it is also
treated as a plural in English, taking a plural verb, as in 'the data were  
collected and classified'. In modern non-scientific
use, however, despite the complaints of traditionalists, it is often not  
treated as  a plural. Instead, it is treated as a mass
noun, similar to a word like `information' which cannot normally have a  
plural and which
takes a singular verb. Sentences such as 'data was (as well as 'data  
were') collected over a

number of years' are now widely accepted in standard English.

so your statement that it categorically cannot be used in its plural form  
sure is wrong. it rather seems it's the other way round: it should
be used as a plural (which it is) but English usage has developed in a way  
that using it as a mass noun is acceptable as well.









--
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-03 Thread David Given
On 03/01/14 21:54, j. van den hoff wrote:
[...]
 as a physicist I've never seen `data' used in its singluar form and I'm
 sure you are not completely (although mostly) right here. but
 as a non-native speaker I rather resort to the Oxford Dictionary of
 English which says (citing it verbatim (modulo typos...)):

You're both right. 'Datum' is still the correct singular, and 'data' is
the plural of 'datum'... but 'data' is now *also* a singular collective
noun, and this meaning is vastly more prevalent. So 'data was collected'
is correct, as is 'single point of data', but you can also say 'the
datum at T=0'. That is, you *can*, but nobody does ('data point' has
largely replaced 'datum' except in the most formal scientific prose).

Disclaimer: I can only speak from the perspective of UK English, where
we have TV programmes about computer programs.

BTW, this one is easy. If you want to really hurt your head, consider
'fish' vs 'fishes'... both in the plural sense.

...it is *not true* that I'm a card-carrying member of the Pedant's
Society. (It's actually made of plastic.)

-- 
┌─── dg@cowlark.com ─ http://www.cowlark.com ─
│ There does not now, nor will there ever, exist a programming
│ language in which it is the least bit hard to write bad programs. ---
│ Flon's Axiom



signature.asc
Description: OpenPGP digital signature
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-03 Thread Andy Bradford
Thus said Richard Hipp on Thu, 02 Jan 2014 11:32:22 -0500:

 I hate having to support  --disable-internal-sqlite, and I hate having
 to add  silly work-arounds  in the  code to  accommodate distributions
 trying  to use  an  older SQLite  with a  newer  Fossil. This  impedes
 progress and introduces bugs.

I see  no reason  to accomodate  older SQLite  libraries in  Fossil code
workarounds. Shouldn't we  just update the following  lines of configure
detection to have a new requirement of  SQLite = 3.8.2 and be done with
it; thus also avoiding the workarounds, bugs and furthering progress?

http://www.fossil-scm.org/fossil/artifact/34dd270c8b3c7e4f3de26562f9344f90055620fc?ln=51,52

What is the  worst that can come  of it? That some OS  vendors might lag
behind in Fossil versions that they distribute?

As for why I used --disable-internal-sqlite  in the first place... I did
it because I didn't know better (and partly because for whatever reason,
modifying a  single file  requires a  recompile of  all targets).  :-) I
still  think that  Fossil should  warn that  the system  library is  not
capable of supporting Fossil when the option is used.

Clearly it would be best if the option didn't exist, but it does exist.

Thanks,

Andy
-- 
TAI64 timestamp: 400052c762c8


___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-03 Thread Joe Mistachkin

Andy Bradford wrote:

 I see  no reason  to accomodate  older SQLite  libraries in  Fossil code
 workarounds. Shouldn't we  just update the following  lines of configure
 detection to have a new requirement of  SQLite = 3.8.2 and be done with
 it; thus also avoiding the workarounds, bugs and furthering progress?


Can we please add a runtime check too so that Fossil will simply emit a
fatal error and exit after detecting an unsupported SQLite version (e.g.
when it first tries to access a database, etc)?

--
Joe Mistachkin

___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread Jan Nijtmans
2014/1/1 Andy Bradford amb-fos...@bradfords.org:
 ...I get this because I configure with --disable-internal-sqlite
 on OpenBSD.

Fixed here:
http://fossil-scm.org/index.html/info/c3211392da

The branch timeline-utc contains another
--disable-internal-sqlite - related fix (making
the timeline-utc option work). Before
merging this to trunk I would like some
more pairs of eyes having a look at it.

Anyone?

Many thanks!
   Jan Nijtmans
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread Jan Nijtmans
2014/1/2 Richard Hipp d...@sqlite.org:
 It's maddening.  It makes my hair turn gray.  It irks me more than seeing
 the noun data used as a plural.  Utter madness!

 But we live in a fallen world.  We have to do it.  Please go ahead and
 merge.

Thanks!  Actually, I agree that it's madless, but I learned to live
with it. And since the solution is just one line, it's not that bad.

My advice: The option --disable-internal-sqlite should only
be used by package maintainers, which have exact control
on which SQLite version their system has. But since
the SQLite version might lag somewhat behind, requiring
SQLite 3.8.2 for fossil just was a little bit too soon. But
I'm happy to remove this workaround in a year or so,
it shouldn't be kept forever (added a note on that).

Every Fossil version should be clear on which minimum
SQLite version it supports. I'm assuming 3.8.0.

Regards,
Jan Nijtmans
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread B Harder
_WHY_ does --disable-internal-sqlite (and the unknown versions of
SQLite that follow) have to be supported ?

If package/OS maintainers insist on hacking in alien shared-lib
SQLite, let them own their hacks and the repercussions.

Call it a major version# bump, and remove that support.

-bch

On 1/2/14, Richard Hipp d...@sqlite.org wrote:
 The silly requirement of some distributions that *everything* must be a
 shared library irks me beyond words.  I hate having to support
 --disable-internal-sqlite, and I hate having to add silly work-arounds in
 the code to accommodate distributions trying to use an older SQLite with a
 newer Fossil.  This impedes progress and introduces bugs.  It's a lose-lose
 situation.  And yet the distributions are dogmatic on this point.

 It's maddening.  It makes my hair turn gray.  It irks me more than seeing
 the noun data used as a plural.  Utter madness!

 But we live in a fallen world.  We have to do it.  Please go ahead and
 merge.



 On Thu, Jan 2, 2014 at 10:33 AM, Jan Nijtmans
 jan.nijtm...@gmail.comwrote:

 2014/1/1 Andy Bradford amb-fos...@bradfords.org:
  ...I get this because I configure with --disable-internal-sqlite
  on OpenBSD.

 Fixed here:
 http://fossil-scm.org/index.html/info/c3211392da

 The branch timeline-utc contains another
 --disable-internal-sqlite - related fix (making
 the timeline-utc option work). Before
 merging this to trunk I would like some
 more pairs of eyes having a look at it.

 Anyone?

 Many thanks!
Jan Nijtmans
 ___
 fossil-users mailing list
 fossil-users@lists.fossil-scm.org
 http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users




 --
 D. Richard Hipp
 d...@sqlite.org



-- 
Brad Harder
Method Logic Digital Consulting
http://www.methodlogic.net/
http://twitter.com/bcharder
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread Joseph R. Justice
[Top-posting considered harmful.  *cough*]

On Thu, Jan 2, 2014 at 12:40 PM, B Harder brad.har...@gmail.com wrote:
 On 1/2/14, Richard Hipp d...@sqlite.org wrote:

 The silly requirement of some distributions that *everything* must be a
 shared library irks me beyond words.  I hate having to support
 --disable-internal-sqlite, and I hate having to add silly work-arounds in
 the code to accommodate distributions trying to use an older SQLite with
a
 newer Fossil.  This impedes progress and introduces bugs.  It's a
lose-lose
 situation.  And yet the distributions are dogmatic on this point.

 It's maddening.  It makes my hair turn gray.  It irks me more than seeing
 the noun data used as a plural.  Utter madness!

 But we live in a fallen world.  We have to do it.  Please go ahead and
 merge.


 _WHY_ does --disable-internal-sqlite (and the unknown versions of
 SQLite that follow) have to be supported ?

 If package/OS maintainers insist on hacking in alien shared-lib
 SQLite, let them own their hacks and the repercussions.

 Call it a major version# bump, and remove that support.


I never did research this for y'all.  I should do that...

Again...  My understanding, as an external observer of some FOSS Linux/Unix
distributions (primarily / especially Debian), e.g. *not* as someone
currently actively involved in maintaining a distribution, packaging
software for it, etc, is that distributions want to minimize the number of
different and distinct source-code copies of a given chunk of software (a
library for instance) found amongst all the pieces of software they
distribute.

They want to minimize the number of source-code copies to make it easier
for them to maintain all the different software packages in the
distribution, by insuring that if a given piece of software needs to change
(say to update it to a new version to provide new functionality, or to
patch a bug (especially a security-related bug!) in an existing version
that causes the software or something depending on / using the software to
malfunction), they (ideally at least) only have to change the software in
one place, and then update as necessary any and all other software
depending on the newly-changed software to use that newly-changed version.
(If the newly-changed software maintains the same ABI as the previous
version of it, this might require no changes at all, or at most a change in
the packaging meta-information; if there is an ABI change but the API stays
the same this will probably require a re-compilation and re-linking; if
there is an API change this might require changes to the source code of the
other software to accommodate the API changes.)

One way they minimize the number of source-code copies of software,
particularly of software that is used by other software (e.g. such as a
library like SQLite), is to require the shared software to be linked in as
a shared (e.g. not a binary or source-code embedded) library to all the
other software making use of it.

I think that, if I were ever to do the required research (which, again, I
have not done to date), I would find that most major FOSS Linux/Unix
distributions, and quite likely many of the commercial / closed-source
distributions (I speak here not merely of RHEL, SUSE, etc but also of
Solaris, HP-UX, AIX, etc), are ... I won't say dogmatic about this point,
but quite serious at the least about it, precisely because it makes their
lives easier and because they see it as a benefit to their end-users.  I
think it is not a point they would give up lightly.

I realize this is likely to be a quite different viewpoint / world view
than those coming from the embedded software world or from the MS Windows
(and probably also Apple OS/X) world have, and I suspect also commercial /
closed-source software provided for various FOSS and non-FOSS Unix/Linux
distributions, because in those worlds it is common for every piece of
application software to ship its own private copy of any library it
requires (other than libraries which can be guaranteed to be provided by
the OS vendor).

Further, in the embedded software world at least, I expect it is often
difficult or even impossible to update software in the first place to patch
bugs or provide new functionality, so there is no need much less desire to
worry about making it *easier* to update software; if you can't update it
at all, or can only update it in the first place with the very greatest of
effort for only the most critical of reasons (such as bugs which are
potentially life-threatening or would cost untenable financial losses if
they are not fixed), who cares if it's a only a little more difficult,
relatively speaking, to update a library.

Anyway.  Insofar as SQLite intends and desires to be capable of use as a
shared non-embedded library *as well as* a non-shared embedded library for
software running on Unix/Linux platforms, I expect this policy (as I've
asserted it to be) of the FOSS Unix/Linux distributions will affect SQLite
and 

Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread Joseph R. Justice
On Thu, Jan 2, 2014 at 2:04 PM, Joseph R. Justice jayare...@gmail.comwrote:

 [Top-posting considered harmful.  *cough*]

 On Thu, Jan 2, 2014 at 12:40 PM, B Harder brad.har...@gmail.com wrote:
  On 1/2/14, Richard Hipp d...@sqlite.org wrote:

  The silly requirement of some distributions that *everything* must be a
  shared library irks me beyond words.  I hate having to support
  --disable-internal-sqlite, and I hate having to add silly work-arounds
 in
  the code to accommodate distributions trying to use an older SQLite
 with a
  newer Fossil.  This impedes progress and introduces bugs.  It's a
 lose-lose
  situation.  And yet the distributions are dogmatic on this point.
 
  It's maddening.  It makes my hair turn gray.  It irks me more than
 seeing
  the noun data used as a plural.  Utter madness!
 
  But we live in a fallen world.  We have to do it.  Please go ahead and
  merge.
 

 _WHY_ does --disable-internal-sqlite (and the unknown versions of

 SQLite that follow) have to be supported ?

 If package/OS maintainers insist on hacking in alien shared-lib
 SQLite, let them own their hacks and the repercussions.

 Call it a major version# bump, and remove that support.


 I never did research this for y'all.  I should do that...

 Again...  My understanding, as an external observer of some FOSS
 Linux/Unix distributions (primarily / especially Debian), e.g. *not* as
 someone currently actively involved in maintaining a distribution,
 packaging software for it, etc, is that distributions want to minimize the
 number of different and distinct source-code copies of a given chunk of
 software (a library for instance) found amongst all the pieces of software
 they distribute.

 They want to minimize the number of source-code copies to make it easier
 for them to maintain all the different software packages in the
 distribution, by insuring that if a given piece of software needs to change
 (say to update it to a new version to provide new functionality, or to
 patch a bug (especially a security-related bug!) in an existing version
 that causes the software or something depending on / using the software to
 malfunction), they (ideally at least) only have to change the software in
 one place, and then update as necessary any and all other software
 depending on the newly-changed software to use that newly-changed version.
 (If the newly-changed software maintains the same ABI as the previous
 version of it, this might require no changes at all, or at most a change in
 the packaging meta-information; if there is an ABI change but the API stays
 the same this will probably require a re-compilation and re-linking; if
 there is an API change this might require changes to the source code of the
 other software to accommodate the API changes.)

 One way they minimize the number of source-code copies of software,
 particularly of software that is used by other software (e.g. such as a
 library like SQLite), is to require the shared software to be linked in as
 a shared (e.g. not a binary or source-code embedded) library to all the
 other software making use of it.

 I think that, if I were ever to do the required research (which, again, I
 have not done to date), I would find that most major FOSS Linux/Unix
 distributions, and quite likely many of the commercial / closed-source
 distributions (I speak here not merely of RHEL, SUSE, etc but also of
 Solaris, HP-UX, AIX, etc), are ... I won't say dogmatic about this point,
 but quite serious at the least about it, precisely because it makes their
 lives easier and because they see it as a benefit to their end-users.  I
 think it is not a point they would give up lightly.

 I realize this is likely to be a quite different viewpoint / world view
 than those coming from the embedded software world or from the MS Windows
 (and probably also Apple OS/X) world have, and I suspect also commercial /
 closed-source software provided for various FOSS and non-FOSS Unix/Linux
 distributions, because in those worlds it is common for every piece of
 application software to ship its own private copy of any library it
 requires (other than libraries which can be guaranteed to be provided by
 the OS vendor).

 Further, in the embedded software world at least, I expect it is often
 difficult or even impossible to update software in the first place to patch
 bugs or provide new functionality, so there is no need much less desire to
 worry about making it *easier* to update software; if you can't update it
 at all, or can only update it in the first place with the very greatest of
 effort for only the most critical of reasons (such as bugs which are
 potentially life-threatening or would cost untenable financial losses if
 they are not fixed), who cares if it's a only a little more difficult,
 relatively speaking, to update a library.

 Anyway.  Insofar as SQLite intends and desires to be capable of use as a
 shared non-embedded library *as well as* a non-shared embedded library 

Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread Florian Weimer
* Richard Hipp:

 The silly requirement of some distributions that *everything* must be a
 shared library irks me beyond words.  I hate having to support
 --disable-internal-sqlite, and I hate having to add silly work-arounds in
 the code to accommodate distributions trying to use an older SQLite with a
 newer Fossil.  This impedes progress and introduces bugs.  It's a lose-lose
 situation.  And yet the distributions are dogmatic on this point.

Uhm, does POSIX file locking work correctly if there are multiple
copies of SQLite within the same process (assuming that there are no
symbol collisions/interpositions)?
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread Richard Hipp
On Thu, Jan 2, 2014 at 5:28 PM, Florian Weimer f...@deneb.enyo.de wrote:

 * Richard Hipp:

  The silly requirement of some distributions that *everything* must be a
  shared library irks me beyond words.  I hate having to support
  --disable-internal-sqlite, and I hate having to add silly work-arounds in
  the code to accommodate distributions trying to use an older SQLite with
 a
  newer Fossil.  This impedes progress and introduces bugs.  It's a
 lose-lose
  situation.  And yet the distributions are dogmatic on this point.

 Uhm, does POSIX file locking work correctly if there are multiple
 copies of SQLite within the same process (assuming that there are no
 symbol collisions/interpositions)?



No it does not.  But what does that have to do with static vs. dynamic
linkage?

-- 
D. Richard Hipp
d...@sqlite.org
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread Nico Williams
On Thu, Jan 2, 2014 at 4:28 PM, Florian Weimer f...@deneb.enyo.de wrote:
 * Richard Hipp:
 The silly requirement of some distributions that *everything* must be a
 shared library irks me beyond words.  I hate having to support
 --disable-internal-sqlite, and I hate having to add silly work-arounds in
 the code to accommodate distributions trying to use an older SQLite with a
 newer Fossil.  This impedes progress and introduces bugs.  It's a lose-lose
 situation.  And yet the distributions are dogmatic on this point.

 Uhm, does POSIX file locking work correctly if there are multiple
 copies of SQLite within the same process (assuming that there are no
 symbol collisions/interpositions)?

No it doesn't.  If you're using multiple copies of libsqlite3 to
access the same DB file in the same process concurrently then you'll
get corruption.  In practice this just doesn't happen, but it's
important to be on the lookout for this.

Consider how that might happen by accident (as opposed to just for
demonstration purposes).  I imagine a plugin API for some library
(think PAM) with multiple plugins... wanting to access the same DB --
or maybe the DB is the interface.  That wouldn't happen, one hopes,
and by and large it doesn't.

Now imagine [wu]tmpx being replaced with a SQLite3 DB file...  If
[wu]tmpx were accessed using an in-process libsqlite3 and the library
providing the [wu]tmpx functionality were itself available for static
linking (or if the DB *were* the interface) *then* we'd have a
situation ripe for this accident.  But one could foresee this problem
(hopefully) and act to head it off [various designs elided].

More generally, trying to ensure that a) there's only one copy of
every library in the distro/OS, b) all version dependencies match up,
is *super* hard, if not impossible.  Eventually there are some very
commonly used libraries where the simplest thing to do is to just ship
multiple versions, but first the distro maintainer ought to make sure
that the POSIX file locking disaster you mention can't happen as a
result.

It's fortunate, for example, that OpenSSL doesn't use POSIX file
locking at all.  Imagine it using SQLite3 for an OCSP response, CRL,
and other caching!  It's not such a stretch.  Heimdal has an option to
use SQLite3 for Kerberos ticket caching, and when used this happens in
a library, which is itself used from a pluggable API (GSS) that is
used in various operating system moving parts (e.g., LDAP).

The problem with POSIX file locking and something like SQLite3 is that
it's easy for all the pieces of such an accident to come to exist...
by accident.

The problem is that POSIX file locking is insane.

Nico
--
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] New Tree-View feature requires newer sqlite.

2014-01-02 Thread Nico Williams
On Thu, Jan 2, 2014 at 8:50 PM, Richard Hipp d...@sqlite.org wrote:
 On Thu, Jan 2, 2014 at 5:28 PM, Florian Weimer f...@deneb.enyo.de wrote:
 * Richard Hipp:

  The silly requirement of some distributions that *everything* must be a
  shared library irks me beyond words.  [...]

 Uhm, does POSIX file locking work correctly if there are multiple
 copies of SQLite within the same process (assuming that there are no
 symbol collisions/interpositions)?

 No it does not.  But what does that have to do with static vs. dynamic
 linkage?

Pluggable interfaces + layered software.  A perfect example would be
nscd (the name service cache daemon), which is pluggable (see the
nsswitch.conf man page).  One or more plugins might need to share some
common resource (e.g., Kerberos ticket caches).  If that resource is a
SQLite3 DB file...  and if each plugin statically links with
libsqlite3... and if the nsswitch dlopen()s those plugins... then bad
things may happen.

Things like the nsswitch generally support loading plugins at
run-time, via dlopen().  There's quite a few such plugin interfaces:
PAM, nsswitch, SASL, GSS, and probably many more.  All it takes is for
a confluence of design events to bring two SQLite3s (or other library
that uses POSIX file locking) into the same process via such plugin
interfaces, locking around the same files.

With respect to SQLite3 the simplest thing for you to do is to advise
people to... not do that.  I.e., what you're already doing.  The
obvious workaround for anyone wanting to use SQLite3 for things like
the examples I gave is to use IPC, having a separate process just for
this purpose serving access to the DB.

Nico
--
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


[fossil-users] New Tree-View feature requires newer sqlite.

2014-01-01 Thread Andy Bradford
Hello,

I thought I would  try the new /tree URI that has  been added to Fossil,
but I get the following error:

Files of check-in [daff9d2062]

SQLITE_ERROR: near WITHOUT: syntax error

Just in case others run into this error and scratch their head for a bit
as I did...I get this because I configure with --disable-internal-sqlite
on OpenBSD.

If I rebuild without that configure option it works nicely.

Thanks,

Andy
-- 
TAI64 timestamp: 400052c452bc


___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users