On Fri, Jul 26, 2013 at 3:17 AM, Joseph R. Justice <jayare...@gmail.com>wrote:

> My apologies for taking so long to respond myself, I've been a little
> under the weather the last couple of days.
>

And a toothache is keeping me offline and my response to your post
exceedingly brief...


> Long term that is a good point, and if you have concrete ideas on how best
>> to achieve this, please elaborate.
>>
>
> I don't have ideas off-hand.  I'm just raising the point because I suspect
> it will be of value to distributions, and more generally to applications
> making use of libfossil2 (especially those applications *not* specifically
> provided by TFP).
>

Let's talk about that, in the following points, on the -dev list.


> I'm not sure what an "amalgamation build" is supposed to be.  I see
>>> http://www.sqlite.org/amalgamation.html which talks about an
>>> amalgamation of the sqlite3 library source code into a single .c and .h
>>> which can then be incorporated as a source code unit into an application
>>> making use of sqlite3.  I'm assuming you're talking about doing a similar
>>> thing with the source for libfossil2 (which would itself incorporate a copy
>>> of the source to sqlite3) to create a source code unit for an application
>>> making use of libfossil2?
>>>
>>
Correct. The current prototype is being designed with that in mind and
already builds as an amalgamation (a term taken from the sqlite project).


> One other thing -- what if the application making use of libfossil2 is
> also making use of sqlite3, and perhaps even was already making use of
> sqlite3 long before they decided to use libfossil2?  If the application is
> using an amalgamation build of sqlite3, and starts to use an amalgamation
> build of libfossil2 (which itself contains a copy of an amalgamation of
> sqlite3 and possibly a copy which is a different version), well...
>

Those points haven't yet become relevant but certainly will at some point.
Fossil currently offers a config option to use (or not) the system-provided
sqlite, and i suspect we'll need to stick to that approach.


> sqlite has functions which allow you to query the linked in library
>>> version, and fossil would of course have the same.
>>>
>>
> Cool.
>

i've already added this, btw.


> * The library should be implemented in such a way that multiple instances
>>> of the library, and/or multiple different clients using either the same
>>> instance of the library and/or multiple different instances of the library,
>>> will not accidentally corrupt fossil repositories.  Note that under
>>> Unix/Linux many types of file locking (especially network file locking) are
>>> less than fully secure or reliable.
>>>
>>
>> Those (extremely difficult) details are 100% delegated to sqlite. There's
>> no reason fossil has no directly deal with them.
>>
>
> Cool.  I didn't know if (and wasn't claiming that) any of this would be
> fossil's problem or not.  I just knew that it *was* a problem, and that
> *someone* would have to deal with it.
>

That's one of the areas which is (A) exceedingly difficult to implement
reliably and (B) handled very well by sqlite :). This is also a very strong
argument for keeping sqlite3/4 as a hard-coded backend, as opposed to
abstracting away the storage layer (each implementation would need to make
similar sorts of guarantees).

Well, I think much of what I've been mentioning above is just this.  It
>>> also applies to the existing fossil1scm, if only to make sure you all, as
>>> the upstream vendor for this application to the various Unix / Linux
>>> distros, know what would make their life easier in terms of packaging and
>>> distributing the application to each individual distro's users.  (Please
>>> note, I have *no* role whatsoever in packaging fossil for *any*
>>> distribution, and I am not about to start.  Each distro already providing
>>> fossil1scm has someone already doing that.  I'm just trying to do some
>>> advocacy and education on behalf of the Unix / Linux distro ecosystem as a
>>> whole.)
>>>
>>
So far we've had nobody to who's done any evangelism in that area.


>
> Localization / internationalization: For at least FOSS projects, I know
>>> there are organizations out there who will do much of the work of
>>> localizing and internationalizing the software for you (in particular
>>> various language strings) As Long As you use software libraries which make
>>> it easy for them to do this.
>>>
>>
>> ideally the core library won't emit any human-language strings except to
>> propagate OS/sqlite3-level errors.
>>
>
> That's fair enough, re the core library.  It still applies to applications
> making use of the core library, however, and there presumably would be at
> least one such application developed by
>

The prototype is still far from being able to say what tools/approaches
will/should/could be used to cover translations and whatnot. i personally
have no experience with multi-language C apps.


-- 
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to