[tahoe-dev] [tahoe-lafs] #1200: package up Brian's New Visualization of immutable download

tahoe-lafs trac at tahoe-lafs.org
Sat Nov 27 19:00:50 UTC 2010


#1200: package up Brian's New Visualization of immutable download
-----------------------------+----------------------------------------------
     Reporter:  zooko        |       Owner:  nobody                                                                    
         Type:  enhancement  |      Status:  new                                                                       
     Priority:  major        |   Milestone:  1.9.0                                                                     
    Component:  unknown      |     Version:  1.8β                                                                      
   Resolution:               |    Keywords:  unfinished-business immutable download statistics performance transparency
Launchpad Bug:               |  
-----------------------------+----------------------------------------------

Comment (by zooko):

 gdt:

 Replying to [comment:9 gdt]:
 > So for development and evangelizing, easy build from source tarball is
 important, but for eventual widespread success, packaging systems are
 crucial.

 Okay, I agree that both running the code directly from upstream-tahoe-
 project -> user and running the code from upstream-tahoe-project ->
 packager -> user are important use cases.

 Now, let's get down to brass tacks here. What changes are you suggesting?

 > Right now we seem to have "build" and "install" steps, but build isn't
 really build - it's fetch/build dependencies.   And install runs the
 python compiler in addition to copying to DESTDIR.  From a packaging
 system viewpoint, automatic dependency fetching is a problem to be
 disabled.

 This is #1220. If I understand correctly, the current state of that ticket
 is that {{{--single-version-externally-managed}}} satisfies the original
 requirements of the ticket, but that gdt then added a new requirement
 which is that the setup step should check for dependencies and stop with
 an error message if they aren't satisfied. ;-) Let's follow up on that
 ticket... Here: comment:21:ticket:1220

 >   So I'd like to suggest a new 'dependencies' setup.py target that
 obtains all missing dependencies, that build compile .py but not fetch
 dependencies or install

 Okay I opened #1270 (have a separate build target to download any missing
 deps but not to compile or install them).

 > One obstacle to this approach is that some programs are written in
 languages that appear to have a tradition that people manually deal with
 files.  It's obvious to me :-) that javascript libraries should come in a
 tarball with a configure script, be given a --prefix, and get installed
 into $PREFIX/share/javascript/foo/bar.js, from which other programs that
 need them can obtain them.  Probably the build step (typing make) in the
 js package would run some program to convert from source to minified form,
 and make install would then install both.  Then a "binary package" of the
 javascript program can be distributed, and be a dependency in packaging
 systems.  (I find it odd that the javascript community hasn't done this,
 but java seems similar in the expectation that individuals who want to use
 programs get jar files and type 'java foo.jar' to run them.)   So one step
 would be to package up the javascript code first.

 That all sounds pretty good to me, but note that tahoe-lafs supports
 platforms that do not have "make" (i.e., Windows), so we can't rely on
 make.

 > Another option is to adopt the packaging-system-centric notions where
 it's reasonably easy (GNU/Linux, pkgsrc, etc.) and to provide a tarball of
 tahoe-dependencies that has things like the js libs.   Those tarballs
 could then be built for releases, but not stored in the version-control
 system.

 I guess that is the tahoe-deps notion:

 http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-deps.tar.bz2

-- 
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1200#comment:10>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-dev mailing list