From jianshi.huang at gmail.com Tue Jan 15 19:27:11 2008 From: jianshi.huang at gmail.com (Jianshi Huang) Date: Wed, 16 Jan 2008 04:27:11 +0900 Subject: [clbuild-devel] patch for new packages Message-ID: <1a4744f80801151127g75f1ea42kc527e9c5f5c2a53f@mail.gmail.com> Hi I've added several packages into clbuild and also changed some code in clbuild script. I don't know how to create the patch so I'll just paste the "darcs diff" result here. Things I've changed in clbuild: * put definition of build_options and run_options after the definition of common_options * remove '--disable-debugger' from build_options under the SBCL configuration (there's a package lock warning when compiling lisa) Packages I've added: * s-xml-rpc * zebu * series * lisa * parse-html * cl-opengl Problems I've met: * don't know how to specify the .asd file to be loaded when building a package. (contextl comes with 3 .asd files, only 1 should be loaded) And here's the diff: diff -rN old-clbuild/clbuild new-clbuild/clbuild 131d130 < build_options="-on-error exit $common_options" 133d131 < run_options="-on-error exit $common_options" 143a142,143 > build_options="-on-error exit $common_options" > run_options="-on-error exit $common_options" 170,171d169 < build_optipons="$noinform --noprint --disable-debugger $common_options" < run_options="--disable-debugger $common_options" 181a180,181 > build_options="$noinform --noprint $common_options" > run_options="--disable-debugger $common_options" diff -rN old-clbuild/dependencies new-clbuild/dependencies 66a67,75 > s-sysdeps > s-base64 > s-xml > s-xml-rpc s-sysdeps s-base64 s-xml > zebu > series > lisa > parse-html > cl-opengl cffi diff -rN old-clbuild/projects new-clbuild/projects 96a97,111 > > s-sysdeps get_darcs http://www.beta9.be/darcs/s-sysdeps > s-base64 get_darcs http://www.beta9.be/darcs/s-base64 > s-xml get_cvs_clnet > s-xml-rpc get_cvs_clnet > > zebu get_svn https://cl-net-snmp.svn.sourceforge.net/svnroot/cl-net-snmp/zebu/trunk > > series get_cvs_full :pserver:anonymous at series.cvs.sourceforge.net:/cvsroot/series series > > lisa get_cvs_full :pserver:anonymous at lisa.cvs.sourceforge.net:/cvsroot/lisa lisa > > parse-html get_darcs http://common-lisp.net/project/bese/repos/parse-html > > cl-opengl get_darcs http://common-lisp.net/~loliveira/darcs/cl-opengl-thomas Cheers, Jianshi From david at lichteblau.com Tue Jan 15 19:47:04 2008 From: david at lichteblau.com (David Lichteblau) Date: Tue, 15 Jan 2008 20:47:04 +0100 Subject: [clbuild-devel] patch for new packages In-Reply-To: <1a4744f80801151127g75f1ea42kc527e9c5f5c2a53f@mail.gmail.com> References: <1a4744f80801151127g75f1ea42kc527e9c5f5c2a53f@mail.gmail.com> Message-ID: <20080115194703.GF8921@radon> Hi, (haven't applied your diff yet, just some quick comments:) Quoting Jianshi Huang (jianshi.huang at gmail.com): > I've added several packages into clbuild and also changed some code in > clbuild script. I don't know how to create the patch so I'll just > paste the "darcs diff" result here. "darcs diff -u" would have been even better. (Or perhaps "darcs send".) > Things I've changed in clbuild: > > * put definition of build_options and run_options after the definition > of common_options Thanks for the bug fix. I must have broken that recently. > * remove '--disable-debugger' from build_options under the SBCL > configuration (there's a package lock warning when compiling lisa) Well, I think the Lisp is meant to exit when building fails. If one system in a larger project doesn't compile properly, it can be blacklisted using BLACKLISTED-SYSTEMS in CLBUILD::RECOMPILE-SYSTEMS. If a project doesn't compile properly at all, it would be better to fix that problem first, of course. (But admittedly, I already violated that rule when adding eclipse and, more recently, cl-jpeg.) > Packages I've added: > > * s-xml-rpc > * zebu > * series > * lisa > * parse-html > * cl-opengl I think some of these should wait until I have an implementation of that `wnpp-projects' idea. But I hope to find time for that soon. > Problems I've met: > > * don't know how to specify the .asd file to be loaded when building a > package. (contextl comes with 3 .asd files, only 1 should be loaded) These days, we use the asdf-install rule: - A project is translated to all systems for which a SYSTEM.asd is found in the project directory. - All systems belonging to the project are LOAD-OPed, unless blacklisted as mentioned abov. If an .asd file is hidden in subdirectories, code needs to be added to the clbuild script that symlinks it manually. We don't compile such systems explicitly though, only if they occur as dependencies of main systems. Thanks, David From jianshi.huang at gmail.com Tue Jan 15 20:24:23 2008 From: jianshi.huang at gmail.com (Jianshi Huang) Date: Wed, 16 Jan 2008 05:24:23 +0900 Subject: [clbuild-devel] patch for new packages In-Reply-To: <20080115194703.GF8921@radon> References: <1a4744f80801151127g75f1ea42kc527e9c5f5c2a53f@mail.gmail.com> <20080115194703.GF8921@radon> Message-ID: <1a4744f80801151224j608c586cx9ee2645c140a9705@mail.gmail.com> > I think some of these should wait until I have an implementation of that > `wnpp-projects' idea. But I hope to find time for that soon. Ok, looking forward to that. And thanks for the explanation. From marijnh at gmail.com Wed Jan 16 21:36:13 2008 From: marijnh at gmail.com (Marijn Haverbeke) Date: Wed, 16 Jan 2008 22:36:13 +0100 Subject: [clbuild-devel] Library suggestion Message-ID: Hello list, I hadn't looked at clbuild before Andreas Fuchs called attention to it on planet lisp -- looks good, though. Now, of course, as a conscientious library maintainer, I want to cater to any user who wants to use clbuild to install Postmodern. Would it be possible to have that library added? I checked the dependencies, and it appears that there are three small libraries that Postmodern depends on that are also not yet supported by clbuild, so I give you this list: Postmodern -- http://common-lisp.net/project/postmodern A CLSQL-replacement for PostgreSQL databases FiveAM -- http://common-lisp.net/project/bese/FiveAM.html An automated testing framework from Macro Baringer IEEE-floats -- http://common-lisp.net/project/ieee-floats A tiny library for reading and writing binary floating point numbers (also mine) trivial-utf-8 -- http://common-lisp.net/project/trivial-utf-8 Another tiny library (and also mine) for reading, writing, and converting strings to and from UTF8 encoding. Let me know if there's anything else you need to know. Thanks, Marijn From david at lichteblau.com Wed Jan 16 21:55:32 2008 From: david at lichteblau.com (David Lichteblau) Date: Wed, 16 Jan 2008 22:55:32 +0100 Subject: [clbuild-devel] Library suggestion In-Reply-To: References: Message-ID: <20080116215531.GG8921@radon> Hi, Quoting Marijn Haverbeke (marijnh at gmail.com): > Postmodern -- http://common-lisp.net/project/postmodern > A CLSQL-replacement for PostgreSQL databases > > FiveAM -- http://common-lisp.net/project/bese/FiveAM.html > An automated testing framework from Macro Baringer > > IEEE-floats -- http://common-lisp.net/project/ieee-floats > A tiny library for reading and writing binary floating point numbers (also mine) > > trivial-utf-8 -- http://common-lisp.net/project/trivial-utf-8 > Another tiny library (and also mine) for reading, writing, and > converting strings to and from UTF8 encoding. Those are good suggestions. I'll see what I can do next weekend. (Usually a complete patch updating the `projects' file with all repository URLs will probably be applied sooner than a mere project suggestion for which we have to hunt down the URLs on our own, but in this case I see that all projects use darcs and have the URL right on their home page, so that's okay.) > Let me know if there's anything else you need to know. Well, we try to offer a command-line argument (implemented in Lisp) demonstrating the use of an application or library, both as an example for users who want to get started with a library and as a quick test case for clbuild maintainers to see if a certain applications actually works. There is no need for command-line arguments demonstrating minor dependencies like FiveAM, IEEE-floats, and trivial-utf-8. But a test case for Postmodern would be nice. Does Postgres have something like MySQL's INFORMATION_SCHEMA libraries? Perhaps a command that lists all databases and their tables would be a good idea. It's not a strict requirement, since we already support various libraries without including an example, but it's definitely nice to have one. d. From marijnh at gmail.com Thu Jan 17 08:49:02 2008 From: marijnh at gmail.com (Marijn Haverbeke) Date: Thu, 17 Jan 2008 09:49:02 +0100 Subject: [clbuild-devel] Library suggestion In-Reply-To: <20080116215531.GG8921@radon> References: <20080116215531.GG8921@radon> Message-ID: Hey David, > Those are good suggestions. I'll see what I can do next weekend. Thanks! > Well, we try to offer a command-line argument (implemented in Lisp) > demonstrating the use of an application or library, both as an example > for users who want to get started with a library and as a quick test > case for clbuild maintainers to see if a certain applications actually > works. I couldn't find anything about this feature in the clbuild sources or docs -- so I don't really understand what you are referring to. Could you give me some more concrete information about it? Is the demo function supposed to be implemented in the library? How does clbuild call it? Cheers, Marijn From david at lichteblau.com Sun Jan 20 15:59:48 2008 From: david at lichteblau.com (David Lichteblau) Date: Sun, 20 Jan 2008 16:59:48 +0100 Subject: [clbuild-devel] Library suggestion In-Reply-To: References: Message-ID: <20080120155948.GA23364@radon> Quoting Marijn Haverbeke (marijnh at gmail.com): > Would it be possible to have that library added? [...] > Postmodern -- http://common-lisp.net/project/postmodern > A CLSQL-replacement for PostgreSQL databases > > FiveAM -- http://common-lisp.net/project/bese/FiveAM.html > An automated testing framework from Macro Baringer > > IEEE-floats -- http://common-lisp.net/project/ieee-floats > A tiny library for reading and writing binary floating point numbers (also mine) > > trivial-utf-8 -- http://common-lisp.net/project/trivial-utf-8 > Another tiny library (and also mine) for reading, writing, and > converting strings to and from UTF8 encoding. Done. From david at lichteblau.com Sun Jan 20 16:03:44 2008 From: david at lichteblau.com (David Lichteblau) Date: Sun, 20 Jan 2008 17:03:44 +0100 Subject: [clbuild-devel] Library suggestion In-Reply-To: References: <20080116215531.GG8921@radon> Message-ID: <20080120160344.GB23364@radon> Quoting Marijn Haverbeke (marijnh at gmail.com): > I couldn't find anything about this feature in the clbuild sources or > docs -- so I don't really understand what you are referring to. Could > you give me some more concrete information about it? Is the demo > function supposed to be implemented in the library? How does clbuild > call it? I've just changed this mechanism a little. All application startup now uses a global command called "run". For example, "clbuild run vecto-demo" loads the parts of clbuild.lisp that are conditional on #+clbuild::vecto-demo Similarly, you could add a section to clbuild.lisp for clbuild::postmodern-demo, which loads postmodern and then does something with it. In the `clbuild' script itself, only help_run() needs to be changed to that the new command is documented in help output. d. From david at lichteblau.com Sun Jan 20 16:31:47 2008 From: david at lichteblau.com (David Lichteblau) Date: Sun, 20 Jan 2008 17:31:47 +0100 Subject: [clbuild-devel] patch for new packages In-Reply-To: <1a4744f80801151127g75f1ea42kc527e9c5f5c2a53f@mail.gmail.com> References: <1a4744f80801151127g75f1ea42kc527e9c5f5c2a53f@mail.gmail.com> Message-ID: <20080120163147.GC23364@radon> Quoting Jianshi Huang (jianshi.huang at gmail.com): > * put definition of build_options and run_options after the definition > of common_options Thanks, fix pushed. > Packages I've added: > > * s-xml-rpc > * zebu > * series > * lisa > * parse-html > * cl-opengl I have added these as WNPP packages for now. cl-opengl-thomas would probably qualify as a main package if its package name didn't conflict with CLX's GL package. > * don't know how to specify the .asd file to be loaded when building a > package. (contextl comes with 3 .asd files, only 1 should be loaded) If you want to refine that, please send another patch. Thanks, David From cstejerean at gmail.com Mon Jan 21 02:45:07 2008 From: cstejerean at gmail.com (Cosmin Stejerean) Date: Sun, 20 Jan 2008 20:45:07 -0600 Subject: [clbuild-devel] curl missing from list of helpers Message-ID: <276266d0801201845l748dcf67rc8c33b1a907f52cb@mail.gmail.com> running ./clbuild check on my system indicated that all helper applications were found but when trying to build world I got an error about not being able to find curl. I'm guessing curl needs to be added to the list of necessary helper functions (it's not there by default on recent Ubuntu). -- Cosmin Stejerean http://blog.offbytwo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From bld at otfrom.com Mon Jan 21 03:09:08 2008 From: bld at otfrom.com (Bruce Durling) Date: Sun, 20 Jan 2008 22:09:08 -0500 Subject: [clbuild-devel] Broken Repository Message-ID: Is anyone else having trouble with this repository? NEW darcs get midi Invalid repository: http://rvw.doc.gold.ac.uk/sullivan/darcs/midi darcs failed: Failed to download URL http://rvw.doc.gold.ac.uk/sullivan/darcs/midi/_darcs/inventory libcurl: HTTP error (404?) cheers, Bruce From bld at otfrom.com Mon Jan 21 03:12:13 2008 From: bld at otfrom.com (Bruce Durling) Date: Sun, 20 Jan 2008 22:12:13 -0500 Subject: [clbuild-devel] Re: Broken Repository In-Reply-To: References: Message-ID: Hi, clsql doesn't seem to be working either. NEW git clone clsql Initialized empty Git repository in /home/bld/programming/lisp/clbuild/source/clsql/.git/ Getting alternates list for http://git.b9.com/clsql.git Getting pack list for http://git.b9.com/clsql.git Getting index for pack d4b8ec093bbf9d759698a3573840b833a65c6800 Getting pack d4b8ec093bbf9d759698a3573840b833a65c6800 which contains 581e3910304b4054f41b0cb41105b03519af63b1 error: Unable to get pack file http://git.b9.com/clsql.git/objects/pack/pack-d4b8ec093bbf9d759698a3573840b833a65c6800.pack transfer closed with 11019085 bytes remaining to read error: Unable to find 581e3910304b4054f41b0cb41105b03519af63b1 under http://git.b9.com/clsql.git Cannot obtain needed object 581e3910304b4054f41b0cb41105b03519af63b1 cheers, Bruce From bld at otfrom.com Mon Jan 21 03:23:12 2008 From: bld at otfrom.com (Bruce Durling) Date: Sun, 20 Jan 2008 22:23:12 -0500 Subject: [clbuild-devel] Re: Broken Repository In-Reply-To: References: Message-ID: Hi again, On Jan 20, 2008 10:09 PM, Bruce Durling wrote: > Is anyone else having trouble with this repository? > > NEW darcs get midi > Invalid repository: http://rvw.doc.gold.ac.uk/sullivan/darcs/midi > > darcs failed: Failed to download URL > http://rvw.doc.gold.ac.uk/sullivan/darcs/midi/_darcs/inventory > libcurl: HTTP error (404?) Hmm..no http://rvw.doc.gold.ac.uk/sullivan/darcs means no spatial-trees and no spacial trees means no clim. Here is the error from sbcl: unhandled SIMPLE-ERROR in thread #: Error during processing of --eval option "(load \"/home/bld/programming/lisp/clbuild/clbuild.lisp\")": component :SPATIAL-TREES not found, required by # Does anyone have a mirror of http://rvw.doc.gold.ac.uk/sullivan/darcs? cheers, Bruce From david at lichteblau.com Mon Jan 21 18:18:42 2008 From: david at lichteblau.com (David Lichteblau) Date: Mon, 21 Jan 2008 19:18:42 +0100 Subject: [clbuild-devel] Re: Broken Repository In-Reply-To: References: Message-ID: <20080121181842.GA12632@radon> Quoting Bruce Durling (bld at otfrom.com): > Hmm..no http://rvw.doc.gold.ac.uk/sullivan/darcs means no > spatial-trees and no spacial trees means no clim. Here is the error > from sbcl: I believe Christophe Rhodes has fixed the spatial-trees problem, and midi also works for me now. As for b9.com and clsql, we will have to figure out which protocol to use. Originally git:// didn't work well for that host while http:// did. Perhaps now it is the other way around. d. From david at lichteblau.com Mon Jan 21 18:21:55 2008 From: david at lichteblau.com (David Lichteblau) Date: Mon, 21 Jan 2008 19:21:55 +0100 Subject: [clbuild-devel] curl missing from list of helpers In-Reply-To: <276266d0801201845l748dcf67rc8c33b1a907f52cb@mail.gmail.com> References: <276266d0801201845l748dcf67rc8c33b1a907f52cb@mail.gmail.com> Message-ID: <20080121182155.GB12632@radon> Quoting Cosmin Stejerean (cstejerean at gmail.com): > running ./clbuild check on my system indicated that all helper applications > were found but when trying to build world I got an error about not being > able to find curl. I'm guessing curl needs to be added to the list of > necessary helper functions (it's not there by default on recent Ubuntu). Thanks for the report. I've added that check. curl is a dependency of git when using HTTP. Not sure why the Ubuntu and Debian packages don't reflect that. d. From victor.kryukov at gmail.com Sat Jan 26 23:16:02 2008 From: victor.kryukov at gmail.com (Victor Kryukov) Date: Sat, 26 Jan 2008 17:16:02 -0600 Subject: [clbuild-devel] CL-PPCRE dependency in clbuild.lisp Message-ID: Hello list. clbuild.lisp has a CL-PPCRE dependency in the latest clbuild version, which means that commands like build, dumpcore etc. fail if CL-PPCRE is not installed (see below an example output for freshly installed clbuild). I'm not sure what's the best way to fix it - get rid of CL-PPCRE dependency in clbuild.lisp, install CL-PPCRE before doing anything else, etc., so no patch this time. Best, Victor. vicbook:~/src/clbuild victor$ ./clbuild build slime slime depends on: slime include dependencies in update? (Y/n)y NEW cvs co slime cvs checkout: Updating slime update complete 4 system definition files registered unhandled SIMPLE-ERROR in thread #: Error during processing of --eval option "(load \"/Users/victor/src/clbuild/clbuild.lisp\")": component "cl-ppcre" not found 0: (BACKTRACE 128 #) 1: (SB-DEBUG::DEBUGGER-DISABLED-HOOK # #) 2: (INVOKE-DEBUGGER #) 3: (INVOKE-DEBUGGER #) 4: (ERROR "Error during processing of --eval ~ option ~S:~%~% ~A") 5: ((LAMBDA (SB-IMPL::E)) component "cl-ppcre" not found) 6: ((LAMBDA (SB-IMPL::E)) component "cl-ppcre" not found) 7: (SIGNAL component "cl-ppcre" not found) 8: (ERROR ASDF:MISSING-COMPONENT) 9: (ASDF:FIND-SYSTEM :CL-PPCRE T) 10: (ASDF:OPERATE ASDF:LOAD-OP :CL-PPCRE) 11: (CLBUILD::MAKE :CL-PPCRE) 12: (SB-INT:SIMPLE-EVAL-IN-LEXENV (CLBUILD::MAKE :CL-PPCRE) #) 13: (SB-FASL::LOAD-AS-SOURCE # NIL NIL) 14: (SB-FASL::%LOAD #) 15: (SB-FASL::%LOAD "/Users/victor/src/clbuild/clbuild.lisp") 16: (LOAD "/Users/victor/src/clbuild/clbuild.lisp") 17: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LOAD "/Users/victor/src/clbuild/clbuild.lisp") #) 18: (SB-IMPL::PROCESS-EVAL-OPTIONS ((DISABLE-DEBUGGER) "(require :asdf)" "(setq asdf:*central-registry* '(#p\"/Users/victor/src/clbuild/systems/\"))" "nil" "(load \"/Users/victor/src/clbuild/clbuild.lisp\")")) 19: (SB-IMPL::TOPLEVEL-INIT) 20: ((LABELS SB-IMPL::RESTART-LISP)) unhandled condition in --disable-debugger mode, quitting vicbook:~/src/clbuild victor$ From victor.kryukov at gmail.com Sat Jan 26 23:28:05 2008 From: victor.kryukov at gmail.com (Victor Kryukov) Date: Sat, 26 Jan 2008 17:28:05 -0600 Subject: [clbuild-devel] clbuild mrproper leaves broken links in systems/ Message-ID: Shouldn't it also do 'rm systems/*'? -- Yours Sincerely, Victor Kryukov Chicago GSB class of 2008 773-618-9501 From victor.kryukov at gmail.com Sun Jan 27 08:40:21 2008 From: victor.kryukov at gmail.com (Victor Kryukov) Date: Sun, 27 Jan 2008 02:40:21 -0600 Subject: [clbuild-devel] [PATCH] Broken dependencies, new WNPPs Message-ID: clbuild contains some broken dependencies. For example, the following sequence of commands[1] in a fresh clbuild installation $ ./clbuild update cl-ppcre $ ./clbuild build hunchentoot fails during master.core compilation, because hunchentoot depends on babel, and babel depends on rt, but rt is not in the hunchentoot explicit dependencies list. It looks like clbuild doesn't resolve all the dependencies - in that case a simple fix would be adding rt to the hunchentoot dependencies line. On the other hand, it could be a better decision to resolve all the dependencies automatically, or even get rid of clbuild/dependencies completely and extract all relevant information from .asd files in a asdf-install fashion. Anyway, I've attached a patch that fixes that and adds some more WNPP projects, mainly to support cl-s3 project that provides interface to Amazon S3. Two questions: 1/ Why is get_tarball deprecated? cl-s3 and ironclad (a cryptography library) are only available as tarballs; I haven't found any other way to get them[2]. 2/ What are the reasons for having clbuild as a shell script, and not as a lisp program? It may be just my inexperience/unfamiliarity with bash, but clbuild with 1000+ LOC is hard to grasp/modify/support. And having a lisp is our core dependency anyway :). Two potential reasons come in mind, though I may miss something: - it is just a legacy of clbuild development, which was started as a short shell script, or - clbuild does a lot of OS-level tasks, and there's no portable way to do it in Common Lisp. While I agree with the later, all implementations provide some way to deal with underlying OS and compatibility layer will be small. Also, any helpful libraries like CL-FAD could be installed via small shell-script before main clbuild-in-lisp starts. Best regards, Victor. [1] The first command is required because clbuild.lisp depends on cl-ppcre - see my message earlier in the group. [2] It may be a good moment to urge authors to provide them in a VCS form though. -------------- next part -------------- A non-text attachment was scrubbed... Name: dependencies.patch Type: application/octet-stream Size: 2082 bytes Desc: not available URL: From david at lichteblau.com Sun Jan 27 12:18:08 2008 From: david at lichteblau.com (David Lichteblau) Date: Sun, 27 Jan 2008 13:18:08 +0100 Subject: [clbuild-devel] CL-PPCRE dependency in clbuild.lisp In-Reply-To: References: Message-ID: <20080127121807.GJ30892@radon> Quoting Victor Kryukov (victor.kryukov at gmail.com): > clbuild.lisp has a CL-PPCRE dependency in the latest clbuild version, > which means that commands like build, dumpcore etc. fail if CL-PPCRE > is not installed (see below an example output for freshly installed > clbuild). I'm not sure what's the best way to fix it - get rid of > CL-PPCRE dependency in clbuild.lisp, install CL-PPCRE before doing > anything else, etc., so no patch this time. I've chosen the last option for now. CL-PPCRE is installed if not present before recompile/dumpcore/build. (In the long term it might be nice to revert that and copy&paste something based on split-sequence into clbuild.lisp.) Thanks, David From david at lichteblau.com Sun Jan 27 12:27:36 2008 From: david at lichteblau.com (David Lichteblau) Date: Sun, 27 Jan 2008 13:27:36 +0100 Subject: [clbuild-devel] clbuild mrproper leaves broken links in systems/ In-Reply-To: References: Message-ID: <20080127122736.GK30892@radon> Quoting Victor Kryukov (victor.kryukov at gmail.com): > Shouldn't it also do 'rm systems/*'? Thanks the report. I have checked in that fix. As a note for future development: Personally, I am not sure why I would ever want to risk deletion of all my Lisp sources, so I would prefer to see mrproper either go away completely, or alternatively replaced with something like mv $source_dir $target_dir $system_dir $BASE/trash d. From david at lichteblau.com Sun Jan 27 13:13:19 2008 From: david at lichteblau.com (David Lichteblau) Date: Sun, 27 Jan 2008 14:13:19 +0100 Subject: [clbuild-devel] [PATCH] Broken dependencies, new WNPPs In-Reply-To: References: Message-ID: <20080127131319.GL30892@radon> Quoting Victor Kryukov (victor.kryukov at gmail.com): > $ ./clbuild build hunchentoot > > fails during master.core compilation, because hunchentoot depends on > babel, and babel depends on rt, but rt is not in the hunchentoot > explicit dependencies list. Hmm, I cannot reproduce that failure. Can you send me a complete log of that compilation attempt? > It looks like clbuild doesn't resolve all the dependencies - in that > case a simple fix would be adding rt to the hunchentoot dependencies > line. Make sure to distinguish between project dependencies and system dependencies. The following process computes the "project dependencies" of a project FOO: - look for all files named clbuild/source/FOO/*.asd and load them (Except for some special projects that force us to scan recursively for asd files.) - for each system BAR that we found a file FOO/bar.asd for, compute the systems that BAR depends on. ASDF provides no function that I am aware of to find those dependencies, so we scan the in-order-to slot to make an educated guess what those dependencies are. (As an extra exception, we sometimes add dependencies at this point, for example to force mcclim to always depend on cffi, no matter whether the caller currently has gtkairo enabled or not.) - for each such system that is a dependency, map the system back to its asd file, and if that asd file is found somewhere in clbuild/source/BAZ/, consider it to be part of project BAZ - The projects found in the last step are the dependencies of FOO. This process implies that dependencies between projects are not transitive. For example, in the versions of hunchentoot and babel that I see here, the project `babel' depends on the project `rt' because the system BABEL-TEST depends on the system RT. But the system HUNCHENTOOT depends only on BABEL, not BABEL-TEST, so the project `hunchentoot' does not depend on the project `rt'. (Of course, I might be overlooking a dependency, or perhaps I'm using the wrong version of hunchentoot. That is why it would be good to see the exact failure. Perhaps the stack trace gives a clue as to where the problem lies.) > On the other hand, it could be a better decision to resolve all the > dependencies automatically, or even get rid of clbuild/dependencies > completely and extract all relevant information from .asd files in a > asdf-install fashion. We already extract dependency information automatically. The idea is that maintainers run clbuild record-dependencies to regenerate the `dependencies' file before checking in changes to the project file. The exact mechanism we use is different from what asdf-install does. asdf-install just tries loading a system, and when that errors out due to a missing dependency, it downloads that other project and tries again. I don't think that this approach would be helpful in the context of clbuild. > Anyway, I've attached a patch that fixes that and adds some more WNPP > projects, mainly to support cl-s3 project that provides interface to > Amazon S3. I'll add them once I find a darcs repository for ironclad. (We could instead use the darcs mirror method explained below, but I would guess that Nathan Froyd already has a version-controlled ironclad somewhere.) > Two questions: > > 1/ Why is get_tarball deprecated? cl-s3 and ironclad (a cryptography > library) are only available as tarballs; I haven't found any other way > to get them[2]. In those cases we use the automatic mirroring script on common-lisp.net, which would check for a new tarball daily and import it into darcs. The main advantage of this approach is that local changes will not get lost when updating through that darcs mirror. > 2/ What are the reasons for having clbuild as a shell script, and not > as a lisp program? It may be just my inexperience/unfamiliarity with > bash, but clbuild with 1000+ LOC is hard to grasp/modify/support. And > having a lisp is our core dependency anyway :). Two potential reasons > come in mind, though I may miss something: > > - it is just a legacy of clbuild development, which was started as a > short shell script, or Luke's original decision to write it as a shell script is certainly the main reason it is (still) implemented that way. Personally I do not see clbuild as a mere shell script, at least since the recompile and record-dependencies steps are now written in Lisp. But it is true that the use of a shell script is a distinguishing feature of clbuild. Note that other projects have tried to explore other parts of the design space for lisp software installers. There is cl-librarian written in Lisp, clget written in Perl, and so on. At this point, I see no reason why clbuild should try to take over, say, cl-librarian. It probably is good at what it does, and we are good at what we do, and while the overall goal may be similar, there are considerable differences between our approaches. > - clbuild does a lot of OS-level tasks, and there's no portable way to > do it in Common Lisp. That is one reason which people often mention. We basically just call out to darcs, git, cvs, and svn anyway. I also prefer being able to install lisp projects before having built a clean SBCL (and without having to worry whether the Lisp in my PATH is good enough). d. From david at lichteblau.com Sun Jan 27 16:37:28 2008 From: david at lichteblau.com (David Lichteblau) Date: Sun, 27 Jan 2008 17:37:28 +0100 Subject: [clbuild-devel] splitting up the clbuild shell script Message-ID: <20080127163728.GC9989@radon> Hi, the clbuild shell script was originally intended to be a single file. However, since then it has grown considerably, so I am wondering whether it wouldn't be better to split it up into separate files, so that - global variable initializations aren't hidden between function definitions - someone editing help output can just open help.sh without searching around for it - all routines for project and dependency file parsing share a file ... and so on. Of course, I am not going to push that change if it is turns out to be controversial. You can find my proposal at: http://common-lisp.net/~dlichteblau/clbuild-multifile/ Comments appreciated. Thanks, David From david at lichteblau.com Sun Jan 27 19:17:37 2008 From: david at lichteblau.com (David Lichteblau) Date: Sun, 27 Jan 2008 20:17:37 +0100 Subject: [clbuild-devel] [PATCH] Broken dependencies, new WNPPs In-Reply-To: References: <20080127131319.GL30892@radon> Message-ID: <20080127191737.GA16179@radon> Quoting Victor Kryukov (victor.kryukov at gmail.com): > vicbook:~/src/fresh-clbuild victor$ ./clbuild update hunchentoot > vicbook:~/src/fresh-clbuild victor$ ./clbuild dumpcore > > The last one fails - full output is attached. That appears to be a common misunderstanding of the "dumpcore" command (perhaps originating in Bill Clementson's blog about clbuild, where he seems to suggest that things work this way). In reality, "dumpcore" doesn't take into account what "update" or "recompile" have previously done. When used without arguments as "clbuild dumpcore", it tries to compile every system for every project found in the main projects list. What should work is this: clbuild update hunchentoot clbuild dumpcore hunchentoot My current idea is to disallow the case without arguments, and offer a command line flag implementing the old default. That would force users to write either clbuild dumpcore PROJECT or clbuild dumpcore --all explicitly. David From michaelw+clbuild at foldr.org Mon Jan 28 15:54:22 2008 From: michaelw+clbuild at foldr.org (Michael Weber) Date: Mon, 28 Jan 2008 16:54:22 +0100 Subject: [clbuild-devel] RFI: cl-dot, mw-equiv, redshank Message-ID: <67D1FA89-C097-4EA7-8D5E-E14927074C4F@foldr.org> Hi, attached is a patch to add cl-dot, mw-equiv, and redshank. The first two have no external Lisp dependencies, redshank depends on slime. I did not add provisions to load it into emacs, though. CLAWK would be nice to have, too, but it needs some more cleanup (defconstant issues) before inclusion. Cheers, Michael -------------- next part -------------- A non-text attachment was scrubbed... Name: clbuild-mw.patch Type: application/octet-stream Size: 18114 bytes Desc: not available URL: From Hit-Booster at common-lisp.net Wed Jan 30 23:42:29 2008 From: Hit-Booster at common-lisp.net (Hit-Booster at common-lisp.net) Date: 30 Jan 2008 15:42:29 -0800 Subject: [clbuild-devel] How to get free quality visitors to your website? Message-ID: <20080130154228.3242A6EB2B1FD1DD@from.header.has.no.domain> An HTML attachment was scrubbed... URL: -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Unsubscribe email.txt URL: