diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-01-22 10:40:21 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-01-22 10:40:21 (GMT) |
commit | c53a6dd5dba78aa4d5d4dbb81e73429d3569c957 (patch) | |
tree | 3d9ed960c77a448aab24233ec861b7b3303549b1 | |
parent | 4fcf5043a9a7030f439a04c9de9aba74ce6d79fb (diff) |
Import jhbuild, get rid of the updater.
114 files changed, 33739 insertions, 19 deletions
@@ -1,4 +1,4 @@ -build-scripts/jhbuild +.svn build *.pyc *~ diff --git a/build-scripts/README b/build-scripts/README new file mode 100644 index 0000000..4a1efc8 --- /dev/null +++ b/build-scripts/README @@ -0,0 +1,7 @@ +Keep the jhbuild directory synced with: + +svn://svn.gnome.org/svn/jhbuild/trunk + +The repository has been imported here only +for convenience. All the changes should go +upstream first and then imported. diff --git a/build-scripts/jhbuild/.cvsignore b/build-scripts/jhbuild/.cvsignore new file mode 100644 index 0000000..1cf30c2 --- /dev/null +++ b/build-scripts/jhbuild/.cvsignore @@ -0,0 +1,3 @@ +*.tar.gz +*.pyc +install-check diff --git a/build-scripts/jhbuild/COPYING b/build-scripts/jhbuild/COPYING new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/build-scripts/jhbuild/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/build-scripts/jhbuild/ChangeLog b/build-scripts/jhbuild/ChangeLog new file mode 100644 index 0000000..b18ce29 --- /dev/null +++ b/build-scripts/jhbuild/ChangeLog @@ -0,0 +1,7905 @@ +2007-01-22 Mariano Suárez-Alvarez <mariano@gnome.org> + + * jhbuild/frontends/terminal.py: Do not write string arrays as + commands upon error. Fixes bug #354010. + +2007-01-14 Claudio Saavedra <csaavedra@alumnos.utalca.cl> + + * modulesets/freedesktop-2.18.modules: Bump s-t-b version to 2.1.2. + +2007-01-11 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.18.modules: add dependency on enchant + and iso-codes. + +2007-01-10 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * modulesets/gnome-2.16.modules: libwnck has branched + for gnome-2-16 + +2007-01-10 Marco Pesenti Gritti <marco@gnome.org> + + * jhbuild/modtypes/autotools.py: added a makefile attribute to the + autotools module type (bug #386193) + +2007-01-08 Frederic Peters <fpeters@0d.be> + + * jhbuild/modtypes/tarball.py, jhbuild/versioncontrol/tarball.py: added + fallback to curl if wget is unavailable (bug #301259, based on a patch + by Joshua Hoblitt) + +2007-01-07 Frederic Peters <fpeters@0d.be> + + * jhbuild/versioncontrol/git.py: adds support for a "subdir" attribute + for GIT branches (bug #342846, patch by Eric Anholt) + +2007-01-07 Frederic Peters <fpeters@0d.be> + + * jhbuild/versioncontrol/svn.py: abort on conflicts from svn update + (bug #394308) + +2007-01-07 Frederic Peters <fpeters@0d.be> + + * jhbuild/versioncontrol/svn.py: always use a branch when it is + specified (even when module is set) (bug #394588) + +2007-01-07 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.18.modules: use libgsf 1.14.2 (bug #362223) + +2007-01-09 Christian Persch <chpe@svn.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch for + libbonoboui. + +2007-01-09 Guillaume Desmottes <cass@skynet.be> + + * doc/jhbuild.xml: Documentation: Correct spelling of Gnome as GNOME. + +2007-01-09 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.18.modules: Specify a virtual gnomemm repository, + and specify the gnomemm modules as using the repository. Unlike before, + with cvs, they will then be checked out to top-level directories. + +2007-01-08 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.18.modules: vino depends on dbus-glib + +2007-01-08 Murray Cumming <murrayc@murrayc.com> + + * sample.jhbuildrc: Update for the GNOME cvs->svn change. + +2007-01-07 Frederic Peters <fpeters@0d.be> + + * jhbuild/modtypes/mesa.py: introduced special module type for mesa; + necessary to use xorg moduleset (bug #349343, module by Eric Anholt) + +2007-01-07 Frederic Peters <fpeters@0d.be> + + * modulesets/pulseaudio.modules: added PulseAudio moduleset + (bug #348572) + +2007-01-07 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.18.modules: removed obsolete libbonobouimm from + meta-gnome-c++ (bug #393716, patch by Marc-Andre Lureau) + +2007-01-07 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.18.modules: changed ekiga module to point to + appropriate subversion tag. + +2007-01-07 Marco Pesenti Gritti <mpg@redhat.com> + + * modulesets/freedesktop.modules: dbus-python use autotools now + +2007-01-05 Mark McLoughlin <mark@skynet.ie> + + Combination of patches from myself and + Frederic Peters <fpeters@0d.be> + + See bug #393147 and #347597 + + * jhbuild/versioncontrol/svn.py: back out the trunk + fiddling behaviour from before and add: + + A "trunk_path" attribute to <repository type="svn"> + which defaults to "trunk". Set to "" if the trunks + are in the toplevel directory + + A "branches_path" attribute to <repository type="svn"> + which defaults to "branches". + + Support for the "revision" attribute on <branch> + +2007-01-05 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.18.modules: added dependency on gnome-desktop for + epiphany (bug #393079) + +2007-01-05 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.18.modules: fixed libxml2 module name + (patch #79436 from bug #393071) + +2007-01-05 Olav Vitters <olav@bkor.dhs.org> + + * Makefile: Change 'make update' from CVSism to SVNism. + +2007-01-04 Marco Pesenti Gritti <mpg@redhat.com> + + * modulesets/gnome-2.16.modules: use svn.gnome.org + +2007-01-03 Tim Janik <timj@gtk.org> + + * modulesets/gtk.modules: pango/autogen.sh depends on gnome-common. + +2007-01-02 Mark McLoughlin <mark@skynet.ie> + + Pointed out by Tim Janik + + * jhbuild/versioncontrol/svn.py: only override checkoutdir + if it's not already set + +2007-01-02 Mark McLoughlin <mark@skynet.ie> + + * jhbuild/versioncontrol/svn.py: add a little hack so + that if no branch or tag is mentioned in the module name, + we checkout the trunk to an appropriate directory + + * modulesets/gnome-2.18.modules: add the svn.gnome.org + repo and fix a couple of branch defs. + + * modulesets/freedesktop-2.18.modules: remove the unused + gnome.org cvsroot from here. + +2007-01-02 Mark McLoughlin <mark@skynet.ie> + + * jhbuild/versioncontrol/svn.py: fix minor buglet in + SubversionRepository.branch() + +Tue Jan 2 12:18:33 2007 Tim Janik <timj@imendio.com> + + * modulesets/gtk.modules: also fix up gnome-common and intltool URLs. + +Tue Jan 2 11:25:17 2007 Tim Janik <timj@imendio.com> + + * first steps at getting the Gtk+ toolchain to build with GNOME SVN. + + * modulesets/gtk.modules: renamed old gnome repo from gnome.org to + cvs.gnome.org. added new default repo svn.gnome.org. + converted module branch specifications to check out */trunk + directories into directories with checkoutdir=MODULENAME. + +2006-12-26 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.18.modules: Restore HEAD branch for + gnome-system-monitor (no more unblessed external + dependency). + +2006-12-20 Elijah Newren <newren@gmail.com> + + * modulesets/freedesktop-2.18.modules: Cairo is an external dep; + it should be pulled from tarballs, not git. + + * modulesets/bootstrap.modules: update autoconf to 2.60 since some + modules now require it. + +2006-12-20 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.16.modules: vte has branched for gnome-2-16. + +2006-12-19 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: gnome-media has + branched for gnome-2-16. + +2006-12-18 Luca Ferretti <elle.uca@libero.it> + + * modulesets/freedesktop-2.18.modules: + + Update to hicolor-icon-theme 0.10, needed to use all icon context + defined by Icon Naming Spec + +2006-12-14 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/freedesktop-2.18.modules: Use cairo from git to get + more testing of that before we start using it for 2.18.0. + +2006-12-14 Luca Ferretti <elle.uca@libero.it> + + * modulesets/freedesktop-2.18.modules: + * modulesets/gnome-2.18.modules: + + Grab liboobs from cvs: it's a desktop module, not external dep. + +2006-12-12 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br> + + * modulesset/gnutls: Remove "alpha" from the gnutls URL. + +2006-12-03 Christian Kirbach <Christian.Kirbach@siemens.com> + + * modulesets/gnome-2.16.modules: Use liboil 0.3.10 tarball, 0.3.8 is + now required for gst-plugins-base. The liboil cvs repository is ancient. + (committed by Andre Klapper on behalf of Christian Kirbach) + +2006-11-28 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch for + bug-buddy. + +2006-11-23 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branches + for eel, nautilus and gnome-vfs. + +Thu, 23 Nov 2006 14:14:02 +0100 Dodji Seketeli + + * modulesets/gnome-2.18.modules: added nemiver. Applied patch #368874 + from Guillaume Desmottes. + +2006-11-23 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.16.modules: + * modulesets/gnome-2.18.modules: Use the glibmm-2.12 branch of + glibmm, because GNOME 2.18 uses the glib-2.12 branch of glib. + +2006-11-17 Murray Cumming <murrayc@murrayc.com> + + * modulesets/bootstrap.modules: Use latest gettext (0.16) instead + of 0.14.5, because I need the latest libgettext-po error-handling + API in Glom. But if this disturbs something, just revert it. + +2006-11-16 Thomas Wood <thos@gnome.org> + + * modulesets/gnome-2.16.modules: Use gtk-engines-2-8 branch for + gtk-engines + +2006-11-17 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: use gnome-2-16 branch for + gconf-editor. + +2006-11-15 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.18.modules: Add libipoddevice. + * modulesets/gnome-2.16.modules: same. + +2006-11-15 Claudio Saavedra <csaavedra@alumnos.utalca.cl> + + * modulesets/gnome-2.18.modules: Remove libgnomeprint from EOG + dependencies. + +2006-11-14 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.18.modules: Add gtkunique. + +2006-11-12 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.16.modules: + Add gmime, tracker and brasero modules. Add gnome-common depencency + for gnome-icon-theme. + + * modulesets/gnome-2.16.modules: + Add brasero module. Add gnome-common depencency for + gnome-icon-theme. + + Please note that brasero suggest also libnotify and totem. + Note also that now tracker no longer needs external sqlite. + +2006-11-10 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.18.modules: Add gstreamer dependency for + tracker. + +2006-11-09 Callum McKenzie <callum@spooky-possum.org> + + * modulesets/gnome-2.18.modules: Remove the gob dependency for + gnome-games. + +2006-11-06 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.16.modules: use gnome-2-16 branch for + gnome-desktop, gnome-panel & gnome-session + +2006-11-05 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch for + gnome-keyring-manager. + +2006-11-05 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for gedit. + +2006-11-02 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: + * modulesets/gnome-2.18.modules: + iso-codes-0.53 got regenerated and thus changed size and md5sum. + Luckily, the iso-codes maintainers have agreed to not continue + deleting releases in the future (private email), so this shouldn't + happen again. :-) See also #366864. + +2006-11-01 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch for + gnome-menus. + +2006-10-31 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch for + gnome-keyring. + +2006-10-30 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for libgnome and libgnomeui. Use gnome-2-12 branch for + libgnomeprint and libgnomeprintui. + +2006-10-29 Frederic Peters <fpeters@0d.be> + + * jhbuild/versioncontrol/tarball.py: Let size be omitted. + (closes: #350795) + +2006-10-26 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.18.modules: Use gnome-2-16 branch for + gnome-system-monitor for now due to use of unblessed external + dependency. + +2006-10-26 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch for + liboobs. + +2006-10-25 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch for + gnome-system-monitor. + +2006-10-23 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.18.modules: Add tracker and gmime (needed by + tracker). Note that you need sqlite3 development files installed + on you system to build tracker. Also libexif, libogg+libvorbis and + libfam/gamin are useful, but can't managed via jhbuild. + +2006-10-22 Elijah Newren <newren gmail com> + + * modulesets/freedesktop.modules: PolicyKit should not be a + dependency of hal-0-5-7. + +2006-10-21 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.18.modules: revert last commit; it was based + on a misunderstanding. Apply Frederic's patch from #363635 to fix + the build since gnome-control-center has now split into two + modules. + +2006-10-20 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.18.modules: revert gnome-control-center since + it ignored external dependency rules in newest commit. Will bring + up on mailing list... + +2006-10-20 Wouter Bolsterlee <wbolster@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branches + for evolution, evolution-data-server, evolution-exchange + and gtkhtml. + +2006-10-19 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.18.modules: Added gtksourceviewmm and made + Glom depend on it. Commented-out libbonobo*mm, because they are + old unused crap. + +2006-10-18 Elijah Newren <newren gmail com> + + * modulesets/freedesktop-2.18.modules: + liboobs-0.5.0 makes nautilus crash on launch; update it and + system-tools-backends (which it depends on). + live.gnome.org/TwoPointSeventeen/ExternalDependencies has been + updated as well. + +2006-10-17 Elijah Newren <newren gmail com> + + * modulesets/freedesktop-2.18.modules: + Weird jhbuild voodoo made it so that no repository definition was + necessary for dbus-python on some machines, but it is on others. + Don't ask me. Anyway, this should fix on the machines that needed + it. + +2006-10-17 Elijah Newren <newren gmail com> + + * modulesets/freedesktop-2.18.modules: + * modulesets/gnome-2.18.modules: + Oops, we're supposed to be using gnome-system-tools HEAD; also + liboobs should be a tarball since it's an external dependency (one + which we previously forgot to list). I'm not completely sure + where it makes the most sense to keep it, but given that it was + never proposed for GNOME, maybe putting liboobs in + freedesktop-2.18.modules makes more sense? Doing that for now, + anyway... + +2006-10-16 Elijah Newren <newren gmail com> + + * modulesets/freedesktop-2.18.modules: fix from Frederic Peters -- + update dbus-glib and dbus-python to avoid build errors. + live.gnome.org/TwoPointSeventeen/ExternalDependencies has been + updated as well. + +2006-10-16 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: + * modulesets/gnome-2.18.modules: + modemlights applet needs gnome-settings-daemon installed, + invest-applet needs gnomeapplet. (Additional issues reported by + jsberg bnl gov in #362250) + +2006-10-16 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: + * modulesets/gnome-2.18.modules: + * modulesets/freedesktop-2.18.modules: + * modulesets/freedesktop.modules: + Add missing hard and optional dependencies reported by + jsberg@bnl.gov in #362250. + +2006-10-16 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.18.modules: Use gtk-2-10 branch for gtk+ and + glib-2-12 branch for glib. See + http://mail.gnome.org/archives/gtk-devel-list/2006-September/msg00141.html + +2006-10-16 William Jon McCann <mccann@jhu.edu> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for gnome-screensaver and nautilus-cd-burner. + +2006-10-14 Wouter Bolsterlee <wbolster@gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for gnome-applets. + +2006-10-14 Elijah Newren <newren gmail com> + + * modulesets/freedesktop-2.18.modules: Patch from Marc-Andre + Lureau to fix cairomm build (use tarball module type instead of + autotools) #362184 + +2006-10-14 Gustavo J. A. M. Carneiro <gjc@gnome.org> + + * modulesets/gnome-2.16.modules: Use the gnome-2-16 branch for + gnome-python-desktop. + +2006-10-12 Wouter Bolsterlee <wbolster@gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for file-roller. + +2006-10-12 Elijah Newren <newren gmail com> + + * patches/dbus-glib-build.patch: Add this to fix #361674, reported + by Frederic Peters. Thanks Frederic. And...oops!! + +2006-10-11 Wouter Bolsterlee <wbolster@gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for gnome-terminal. + +2006-10-11 Wouter Bolsterlee <wbolster@gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branches + for evince, gnome-doc-utils and vino. + +2006-10-08 Wouter Bolsterlee <wbolster@gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for gnome-themes. + +2006-10-05 Elijah Newren <newren gmail com> + + * modulesets/freedesktop.modules: + * modulesets/gnome-2.18.modules: + make libXrender and libXft optional dependencies, #133714 + + * modulesets/gnome-2.18.modules: + revert ekiga to v2_0_3 since HEAD depends on a version of external + dependencies newer than those listed at + http://live.gnome.org/TwoPointSeventeen/ExternalDependencies + + * modulesets/freedesktop-2.18.modules: + new file + + * modulesets/gnome-2.18.modules: + depend on tarball versions of external dependencies of core gnome + modules (see also + http://live.gnome.org/TwoPointSeventeen/ExternalDependencies), + switch to using freedesktop-2.18.modules instead of + freedesktop.modules + +2006-09-29 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.16.modules: Use branch gnome-2-16 for + deskbar-applet and gnome-games; Switch inkscape to svn repository. + + * modulesets/gnome-2.18.modules: Switch inkscape to svn repository. + +2006-09-27 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/freedesktop.modules: + fontconfig has switched to git, add dbus-qt3 and portland modules. + +2006-09-22 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.16.modules: Add glade3 module. + * modulesets/gnome-2.18.modules: Ditto. + +2006-09-19 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for metacity. + +2006-09-13 Wouter Bolsterlee <wbolster@gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for gnome-icon-theme. + +2006-09-13 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for totem. + +2006-09-11 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: + * modulesets/gnome-2.18.modules: + Add gnome-vfs-monikers to meta-gnome-devel-platform dependencies + + * modulesets/gnome-2.14.modules: + Add libgcrypt as hard dependency of libxslt (see #345359; just + forgot to do this for this release set previously) + +2006-09-11 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: + * modulesets/gnome-2.18.modules: + Update pwlib and opal branch tags since ekiga requires newer + versions now + +2006-09-06 Lucas Rocha <lucasr@gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for zenity and eog. + +2006-09-06 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for gnome-nettool. + +2006-09-06 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.16.modules: + * modulesets/gnome-2.18.modules: add dbus-glib dep for gnome-vfs + +2006-09-06 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branches + for gnome-control-center, gnome-utils, gdm2, gcalctool, + and orca. + + * modulesets/gnome-2.16.modules, modulesets/gnome-2.18.modules: + Added Vim modeline (there was an Emacs one already) + +2006-09-04 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.18.modules: Create 2.18 moduleset. + +2006-09-03 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch for + Epiphany and Epiphany Extensions. + +2006-09-01 Marco Pesenti Gritti <mpg@redhat.com> + + * modulesets/gnome-2.16.modules: libwnck depends on intltool + +2006-09-01 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome-2.16.modules: Use a tarball for iso-codes + since checkouts from the svn repo haven't worked for a while. + +2006-08-30 Gustavo Carneiro <gjc@gnome.org> + + reviewed by: James Henstridge + + * jhbuild/versioncontrol/bzr.py: Register (urlparse.uses_relative, + urlparse.uses_netloc) the sftp URI scheme with urlparse. + Fixes bug #349546: "bzr backend doesn't accept sftp:// URLs". + +2006-08-27 Brent Smith <gnome@nextreality.net> + + * modulesets/gnome-2.16.modules: add a patch for scrollkeeper + * patches/scrollkeeper_empty_url_string.patch: This patch fixes a + problem where scrollkeeper chokes when it encounters a "url" attribute + in an OMF file that is empty. Currently the update-manager-C.omf file + has this problem (from Ubuntu) + +2006-08-23 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.16.modules: gnome-power-manager has + branched gnome-2-16. + +2006-08-22 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome-2.16.modules: Use stable branches of + GLib, Pango and GTK+ + +2006-08-22 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.16.modules: + Remove gnopernicus from meta-gnome-desktop. + Add new libcm module (for brave compiling compositor in metacity). + +2006-08-20 Brent Smith <gnome@nextreality.net> + + * modulesets/freedesktop.modules: add a hal-0-5-7 tarball + * modulesets/gnome-2.16.modules: modify all dependencies on hal to use + hal-0-5-7 instead + * patches/hal-dbus_connection_close.patch: patch to fix compilation + errors when using hal-0-5-7 with latest dbus. + +2006-08-18 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.16.modules: move accepted modules to + meta-gnome-desktop + +2006-08-17 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules: Use specific branches of pwlib and + opal, required for GNOME 2.14 Ekiga. + +2006-08-14 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules: Build "xulrunner" component of + mozilla, not "browser". + +2006-08-14 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules: Switch to xulrunner 1.8. + Fix bug #324546. + +2006-08-10 Frederic Peters <fpeters@0d.be> + + * Makefile: removed changecvsroot.py from make dist; it has been moved + to scripts/; added scripts/ and its content to make dist. + +2006-08-10 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.16.modules: Added nautilus-sendto, + but it is not included by default (just like + nautilus-open-terminal) + +2006-08-09 Frederic Peters <fpeters@0d.be> + + * jhbuild/frontends/autobuild.py: retry on socket errors. + +2006-08-08 Thomas Wood <thos@gnome.org> + + * modulesets/gnome-2.16.modules: gnome-themes now depends on + icon-naming-utils + +2006-08-06 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.16.modules: Use gnome-2-16 branch + for dasher. + +2006-08-04 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: libwnck, bug-buddy and gail have a + gnome-2-14 branch. I'm sure some other modules have one... + Fix bugs #347398, #347493 + +2006-07-30 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules: use distutils for pyspi and dogtail + since it is their native method and it is now supported. + +2006-07-30 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.1{2,4,6}.modules: iso-codes moved from CVS + to Subversion. Patch by Marc-Andre Lureau. Closes: #349327. + +2006-07-26 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.16.modules: gnome-session depends on + gnome-keyring + +2006-07-25 Elijah Newren <newren gmail com> + + * modulesets/bootstrap.modules: Add pyrex so that modules like + dbus-python will build. James wasn't sure where to put it (here + or freedesktop.modules) but I put it here because I think it needs + to be installed in the same place as python so this seems natural. + James might change this later. See #311563. + +2006-07-25 Frederic Peters <fpeters@0d.be> + + * jhbuild/frontends/autobuild.py: rename encode_log to compress_data. + +2006-07-25 Luca Ferretti <elle.uca@libero.it> + + * patches/scrollkeeper_clean_xml_validation_context.patch: new file + * patches/scrollkeeper_language_fix.patch: new file + * patches/scrollkeeper_rw_offset_fix.patch: new file + * modulesets/gnome-2.*: apply patches needed by scroollkeeper to make + Yelp works and Yelp developers happy. For more info see + http://live.gnome.org/Yelp + + Note: remove $Prefix/share/jhbuild/packagedb.xml to rebuild it. + +2006-07-24 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.16.modules: gnome-panel depends on dbus-glib + +2006-07-24 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.16.modules: remove libbonobo from gnome-vfs deps + and add gnome-vfs-monikers module. No package depends on this by now, + I've no info about dependence on gnome-vfs-monikers. + +2006-07-24 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.16.modules: use gnome-2-14 branch for ekiga since + HEAD won't be ready for 2.16. + +2006-07-24 Luca Ferretti <elle.uca@libero.it> + + * modulesets/freedesktop.modules: Fix avahi dependences. See bug + 348453 for more info. + +2006-07-24 Frederic Peters <fpeters@0d.be> + + * modulesets/freedesktop.modules: Enable dbus-python, distutils modtype + is working + +2006-07-23 Brent Smith <gnome@nextreality.net> + + * modulesets/gnome-2.14.modules: Add dependency on libgnomeprintui and + startup-notification for yelp + * modulesets/gnome-2.16.modules: Add dependency on + startup-notification for yelp + +2006-07-24 Luca Ferretti <elle.uca@libero.it> + + * modulesets/freedesktop.modules: enable dbus-python using + <distutils> element and rework avahi deps. Note: I'm not sure + dbus-python is able to build as is. See bug 348453. + +2006-07-24 Luca Ferretti <elle.uca@libero.it> + + * modulesets/freedesktop.modules: Add dbus-glib module and make + PolicyKit depends on it. Add dbus-python too, but commented by default + because jhbuild can't build it: setup.py, not autotools :-( + +2006-07-23 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-panel + +2006-07-22 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.16.modules: gnome-applets needs pygtk to + build invest applet. Added as dependence. + +2006-07-18 Gustavo Carneiro <gjc@gnome.org> + + * modulesets/freedesktop.modules, + * modulesets/gnome-2.10.modules, + * modulesets/gnome-2.12.modules, + * modulesets/gnome-2.14.modules, + * modulesets/gnome-2.16.modules: s%gnome-python/%%, since all + modules inside gnome-python/ have been moved to the cvs root. + +2006-07-12 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-menus + +2006-07-02 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.16.modules: Make pango depend on gnome-common, as + it's using gnome-autogen.sh now. + +2006-07-02 James Henstridge <james@jamesh.id.au> + + * modulesets/freedesktop.modules (RenderProto, libXrender, libXft): + switch to GIT repositories. + +2006-06-28 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules (bug-buddy): bug-buddy dependency on + NetworkManager as been lowered to a mere suggests (see 346091) + +2006-06-27 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules (bug-buddy): bug-buddy now depends on + NetworkManager (for libnm_glib). + +2006-06-26 James Henstridge <james@jamesh.id.au> + + * modulesets/freedesktop.modules (cairo-1-0): depend on libXrender + to fix gnome-2.14 build. Patch from Valeev Dinar + <dinarv@gmail.com> from bug #345907. + +2006-06-25 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules (gnome-session): now depend on + gnome-control-center + http://cvs.gnome.org/viewcvs/gnome-session/configure.in#rev1.536 + +2006-06-23 Marco Pesenti Gritti <marco@gnome.org> + + * jhbuild/modtypes/mozillamodule.py: + Add xulrunner to app names + +2006-06-23 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (pango): + * modulesets/gnome-2.12.modules (pango): + * modulesets/gnome-2.14.modules (pango): + * modulesets/gtk.modules (pango): + * modulesets/gtk28.modules (pango): same here. + + * modulesets/gnome-2.16.modules (pango): depend on libXft rather + than Xft. + + * modulesets/freedesktop.modules (RenderProto, libXrender, libXft): + use the versions from the xorg repository. Remove the obsolete + old xlibs/xserver/xapps module definitions. Addresses bug #345281. + + * scripts/upgrade-module-set.xsl (cvsmodule): fallback to + checkoutdir and module values for "id" if it isn't given. + + * jhbuild/modtypes/autotools.py (parse_cvsmodule): + (parse_svnmodule): + (parse_archmodule): generate module name in the same way as the + old code did for backward compatibility. + +2006-06-21 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: File-roller has a + gnome-2-14 branch. + +2006-06-20 James Henstridge <james@jamesh.id.au> + + * jhbuild/versioncontrol/bzr.py: add bzr version control backend. + +2006-06-20 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: Make gcrypt a hard dependency of + libxslt (since the desktop release already depends on it and James + didn't like passing --with-crypt=no to libxslt; see #345359) + +2006-06-20 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: enchant is not a hard dependency + of epiphany. ;-) + +2006-06-20 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules: add enchant (for epiphany spell + checking). + +2006-06-19 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: + * modulesets/freedesktop.modules: + revert the last change by Frederic Peters; it is wrong -- see + http://mail.gnome.org/archives/release-team/2006-June/msg00007.html + if the archives ever come back online + +2006-06-19 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules: use gnome-system-tools HEAD; depends + on liboobs instead of system-tools-backends. + +2006-06-19 Frederic Peters <fpeters@0d.be> + + * jhbuild/config.py: add environment variable for Perl modules. + * modulesets/freedesktop.modules: use system-tools-backend HEAD. + +2006-06-19 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: gnome-system-monitor + has branched for gnome-2-14. + +2006-06-19 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Epiphany doesn't depend on + libgnomeprintui anymore. + +2006-06-19 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/perl.py: remove some unneeded imports and + variable definitions. + + * jhbuild/modtypes/autotools.py (parse_archmodule): fix small bug + in module parsing. + (parse_cvsmodule): rewrap FatalError statement. + + * modulesets/moduleset.rnc (distutils): add rules for distutils + modules. + + * jhbuild/modtypes/distutils.py (DistutilsModule): module type + definition for distutils modules. + + * modulesets/gnome-2.16.modules (xchat-gnome): add module. Patch + from Guillaume Desmottes <cass@skynet.be> from bug #342486. + + * modulesets/freedesktop.modules: use newer version of Net-DBus. + + * modulesets/moduleset.rnc (perl): update moduleset schema. + + * modulesets/freedesktop.modules: add perl-net-dbus module + definition. + + * jhbuild/modtypes/perl.py: new module type for Perl code. Based + on patch from Frederic Peters <fpeters@entrouvert.com> from bug + #342638. + + * jhbuild/modtypes/autotools.py (AutogenModule.skip_configure): if + nobuild is set, always skip configure. Fixes bug #345266 + +2006-06-17 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: devhelp is a build dependency of + anjuta as well + +2006-06-17 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: update the autogen module to + 5.8.4; the 5.6.5 release is over a year out of date and won't + compile with the current guile tarball + +2006-06-16 Elijah Newren <newren gmail com> + + Carlos hasn't made the perl bindings to DBus an optional + dependency yet and it's been a while, so revert to an older + version to fix builds. + + * modulesets/freedesktop.modules: use BEFORE_DBUS_MERGE for + system-tools-backends + + * modulesets/gnome-2.16.modules: use gnome-2-14 for + gnome-system-tools, and change to depend on system-tools-backends + directly + +2006-06-16 Elijah Newren <newren gmail com> + + * modulesets/freedesktop.modules: cairomm depends on cairo cvs so + use cairo rather than cairo-1-0 (a separate cairomm-1-0 module + could be added for gnome-2.14.modules, I guess, but cairomm + doesn't appear to have created a suitable branch...) + + * modulesets/gnome-2.16.modules: libnotify is not a hard + dependency of gnome-power-manager, and shouldn't be treated as + such since it hasn't been proposed for inclusion in the desktop + while gnome-power-manager has + +2006-06-16 Frederic Peters <fpeters@0d.be> + + * modulesets/gnome-2.16.modules: gnome-power-manager depends on + gnome-doc-utils + +2006-06-15 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: ATK and AT-SPI have + branched for gnome-2.14. + +2006-06-14 James Henstridge <james@jamesh.id.au> + + * modulesets/gnutls.modules: update to latest version of libtasn1 + and gnutls. Switch to ftp.gnupg.org mirror since ftp.gnutls.org + seems to have vanished from the face of the earth. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + fix use of undefined variable. Fixes bug #344372. + + * jhbuild/versioncontrol/tarball.py (TarballBranch.tree_id): add + tree_id implementation, returning the tarball version number. + + * jhbuild/versioncontrol/arch.py (ArchBranch.tree_id): tree_id + implementation, returning the output of "baz tree-id". + + * jhbuild/versioncontrol/git.py (GitBranch.tree_id): add tree_id + implementation, returning the commit SHA1 sum. + + * jhbuild/commands/info.py (cmd_info.show_info): show the tree ID + in the info display. Also fix up "jhbuild info mozilla" to not crash. + +2006-06-13 James Henstridge <james@jamesh.id.au> + + * jhbuild/versioncontrol/svn.py (SubversionBranch.tree_id): tree + ID implementation for Subversion branches. + + * jhbuild/versioncontrol/cvs.py (CVSBranch.tree_id): an + implementation for CVS trees. + + * jhbuild/versioncontrol/__init__.py (Branch.tree_id): new method + to get an identifier for the tree state. + +2006-06-13 Olav Vitters <olav@bkor.dhs.org> + + * modulesets/gnome-2.16.modules: Bug-Buddy now also depends on + libsoup. + +2006-06-10 Olav Vitters <olav@bkor.dhs.org> + + * modulesets/gnome-2.16.modules: Bug-Buddy depends on + evolution-data-server. + +2006-06-08 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.do_checkout): + convert to new style build state. + + * jhbuild/modtypes/autotools.py (AutogenModule): convert all + build state methods to the new style, adding skip_$state() methods + as appropriate. + + * jhbuild/modtypes/__init__.py (Package._next_state): use + skip_$state() methods to put logic for whether to skip a state + with the state itself, rather than in the logic of the previous + state. + +2006-06-08 Elijah Newren <newren gmail com> + + * modulessets/gnome-2.16.modules: Update the meta-gnome-proposed + modules (minus gtk# and tomboy which still need to be added; also, + we really ought to somehow get java-gnome and gtk2-perl added + since they're in the official bindings set and have been for some + time) + +2006-06-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-python-desktop, and gnome-python-2-12 branch for gnome-python. + +2006-05-25 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.16.modules: Replace cairo-1-0 and pycairo-1-0 + with cairo and pycairo for all modules in the desktop. Should + avoid some of the nasty compilation errors people have been seeing + with cairo and cairo-1-0 overwriting each other. + +2006-05-25 Frederic Peters <fpeters@0d.be> + + * jhbuild/frontends/autobuild.py: send log files zlib-compressed. + +2006-05-24 Frederic Peters <fpeters@0d.be> + + * jhbuild/frontends/autobuild.py: log error to right variable in case + of missing command. + +2006-05-24 JP Rosevear <jpr@novell.com> + + * jhbuild/commands/base.py (cmd_dot.run): pass the config + parameter (bug #342766) + +2006-05-22 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.14.modules: + * modulesets/gnome-2.16.modules: add configuration and dependencies + for Ekiga (bug #338040). + +2006-05-19 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch of libgnome. + +2006-05-18 Carlos Garnacho <carlosg@gnome.org> + + * modulesets/freedesktop.org: add system-tools-backends-1.4 for the + stb-1.4 branch, s-t-b HEAD interface has changed. + * modulesets/gnome-2.14.modules: use system-tools-backends-1.4. + * modulesets/gnome-2.16.modules: same here where necessary + (gnome-applets). Also add liboobs to the build and make + gnome-system-tools depend on it. + +2006-05-18 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/tarball.py (Tarball.do_unpack): don't use + os.chdir(). + (Tarball.do_patch): same here. + (Tarball.do_configure): same here. + (Tarball.do_build): same here. + (Tarball.do_install): same here. + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.checkout): use + cwd arg to buildscript.execute() rather than os.chdir(). + (MozillaModule.do_checkout): same here. + (MozillaModule.do_configure): same here. + (MozillaModule.do_install): same here. + + * modulesets/gnome-2.14.modules (gok): use gnome-2-14 branch, + fixing bug #342175. + +2006-05-18 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch + for ekiga and gnome-system-tools. + +2006-05-17 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/autotools.py (AutogenModule.do_configure): get + rid of os.chdir call + (AutogenModule.do_clean): same here. + (AutogenModule.do_build): same here. + (AutogenModule.do_check): same here. + (AutogenModule.do_install): same here. + + * jhbuild/versioncontrol/tarball.py + (TarballBranch._download_and_unpack): same here. + + * jhbuild/versioncontrol/svn.py (SubversionBranch._checkout) + (SubversionBranch._update): same here. + + * jhbuild/versioncontrol/git.py (GitBranch._checkout) + (GitBranch._update): same here. + + * jhbuild/versioncontrol/darcs.py (DarcsBranch._checkout): + (DarcsBranch._update): same here. + + * jhbuild/versioncontrol/arch.py (ArchBranch._checkout) + (ArchBranch._update): use cwd argument to buildscript.execute + rather than os.chdir(). + + * jhbuild/versioncontrol/cvs.py (CVSBranch._commit): + (CVSBranch._update): rather than using os.chdir, use the cwd + argument to buildscript.execute(). + + * jhbuild/frontends/gtkui.py (GtkBuildScript.execute): same here. + + * jhbuild/frontends/autobuild.py (AutobuildBuildScript.execute): + same here. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + add support for cwd and extra_env arguments. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): add + support for cwd and extra_env arguments. + + * jhbuild/frontends/buildscript.py (BuildScript.execute): add cwd + and extra_env arguments. + + * modulesets/gnome-2.16.modules (howl): remove. + (gnome-vfs): depend on avahi instead. + + * modulesets/freedesktop.modules (avahi): adjust autogenargs to a + list that will allow avahi to probably build on most systems. + Also enable howl and libdns_sd compat libraries. + + * modulesets/freedesktop.modules (dbus, dbus-0.23): depend on glib + and build after gtk+. + + * modulesets/gnome-2.14.modules: same changes. + + * modulesets/gnome-2.16.modules (shared-mime-info): depend on + libxml2 and glib. + (gnome-mime-data): depend on glib (for AM_GLIB_GNU_GETTEXT). + (gob): depend on glib. + (gnome-backgrounds): depend on glib (for AM_GLIB_GNU_GETTEXT). + (libxklavier): depend on libxml2, gtk-doc and glib. + + * jhbuild/defaults.jhbuildrc: update to 2.16 module set. + + * sample.jhbuildrc: same here. + + * jamesh.jhbuildrc: update to 2.16 module set. + + * jhbuild/frontends/autobuild.py: + * jhbuild/commands/autobuild.py: add jhautobuild command and + frontend. Patch from Frederic Peters <fpeters@entrouvert.com> + fixing bug #336968. + +2006-05-17 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.16.modules: Added back + gedit-plugins. The module is back alive! + +2006-05-16 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules: same here. + + * modulesets/gnome-2.12.modules: same here. + + * modulesets/gnome-2.14.modules: same here. + + * modulesets/gnome-2.16.modules: fix up Sourceforge CVS roots. + +2006-05-15 James Henstridge <james@jamesh.id.au> + + * jhbuild/commands/*.py: custom usage messages for commands. + + * jhbuild/commands/__init__.py (Command.parse_args): add a + usage_args class attribute to give the adjust the help output. + + * jhbuild/main.py (help_commands): add a --help-commands option to + show a list of the available jhbuild commands (previously printed + by --help). + + * modulesets/moduleset.rnc (autotools): add new cvs branch + attributes. + + * jhbuild/moduleset.py (_parse_module_set): same for <repository> + parsing. + + * jhbuild/versioncontrol/__init__.py (Repository.branch_from_xml): + if an XML attr contains a dash, change it to an underscore. + + * jhbuild/versioncontrol/cvs.py (CVSRepository.branch): add two + parameters: update-new-dirs and override-checkoutdir to work with + weird CVS setups (e.g. pwlib). + +2006-05-13 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/tinderbox.py (get_distro): catch CommandError + rather than OSError. Fixing bug #341604. + +2006-05-13 Thomas Vander Stichele <thomas at apestaart dot org> + + * modulesets/freedesktop.modules: + cairo depends on gtk-doc, so add the dependency + +2006-05-12 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/gtkui.py (GtkBuildScript.execute): same here. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + same here. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): + same here. + + * jhbuild/utils/cmds.py (get_output): convert OSError to a + CommandError, to e.g. catch errrors when the executable wasn't + found. + +2006-05-11 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.16.modules: Remove "mozilla" package dependency + from epiphany, since jhbuild still builds mozilla 1.7 which we don't + support anymore, and gecko 1.8 isn't buildable from jhbuild (can't + build without patches; see bug 324546 comment 3). + +2006-05-11 James Henstridge <james@jamesh.id.au> + + * jhbuild/main.py (main): don't worry about getopt errors now. + + * jhbuild/commands/tinderbox.py: convert to new framework. + + * jhbuild/commands/sanitycheck.py: convert to new framework. + + * jhbuild/commands/info.py: convert to new framework. + + * jhbuild/commands/gui.py: convert to new framework. + + * jhbuild/commands/bootstrap.py: convert to new framework. + + * jhbuild/commands/base.py: convert to new framework. + + * jhbuild/commands/__init__.py (Command): new command registration + system, using optparse for option parsing. + + * jhbuild/main.py (main): update main option parser to use + optparse rather than obsolete getopt module. + + * jhbuild/monkeypatch.py: make sure optparse is available, using a + cut-n-pasted version if not (for Python 2.2 compatibility). + + * modulesets/gnome-2.16.modules (totem): just use + --enable-gstreamer rather than --enable-gstreamer=0.10. Fixes bug + #341279. + + * modulesets/bootstrap.modules: add autogen-sh attribute to + appropriate elements. + + * jhbuild/modtypes/autotools.py (parse_autotools): rather than + guessing the autogen.sh filename, require that it be specified + explicitly if it isn't called "autogen.sh". + +2006-05-10 Ross Burton <ross@burtonini.com> + + * jhbuild/modtypes/__init__.py: + Import more errors (#341244). + +2006-05-10 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome-2.14.modules (gconf-editor): + Use gnome-2-14 branch. + +2006-05-10 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules: update to use <autotools> module + type. + + * modulesets/moduleset.rnc (branch_tarball): add schema support + for tarball branches. + + * jhbuild/commands/info.py (do_info): print info about + TarballBranch autogen modules. + + * jhbuild/modtypes/autotools.py (AutogenModule.do_configure): if + no autogen.sh file exists, look for a configure script. If we + find one, use it instead and make sure we don't pass + --enable-maintainer-mode, since it breaks many tarball builds. + +2006-05-09 James Henstridge <james@jamesh.id.au> + + * jhbuild/versioncontrol/tarball.py: new version control backend + to represent tarball downloads. + + * modulesets/gtk28.modules: convert to new syntax. + + * modulesets/gtk.modules: convert to new syntax. + + * modulesets/gnome24.modules: + * modulesets/gnome26.modules: + * modulesets/gnome28.modules: remove obsolete modulesets. + + * modulesets/gnome-2.10.modules: convert to new syntax. + + * modulesets/gnome-2.12.modules: convert to new syntax. + + * modulesets/gnome-2.14.modules: convert to new syntax. + + * modulesets/gnome-2.16.modules: convert to new syntax. + +2006-05-09 Murray Cumming <murrayc@murrayc.com> + + * jhbuild/modtypes/__init__.py: + * jhbuild/modtypes/autotools.py (_parse_module_set): When parsing + modules, catch the KeyError exception, so we can raise a more + readable error if the repository was not found. + +2006-05-09 James Henstridge <james@jamesh.id.au> + + * modulesets/freedesktop.modules: convert to new syntax. + + * jhbuild/moduleset.py (ModuleSet.write_dot): fix traceback, + resolving bug #340922. + + * jhbuild/modtypes/autotools.py: rename from base.py. + + * jhbuild/commands/info.py (do_info): print git module names. + + * jhbuild/versioncontrol/git.py (GitRepository.branch): same here. + + * jhbuild/versioncontrol/darcs.py (DarcsRepository.branch): same here. + + * jhbuild/versioncontrol/svn.py + (SubversionRepository.branch_xml_attrs): same here. + + * jhbuild/versioncontrol/cvs.py (CVSRepository.branch): define the + expected branch attributes. + + * jhbuild/modtypes/base.py: get rid of <darcsmodule> type -- I + don't think it was used between the time it was added and + deprecated. + + * modulesets/moduleset.rnc: update schema to handle new + <autotools> type. + + * modulesets/freedesktop.modules (cairo): use <autotools> element + instead of <svnmodule>. + + * jhbuild/modtypes/base.py (parse_autotools): parser for an + arbitrary autotools module. Uses get_branch() to create the + version control source. + + * jhbuild/modtypes/__init__.py (get_branch): a helper function to + create a branch. + + * jhbuild/modtypes/base.py: move parser functions for svnmodule, + archmodule and darcsmodule here and remove the separate files -- + there isn't much reason to keep them separate now. + + * jhbuild/commands/info.py (do_info): fix to work with changes. + + * jhbuild/modtypes/tarball.py (Tarball.__init__): same. + + * jhbuild/modtypes/mozillamodule.py (parse_mozillamodule): same. + + * jhbuild/modtypes/archmodule.py (parse_archmodule): same. + + * jhbuild/modtypes/darcsmodule.py (parse_darcsmodule): same. + + * jhbuild/modtypes/svnmodule.py (parse_svnmodule): same. + + * jhbuild/modtypes/base.py: update to match. + + * jhbuild/modtypes/__init__.py: move module type registration + here. Add a convenience function for parsing + <dependencies>/<after>. + + * jhbuild/moduleset.py (_parse_module_set): change call to + parse_xml_node() to pass the list of scanned repositories instead + of deducing the here. + +2006-05-08 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/svnmodule.py (parse_svnmodule): same here. + + * jhbuild/modtypes/base.py (parse_cvsmodule): look up module + specific autogenargs and makeargs overrides by id rather than + module. Fixes bug #340927. + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.get_srcdir): + fix small typo. Fixing bug #340916, and hopefully fixing mozilla + build. + +2006-05-04 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.14.modules: Glom: Added dependency on + gnome-doc-utils. + +2006-05-02 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.16.modules: same here. + + * modulesets/gnome-2.14.modules (gamin, gnome-mount): add to + build. Patch from Sylvain Bertrand, fixing bug #333614. + + * jhbuild/versioncontrol/git.py: similar fixes. + + * jhbuild/versioncontrol/svn.py: make sure 'svn' and 'svn+ssh' are + in urlparse.uses_relative. + + * modulesets/gnome-2.16.modules: same here. + + * modulesets/gnome-2.14.modules (ekiga): depend on + evolution-data-server, to fix bug #340281. + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.do_install): + don't create the nss include dir if it already exists. Based on + patch from Frederic Peters fixing bug #340151. + Split the find command into a string list, so that the shell isn't + used to execute it. + + * modulesets/gnome-2.16.modules (gok): depend on gnome-speech. + Patch from David Bolter, fixing bug #339957. + (gnome-nettool): depend on gnome-doc-utils. Fixes bug #340126. + + * jhbuild/frontends/gtkui.py: patch from Björn Lindqvist to fix + some bugs with the error dialog. Patch from bug #334828. + + * jhbuild/moduleset.py (ModuleSet.get_module_list): simplify + dependency expansion based on patch from Björn Lindqvist in bug + 334711. + (_parse_module_set): more simplifications, partly based on Björn's + patch. + +2006-05-01 James Henstridge <james@jamesh.id.au> + + * jhbuild/versioncontrol/git.py: make sure git: and git+ssh: URIs + are treated as netloc ones. + + * modulesets/gnome-2.16.modules (pango, gtk+): depend on just + "cairo" rather than "cairo-1-1". + + * modulesets/freedesktop.modules (cairo): switch to git tree. + This is using an <svnmodule> element but it does use the GIT + version control interface. + + * modulesets/moduleset.rnc (repository): add validation rules for + git type repositories. + + * jhbuild/versioncontrol/git.py: first stab at git support using + the new versioncontrol framework, using Frederic Peters' patch as + a guide. + + * jhbuild/versioncontrol/darcs.py: a few small bug fixes. + + * modulesets/freedesktop.modules: same here. + + * modulesets/gnome-2.16.modules: same here. + + * modulesets/gnome-2.14.modules: convert <cvsroot> and <svnroot> + elements to <repository> elements. + + * modulesets/moduleset.rnc: add schema info for <repository> + element. + + * jhbuild/modtypes/base.py: remove bad import. + + * jhbuild/utils/cmds.py (pprint_output): same here. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): + ignore OSError in the os.kill() call, since the subprocess might + already be dead. + + * jhbuild/commands/info.py (do_info): adjust to work with + restructured versioncontrol support. + +2006-04-30 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/mozillamodule.py: make some changes that will + hopefully get it all working with the new versioncontrol + infrastructure. + + * jhbuild/modtypes/archmodule.py (parse_archmodule): return a + straight AutogenModule instance. + + * jhbuild/versioncontrol/arch.py: convert to new API. + + * jhbuild/modtypes/darcsmodule.py (parse_darcsmodule): instantiate + a straight AutogenModule using a DarcsBranch. + + * jhbuild/modtypes/svnmodule.py (parse_svnmodule): instantiate a + straight AutogenModule using a SubversionBranch. + + * jhbuild/modtypes/base.py (AutogenModule): update to implement + do_checkout and do_force_checkout in terms of a Branch object. + (parse_cvsmodule): instantiate a straight AutogenModule using a + CVSBranch. + + * jhbuild/config.py (_known_keys): adjust to handle a repos config + key. + (Config.__init__): merge stuff from cvsroots/svnroots into repos. + + * jhbuild/moduleset.py (_parse_module_set): add support for a + <repository> element, and use the new jhbuild.versioncontrol + infrastructure to represent the repositories. + +2006-04-29 James Henstridge <james@jamesh.id.au> + + * jhbuild/versioncontrol/darcs.py: convert Darcs utils to new + interface. + + * jhbuild/versioncontrol/svn.py: convert Subversion utils to the + new interface. + + * jhbuild/versioncontrol/cvs.py: convert CVS module to use new + interface. + + * jhbuild/versioncontrol/__init__.py: start refactoring + version control interface to reduce code duplication inherent with + adding support for new VCS's. + +2006-04-29 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome-2.16.modules (gaim): Use sourceforge + SVN repo for gaim. + +2006-04-29 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome-2.16.modules (xchat): update to 2.6.2 + +2006-04-28 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome-2.16.modules: Require cairo-1-1 for + GTK+ and Pango. + + * modulesets/freedesktop.modules: Add cairo-1-1 tarball. + +2006-04-28 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch + for totem. + +2006-04-27 James Henstridge <james@jamesh.id.au> + + * jhbuild/errors.py (BuildStateError): new error for general build + state errors. + + * jhbuild/modtypes/tarball.py (Tarball): convert all build states + but do_start and do_patch to new system. + + * jhbuild/modtypes/base.py (Package.run_state): start implementing + a new system for handling next state and error states using + function attributes. + (AutogenModule.do_clean): set next_state and error_states function + attributes. + (AutogenModule.do_check): same here. + (AutogenModule.do_install): same here. + +2006-04-26 Murray Cumming <murrayc@murrayc.com> + + * modulesets/maemo.modules: + * modulesets/maemo_freedesktop.modules: Removed these files. + They have moved to jhbuild_modules in the maemo svn. + +2006-04-26 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for both + eel and nautilus. + +2006-04-26 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Use gnome-2-14-branch for + gdm2. + +2006-04-26 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-session. + +2006-04-26 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.16.modules (libsexy): same here. + + * modulesets/gnome-2.14.modules (libsexy): add dependencies. + Fixes bug #339765. + +2006-04-23 Raphael Slinckx <rslinckx@cvs.gnome.org> + + * jhbuild/commands/info.py: + * jhbuild/modtypes/darcsmodule.py: + * jhbuild/moduleset.py: + * jhbuild/utils/darcs.py: + * modulesets/moduleset.dtd: + * modulesets/moduleset.rnc: + Add support for Darcs repositories in .modules files + +2006-04-21 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome-2.16.modules: Use HEAD for libxklavier + Should fix build problems in gnome-applets and the control-center. + +2006-04-20 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.14.modules: use gnome-2-14 branch for + gnome-vfs. + +2006-04-20 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.14.modules: add pitivi and gnonlin. + * modulesets/gnome-2.16.modules: same here. + +2006-04-20 James Henstridge <james@jamesh.id.au> + + * modulesets/freedesktop.modules (PolicyKit): depend on dbus, + fixing bug #339087. + + * modulesets/gnome-2.14.modules: same here. + + * modulesets/gnome-2.16.modules (gnome-user-docs): depend on + gnome-doc-utils, fixing bug #339060. + +2006-04-19 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-keyring. + +2006-04-18 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.14.modules: use the proper gnome-2-14 branch for + gnome-applets, gnome-doc-utils and sound-juicer modules; remove + icon-naming-utils from dependencies list of gnome-icon-theme (not + needed in gnome-2-14 branch). Fix bug 338886. + +2006-04-18 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/tarball.py (Tarball.do_unpack): fix test for + tarball build dir. Patch from Martin Ericsson + <martin.s.ericsson@gmail.com> to fix bug #338631. + + * jhbuild/modtypes/mozillamodule.py: add missed CommandError import. + (MozillaModule.do_checkout): succeeded should be True if no + CommandError was raised. Fixes bug #338553. + +2006-04-18 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.14.modules: add missing dependecies for cairo-1-0 + (fixed bug 338789) + +2006-04-13 German Poo-Caaman~o <gpoo@ubiobio.cl> + + * modulesets/gnome-2.16.modules: Make gnome-nettool depend on + gtk+, libglade and gconf instead of libgnomeui. + +2006-04-13 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules: undo indentation changes. + +2006-04-13 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/mozillamodule.py: same here. + +2006-04-12 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-control-center. + +2006-04-12 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/svnmodule.py: same here. + + * jhbuild/modtypes/tarball.py: same here. + + * jhbuild/modtypes/base.py: catch CommandError at the appropriate + places. + +2006-04-11 James Henstridge <james@jamesh.id.au> + + * jhbuild/utils/svn.py (get_uri): catch CommandError rather than + RuntimeError. Run "svn info" in C locale to fix bug #334678. + (SVNRoot): don't try to return exit codes in checkout() and + update() -- it is passed as an exception now. + + * jhbuild/utils/cvs.py (CVSRoot): don't need to pass on return + code from checkout() and update(), since that info is passed on as + an exception now. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + raise CommandError on failure. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): + raise CommandError on failure. + + * jhbuild/frontends/buildscript.py (BuildScript.execute): change + docstring to state that CommandError is raised if the command + fails. + + * jhbuild/utils/cmds.py (get_output): change to raise CommandError + instead of RuntimeError. Also modify to allow passing in a custom + environment. + + * jhbuild/errors.py (CommandError): send a SIGINT to the child on + KeyboardInterrupt. + +2006-04-11 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/bootstrap.modules: Use Python 2.4.3 + +2006-04-11 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnomemm/libgnomemm. + +2006-04-10 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.12.modules: Use gnome-2-12 branch for + ekiga, gnome-keyring-manager, libgtop and vino. + +2006-04-10 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-nettool and gnopernicus. + +2006-04-10 William Jon McCann <mccann@jhu.edu> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-screensaver and nautilus-cd-burner. + +2006-04-09 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.16.modules: Make gnome-control-center depend on + gst-plugins-base instead of gstreamer. + +2006-04-05 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.16.modules, modulesets/freedesktop.modules: + gucharmap and cairo support nosrcdir builds now. + +2006-04-05 Christian Kirbach <Christian.Kirbach@siemens.com> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + librsvg. Otherwise build fails. + +2006-04-04 Murray Cumming,,, <set EMAIL_ADDRESS environment variable> + + * modulesets/freedesktop.modules: cairomm depends on cairo-1-0 instead of cairo, + though I see no need to have two versions of this module. They do not install in + parallel. + * modulesets/gnome-2.16.modules: gtkmm depends on cairomm. + +2006-03-31 Murray Cumming <murrayc@murrayc.com> + + * modulesets/maemo.modules: Now there are two svnroots, one for maemo HAF, and + one for maemo contrib. Also add libosso, whatever that is. + +2006-03-31 Murray Cumming <murrayc@murrayc.com> + + * modulesets/maemo.modules: Added hildon C++ bindings, with a meta-maemo-c++ + meta module. Use glibmm 2.8 because maemo is now using glib 2.8 (with GTK+ 2.8). + +2006-03-31 Murray Cumming <murrayc@murrayc.com> + + * modulesets/maemo.modules: Added moduleset that builds the + Maemo hildon-* stuff, with the Maemo versions of some dependencies, + such as dbus and GTK+. Copied from gnome-2.10.modules, so it contains + unnecessary stuff, but it does no harm. + I wonder if we can just include gnome-2.10.modules and override some + modules? + * modulesets/maemo_freedesktop.modules: Maemo versions of some of these + modules, included by maemo.modules. + +2006-03-30 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: Update vte revision. + +2006-03-30 Phil Cowans <pjc51@cam.ac.uk> + + * Dasher ported to gnome-doc-utils + +2006-03-30 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + pessulus + +2006-03-30 Calum Benson,,, <calum.benson@sun.com> + + * modulesets/gnome-2.14.modules: + Use gnome-2-14 branch for gnome-themes. + +2006-03-28 Tommi Vainikainen <thv@iki.fi> + + * modulesets/gnome-2.16.modules: gcalctool ported to + gnome-doc-utils, added as dependance. + +2006-03-25 Emmanuele Bassi <ebassi@cvs.gnome.org> + + * modulesets/gnome-2.14.modules: Fix the branch name for glib. + +2006-03-24 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for + gnome-desktop. + +2006-03-24 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/bootstrap.modules: + Use libtool-1.5.22 and pkg-config-0.20. + * modulesets/freedesktop.modules: + Use hicolor-icon-theme-0.9 and the fc-2_4_branch of fontconfig. + * modulesets/gnome-2.16.modules: + Use the v_2_x branch of libxklavier. Update xchat to 2.6.1, + libmusicbrainz to 2.1.2 and guile to 1.8.0. + * modulesets/gnutls.modules: gnutls-1.2.10, libgpg-error-1.3, + libgrypt-1.2.2, libtasn1-0.2.18, opencdk-0.5.8 + + +2006-03-24 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome-2.14.modules: Use the glib-2-10 branch + for glib. + +2006-03-23 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Removed gedit-plugins. The module + has been pretty dead for some time now. IRC summary: + + <@pbor> gedit-plugins is dead + <@pbor> feel free to remove gedit-plugins from there + < uws> both 2.14 and 2.16, right? + <@paolo> uws: you can remove gedit-plugins from the moduleset + + * modulesets/gnome-2.16.modules: same here + +2006-03-23 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Use gnome-2-14 branch for gedit. + Note that gedit-plugins has not yet branched. + +2006-03-20 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/freedesktop.modules: Added tango-icon-theme and + tango-icon-theme-extras modules. Also reindented the XML file, + because it was mixing tabs and spaces. + +2006-03-18 Brent Smith <gnome@nextreality.net> + + * modulesets/freedesktop.modules: make poppler depend on cairo-1-0 + +2006-03-18 Elijah Newren <newren gmail com> + + * modulesets/freedesktop.modules: fix pycairo-1-0 to work by using + checkoutdir and the RELEASE_1_0_2 revision. + +2006-03-17 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: use gnome-2-14 for gnome-terminal + * modulesets/gnome-2.16.modules: create 2.16 moduleset + +2006-03-17 Wouter Bolsterlee <uws+gnome@xs4all.nl> + + * modulesets/gnome-2.14.modules: Added muine to the 2.14 + moduleset. Note that gtk-sharp and friends are not included + in the dependencies, so you'll have to install those by hand + before trying to compile muine. + +2006-03-17 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: Ditto for pycairo-1-0. + +2006-03-17 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: make everyone use cairo-1-0 instead + of cairo. + +2006-03-17 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/freedesktop.modules: use cairo-1.0.4 tarball for + cairo-1-0, instead of dead CVS. + +2006-03-16 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: make gnome-games and gcalctool + use the gnome-2-14 branch instead of HEAD + +2006-03-13 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: make fast-user-switch-applet use + the gnome-2-14 branch instead of HEAD + +2006-03-13 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: make libxklavier use the v_2_x + branch instead of HEAD + +2006-03-13 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: make evince use the gnome-2-14 + branch instead of HEAD + +2006-03-13 Lucas Rocha <lucasr@gnome.org> + + * modulesets/gnome-2.14.modules: make eog and zenity use the + gnome-2-14 branch instead of HEAD + +2006-03-13 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: make gnome-user-docs use the + gnome-2-14 branch instead of HEAD + +2006-03-13 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: Update pango and gucharmap + revisions. + +2006-03-12 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: make yelp use the + gnome-2-14 branch instead of HEAD + +2006-03-12 Raphael Slinckx <rslinckx@cvs.gnome.org> + + * modulesets/gnome-2.14.modules: + Deskbar applet branched for 2.14 + +2006-03-12 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.14.modules: Epiphany and Epiphany Extensions + branched for 2.14. + +2006-03-10 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: make libbonobo use the + gnome-2-14 branch instead of HEAD + +2006-03-10 Srinivasa Ragavan <sragavan@novell.com> + + * modulesets/gnome-2-14.modules (evolution, evolution-data-server, + evolution-exchange, gtkhtml): use gnome-2-14 branch instead of HEAD. + +2006-02-28 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.12.modules (glibmm, gtkmm): use 2.8 branches. + Patch from Wouter Bolsterlee <uws+gnome@xs4all.nl>, fixing bug + #323827. + + * modulesets/bootstrap.modules (python): use version 2.4.2. Patch + from Wouter Bolsterlee <uws+gnome@xs4all.nl>, fixing bug #329128. + + * modulesets/gnome-2.12.modules (at-spi): use AT_SPI_1_6_6 tag, + since HEAD doesn't work with 2.12 and there is no gnome-2-12 + branch. Fixes bug #332724, patch from Bjoern Voigt + <bjoern@cs.tu-berlin.de>. + + * modulesets/gnome-2.14.modules (rhythmbox): depend on + gst-plugins-base rather than gst-plugins-0-8, since it has been + ported to GStreamer 0.10. Fixes bug #32551. + + Fix bug #331804: + + * modulesets/gnome24.modules: same here. + + * modulesets/gnome26.modules: same here. + + * modulesets/gnome28.modules: same here. + + * modulesets/gnome-2.10.modules: same here. + + * modulesets/gnome-2.12.modules: same here. + + * modulesets/freedesktop.modules: same here. + + * modulesets/gnome-2.14.modules: use anoncvs.freedesktop.org + instead of cvs.freedesktop.org. + +2006-02-16 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: make gnome-speech use the + gnome-2-14 branch instead of HEAD + +2006-02-19 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.14.modules: rhythmbox ported to gnome-doc-utils + added as dependance. + +2006-02-16 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: make metacity use the + gnome-2-14 branch instead of HEAD + +2006-02-11 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: make gnome-icon-theme use the + gnome-2-14 branch instead of HEAD + +2006-02-11 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: make libnotify an optional + dependency of evolution since it's not part of the desktop set, + update librsvg to use HEAD as should have been done long ago. + +2006-02-11 Behdad Esfahbod <behdad@gnome.org> + + * scripts/branch-violations/find-branch-moduleset: xmlint the + moduleset to remove newlines in opening elements. + +2006-02-11 Thomas Wood <thos@gnome.org> + + * modulesets/gnome-2.14.modules: GNOME 2.14 will ship with + gtk-engines-2-6 + +2006-02-05 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome-2.14.modules: Update gnome-utils revision + to gnome-2-14. + +2006-02-04 Behdad Esfahbod <behdad@gnome.org> + + * modulesets/gnome*.modules: Update various modules' revision + tags, found using the following scripts. + + * scripts/branch-violations/*: Added. + +2006-02-01 Federico Mena Quintero <federico@ximian.com> + + * modulesets/gnome-2.14.modules: libgnomeui should use the + libgnomeui-2-14 branch. + +2006-01-30 Elijah Newren <newren gmail com> + + * modulesets/freedesktop.modules: Had to reorder cairo and + cairo-1-0 to make sure that cairo was built instead of cairo-1-0. + Weird; I need to file a bug. + + * modulesets/gnome-2.14.modules: Update the proposed module list, + including moving some to meta-gnome-desktop that haven't had any + objections. + +2006-01-30 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.14.modules: + add autogenargs="--enable-gstreamer=0.10" to gnome-applets and remove + revision="BRANCH-GSTREAMER-0-10" from gnome-media. + +2006-01-26 Guilherme de S. Pastore <gpastore@gnome.org> + + * modulesets/gnome24.modules: + * modulesets/gnome26.modules: + * modulesets/gnome28.modules: + * modulesets/gnome-2.10.modules: + * modulesets/gnome-2.12.modules: + * modulesets/gnome-2.14.modules: update the CVS module name for + procman (finally gnome-system-monitor). + +2006-01-25 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: deskbar-applet depends on + gnome-python-desktop instead of gnome-python-extras now. + +2006-01-22 Jeroen Zwartepoorte <jeroen.zwartepoorte@gmail.com> + + * modulesets/gnome-2.14.modules: Add gnome-python-desktop and make + gedit depend on it (for python plugins). + +2006-01-22 Luca Ferretti <elle.uca@libero.it> + + * modulesets/gnome-2.14.modules: gnome-control-center can choose + GStreamer 0.10 at compile time. Use it. + +2006-01-21 Guilherme de S. Pastore <gpastore@gnome.org> + + * modulesets/gnome24.modules, modulesets/gnome26.modules, + modulesets/gnome-2.10.modules, modulesets/gnome-2.12.modules, + modulesets/gnome-2.14.modules: renamed gnomemeeting to ekiga, + otherwise we break, even with the alias set up. + +2006-01-20 Johan Dahlin <jdahlin@async.com.br> + + * modulesets/gnome-2.14.modules: Add pygobject module and make + pygtk depend on it. Also remove the hard dependency of libglade + for pygtk and move it to the suggests section. + +2006-01-19 Elijah Newren <newren gmail com> + + * modulesets/gnome-2.14.modules: gstreamer 0.10 is what 2.14 will + ship with so get rid of the "-0.10" suffix. Also, apply patch + from Luca Ferretti to fix the build with gnome-icon-theme + [#327297]. + +2006-01-19 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome-2.14.modules: + Add gstreamer-0.10 deps to control-center and sound-juicer + Remove eel dep from gedit-plugins + Add libnotify dep to evolution + +2006-01-15 Elijah Newren <newren gmail com> + + * modulesets/gnutls.modules: Use http: instead of ftp: in URLs to + make downloads work again. + +2006-01-14 Thomas Vander Stichele <thomas at apestaart dot org> + + * modulesets/gnome-2.14.modules: + Add more gst modules, but not use them by default, + for people who want to test more questionable formats + +2006-01-14 Jeroen Zwartepoorte <jeroen.zwartepoorte@gmail.com> + + * modulesets/gnome-2.14.modules: Add liboil as a dependency to + gst-plugins-base-0.10. + +2006-01-13 Thomas Vander Stichele <thomas (at) apestaart (dot) org> + + * modulesets/gnome-2.14.modules: + make gnome-media and totem use the GStreamer 0.10 branch + +2006-01-13 Thomas Vander Stichele <thomas (at) apestaart (dot) org> + + * modulesets/gnome-2.14.modules: + split out gstreamer modules in -0.8 and -0.10 + +2006-01-09 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.14.modules: Add a libgda-1-2 checkout as + well as the unstable libgda HEAD. Make libgdamm use libga-1-2. + +2006-01-09 Johan Dahlin <jdahlin@async.com.br> + + * modulesets/gnome-2.12.modules: use pygtk-2-8 branch for pygtk + +2006-01-06 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: add gnome-doc-utils as dependency of + gnome-utils + +2006-01-06 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: add gnome-doc-utils as dependency of + gnome-system-tools + +2006-01-05 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome-2.12.modules: use gnome-2-12 branch for + gconf-editor and bug-buddy + +2006-01-04 Rodrigo Moya <rodrigo@gnome-db.org> + + * modulesets/gnome-2.14.modules: Added nautilus-actions. + +2005-12-31 Carlos Garnacho Parro <carlosg@gnome.org> + + * modulesets/gnome-2.12.modules: use gnome-2-12 branch for + gnome-system-tools + +2005-12-22 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.14.modules: Change the scrollkeeper download + URL to one that works. + +2005-12-14 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: + * modulesets/gnome-2.14.modules: Use the 2.0 branch of libsigc++. + +2005-12-12 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome-2.14.modules: Add gnome-menus and libgnomeui + as dependencies to gnome-screensaver. + +2005-12-12 Paolo Borelli <pborelli@katamail.com> + + * modulesets/gnome-2.12.modules: gedit and gtksourceview branched. + +2005-12-07 David Malcolm <dmalcolm@redhat.com> + + * modulesets/gnome-2.14.modules: Added pyspi and dogtail (work towards + fixing bug #318531) + +2005-12-02 Murray Cumming <murrayc@murrayc.com> + + * modulesets/freedesktop.modules: Added cairomm. + +2005-12-02 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.14.modules: Use HEAD branches of + glib and pango for GNOME 2.14. + +2005-11-24 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.12.modules: use gnome-2-12 branch + for ATK for GNOME 2.12. + +2005-11-24 James Henstridge <james@jamesh.id.au> + + * modulesets/freedesktop.modules (libdaemon, avahi): add libdaemon + and avahi to freedesktop.modules. Still some kinks due to crap + configure script. + +2005-11-23 Karsten Bräckelmann <guenther@rudersport.de> + + * README: Updated the GARNOME project link. + +2005-11-23 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.14.modules: glibmm and gtkmm: Use the + glibmm-2-8 and gtkmm-2-8 branches, because we are using the + glib-2.8 and gtk-2.8 branches (so far, at least) for GNOME 2.14. + +2005-11-22 Thomas Wood <thos@gnome.org> + + * modulesets/gnome-2.14.modules: use HEAD for gtk-engines + +2005-11-18 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.14.modules: add sabayon as dependency for + meta-gnome-proposed + +2005-11-16 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules: + * modulesets/gnome-2.14.modules: add gnome-keyring-manager to + meta-gnome-desktop + +2005-11-12 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules: use gnome-2-12 branch for + libgnomeprintui + * modulesets/gnome-2.14.modules: add atomix, deskbar-applet and + pessulus, and add dependencies for meta-gnome-proposed + +2005-11-10 Dan Winship <danw@novell.com> + + * modulesets/gnome-2.12.modules: Use gnome-2-12 branch for + libsoup. (And add missing libxml2 dependency, for the soap/xmlrpc + stuff.) + + * modulesets/gnome28.modules: + * modulesets/gnome-2.10.modules: + * modulesets/gnome-2.14.modules: Add missing libxml2 dependency to + libsoup. + +2005-11-08 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: Use gnome-2-12 branch for + gnome-icon-theme, gnome-keyring, file-roller and gucharmap. + +2005-11-08 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: Use gnome-2-12 branch for totem. + +2005-11-02 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules: use gnome-2-12 branch for + gnome-session + + * Makefile: install .desktop file in the correct XDG dir. + Fixes bug #316639. + +2005-10-24 James Henstridge <james@jamesh.id.au> + + * jhbuild/utils/cvs.py (CVSRoot.update): check for IOError when + finding the CVS root of a working copy. Based on patch from Scott + Tsai. Fixes bug #315083. + +2005-10-14 Karsten Bräckelmann <guenther@rudersport.de> + + * README: Updated the GARNOME project link. + +2005-10-24 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.14.modules (gnome-doc-utils): same here. + + * modulesets/gnome-2.12.modules (gnome-doc-utils): depend on + glib. Fixes bug #317763. + + * modulesets/gnome-2.14.modules (libnotify): same here. + + * modulesets/gnome-2.12.modules (libnotify): use new URL for + libnotify SVN. Fixes bug #317929. + + * sample.jhbuildrc (prefix): use gnome-2.14 + + * jamesh.jhbuildrc (moduleset): use to gnome-2.14 + + * jhbuild/defaults.jhbuildrc: update to gnome-2.14 by default. + Get rid of code to set True/False here, since monkeypatch.py + should have done this for us already. + +2005-10-22 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules: use gnome-2-12 branch for + gnome-panel + +2005-10-20 Rodrigo Moya <rodrigo@novell.com> + + * modulesets/gnome-2.12.modules: use gnome-2-12 branch for + gnome-control-center. + +2005-10-18 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.12.modules: Yelp + has branched for GNOME 2.12. + +2005-10-17 Lucas Rocha <lucasr@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: EOG has + branched for GNOME 2.12. + +2005-10-17 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.14.modules: Use HEAD + branch for ORBit2. + +2005-10-06 Elijah Newren <newren@gmail.com> + + * modulesets/gnome-2.12.modules: Update more module revisions due + to branching: gnome-applets, gnome-utils, and sound-juicer. + +2005-10-06 William Jon McCann <mccann@jhu.edu> + + * modulesets/gnome-2.12.modules (nautilus-cd-burner): + use gnome-2-12 branch. + +2005-10-03 Elijah Newren <newren@gmail.com> + + * modulesets/gnome-2.12.modules: Update revisions to use + gnome-2-12 branch for a number of modules: gnome-vfs, gnome-games, + eel, nautilus, metacity, procman, gcalctool, and gnome-themes + +2005-10-03 Elijah Newren <newren@gmail.com> + + * sample.jhbuildrc: "GNOME CVS is accessible only with SSH" now; + change pserver to ext in commented out user cvs account stuff + +2005-09-29 Federico Mena Quintero <federico@ximian.com> + + * modulesets/gnome-2.12.modules: Make libbonobo and libbonoboui + use the "gnome-2-10" revision --- there were no 2.12 releases of + them. + +2005-09-28 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/freedesktop.modules: + Add cairo-1-0 module for use by GTK+ and pango in GNOME 2.12 modules, + to be sure to use cairo BRANCH_1_0. + * modulesets/gnome-2.12.modules: + Use cairo-1-0 module instead of cairo. + +2005-09-26 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/freedesktop.modules: Add a poppler-0-4 module + for use by evince 0.4 in the Gnome 2.12 moduleset. + * modulesets/gnome-2.12.modules: Use poppler-0-4 for evince. + A moduleset/gnome-2.14.modules: New. Derived from the 2.12 moduleset + by stripping out all "gnome-2-12" revision tags. Use poppler HEAD + for evince. + +2005-09-22 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.12.modules (iso-codes): use CVS rather than + Debian FTP. + +2005-09-20 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome*.modules (gnome-common): use gnome-2-12 branch. + +2005-09-13 James Henstridge <james@jamesh.id.au> + + * jhbuild/config.py (Config.setup_env): remove hack that was + unconditionally adding /usr/lib/pkgconfig to the path if + $PKG_CONFIG_PATH was empty. If you want the directory in + $PKG_CONFIG_PATH, add it manually. + (Config.setup_env): add $prefix/share/pkgconfig to + $PKG_CONFIG_PATH. + + * modulesets/gnome-2.12.modules (iso-codes): use version 0.47 + (fixes bug #316116). + + * modulesets/moduleset.dtd (tarball): add checkoutdir attribute. + + * modulesets/moduleset.rnc (tarball): add checkoutdir attribute. + + * jhbuild/modtypes/tarball.py (parse_tarball): support a + checkoutdir attribute. Fixes bug #313249. + +2005-09-11 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome-2.12.modules (xchat): Update to 2.4.5 + +2005-09-11 Damon Chaplin <damon@gnome.org> + + * modulesets/gnome-2.10.modules: Use gnome-2-10 branch for Glade. + +2005-09-08 Harish Krishnaswamy <kharish@novell.com> + + * modulesets/gnome-2.12.modules: Use gnome-2-12 branch for + evolution, evolution-data-server and evolution-exchange. + +2005-09-08 Kaushal Kumar <kakumar@novell.com> + + * modulesets/gnome-2.12.modules: Use gnome-2-12 branch for + gtkhtml. + +2005-09-07 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules (gnome-desktop): use gnome-2-12 branch + +2005-09-06 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome-2.12.modules: GNOME 2.12 is shipping + the gnome-2-10 branch of ORBit2. + +2005-09-06 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome-2.12.modules: gnome-2-12 branch + for libgnome, libgnomeui, libgnomecanvas and gnome-terminal + +2005-09-02 Johan Dahlin <jdahlin@async.com.br> + + * modulesets/gnome-2.12.modules: pygtk supports + non-srcdir builds now. + +2005-08-31 Lucas Rocha <lucasr@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: Zenity has + branched for GNOME 2.12. + +Tue Aug 30 13:56:32 2005 Jonathan Blandford <jrb@redhat.com> + + * modulesets/gnome-2.12.modules: Evince has branched for GNOME + 2.12. + +2005-08-28 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: + Epiphany has branched for GNOME 2.12. + +2005-08-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> + + * modulesets/freedesktop.modules: pycairo should not suggest + gnome-python/pygtk, it's actually the other way around, otherwise + you get an infinite loop in "jhbuild build pycairo gnome-python/pygtk". + +2005-08-27 Richard A. Stellingwerff <remenic@gmail.com> + + * modulesets/gnome-2.12.modules: Removed separate Clearlooks, which is now + part of gtk-engines. + +2005-08-26 Matthias Clasen <mclasen@redhat.com> + + * modulessets/gtk.modules: New moduleset to track GTK+ HEAD. + + * modulesets/gtk28.modules: Use branches: glib-2-8, pango-1-10, + gtk-2-8. + +2005-08-25 Federico Mena Quintero <federico@ximian.com> + + * modulesets/gnome-2.12.modules: Use these branches: glib-2-8, + pango-1-10, gtk-2-8. + +2005-08-24 Raphael Slinckx <rslinckx@cvs.gnome.org> + + * modulesets/gnome-2.10.modules: + * modulesets/gnome-2.12.modules: + + Use branch 0.8 for gst-python module to keep in sync with + branch 0.8 of gstreamer and gst-plugins modules in moduleset + 2.10 and 2.12. + + Add gnome-media as dependency of gnome-python-extras since it + has a new mediaprofiles module requiring it. + +2005-08-22 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules (gnome-volume-manager): use gnome-2-12 + branch + +2005-08-22 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules (gnome-netstatus): Added + gnome-doc-utils dependency. + +2005-08-21 Thomas Wood <thos@gnome.org> + + * modulesets/gnome-2.10.modules: + * modulesets/gnome-2.12.modules: + * modulesets/gnome24.modules: + * modulesets/gnome28.modules: + + Updated branch tags for gtk-engines + +2005-08-19 Tommi Vainikainen <thv@iki.fi> + + * modulesets/gnome-2.12.modules (gucharmap): Added gnome-doc-utils + dependency. + +2005-08-18 Damon Chaplin <damon@gnome.org> + + * modulesets/gnome-2.12.modules (gtk-doc): added scrollkeeper as + a dependency, since it now has a DocBook manual. We could add this + to older modulesets as well, though it is only a soft dependency so + isn't too important. + +2005-08-17 James Henstridge <james@jamesh.id.au> + + * jhbuild/utils/trayicon.py (TrayIcon._run_zenity): add back the + os.setsid() call that got lost when converting this code to use + the subprocess module. + +2005-08-16 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules: revert the gnome-mime-data removal, + since gnome-vfs still uses it. + +2005-08-16 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/tinderbox.py (get_distro): split out code for + guessing distro details into a separate function. Enhance to use + "lsb_release" tool to look up distro details, if available. Fixes + bug #313478. + + * modulesets/gnome-2.12.modules (libbtctl, gnome-bluetooth, phonemgr): + add modules. Patch from Jaap A. Haitsma, fixing bug #310674. + + * modulesets/gnutls.modules (libtasn1): update to 0.2.15. + + * modulesets/gnome26.modules: same here. + + * modulesets/gnome28.modules: same here. + + * modulesets/gnome-2.10.modules: same here. + + * modulesets/gnome-2.12.modules: reference gnutls.modules. + + * modulesets/gnutls.modules: move gnutls stuff to a separate + .modules file, shared by the others. + + * modulesets/gnome-2.12.modules (libnotify): add libnotify. + (gnome-power-manager): add libnotify as a dependency. Patch from + Jaap A. Haitsma, fixes bug #310598. + + * jhbuild/frontends/tinderbox.py: set the charset in the generated + HTML. This is based on a patch from Guillaume Desmottes. Fixes + bug #309977. + + * jhbuild/monkeypatch.py: add locale.getpreferredencoding() if + missing. + +2005-08-15 Elijah Newren <newren@gmail.com> + + * modulesets/gnome-2.12.modules: yelp no longer depends on + gtkhtml2, remove duplicate gdl entry, add evolution-exchange since + it is in the desktop release + +2005-08-13 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/freedesktop.modules: libpixman has been moved into + cairo. Remove the dep from cairo and the module itself. + +2005-08-13 Davyd Madeley <davyd@madeley.id.au> + + * modulesets/gnome-2.12.modules: opencdk depends on libgcrypt. Thanks + again to James A. + +2005-08-11 Davyd Madeley <davyd@madeley.id.au> + + * modulesets/gnome-2.12.modules: gnome-doc-utils depends on intltool. + Patch from James Andrewartha <trs80@ucc.asn.au>. + +2005-08-05 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome-2.12.modules: Drop the eel dependency + from eog. + +2005-08-05 Paolo Bacchilega <paobac@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: Added gnome-doc-utils to + the dependecies list of the file-roller module. + +2005-08-04 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (automake-1.9): update to 1.9.6. + +2005-08-01 Tommi Vainikainen <thv@iki.fi> + + * modulesets/gnome-2.12.modules (gdm2, evince): Added + gnome-doc-utils dependency. + +Sat Jul 30 17:01:33 2005 Jonathan Blandford <jrb@redhat.com> + + * modulesets/freedesktop.modules: poppler branched. + +2005-07-30 Caleb Moore <c.moore@student.unsw.edu.au> + + * modulesets/gnome-2.12.modules (librsvg): + use 2.12 branch instead of HEAD + +2005-07-27 Sebastien Bacher <seb128@debian.org> + + * modulesets/gnome-2.12.modules: gnome-control-center uses g-d-u. + +2005-07-25 Ross Burton <ross@burtonini.com> + + * modulesets/gnome-2.12.modules (sound-juicer): + add g-d-u dependency + +2005-07-24 Lucas Rocha <lucasr@cvs.gnome.org> + + * modulesets/gnome-2.12.modules (zenity): + add g-d-u dependency + +2005-07-24 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: + Epiphany now depends on libgnomeprint[ui]. + +2005-07-21 Luis Villa <luis.villa@gmail.com> + + * modulesets/gnome-2.12.modules (dasher): turns out dasher has a + 2.12 branch. Who knew? :) + +2005-07-21 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (pkg-config): update to 0.19 release. + +2005-07-21 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome-2.10.modules, + modulesets/gnome26.modules: update the location + of gnutls 1.2.4. + +2005-07-21 Tommi Vainikainen <thv@iki.fi> + + * modulesets/gnome-2.12.modules: gnutls 1.2.4 is gone, updated + entry to point 1.2.6 instead. + +2005-07-20 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules (bug-buddy) (epiphany) + (gnome-desktop): add g-d-u dependency + +2005-07-17 Luis Villa <luis.villa@gmail.com> + * modulesets/gnome-2.12.modules (gnome-panel): add g-d-u dep + +2005-07-15 Luis Villa <luis.villa@gmail.com> + + * modulesets/gnome-2.12.modules (dasher): put dasher in + meta-gnome-desktop, since it has been in the Desktop release since + 2.6. + +2005-07-15 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.12.modules (gnome-power-manager): now in + Gnome CVS. Patch from Jaap A. Haitsma <jaap@haitsma.org> (fixes + bug #310155). + + * jhbuild/utils/cmds.py (get_output): don't use os.WIFEXITED() on + the subprocess returncode attribute -- the subprocess module + already takes care of that. + + * jhbuild/utils/trayicon.py: switch over to using subprocess + module for communication with zenity. + + * jhbuild/utils/cmds.py (pprint_output): use os.read() rather than + file.read(), so we don't need to set the pipes as non-blocking. + +2005-07-13 Igor Foox <ifoox@redhat.com> + + * modulesets/gcj.modules: Resolved circular dependencies for + java-gnome modules. 'java-gnome' is now a meta-module for all + java-gnome related modules. + +2005-07-13 Vincent Untz <vuntz@gnome.org> + + * modulesets/gnome-2.12.modules: kill gnome-mime-data + +2005-07-10 Johan Dahlin <johan@gnome.org> + + * modulesets/gnome-2.10.modules: Use the pygtk-2-6 branch + +2005-07-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> + + * modulesets/gnome-2.12.modules: Suggest gnome-python-extras for + meta-gnome-python. Suggest pycairo for pygtk. + +2005-07-09 Matthias Clasen <mclasen@redhat.com> + + * modulesets/freedesktop.modules: Use version 0.8 of + the Hicolor icon theme. + +2005-07-08 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: glom now depends on + libgnomecanvasmm. + +2005-07-07 Luis Villa <luis.villa@gmail.com> + + * modulesets/gnome-2.12.modules (system-tools): + add nautilus dependency. + +2005-07-07 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.10.modules: + use gnome-2-10 branch for yelp. + +2005-07-05 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (eog): use gnome-2-8 branch. + (gnomemm/gconfmm): use gnome-2-8 branch. + (gnomemm/libglademm): use gnome-2-8 branch. + (gnome-volume-manager): use gnome-2-8 branch. + (gtranslator): use gnome-2-8 branch. + (zenity): use gnome-2-8 branch. + + * modulesets/gnome-2.10.modules (dasher): use gnome-2-10 branch. + (file-roller): use gnome-2-10 branch. + (gnome-doc-utils): use gnome-2-10 branch. + (libgnomeprint): use gnome-2-10 branch. + (libgnomeprintui): use gnome-2-10 branch. + (librsvg): use gnome-2-10 branch. + (vino): use gnome-2-10 branch. + (zenity): use gnome-2-10 branch. + +2005-07-01 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (pkg-config): update to 0.18.1 to + fix problems mentioned in bug #309214. + +2005-06-29 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (pkg-config): actually update the + file size and MD5 sum. + +2005-06-28 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (pkg-config): update to version 0.18. + +2005-06-27 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/gtkui.py (GtkBuildScript.execute): minimal + changes to use subprocess module for build loop. Should probably + be switched to use IO watches instead. + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.do_install): + use argument lists instead of argument strings in a few places. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + use newer API. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): use + newer API. + + * jhbuild/utils/cmds.py (get_output): use close_fds=True when + spawning child. + (Pipeline): a class similar to subprocess.Popen that chains + together a number of subprocesses, making the stdin, stdout and + stderr available. + (pprint_output): change from execute_pprint() to take a + subprocess.Pipe-like object, and read data from it. + +2005-06-24 James Henstridge <james@jamesh.id.au> + + * jhbuild/utils/cmds.py (get_output): same here. + (execute_pprint): same here. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + same here. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): + useshell for unicode strings too. + + * modulesets/freedesktop.modules (cairo): add a <suggests> on + glitz, so that if both modules are built they get built in the + right order. + +2005-06-23 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): + handle ctrl+C better. + + * jhbuild/utils/arch.py (ArchArchive.checkout): + (ArchArchive.update): use argument lists + + * jhbuild/utils/svn.py (SVNRoot.checkout, SVNRoot.update): use + argument lists. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + same here. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): if + an argument list is given, join the arguments before printing it + to the screen. + + * jhbuild/utils/cvs.py (CVSRoot.checkout, CVSRoot.update): use an + argument list rather than an argument string. + + * jhbuild/commands/sanitycheck.py: pass argument lists instead of + strings, to avoid shell calls. + + * jhbuild/commands/sanitycheck.py (check_version): use enumerate() + where appropriate. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): use + execute_pprint() again for "CVS" colourisation. + + * jhbuild/utils/cmds.py (execute_pprint): add back because it is + used by tinderbox too, but port to subprocess. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): use + the subprocess module to implement execute(). + + * jhbuild/utils/cmds.py (get_output): use subprocess module. + (execute_pprint): remove function. + + * jhbuild/monkeypatch.py: add enumerate() and string.Template (not + used yet). + (subprocess): provide the subprocess module if it isn't available. + + * README: bump required python version to 2.2. + +2005-06-23 Kaushal Kumar <kakumar@novell.com> + + * modulesets/gnome-2.12.modules: + + Remove Gal. Gal has merged into evolution. + +2005-06-22 Seth Nickell <seth@gnome.org> + + * modulesets/gnome-2.12.modules: + + Remove luminocity from gnome-2.12 modules. The entry + here is redundant with freedesktop.modules, AND its + incorrect (dependency list is not complete). + +2005-06-21 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome26.modules: + * modulesets/gnome28.modules: + * modulesets/gnome-2.10.modules: + * modulesets/gnome-2.12.modules: update to libgpg-error 1.1, + opencdk 0.5.7 and gnutls 1.2.4. + + * jhbuild/monkeypatch.py: a module to add features to the standard + library that don't exist in old versions. At the moment, it just + includes the True/False fix. + + * jhbuild/__init__.py: move monkeypatch code out into a separate + file. + +2005-06-20 Federico Mena Quintero <federico@ximian.com> + + * modulesets/gnome-2.10.modules: Use the gnome-2-10 branch for + gnome-session. + +2005-06-20 James Henstridge <james@jamesh.id.au> + + * patches/howl-1.0.0-buildfix.patch: the path. + + * modulesets/gnome-2.10.modules: same here. + + * modulesets/gnome-2.12.modules: update to Howl 1.0.0. Include a + patch to fix --disable-static build bustage. Fix bug #161153. + +2005-06-20 Murray Cumming <murrayc@murrayc.com> + + * modulesets/freedesktop.modules: Added dbusmm. + +2005-06-18 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: Comment-out the libgda + dependencies for gnumeric, glom, and gnome-python-extras, + because they need libgda-1.2, not HEAD. + +2005-06-17 Rodrigo Moya <rodrigo@gnome-db.org> + + * modulesets/gnome-2.12.modules: Changed libgda back to HEAD, + libgnomedb and mergeant both use libgda HEAD. + +2005-06-17 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: Changed libgda back to the + release-1-2-branch branch, because I can't find anything that + is using HEAD. + +2005-06-16 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules: same here. + + * modulesets/gnome-2.10.modules: correctly use dbus-0.23 and hal-0.4 + + * modulesets/freedesktop.modules (dbus-0.23, hal-0.4): fix rules + so that these old versions get checked out correctly. Fixes bug + #307673. + +2005-06-15 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: glom, gnomemm/libgdamm: Remove + the dependency on libgda, because it depends on libgda-1.2 (which + people will have to get from packages) instead of the libgda 2.0 + (HEAD) that jhbuild now has, because I see no way to do parallel + install in jhbuild. + +2005-06-15 Mikael Hallendal <micke@imendio.com> + + * modulesets/gnome-2.12.modules: Make eel depend on gnome-menus + +2005-06-15 Mikael Hallendal <micke@imendio.com> + + * modulesets/gnome-2.12.modules: Make eel depend on gnome-desktop. + +2005-06-13 Luis Villa <luis.villa@gmail.com> + + * jhbuild/modtypes/mozillamodule.py: + + Fix version truncation in Marco's last fix, and install nss + headers correctly-ish (fixing bug #154213). + +2005-06-12 Marco Pesenti Gritti <mpg@redhat.com> + + * jhbuild/modtypes/mozillamodule.py: + + Fix installation path guessing for firefox + +2005-06-11 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: Revert to 0.45 until I can figure + out why 0.46 doesn't work. + +2005-06-10 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: Update to iso-codes 0.46. + +2005-06-10 Jeroen Zwartepoorte <jeroen.zwartepoorte@gmail.com> + + * modulesets/freedesktop.modules: Add glitz. Nothing depends on it. If + you want cairo to use glitz, first build glitz and *then* cairo. + +2005-06-10 Jeroen Zwartepoorte <jeroen.zwartepoorte@gmail.com> + + * modulesets/gnome-2.12.modules: Make totem depend on iso-codes. + +2005-06-10 James Henstridge <james@jamesh.id.au> + + * doc/jhbuild.xml (moduleset): add a note that the moduleset + parameter can be a list of strings as well as just a string. + + * modulesets/bootstrap.modules (libtool): switch to a newer + version of the RH multilib patch. Fixes bug #307067. + + * modulesets/gnome-2.10.modules (gnome-icon-theme): use gnome-2-10 + branch. + +2005-06-09 Luis Villa <luis.villa@gmail.com> + + * modulesets/gnome-2.12.modules (ggv, gpdf, evince): changing this + to reflect current consensus about 2.12. Also, removed a duplicate + entry for totem, because I can. + +2005-06-09 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (libgtop): use gnome-2-10 branch. + (ggv): use gnome-2-10 branch. + + * modulesets/bootstrap.modules (libtool): update to 1.5.18. + (gettext): update to 0.14.5. + + * jhbuild/modtypes/tarball.py (Tarball.get_localfile): check if + basename is None. If so, raise FatalError. This is to catch some + errors in moduleset files. Fixes bug #173018. + + * modulesets/gnome-2.12.modules (gthumb): add gthumb. Patch from + Jaap A. Haitsma <jaap@haitsma.org> (fixes bug #305860). + (fast-user-switch-applet): add module. Patch from Jaap A. Haitsma + <jaap@haitsma.org> (fixes bug #306538). + (gnome-power): add module. Patch from Jaap A. Haitsma + <jaap@haitsma.org> (fixes bug #306539). + +2005-04-29 Martin Ejdestig <mejde@dtek.chalmers.se> + + * jhbuild/modtypes/tarball.py (do_unpack, do_patch): + Handle spaces in file. Closes bug #302475. + +2005-04-28 William Jon McCann <mccann@jhu.edu> + + * modulesets/gnome-2.12.modules (nautilus-open-terminal): Add + module. (fixes bug #302316). + +2005-06-09 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.12.modules (rhythmbox): use CVS tree, since + the arch archive has been abandoned (fixes bug #306890). + +2005-06-08 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.12.modules (glib, pango, gtk+): release team + wiki pages say we are using HEAD, so remove the branch tags. Also + add "cairo" as a dependency of pango and gtk+. + +2005-06-02 Thomas Fitzsimmons <fitzsim@redhat.com> + + * jhbuild/modtypes/gcjmodule.py (GCCCVSRoot.update): Check out all + of gcc. + +2005-06-02 Rodrigo Moya <rodrigo@gnome-db.org> + + * modulesets/gnome-2.12.modules: use HEAD for libgda. + +2005-05-29 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome-2.12.modules: use --enable-more-warnings=no + to get this to build with gcc4. + +2005-05-27 Johan Dahlin <jdahlin@async.com.br> + + * modulesets/freedesktop.modules: + * modulesets/gnome-2.10.modules: + * modulesets/gnome28.modules: + + Created dbus-0-23 and hal-0-4 modules. Changed dbus and hal to point + at cvs head and gnome 2.8/2.10 to depend on the old versions. + This should fix the gnome-volume-manager build for 2.12. + +2005-05-26 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: gtksourceview: + Use --enable-compile-warnings=maximum, instead of + the default =error, so we can actually build this. + +2005-05-25 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: gnome-keyring: + Use --disable-more-warnings so this actually builds. + +2005-05-24 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.10.modules: + Use gnome-2-10 for libgnomecanvas. + +2005-05-22 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: Remove pyphany, and adjust + Epiphany dependencies. + +2005-05-14 Olav Vitters <olav@bkor.dhs.org> + + * sample.jhbuildrc: Add example for SMP systems as suggested by + Michele Baldessari in bug #160535. + +2005-05-14 Dan Winship <danw@novell.com> + + * jhbuild/modtypes/base.py (AutogenModule.do_clean, + AutogenModule.do_build, AutogenModule.do_check, + AutogenModule.do_install): + * jhbuild/modtypes/gcjmodule.py (GCJModule.do_install): + * jhbuild/modtypes/tarball.py (Tarball.do_build, + Tarball.do_install): Use $MAKE if it's set. #160535 + +2005-05-12 Frederic Crozat <fcrozat@mandriva.com> + + * modulesets/gnome-2.10.modules: Use gnome-2-10 for gnome-desktop. + +2005-05-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> + + * modulesets/gnome-2.12.modules: Add missing dependencies of + gnome-python-extras: nautilus-cd-burner, libgtop, totem, and gdl. + +2005-05-09 James Henstridge <james@jamesh.id.au> + + * jhbuild/defaults.jhbuildrc (moduleset): point at gnome-2.12 + + * vbs-head.jhbuildrc: remove obsolete sample config file. + + * sample.jhbuildrc (moduleset): point at gnome-2.12 + + * jamesh.jhbuildrc (moduleset): point at gnome-2.12 + + * jhbuild/moduleset.py (load): allow "moduleset" in config file to + be a list of module sets, rather than just a single one. Nothing + is done to ensure that the modulesets don't conflict. This allows + you to use ['gnome-2.10', 'gtk28'] as a moduleset. + + * modulesets/bootstrap.modules (libtool): update to 1.5.16. + (gettext): update to 0.14.4. + +2005-05-08 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: glom: Depend on + iso-codes. + +2005-05-06 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome-2.12.modules: Add libmusicbrainz + tarball module, and make totem depend on it. + + * modulesets/gnome-2.12.modules: Add iso-codes as + tarball module, and make epiphany depend on it. + +2005-05-05 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: glom: Depend on + gnome-python-extras, though it only needs pygda from there. + +2005-04-26 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: Added Inkscape. + +2005-04-26 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.12.modules (gnome-screensaver): add module. + Patch from bug #301706. + +2005-04-22 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (pkg-config): pass + --enable-indirect-deps, since the change makes assumptions about + library use that are not valid. + +2005-04-22 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome-2.12.modules: (gnome-menus): require + glib, intltool and gnome-common instead of gnome-vfs. + +2005-04-21 Federico Mena Quintero <federico@ximian.com> + + * modulesets/gnome-2.10.modules: Use gnome-2-10 for libgnomeui. + +2005-04-14 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome-2.10.modules: Use gnome-2-10 for eog. + +2005-04-14 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (pkg-config): update to 0.17.2 and + remove the patch. + + * modulesets/bootstrap.modules (pkg-config): add patch to fix + https://bugs.freedesktop.org/show_bug.cgi?id=3006, til new release + comes out. + +2005-04-13 Thomas Fitzsimmons <fitzsim@redhat.com> + + * modulesets/gcj.modules: add jg-common and libgconf-java modules. + add java-gnome metamodule (patch from Jeffrey Morgan). + +2005-04-13 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome-2.12.modules: gnome-menus depends + on pygtk. + +2005-04-13 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.12.modules: glom: Now depends on pygtk. + gnome-python-extras: Now depends on libgda. + +2005-04-13 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (pkg-config): update to 0.17.1, + which includes the patch I was applying to 0.17's pkg.m4. + +2005-04-12 Thomas Fitzsimmons <fitzsim@redhat.com> + + * jhbuild/modtypes/gcjmodule.py (GCCCVSRoot.update): add -P flag + to gcc_update invocation. + + * modulesets/gcj.modules: add libgnome-java and libglade-java + modules (patch from Jeffrey Morgan). + +2005-04-12 James Henstridge <james@jamesh.id.au> + + * patches/pkg-config-0.17-acrunlog.patch: the patch. + + * modulesets/bootstrap.modules (pkg-config): add + pkg-config-0.17-acrunlog.patch patch, to fix a serious bug in + 0.17 that breaks PKG_CHECK_MODULES(). + + * modulesets/gnome28.modules (libgcrypt): update to 1.2.1. + (libtasn1): update to 0.2.13. + (gnutls): update to 1.2.1. + + * modulesets/gnome-2.12.modules (libgcrypt): update to 1.2.1. + (libtasn1): update to 0.2.13. + (gnutls): update to 1.2.1. + + * modulesets/gnome-2.10.modules (libgcrypt): update to 1.2.1. + (libtasn1): update to 0.2.13. + (gnutls): update to 1.2.1. + + * modulesets/bootstrap.modules (pkg-config): update to 0.17. + Fixes GTK configure problems (bug #300232), among other things. + +2005-04-11 James Henstridge <james@jamesh.id.au> + + * doc/jhbuild.xml: fix spelling mistake found by Damien Carbery. + +2005-04-07 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (pkg-config): update to 0.16.0 + +2005-04-07 Carlos Garnacho Parro <carlosg@gnome.org> + + * modulesets/gnome-2.10.modules, modulesets/gnome-2.12.modules, + modulesets/freedesktop.modules (system-tools-backends): they have + been moved to FreeDesktop + +2005-04-06 Elijah Newren <newren@gmail.com> + + * modulesets/gnome-2.10.modules (totem): use gnome-2-10 branch. + +2005-04-06 Bryan Forbes <bryan@reigndropsfall.net> + + * modulesets/gnome-2.10.modules (gtkmm): use gtkmm-2-6 branch. + +2005-04-06 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (atk): use gnome-2-10 branch. + +2005-04-05 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (sound-juicer): use gnome-2-10 + branch. + +2005-04-04 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (goffice): add module, and make + gnumeric depend on it. Fixes bug #170936. + + * modulesets/gnome-2.12.modules (sound-juicer): same here. + + * modulesets/gnome-2.10.modules (sound-juicer): fix up dependency + list (added libgnomeui, gnome-media and nautilus-cd-burner). + Fixes bug #172276. + + * jhbuild/modtypes/tarball.py (parse_tarball): size attribute of + <source> element is optional. Fixes bug #172114. + + * modulesets/bootstrap.modules (python): update to 2.4.1. + +2005-04-02 Thomas Fitzsimmons <fitzsim@redhat.com> + + * modulesets/gcj.modules (libgnomevfs-java): new module. + + * modulesets/gcj.modules (cairo-java): new module. + (libgtk-java): add cairo-java dependency. + +2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com> + + * modulesets/gcj.modules (classpathx): remove module. + (jikes): likewise. + (gtk28.modules): include in place of gnome-2.10.modules. + (gcj): remove gdb dependency. + (java-gcj-compat): add gjdoc dependency. + (jaxp): remove module. + (gjdoc): remove jaxp dependency. + (verify): remove module. + (jacks): remove module. + (wonka): remove module. + (mauve): remove module. + (libgtk-java): new module. + +2005-03-29 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (gnome-keyring-manager): use + gnome-2-10 branch. + (gnome-control-center): use gnome-2-10 branch. + (gnome-applets): use gnome-2-10 branch. + (libgnome): use gnome-2-10 branch. + +2005-03-26 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome-2.10.modules: Use gnome-2-10 branch for gnome-nettool. + There's no libgda2 package anywhere it seems, so renaming it to libgda + * modulesets/gnome-2.12.modules: s/libgda2/libgda + +2005-03-25 Seth Nickell <seth@gnome.org> + + * modulesets/freedesktop.modules: + + Add 'luminocity' to the freedesktop moduleset. + +2005-03-24 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (libbonoboui): use gnome-2-10 branch. + (libbonobo): use gnome-2-10 branch. + + * modulesets/bootstrap.modules (gettext): correct the md5sum. + Reported by Markus Bertheau on IRC. + +2005-03-23 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome-2.10.modules: + (bug-buddy): use the gnome-2-10 branch. + +2005-03-23 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome-2.10.modules: + (gnome-menus), (gnome-panel): use the gnome-2-10 branch. + (bug-buddy): require gnome-menus. + + * modulesets/gnome-2.12.modules: + (bug-buddy): require gnome-menus. + +2005-03-22 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (gettext): update to 0.14.3. + + * modulesets/gnome-2.10.modules (gnome-netstatus): use gnome-2-10 + branch. + (gnome-vfs): use gnome-2-10 branch. + (gcalctool): use gnome-2-10 branch. + (procman): use gnome-2-10 branch. + (gconf): use gnome-2-10 branch. + (gdm2): use gnome-2-10 branch. + (gnome-media): use gnome-2-10 branch. + (eel, nautilus): use gnome-2-10 branch. + +2005-03-15 William Jon McCann <mccann@jhu.edu> + + * modulesets/gnome-2.10.modules (nautilus-cd-burner): use + gnome-2-10 branch. + +2005-03-14 Bryan Forbes <bryan@reigndropsfall.net> + + * modulesets/gnome-2.10.modules (glibmm): use glibmm-2-6 branch. + +2005-03-11 Jon K Hellan <hellan@acm.org> + + * modulesets/gnome-2.12.modules: Include goffice module. Declare + gnumeric dependent on it. + +2005-03-08 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (gettext): update to 0.14.2. + (libtool): update to 1.5.14 (some Gnome 2.10 modules need 1.5.12 + or newer to build correctly). + (automake-1.9): update to 1.9.5. + + * patches/libtool-1.5.14-multilib.patch: new version of the RH + multilib patch. + + * patches/libtool-1.5.4-ltmain-SED.patch: + * patches/libtool-1.4.2-multilib.patch: + * patches/libtool-1.5.10-deplibs-in-conv.patch: remove old libtool + patches. + + * modulesets/gnome-2.10.modules (gnome-games): use gnome-2-10 branch. + (gnome-themes): use gnome-2-10 branch. + (gnomemeeting): use gnome-2-10 branch. + (system-tools-backends, gnome-system-tools): use gnome-2-10 branch. + (gnome-volume-manager): use gnome-2-10 branch. + + * modulesets/gnome-2.12.modules: get rid of the "mono" modules + include. + + * modulesets/freedesktop.modules: fix validity error (a stray ">"). + + * modulesets/gnome-2.12.modules (clearlooks): add clearlooks here + too. + + * modulesets/moduleset.rnc (suggests): allow empty <dependencies> + or <suggests> elements, like the DTD does. + +2005-03-04 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): for + some reason, I'm getting a zero exit status when conflicts are + found. Make sure that we stop on CVS conflicts. + + * modulesets/gnome-2.10.modules (clearlooks): since this seems to + be the leading contender for a new theme, may as well let people + build it with jhbuild. + +2005-03-07 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.12.modules: + + Add gnome-2.12 moduleset. Copied from gnome-2.10 moduleset, + with gnome-2-10 branch tags removed. + +2005-03-07 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.10.modules: + + Pyphany is branched for Epiphany 1.6 too. + +2005-03-07 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome-2.10.modules: + + Epiphany and Epiphany Extensions are branched. + +Fri Mar 4 21:12:13 2005 Jonathan Blandford <jrb@redhat.com> + + * modulesets/freedesktop.modules: popler is now in CVS. + +2005-03-02 Tommi Vainikainen <thv@iki.fi> + + * modulesets/freedesktop.modules, modulesets/gnome-2.10.modules: + Evince now depends on freedesktop.org project "poppler". + + * README: Fixed typos: "or" instead of "of", GNU instead of Gnu. + +2005-03-02 James Henstridge <james@jamesh.id.au> + + * jamesh.jhbuildrc: add /usr/share to XDG_DATA_DIRS so that I see + system installed stuff in the menus. + + * jhbuild/utils/arch.py (get_version): "baz tree-version" requires + the directory to be passed with the -d option. + + * modulesets/gnome-2.10.modules (evolution, + evolution-data-server): use gnome-2-10 branch, per jpr's mail. + (gtkhtml): use gnome-2-10 branch, as per Radek's mail. + (gucharmap): use gnome-2-10 branch, as per Noah's mail. + +2005-03-02 Ronald S. Bultje <rbultje@ronald.bitfreak.net> + + * modulesets/gnome-2.10.modules: + Add 0.8 branch for GStreamer (which is no longer HEAD), and remove + gst-player since that has been deprecated a while ago in favour of + Totem by the GStreamer team. + +2005-02-28 James Henstridge <james@jamesh.id.au> + + * README: point people at Bazaar instead of TLA. + + * jhbuild/utils/arch.py: use Bazaar instead of TLA when working + with Arch archives. + +2005-02-28 Federico Mena Quintero <federico@ximian.com> + + * modulesets/gnome-2.10.modules: ORBit2 branch is gnome-2-10. + +2005-02-28 Marco Pesenti Gritti <marco@gnome.org> + + * jhbuild/modtypes/mozillamodule.py: + + Support the new projects argument of mozilla build + system. + +2005-02-25 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (howl): update to version 0.9.10, + which fixes bug #162639. + + * modulesets/gnome28.modules (file-roller): use the gnome-2-8 + branch of file-roller (fixes bug #160980). + (rhythmbox): use the rhythmbox--main--0.8 branch. Fixes bug + #161104. + + * README: Update text related to adding a GDM session. Patch from + Mark Drago <markdrago@mail.com> (from bug #159576). + + * jamesh.jhbuildrc: some module_autogenargs additions to my + personal config. + + * modulesets/gnome24.modules: + * modulesets/gnome26.modules: + * modulesets/gnome28.modules: + * modulesets/gnome-2.10.modules: pass --with-gnome-distributor + autogen arg, so that jhbuild builds of Gnome can be identified in + the "about gnome" dialog. + + * modulesets/gnome28.modules (gnome-nettool): use gnome-2-8 branch. + +2005-02-13 Murray Cumming <murrayc@murrayc.com> + + * modulesets/freedesktop.modules: Use the dbus-0-23 branch instead of + the DBUS_0_23 tag. + +2005-02-08 Carlos Garnacho Parro <carlosg@gnome.org> + + * modulesets/gnome-2.10.modules, modulesets/gnome28.modules: + add the system-tools-backends module now that it has been splitted + from the GST frontend, added as a dependency to gnome-system-tools and + gnome-applets (in 2.10) + +2005-02-06 Murray Cumming <murrayc@murrayc.com> + + * modulesets/freedesktop.modules: Use the DBUS_0_23 tag of dbus and + the hal-0_4-stable-branch of hal so that they build, so that we can + build gnome-vfs, to fix the GNOME build. We can change these back to + the HEAD branch soon when hal has been ported to the new dbus API. + +2005-02-04 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gtk28.modules: Add a moduleset for building + the current GTK+ development stack. + +2005-02-04 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.10.modules: meta-gnome-desktop: Added totem, + sound-juicer, gnome-menus, and gnome-backgrounds - the new modules in + 2.10. + gnome-vfs: Added dependency on hal, because configure checks for it. + +2005-02-01 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.10.modules, gnome28.modules: Use the + release-1-2-branch of libgda. I would like to add an extra module + for libgda2 in the HEAD branch, which installs in parallel, but I + can not figure out how. Also use the libgda-1-2 branch of libgdamm. + +2005-01-28 JP Rosevear <jpr@novell.com> + + * modulesets/gnome-2.10.modules: set libsoup revision to + gnome-2-10 + +2005-01-27 Crispin Flowerday <gnome@flowerday.cx> + + * modulesets/gnome-2.10.modules: Add the pyphany module + +2005-01-17 Mikael Hallendal <micke@imendio.com> + + * modulesets/gnome-2.10.modules: + * modulesets/gnome28.modules: + - Added guile and autogen as tarball deps of anjuta. + - Also update to anjuta HEAD by request from naba. + - Make anjuta depend on gnome-build + +2005-01-11 Murray Cumming <murrayc@murrayc.com> + + * modulesets/freedesktop.modules: Added dbus-cpp. + +2005-01-10 Elijah Newren <newren@gmail.com> + + * modulesets/gnome-2.10.modules: GLib branch is glib-2-6, not + glib-1-6. + +2005-01-10 Owen Taylor <otaylor@redhat.com> + + * modulesets/gnome-2.10.modules: GTK+/GLib branched. + +2005-01-08 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome-2.10.modules: pango branched. + +2005-01-07 Paolo Borelli <pborelli@katamail.com> + + * modulesets/gnome28.modules: gtksourceview branched. + +2005-01-07 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome-2.10.modules: Make gnome-games depend + on gob. + +2005-01-06 Thomas Vander Stichele <thomas at apestaart dot org> + + * jhbuild/modtypes/base.py: + make sure we use the default makeargs, similar to autogenargs + +2005-01-06 Thomas Vander Stichele <thomas at apestaart dot org> + + * modulesets/gnome-2.10.modules: + add mozilla dep to evolution-data-server so it properly builds SSL + stuff + add nautilus-python as a module so jhbuild can build it + +2005-01-04 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome-2.10.modules, gnome28.modules: bakery is now in the + GNOME cvs. Removed bakery_gnomeui because it is mostly abandoned. + +2005-01-03 Thomas Fitzsimmons <fitzsim@redhat.com> + + * jhbuild/utils/trayicon.py (TrayIcon._self_cmd): Don't print + errno. + +2004-12-29 Johan Dahlin <johan@gnome.org> + + * modulesets/gnome28.modules: + Use pygtk-2-4 branch + +2004-12-27 Mikael Hallendal <micke@imendio.com> + + * modulesets/gnome-2.10.modules: + * modulesets/gnome24.modules: + * modulesets/gnome26.modules: + * modulesets/gnome28.modules: + - Use gossip-0-8 branch + +2004-12-25 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Use the gnome-2-8 branch of libxml++. + +2004-12-23 Bryan Clark <clarkbw@cvs.gnome.org> + + * modulesets/gnome-2.10.modules: reverting the accidental mono + addition + +2004-12-23 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome-2.10.modules: updated xchat to 2.4.1 version + +2004-12-22 Bryan Clark <clarkbw@cvs.gnome.org> + + * modulesets/gnome-2.10.modules: slayed the libbonoboui dep, YAY + we're free! + +2004-12-21 Bryan Clark <clarkbw@cvs.gnome.org> + + * modulesets/gnome-2.10.modules: add evince module + +2004-12-22 Vincent Untz <vincent@vuntz.net> + + * modulesets/gnome26.modules (libwnck): use gnome-2-8 branch (there + is no gnome-2-6 branch) + * modulesets/gnome28.modules (libwnck): use gnome-2-8 branch. + +2004-12-21 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (gpdf): use gnome-2-8 branch. + +2004-12-15 Johan Dahlin <johan@gnome.org> + + * modulesets/gnome-2.10.modules: Add gnome-python-extras and + remove suggests from gnome-python. + +2004-12-13 Thomas Fitzsimmons <fitzsim@redhat.com> + + * modulesets/gcj.modules (rhug.sources.redhat.com, + classpath.savannah.gnu.org, classpathx.savannah.gnu.org): add new + repositories. + (java-gcj-compat, ecj-for-jhbuild, jaxp, gjdoc): add new modules. + Patch from Anthony Green. + (gcj): use HEAD instead of java-gui-branch. + + * jhbuild/modtypes/gcjmodule.py (GCJModule.do_install): create a + symlink for gcj-dbtool. + Patch from Anthony Green. + +2004-12-12 Luis Villa <luis.villa@gmail.com> + + * modulesets/gnome-2.10.modules (gtksourceview): add gnome-vfs + dependency + +2004-12-11 James Henstridge <james@jamesh.id.au> + + * jhbuild/main.py (help): fix up help string for --skip. Fixes + bug #161029. + +2004-12-10 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (howl): add Howl. + (gnome-vfs): make howl a dependency. + + * modulesets/bootstrap.modules (automake-1.9): update the size and + md5sum. + +2004-12-09 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome-2.10.modules (gnome-control-center): depend on + gnome-mneus. Fixes bug #160699. + +2004-12-07 Luis Villa <luis.villa@gmail.com> + + * modulesets/gnome2-10.modules + (nautilus-cd-burner): add nautilus dependency (for + nautilus-extensions), remove everything else + (meta-gnome-proposed): created and added following modules + (totem): added nautilus-cd-burner dep + (gnome-schedule): created + (gnome-backgrounds): created + +2004-12-07 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (nautilus-cd-burner): use gnome-2-8 + branch. + +2004-12-06 James Henstridge <james@jamesh.id.au> + + * modulesets/bootstrap.modules (python): update to 2.4. + (automake-1.9): update to 1.9.3. + +2004-12-03 Bryan Clark <clarkbw@cvs.gnome.org> + + * modulesets/gnome-2.10.modules: added an entry for monkey bubble + +2004-12-01 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (glade): use gnome-2-8 branch. + +2004-11-30 James Henstridge <james@jamesh.id.au> + + * modulesets/freedesktop.modules (pycairo): add an entry for + pycairo. + + * jhbuild/config.py (addpath): change logic to remove duplicate + directories from the path variable. + + * modulesets/gnome28.modules (gconf): use gnome-2-8 branch. + (gnome-netstatus): use gnome-2-8 branch. + +2004-11-26 James Henstridge <james@jamesh.id.au> + + * doc/jhbuild.xml: update documentation. + + * modulesets/freedesktop.modules (hicolor-icon-theme): fix up + download location. + +2004-11-21 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/gnome-2.10.modules: + + shared-mime-info does not build out of src dir, + gnome-utils is now fixed + +2004-11-18 James Henstridge <james@jamesh.id.au> + + * doc/jhbuild.xml: more FAQs, and some documentation on the config + file format. + + * jhbuild/utils/httpcache.py (Cache.read_cache): only add items to + the cache index if the actual file exists. + + * doc/custom.xsl: some XSLT customisations. + + * doc/jhbuild.css: some simple CSS to make the documentation look + a bit nicer. + + * doc/jhbuild.xml: add some FAQs to the documentation. + +2004-11-17 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/freedesktop.modules: + * modulesets/gnome-2.10.modules: + + More supports-non-srcdir-builds adjustements + +2004-11-17 Richard Hult <richard@imendio.com> + + * modulesets/gnome28.modules: Use gnome-2-8 branch for atk. + +2004-11-16 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome28.modules: gnome-icon-theme branched. + And so did gok, gnome-media and librsvg. + +2004-11-15 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome28.modules: Add branch info for libbonobo, + libbonoboui, libgtop, procman and bug-buddy. + +2004-11-15 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/gnome-2.10.modules: + + Add a bunch of supports-non-srcdir-builds. I reported bugs + for all of them, so I'll remove it when they are fixed. + +Thu Nov 11 17:30:56 2004 Jonathan Blandford <jrb@redhat.com> + + * modulesets/freedesktop.modules: Make Xtst depend on RecordExt. + +2004-11-10 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (vino): use gnome-2-8 branch. + (gnome-session): use the gnome-2-8 branch. + + * modulesets/gnome26.modules (libgpg-error, libgcrypt, gnutls): + same here. + + * modulesets/gnome28.modules (libgpg-error, libgcrypt, gnutls): + same here. + + * modulesets/gnome-2.10.modules (libgpg-error, libgcrypt, gnutls): + update to latest versions. + + * jhbuild/modtypes/tarball.py (parse_tarball): add a hack to + remove --enable-maintainer-mode, since a tarball might not include + everything needed to compile in maintainer mode. + +2004-11-09 Mark McLoughlin <mark@skynet.ie> + + * jhbuild/config.py: define $XDG_CONFIG_DIR + + * modulesets/gnome-2.10.modules: add gnome-menus and make + gnome-panel depend on it. + +2004-11-08 Anders Carlsson <andersca@gnome.org> + + * modulesets/gnome28.modules: + Use gnome-2-8 branch for gnome-libs. + +2004-11-08 Federico Mena Quintero <federico@ximian.com> + + * jhbuild/commands/sanitycheck.py (do_sanitycheck): Remove the + "version" bit from the db2html regex, to make it work on NLD9 and + probably other SuSE derivatives. + +2004-11-05 Mariano Suárez-Alvarez <mariano@gnome.org> + + * modulesets/gnome28.modules (gnome-terminal): grab the gnome-2-8 branch. + +2004-11-03 JP Rosevear <jpr@novell.com> + + * modulesets/gnome-2.10.modules: make e-d-s depend on libgnomeui + for libedataserverui + +2004-11-03 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (gnome-vfs, eel, nautilus): use the + gnome-2-8 branch. Fixes bug #156944. + + * modulesets/gcj.modules (java-gnome): move "gcj" from + <dependencies> to <suggests> so that you can build java-gnome + without gcj but if you build both they will go in the right order. + Fixes bug #157181. + +2004-10-30 Luis Villa <louie@novell.com> + + * modulesets/gnome-2.10.modules (gnome-applets): add dependency on + gucharmap + +2004-10-29 Luis Villa <louie@novell.com> + + * modulesets/gnome-2.10.modules (gnome-media): add dependency on + nautilus-cd-burner + +2004-10-28 James Henstridge <james@jamesh.id.au> + + * modulesets/freedesktop.modules (hicolor-icon-theme): does not + support non-srcdir builds (fixes bug #156619). + + * modulesets/gnome28.modules (audiofile): same here. + + * modulesets/gnome-2.10.modules (audiofile): does not support + non-srcdir builds (fixes bug #156608). + + * modulesets/gcj.modules (java-gnome): does not support non-srcdir + builds (from bug #156555). + +2004-10-27 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (gnome-desktop): grab gnome-2-8 + branch. + + * modulesets/gcj.modules (java-gnome): use the correct gnome.org + CVS root. Fixes bug #156111. + (include): include the gnome-2.10 module set. Patch from Thomas + Fitzsimmons (bug #156555). + + * modulesets/gnome-2.10.modules (librsvg): same here. + + * modulesets/gnome28.modules (librsvg): depend on + libgnomeprintui. Fixes bug #155529. + +2004-10-26 James Henstridge <james@jamesh.id.au> + + Should fix bug #137469. + + * modulesets/bootstrap.modules (libtool): apply the new patch. + + * patches/libtool-1.5.10-deplibs-in-conv.patch: new patch from + Scott that fixes up some problems with multiple versions of a + library in the search path. This fixes up parallel install and + $DESTDIR install problems. + +2004-10-25 James Henstridge <james@jamesh.id.au> + + * doc/jhbuild.xml: flesh out the command reference section. + +2004-10-24 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome-2.10.modules: (xchat): + * modulesets/gnome28.modules: (xchat): update to 2.4.0 release + +Sat Oct 23 23:52:53 2004 Jonathan Blandford <jrb@redhat.com> + + * modulesets/gnome28.modules: branch libglade + +2004-10-22 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome28.modules: (gnome-utils): use gnome-2-8 + branch. + +Thu Oct 21 15:23:04 2004 Owen Taylor <otaylor@redhat.com> + + * modulesets/freedesktop.modules: Add RecordExt, lightpipe. + +2004-10-18 James Henstridge <james@jamesh.id.au> + + * vbs-head.jhbuildrc: same here. + + * sample.jhbuildrc: update comment to reflect that default is + gnome-2.10. + + * jhbuild/defaults.jhbuildrc (moduleset): change default moduleset + to gnome-2.10. + +2004-10-15 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (gnome-control-center): use gnome-2-8 + branch. This also fixes a related libxklavier/libgswitchit + incompatibility (bug #155057). + +2004-10-14 Paolo Borelli <pborelli@katamail.com> + + * modulesets/gnome28.modules (gedit): use gedit-2-8 branch. + +2004-10-14 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/svnmodule.py (parse_svnmodule): fix up checking + of module specific autogen and make args. + +2004-10-13 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/terminal.py (TerminalBuildScript.format_line): + fix bug where normal lines weren't getting printed when outputting + pretty printed CVS output. + +2004-10-12 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (evolution-webcal): use gnome-2-8 + branch. Fixes bug #155153. + + * modulesets/gnome-2.10.modules: remove a few gnome-2-8 branch tags. + + * modulesets/gnome28.modules (metacity): use gnome-2-8 branch. + +2004-10-11 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome28.modules: use the gnome-2-8 + branch for gnome-panel. + +2004-10-07 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome28.modules (gconf-editor): branched for gnome-2-8 + +2004-10-05 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (gnome-applets): use gnome-2-8 branch. + + * modulesets/gnome26.modules (libxklavier): same here. + + * modulesets/gnome28.modules (libxklavier): include here, picking + the 1.0x branch. + + * modulesets/gnome-2.10.modules (libxklavier): actually, move + libxklavier here ... + + * modulesets/freedesktop.modules (libxklavier): switch to the 1.0x + branch for now. + +2004-10-04 James Henstridge <james@jamesh.id.au> + + * jamesh.jhbuildrc (moduleset): switch to 2.10 moduleset. + + * modulesets/bootstrap.modules (automake-1.9): update to 1.9.2. + (libtool): update to 1.5.10, remove obsolete libtool.m4-x86_64 + patch. + +2004-10-01 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.__init__): + set $TERM to dumb, to suppress vt100 escape sequences from things + like autogen.sh. + + * jhbuild/utils/cmds.py (execute_pprint): suppress + KeyboardInterrupt when reading from the child process. + + * jhbuild/utils/trayicon.py (TrayIcon._run_zenity): do a manual + fork+exec rather than using os.popen(), so we can disassociate the + zenity process from the controlling terminal (so it doesn't get + killed by a ctrl+C. + + * jhbuild/frontends/terminal.py (phase_map): base the icon choices + on the phase name rather than the action text. These are a bit + more regular and won't have translation issues, should jhbuild + ever be internationalised. + (TerminalBuildScript.start_phase): set the icon on the start of a + phase. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.end_phase): + in the index page, make the build phase status messages into links + to the appropriate parts of the build log. + +2004-09-30 Jon K Hellan <hellan@acm.org> + + * modulesets/gnome-2.10.modules, modulesets/gnome28.modules: + Remove autogenargs for gnumeric. The defaults suck in everything + they can. + +2004-10-01 James Henstridge <james@jamesh.id.au> + + * jhbuild/frontends/tinderbox.py: lots of changes to format the + build log as HTML. This gives nicer output, and will allow + linking to a particular phase of a build through named anchors. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.format_line): + fix up for new execute_pprint(). + + * jhbuild/utils/cmds.py (execute_pprint): change over to a simpler + implementation using popen2. This doesn't look like a terminal to + the process being run, but it should be less error prone on weird + platforms. + +2004-09-30 James Henstridge <james@jamesh.id.au> + + Implements the feature mentioned in bug #151004. Davyd Madeley's + code was used as a base, but the implementation uses Zenity. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.__init__): + create a trayicon when running in terminal mode. + (TerminalBuildScript.message): set tooltip of trayicon to the + message. + (TerminalBuildScript.set_action): set an image for the trayicon + corresponding to the build state. + (TerminalBuildScript.handle_error): show an error image in the + trayicon. + + * jhbuild/utils/trayicon.py (TrayIcon): simple wrapper for a + zenity based tray icon. + + * modulesets/freedesktop.modules: move shared-mime-info and + desktop-file-utils from here to gnome26.modules, gnome28.modules + and gnome-2.10.modules to resolve the dependency issues with + intltool and glib. + + * modulesets/gnome28.modules, modulesets/gnome-2.10.modules: + change to the other solution for the build failure in + gnome-doc-utils: build xml2po separately before hand. + + * modulesets/gnome-2.10.modules (gpdf): same here. + (gnome-doc-utils): same here. + + * modulesets/gnome28.modules (gpdf): depend on libgnomeprintui. + Fixes bug #151966. + (gnome-applets): depend on gstreamer. Fixes bug #152496. + (gnome-doc-utils): disable build utils, based on suggestion from + shaunm. Fixes bug #153633. + + * jhbuild/utils/cvs.py (CVSRoot.update): check to see whether the + working copy root is pointed at the expected CVS root. This + should detect the problem reported as bug #153539. + + * jhbuild/commands/info.py (do_info): print info about arch + modules too. + + Patches bug #145398: + + * modulesets/gcj.modules: import Thomas Fitzsimmons's GCJ jhbuild + module defintions. + + * jhbuild/modtypes/gdbmodule.py: import Thomas Fitzsimmons's GDB + module type. + + * jhbuild/modtypes/gcjmodule.py: import Thomas Fitzsimmons's GCJ + module type. + + Should fix bug #145394. + + * jhbuild/modtypes/tarball.py (parse_tarball): same here. + + * jhbuild/modtypes/mozillamodule.py (parse_mozillamodule): same + here. + + * jhbuild/modtypes/archmodule.py (parse_archmodule): same here. + + * jhbuild/modtypes/svnmodule.py (parse_svnmodule): same here. + + * jhbuild/modtypes/base.py (parse_cvsmodule): make the + module_autogenargs replace the global autogenargs instead of the + ones defined in the moduleset. Same for makeargs. + (AutogenModule): since self.autogenargs and self.makeargs now + include the global options too, don't explicitly include them. + + * README: update to indicate that tla is only needed to build + modules managed with Arch. + + * modulesets/gnome-2.10.modules (rhythmbox): same here. + + * modulesets/gnome28.modules (rhythmbox): add this back, and + change revision attribute to version. + + * jhbuild/modtypes/archmodule.py (parse_archmodule): lookup the + full "archive/category--branch--version" string in the + config.branches directory, since if people are overriding the + location, they are probably overriding the fully specified one. + + * jhbuild/moduleset.py (_parse_module_set): don't register arch + archives, and get rid of the config.arch_archives dictionary, + since it doesn't really add much above tla's internal archive + registration method. + + * modulesets/gnome-2.10.modules: rename from gnome210.modules. + +2004-09-29 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome28.modules: Use the pango-1-6 branch. + +Mon Sep 27 01:36:07 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome210.modules: add a yelp dependency on mozilla. + +2004-09-26 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Use glibmm-2-4 branch. + +2004-09-23 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome210.modules: make gnome-applets to depend + on gstreamer (for the new volume applet). + +2004-09-18 Elijah Newren <newren@math.utah.edu> + + * modulesets/gnome28.modules: Malcom forgot gal; make sure it uses + the right branch too. + +2004-09-18 Shaun McCance <shaunm@gnome.org> + + * modulesets/gnome28.modules: + - Removed the gnome-doc-utils dependency from yelp + +2004-09-17 Malcolm Tredinnick <malcolm@commsecure.com.au> + + * modulesets/gnome28.modules: Use the right branches for evolution, + evolution-data-server and gtkhtml. + +2004-09-15 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome28.modules: Use "oldstatus" branch for gaim + (ie: 1.0 branch) + +2004-09-14 Calum Benson <calum.benson@sun.com> + + * modulesets/gnome28.modules: + + Use gnome-2-8 branch for gnome-themes. + +2004-09-14 Carlos Garnacho Parro <carlosg@gnome.org> + + * modulesets/gnome28.modules: use gnome-2-8 branch for + gnome-system-tools + +2004-09-14 Vincent Untz <vincent@vuntz.net> + + * modulesets/gnome28.modules: use gnome-2-8 branch for epiphany and + epiphany-extensions + +2004-09-12 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome28.modules: + - Gnome 2.8 uses Yelp 2.6, not HEAD + +2004-09-12 Shaun McCance <shaunm@gnome.org> + + * modulesets/gnome28.modules: + - Gnome 2.8 uses Yelp 2.6, not HEAD + +2004-09-06 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules, gnome210.modules: Add evolution-webcal + to meta-gnome-desktop. + +2004-09-06 James Henstridge <james@jamesh.id.au> + + * jhbuild/moduleset.py (ModuleSet.get_module_list): fix spelling + error in error message (pointed out by Jeff Waugh). + +2004-09-04 Murray Cumming <murrayc@murrayc.com> + + * modules/gnome28.modules: re-added gnome-mime-data as a dependency of + gnome-vfs because we apparently still need it for now. + +2004-09-03 Murray Cumming <murrayc@murrayc.com> + + * modules: Added gnome210.modules, so I can build a GNOME that uses + GTK+ 2.6. + +2004-09-03 Johan Dahlin <johan@gnome.org> + + * jhbuild/modtypes/svnmodule.py (parse_svnmodule): assert if we + don't have an svnroot + + * jhbuild/utils/svn.py (SVNRoot.checkout): Don't append checkout + dir twice. + +2004-09-02 James Henstridge <james@jamesh.id.au> + + * jhbuild/commands/sanitycheck.py (do_sanitycheck): don't check + to see if automake-1.6 is installed. + + * modulesets/bootstrap.modules: remove automake-1.6. + +2004-09-02 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules, gnome26.modules: Use gtkmm-2-4 branch of + gtkmm. + +2004-09-01 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Added gnome-volume-manager to + meta-gnome-desktop. + +da2004-09-01 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Added evolution, gnome-system-tools, + gnome-nettools, and vino to meta-gnome-desktop. These are new modules + in GNOME 2.8. + +2004-08-31 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (gnopernicus): use gnome-2-8 branch. + + * modulesets/gnome1.modules: + * modulesets/gnome20.modules: + * modulesets/gnome22.modules: remove ancient modulesets, since + they don't build anymore due to CVS modules being moved to + /cvs/archive. If anyone cares, they should be able to resurrect + these modulesets. + + * modulesets/gnome26.modules (gnutls): update to 1.0.20. + + * modulesets/gnome28.modules (gnutls): update to 1.0.20. + + * jhbuild/commands/sanitycheck.py (do_sanitycheck): perform + sanitychecks on Automake 1.9 too. + + * modulesets/bootstrap.modules (automake-1.9): update to 1.9.1. + + * modulesets/gnome28.modules (vino): add a dependency on gnutls. + Fixes bug #150928. + + * modulesets/gnome26.modules, gnome28.modules (intltool): depend + on gnome-common for the autogen script. Patch from bug #151189 by + Scott Tsai <scottt958@yahoo.com.tw>. + +2004-08-30 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Add e-d-s dependency to gnome-panel. + +2004-08-29 Manish Singh <yosh@gimp.org> + + * jhbuild/utils/arch.py + * jhbuild/utils/cvs.py + * jhbuild/utils/svn.py: fix a few ytpos and cut'n'paste thinkos. + +2004-08-26 JP Rosevear <jpr@novell.com> + + * modulesets/gnome28.modules: update soup branch + +2004-08-24 Calum Benson <calum.benson@sun.com> + + * modulesets/gnome28.modules: + + Build gnome-2-8 branch of gcalctool (which doesn't have + the new operator precedence features). + +2004-08-19 Tuomas Kuosmanen <tigert@novell.com> + + * README (command): Added mention about gnu-arch requirement to + help users like me! :) with the wtf?-syndrome when jhbuild wouldnt + work at all unless "tla" (gnu-arch) is installed.. Feel free to + edit better, sorry to commit without your knowledge, but I couldnt + find you online and this seemed like an acute issue. + +2004-08-17 James Henstridge <james@jamesh.id.au> + + Based on patch on bug 145393 by Thomas Fitzsimmons: + + * jhbuild/config.py (prependpath): function to store path values + that will be prepended to various environment variables after + jhbuild has prepended its values. + (Config.setup_env): process the prepend values. + +2004-08-17 Christophe Fergeau <teuf@gnome.org> + + * modulesets/gnome26.modules: + * modulesets/gnome28.modules: use latest gnutls and opencdk versions + +2004-08-11 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome28.modules (gnome-volume-manager): add + gnome-volume-manager. Patch from Darren Adams + <darrenadams@dsl.pipex.com> in bug #149067. + + * jhbuild/frontends/tinderbox.py + (TinderboxBuildScript.start_module): sanitize the module name for + use as a filename. Patch from Olav Vitters + <bugzilla-gnome@bkor.dhs.org> in bug #148959. + + * modulesets/bootstrap.modules (libtool): update to 1.5.8 + (automake-1.9): add package. + +2004-08-09 Thomas Vander Stichele <thomas at apestaart dot org> + + * modulesets/gnome24.modules: + * modulesets/gnome26.modules: + * modulesets/gnome28.modules: + remove disable-plugin-builddir from gst-plugins + +2004-08-09 Thomas Vander Stichele <thomas at apestaart dot org> + + * jhbuild/frontends/buildscript.py: + create prefix and checkoutdir if they don't exist yet + +2004-08-05 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/archmodule.py (ArchModule.__init__): I got rid + of the archmodule local here. + + * jhbuild/moduleset.py (_parse_module_set): fix up some errors in + parsing <arch-archive> elements. + + * modulesets/gnome28.modules (rhythmbox): Switch over to Arch archive. + + * jhbuild/utils/arch.py (ArchArchive.update): forgot to update + this after renaming get_branch to get_revision. + (ArchArchive.get_revision): fix up a typo. + +2004-08-04 Mikael Hallendal <micke@imendio.com> + + * modulesets/gnome26.modules: Use gnome-2-6 for libgail-gnome + +2004-08-02 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome28.modules: Make libgnomeprint + depend on libgnomecups. + +2004-08-01 Rodrigo Moya <rodrigo@gnome-db.org> + + * modulesets/gnome28.modules: Added gnome-nettool module. + +2004-07-30 Anders Carlsson <andersca@gnome.org> + + * modulesets/gnome28.modules: Remove gnome-mime-data. + +2004-07-30 Mikael Hallendal <micke@imendio.com> + + * modulesets/gnome26.modules: use gnome-2-6 for metacity + +2004-07-30 James Henstridge <james@jamesh.id.au> + + * modulesets/moduleset.{rnc,dtd}: update schemas to match. + + * jhbuild/modtypes/archmodule.py: new module type. + + * jhbuild/config.py, jhbuild/defaults.jhbuildrc: add arch_archives + config dictionary. + + * jhbuild/moduleset.py (_parse_module_set): add support for + <arch-archive> elements. Change the <svnroot> "root" attribute to + "href". + + * jhbuild/utils/arch.py: some helper functions for working with + Arch working copies. + + * modulesets/moduleset.{dtd,rnc}: change the svnroot attribute of + <svnmodule> to root. + + * jhbuild/moduleset.py (_parse_module_set): rather than just + passing in the root as a string, pass a (roottype, root) tuple, so + that we can pick up errors where a CVS root is passed to + <svnmodule> + + * jhbuild/modtypes/svnmodule.py (SVNModule): derive from + AutogenModule, and remove all the code that was in common with + CVSModule. + + * jhbuild/modtypes/base.py (AutogenModule, CVSModule): split + CVSModule into two classes. All the generic code is in + AutogenModule, and then CVSModule adds the CVS specific code. + + * jhbuild/modtypes/svnmodule.py (SVNModule.get_builddir): + s/self.module/self.svnmodule/. + +2004-07-29 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome26.modules (meta-gnome-desktop): same here. + + * modulesets/gnome28.modules (nautilus-vcs): add module def. + (meta-gnome-devel-tools): add nautilus-vcs. + (meta-gnome-desktop): explicitly list libgail-gnome as a dep since + nothing else in the desktop has a build time dependency on it. + + * jhbuild/commands/info.py (do_info): show information about + Subversion modules. + + * jhbuild/modtypes/svnmodule.py (SVNModule.__init__): If no + checkout dir is given, set module name to the basename of + svnmodule rather than svnmodule. + (parse_svnmodule): there is no revision. + +2004-07-26 James Henstridge <james@jamesh.id.au> + + * jhbuild/moduleset.py (_parse_module_set): put Subversion roots + and CVS roots in the same namespace as far as lookups go. Fixes + problems building Mozilla. Fixes bug #148338. + +2004-07-22 Keith Packard <keithp@keithp.com> + + * modulesets/freedesktop.modules: add Xpm to Xaw dependency set + +2004-07-22 Crispin Flowerday <gnome@flowerday.cx> + + * modulesets/gnome26.modules: Use gnome-2-6 branch for eel + +2004-07-22 JP Rosevear <jpr@novell.com> + + * modulesets/bootstrap.modules: fix python directory for 2.3.4 + +2004-07-22 Xavier Ordoquy <xordoquy@linovia.com> + + * modulesets/freedesktop.modules: + Typo: XExt should be Xext in Xtst module. + +Wed Jul 21 22:24:38 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/freedesktop.modules: add desktop-file-utils + dependency. + +2004-07-20 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome28.modules: Add gnome-keyring-manager + +2004-07-20 James Henstridge <james@jamesh.id.au> + + * modulesets/gnome26.modules: + * modulesets/gnome28.modules (gnome-system-tools): fix + dependencies. Patch from Jaap A. Haitsma <jaap@haitsma.org> in + bug #147816. + + * jhbuild/utils/svn.py (SVNRoot.update): add support for switching + a working copy to a different URI if it isn't pointing at the + right place. + +2004-07-20 James Henstridge <james@jamesh.id.au> + + Based on patch from Christian Hammond <chipx86@gnupdate.org> in + bug #145159. + + * modulesets/moduleset.dtd, modulesets/moduleset.rnc: add handling + of extra elements to schemas. + + * jhbuild/modtypes/svnmodule.py: code for handling builds of + Subversion hosted modules. + + * jhbuild/config.py (_known_keys): grab svnroots from config file. + + * jhbuild/utils/svn.py: utility functions for subversion + manipulating working copies. + + * jhbuild/moduleset.py (_parse_module_set): parse svnroot + elements. + +2004-07-20 James Henstridge <james@jamesh.id.au> + + * modulesets/freedesktop.modules: some changes from Daniel minus + the debrix ones (will need to wait til jhbuild supports Arch). + (from bug #144230). + + * modulesets/bootstrap.modules (python): update to Python 2.3.4. + + * modulesets/gnome28.modules (meta-storage): add storage modules + (from bug #144254). + + * modulesets/gnome26.modules (audiofile): update to 0.2.6. + + * modulesets/gnome28.modules (libgnomeprintui): add dependency on + gnome-icon-theme (fixes bug #144945). + (audiofile): update to 0.2.6. + + * jhbuild/modtypes/tarball.py (Tarball.get_srcdir): don't use + get_localfile() in implementation, since config.tarballdir might + not be the same as checkoutroot (fixes bug #144994). + (Tarball.do_download): make sure tarballdir exists before + downloading (fixes bug #145460). + +2004-07-12 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome28.modules: add vino. + + * modulesets/freedesktop.modules: xserver requires xkbfile. + +2004-07-04 Murray Cumming <murrayc@murrayc.com> + + * Patch in #145397 from Thomas Fitzsimmons to add + supports-non-srcdir-builds to some modules. + +2004-06-24 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: glom: Add dependency on libgnome. + +2004-06-24 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Use HEAD for pango. + +2004-06-18 Mikael Hallendal <micke@imendio.com> + + * modulesets/gnome26.modules: Use gnome-2-6 branch of gail. + +2004-06-12 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/tarball.py (Tarball.get_builddir): same here. + + * jhbuild/modtypes/base.py (CVSModule.get_builddir): use + builddir_pattern to generate builddir name. + + * jhbuild/defaults.jhbuildrc (builddir_pattern): default + builddir_pattern to '%s'. + + * jhbuild/config.py (_known_keys): add builddir_pattern key. + +2004-06-11 James Henstridge <james@jamesh.id.au> + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.checkout): use + self.CVSRoot. + + * jhbuild/modtypes/base.py (parse_cvsmodule): pass CVSModule as a + keyword argument, so that other similar module types can make use + of this function. + (CVSModule): add global attribute CVSRoot, set to cvs.CVSRoot. + (CVSModule.do_checkout): use self.CVSRoot instead of cvs.CVSRoot. + (CVSModule.do_force_checkout): same here. + + * modulesets/gnome26.modules (gnome-desktop): require + scrollkeeper (fixes bug #143515). + + * modulesets/gnome28.modules (gnome-desktop): require + scrollkeeper (fixes bug #143515). + + * modulesets/freedesktop.modules (xkbfile): add module. Fixes bug + #144024. + (xtrans): grab the XTRANS-0_1-RELEASE tag, as suggested in bug + #143670. + +2004-06-11 Daniel Elstner <daniel.elstner@gmx.net> + + * modulesets/gnome2[68].modules (gnomemm/gtkmm_hello): New module. + +2004-06-11 Daniel Elstner <daniel.elstner@gmx.net> + + * modulesets/gnome2[68].modules (regexxer): Add dep on intltool. + +2004-06-10 James Henstridge <james@jamesh.id.au> + + * modulesets/moduleset.dtd: update DTD. + + * modulesets/moduleset.rnc: update RELAX-NG schema. + + Based on a patch from Thomas Fitzsimmons: + + * jhbuild/modtypes/tarball.py (Tarball.__init__): add makeargs + argument. + (Tarball.do_build): use makeargs if set. + (Tarball.do_install): same. + (parse_tarball): parse makeargs attribute. + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.__init__): add + makeargs argument. + (parse_mozillamodule): parse makeargs attribute. + + * jhbuild/modtypes/base.py (CVSModule.__init__): add makeargs + argument. + (CVSModule.do_clean): use module local makeargs if set. + (CVSModule.do_build): same. + (CVSModule.do_check): same. + (CVSModule.do_install): same. + (parse_cvsmodule): allow module local makeargs. + + * jhbuild/defaults.jhbuildrc (module_autogenargs): default key to + an empty dictionary. + + * jhbuild/config.py (_known_keys): add 'module_makeargs' key. + +2004-06-04 James Henstridge <james@daa.com.au> + + * modulesets/moduleset.rnc: same changes here. + + * modulesets/moduleset.dtd: update DTD for + supports-non-srcdir-builds attribute on cvsmodule and tarball + elements. + + * jhbuild/modtypes/tarball.py (Tarball.__init__): add + supports_non_srcdir_builds property. + (Tarball.get_builddir): check supports_non_srcdir_builds property. + (Tarball.do_configure): check supports_non_srcdir_builds property. + (parse_tarball): parse supports-non-srcdir-builds attribute in + XML. + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.__init__): set + supports_non_srcdir_builds to False. + + * jhbuild/modtypes/base.py (CVSModule.__init__): add + supports_non_srcdir_builds property. + (CVSModule.get_builddir): if not supports_non_srcdir_builds, then + don't return a separate builddir. + (CVSModule.do_configure): check supports_non_srcdir_builds property. + (parse_cvsmodule): parse supports-non-srcdir-builds attribute in + XML. + +2004-06-10 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome26.modules: A lot of modules + have branched. + +2004-06-08 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Added glom. + +2004-06-06 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome26.modules: Use gnome-2-6 branch for libgnomeuimm. + +2004-06-05 Davyd Madeley <davyd@ucc.asn.au> + + * contrib/jhbuild_completion.bash: + - Added -c option. + - Prevented tab completion from inadvertantly executing the GNU info + system. + +2004-06-05 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Added gnome-doc-utils and added it as + a dependency for yelp. + +2004-06-03 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/gnome28.modules: + + Epiphany now requires mozilla 1.7 + +Sat May 29 20:53:33 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome26.modules: change pango to use the 1.4 branch. + * modulesets/gnome28.modules: ditto + +Sat May 29 20:13:05 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome28.modules: add dasher to + meta-gnome-accessibility. + +Mon May 24 16:53:14 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome26.modules: update libgnetwork here as well + +Mon May 24 15:38:14 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome28.modules: libgtcpsocket is dead. long live + libgnetwork. or something. + +2004-05-20 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome26.modules, + modulesets/gnome28.modules: update libtasn1 to + 0.2.10 since they seem to delete the old releases + when a new one comes out. + +2004-05-20 James Henstridge <james@daa.com.au> + + * HACKING: add a file outlining cases when people can commit + without approval. This just codifies existing practice. + + * modulesets/bootstrap.modules (python): compile with the + "--enable-shared" configure flag, so that it produces a shared + library. + +Wed May 19 14:30:03 2004 Jonathan Blandford <jrb@redhat.com> + + * jhbuild/modtypes/mozillamodule.py (MozillaModule.get_builddir): + remove extraneous 'self' call to get_srcdir + +2004-05-19 James Henstridge <james@daa.com.au> + + * modulesets/bootstrap.modules (automake-1.8): update to 1.8.5. + + * jhbuild/modtypes/tarball.py (Tarball.do_configure): fix up some + breakage in tarball builds caused by yesterday's patch. + + * modulesets/gnome26.modules (procman): use gnome-2-6 branch. + +2004-05-18 James Henstridge <james@daa.com.au> + + * jhbuild/modtypes/__init__.py: don't import tarball and mozilla + modules -- instead let them be discovered as needed. + + * jhbuild/modtypes/mozillamodule.py: rename from mozilla.py + + * jhbuild/modtypes/base.py (parse_xml_node): if the module type is + unknown, try to import a module in the jhbuild.modtypes package by + the same name first. + + Based on Thomas Fitzsimmons' GCJ patch (this isn't a complete + merge). + + * jhbuild/modtypes/mozilla.py (MozillaModule.get_builddir): don't + bother supporting srcdir != builddir here. + + * jhbuild/modtypes/tarball.py (Tarball.get_builddir): fix up for + srcdir != builddir installs. + (Tarball.do_unpack): check if srcdir exists after unpacking, + rather than builddir. + (Tarball.do_patch): apply patches in srcdir + (Tarball.do_configure): handle srcdir!=builddir case + + * jhbuild/modtypes/base.py (Package.get_srcdir): add function. + (CVSModule.get_srcdir): implement for CVSModule. + (CVSModule.get_builddir): respect config.builddir, if set. + (CVSModule.do_checkout): use the srcdir for checkout. + (CVSModule.do_force_checkout): same here. + (CVSModule.do_configure): if srcdir != builddir, create the + builddir, and don't assume autogen.sh is in the local directory. + + * jhbuild/defaults.jhbuildrc (builddir): default builddir to None. + + * jhbuild/config.py (_known_keys): add builddir to list of + recognised keys. + +2004-05-18 Davyd Madeley <davyd@ucc.asn.au> + + * contrib/jhbuild_completion.bash: Make the completion still work if + you specify -a or -n. + +2004-05-18 James Henstridge <james@daa.com.au> + + * scripts/gnome-2.6.exceptions: information about some modules + required to build Gnome 2.6.x that aren't in the source dir. + + * scripts/gnome-2.6.deps: dependencies for Gnome 2.6.x. Not + complete. + + * scripts/mk-tarball-moduleset.py: a script for generating a + module set from a list of dependencies, a directory containing the + sources and a base URI where the sources are available. + + * scripts/changecvsroot.py: move this script here. Change + arguments so that you need to specify the old CVS root as well as + the new CVS root, so that it can be used to update mixed working + copies. + +2004-05-17 Daniel Elstner <daniel.elstner@gmx.net> + + * modulesets/gnome28.modules (regexxer): Remove the cvsroot + specification for regexxer since it's now on cvs.gnome.org. + + * modulesets/gnome2[68].modules (regexxer): Add dependency + on gnomemm/libglademm. Remove dependency on gnomemm/gnome-vfsmm. + +2004-05-17 Davyd Madeley <davyd@ucc.asn.au> + + * contrib/jhbuild_completion.bash: add license header to file. + +2004-05-17 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (libglade): update revision in module + set. + +2004-05-16 Davyd Madeley <davyd@ucc.asn.au> + + * contrib/: Added in order to store contributions to jhbuild. + * contrib/jhbuild_completion.bash: Bash tab completion for jhbuild. + Simply source the file into your bashrc. Currently depends on having + functions from the standard bash completion sourced (_command and + _filedir). Closes #142612. + +2004-05-15 Daniel Elstner <daniel.elstner@gmx.net> + + * modulesets/gnome26.modules (libxml++): Use LIBXMLPP_BRANCH_2_6. + +2004-05-13 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules: use gnome-2-6 branch for + gnome-desktop, gnome-panel and gnome-session. + +2004-05-12 Daniel Elstner <daniel.elstner@gmx.net> + + * modulesets/gnome2[24].modules (regexxer): Add gnomemm/libglademm + to the list of dependencies. + +2004-05-09 Thomas Vander Stichele <thomas at apestaart dot org> + + * modulesets/gnome26.modules: + use the 2.6 branch of gnome-media + +2004-05-08 Daniel Elstner <daniel.elstner@gmx.net> + + * modulesets/gnome2[0246].modules (regexxer): Remove the cvsroot + specification for regexxer since it's now on cvs.gnome.org. Supply + the correct revision for the gnome20/gnome22/gnome24 modulesets. + +2004-05-05 James Henstridge <james@daa.com.au> + + * jamesh.jhbuildrc, sample.jhbuildrc, vbs-head.jhbuildrc: move to + gnome28 moduleset. + +2004-05-04 Matthias Clasen <mclasen@redhat.com> + + * modulesets/gnome28.modules: + * modulesets/gnome26.modules: Use the 2.4 branches of GLib + and GTK+ for Gnome 2.6 and 2.8. + +2004-05-03 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (evolution-webcal): + * modulesets/gnome28.modules (evolution-webcal): add new module. + Based on patch from Trent Lloyd <lathiat@bur.st> on bug #141087. + + * modulesets/gnome28.modules: libgnomeprintuimm requires + libgnomeprintmm. + + * modulesets/*.modules: use nxml-mode instead of xml-mode (psgml). + + * modulesets/schemas.xml: add file to map moduleset.rnc to the + modules file for nxml-mode. + + * modulesets/moduleset.rnc: Relax-NG schema for module sets. + +2004-05-03 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules, gnome26.modules: Make libgnomeuimm depend + on gnome-vfsmm. + +2004-05-02 Anders Carlsson <andersca@gnome.org> + + * modulesets/gnome26.modules: Use gnome-2-6 for libgnome* + +2004-04-30 James Henstridge <james@daa.com.au> + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): if + not pretty_print, don't try to syntax highlight output. + + * jhbuild/config.py (_known_keys): add pretty_print option, that + defaults to True. + +2004-04-29 James Henstridge <james@daa.com.au> + + * modulesets/freedesktop.modules (hicolor-icon-theme): add MD5 + sum. + + * modulesets/gnome28.modules: same updates as in gnome26. + + * modulesets/gnome26.modules (scrollkeeper, audiofile, + gnutls+friends, xchat, camorama): add MD5 sums to tarball entries. + + * modulesets/moduleset.dtd: update DTD for md5sum attribute on + <source> elements. + + * modulesets/bootstrap.modules: add MD5 sums to all bootstrap + modules. + + * jhbuild/modtypes/tarball.py (Tarball.get_localfile): new method + to get the location of the local filename for the tarball. Use + config.tarballdir instead of checkoutroot. + + * jhbuild/config.py: add tarballdir config key that defaults to + checkoutroot. + +2004-04-28 James Henstridge <james@daa.com.au> + + * jhbuild/modtypes/tarball.py (Tarball.__init__): add md5 + attribute. + (Tarball.check_localfile): move download verification stuff here. + (Tarball.do_download): use check_localfile() to check result of + download. + +2004-04-26 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome26.modules (eog): use gnome-2-6 branch. + +2004-04-26 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome26.modules: + use gnome-2-6 branches for libgnomeprint(ui). + +2004-04-24 James Henstridge <james@daa.com.au> + + * jhbuild/config.py (Config.setup_env): fix up error when we can't + create the prefix. Fix from Vee Satayamas <veetai@yahoo.com> + (from bug #140999). + +2004-04-23 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (libcroco): use gnome-2-6 branch + (fixes bug 140797). + +2004-04-20 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (gnome-icon-theme): use gnome-2-6 branch. + (atk): use gnome-2-6 branch. + (gnome-keyring): use gnome-2-6 branch. + (gnome-control-center): use gnome-2-6 branch. + (gtksourceview): use gnome-2-6 branch. + +2004-04-18 James Henstridge <james@daa.com.au> + + * jhbuild/main.py (main): add a -m argument to override the + moduleset on the command line. Based on ideas from a patch by + Mark McLoughlin <mark@skynet.ie>. + +2004-04-14 James Henstridge <james@daa.com.au> + + * jhbuild.py: remove this file, since it wasn't being used + anymore. After two months, most people should have seen the + message. + +2004-04-13 David Bolter <david.bolter@utoronto.ca> + + * modulesets/gnome26.modules (gok): set branch to gnome-2-6. + +2004-04-13 Fernando Herrera <fherrera@onirica.com> + + * modulesets/gnome26.modules (bug-buddy): set branch to gnome-2-6. + +2004-04-12 James Henstridge <james@daa.com.au> + + * patches/libtool-1.4.2-multilib.patch: + * patches/libtool-1.5.4-ltmain-SED.patch: update patches from + latest Fedora devel RPM. + + * modulesets/bootstrap.modules: update to libtool-1.5.6. + + * modulesets/gnome26.modules (gconf-editor): set branch to gnome-2-6. + + * jhbuild/modtypes/base.py (CVSModule.do_check): add check phase + for running test suites on modules. + + * jhbuild/config.py (_known_keys): add a makecheck config key. + + * jhbuild/modtypes/base.py (CVSModule.do_start): if makeclean, + then go to stage clean (if we aren't running checkout or + configure). + (CVSModule.do_checkout): check if makeclean is set. + (CVSModule.do_clean): add clean state. + +2004-04-10 James Henstridge <james@daa.com.au> + + * jhbuild/main.py (help): add some help text. + + * jhbuild/commands/info.py (do_info): add a "jhbuild info" routine + that prints some information about a module. + +2004-04-10 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome26.modules: Use gnome-2-6 branch for file-roller. + +2004-04-10 James Henstridge <james@daa.com.au> + + * modulesets/gnome28.modules: same changes here. + + * modulesets/gnome26.modules: add rules to build gnutls, needed + for SSL support in libsoup. Based on patch from sig@netdot.net + (fixes bug #132167). + + * jhbuild/modtypes/tarball.py (parse_tarball): tarball + dependencies weren't being handled quite right. + +2004-04-08 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome26.modules, gnome28.modules: Removed duplicated + gnome-mag section. + * modulesets/gnome26.modules: Use gnome-2-6 branch for gnome-mag + and gnome-terminal. + +2004-04-07 James Henstridge <james@daa.com.au> + + * modulesets/freedesktop.modules (hicolor-icon-theme): update to 0.5. + +2004-04-07 Paolo Borelli <pborelli@katamail.com> + + * modulesets/gnome26.modules: use gnome-2-6 branch of gedit. + +2004-04-07 Jaka Mocnik <jaka@gnu.org> + + * modulesets/gnome26.modules: build branch gnome-2-6 of ggv. + +2004-04-06 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (gnome-mag): <dep> elements don't + take a revision tag. + +2004-04-06 Bill Haneman <billh@gnome.org> + + * modulesets/gnome26.modules: + Use gnome-2-6 branch of gnome-mag. + +2004-04-06 James Henstridge <james@daa.com.au> + + * modulesets/moduleset.dtd (tarball): allow autogenargs for + tarball element. + + * jhbuild/modtypes/tarball.py (Tarball.do_configure): add autogen + args for tarball builds too. (to fix bug 138946). + (parse_tarball): parse autogenargs for tarballs. + +2004-04-05 James Henstridge <james@daa.com.au> + + * jhbuild/utils/httpcache.py: same here. + + * jhbuild/utils/packagedb.py: store dates in UTC rather than local + timezone. + +2004-04-04 Murray Cumming <murrayc@murrayc.com> + + * modulesets/gnome28.modules: Fix bakery dependencies so they match + those in gnome26.modules. Corrected the gnome-vfsmm dependencies in + both. + * modulessets/gnome26.modules: Use gnome-2-6 branches for + nautilus-cd-burner, yelp, dasher, at-spi, gcalctool. + +2004-04-02 James Henstridge <james@daa.com.au> + + * modulesets/gnome22.modules: get rid of versioncheck. + + * jhbuild/modtypes/tarball.py: remove the versioncheck code, since + it isn't being used anymore, and was of questionable use. + + * modulesets/gnome28.modules: same here. + + * modulesets/gnome26.modules: fix up devhelp dependencies + +2004-04-01 Christophe Fergeau <teuf@gnome.org> + + * modulesets/gnome24.modules + * modulesets/gnome26.modules + * modulesets/gnome28.modules: added dependency on libgnomeui to gossip + * modulesets/gnome26.modules: set gnome-vfs branch to gnome-2-6 + +2004-03-31 James Henstridge <james@daa.com.au> + + * jhbuild/utils/cvs.py (CVSRoot.checkout): add the -P (prune) flag + when doing initial checkout of a module. + + * modulesets/bootstrap.modules (automake-1.8): update to version + 1.8.3. + +2004-03-30 Mark McLoughlin <mark@skynet.ie> + + * modulesets/gnome26.modules: use the gnome-2-6 branch + for gconf. + +2004-03-30 Murray Cumming <murrayc@murrayc.com> + + * modulessets/gnome26.modules, gnome28.modules: Use HEAD branch of + mergeant, because the other one is unmaintained and does not build. + +2004-03-29 Callum McKenzie <callum@physics.otago.ac.nz> + + * modulesets/gnome26.modules: Fix typo from yesterday's + gnome-games change. + +2004-03-28 Callum McKenzie <callum@physics.otago.ac.nz> + + * modulesets/gnome28.modules: + * modulesets/gnome26.modules: Add librsvg dependency to gnome-games. + +2004-03-27 Bryan Forbes <bryan@reigndropsfall.net> + + * modulesets/gnome26.modules: added gnomemm/gnome-vfsmm dependency to + bakery. + +2004-03-26 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome26.modules: + Use gnome-2-6 branch of librsvg. + +2004-03-25 Bill Haneman <billh@gnome.org> + + * modulesets/gnome26.modules: + Use gnome-2-6 branch of at-spi. + +2004-03-25 Murray Cumming <murrayc@murrayc.com> + + * Added modulessets/gnome28.modules, using HEAD. + +2004-03-25 James Henstridge <james@daa.com.au> + + * modulesets/bootstrap.modules: + * modulesets/gnome1.modules: + * modulesets/gnome20.modules: + * modulesets/gnome22.modules: + * modulesets/gnome24.modules: + * modulesets/gnome26.modules: move audiofile from bootstraps to + the main module set. + + * modulesets/gnome20.modules (scrollkeeper): same here. + * modulesets/gnome22.modules (scrollkeeper): same here. + * modulesets/gnome24.modules (scrollkeeper): same here. + + * modulesets/gnome26.modules (scrollkeeper): remove version check + so that we always build a scrollkeeper in the build root. This is + so that modules we build can register in the catalog. + +2004-03-24 Bryan Forbes <bryan@reigndropsfall.net> + + * modulesets/gnome26.modules: added gnomemm/gconfmm dependency to + bakery. + +2004-03-24 Bryan Forbes <bryan@reigndropsfall.net> + + * modulesets/gnome26.modules: added gnomemm/libglademm dependency + to bakery. + +2004-03-23 Calum Benson <calum.benson@sun.com> + + * modulesets/gnome26.modules: + + Use gnome-2-6 branch of gnome-themes from now on. + +2004-03-23 James Henstridge <james@daa.com.au> + + * jhbuild/commands/tinderbox.py (do_tinderbox): same here. + + * jhbuild/commands/base.py (do_update): raise an error if the + module list is empty after removing modules before "startat". + This indicates that startat wasn't in the module list. + (do_build): same here. + + * README (command): update information about initial setup. + + * jhbuild/modtypes/tarball.py (parse_tarball): fix up parsing of + <patch> subelements. + + * jhbuild/commands/bootstrap.py (do_bootstrap): change code so + that it simply calls the build engine on the 'meta-bootstrap' + module in the 'bootstrap' module set. + + * jhbuild/moduleset.py (load): allow specifying of a different + moduleset URI. + + * modulesets/bootstrap.modules: a modules file containing all the + current bootstraps. + + * modulesets/moduleset.dtd: update DTD. + + * jhbuild/modtypes/tarball.py (Tarball.do_patch): look for patches + in $(topdir)/patches, like we currently do for bootstrap. + (parse_tarball): fix parsing of patch elements, and add support + for a strip attribute for the patch. + + * jhbuild/modtypes/base.py (CVSModule.do_install): add module to + packagedb on successful install. + + * jhbuild/modtypes/tarball.py (Tarball.do_start): instead of + writing a file in the build directory as a tag that we have + already build/installed this tarball, use the PackageDB. Since + this is installed in the install prefix, we will rebuild the + tarball if the install prefix is wiped. + (Tarball.do_install): on successful install, add to packagedb. + + * jhbuild/frontends/buildscript.py (BuildScript.__init__): create + a PackageDB for the buildscript. + (BuildScript.build): if a module successfully builds, add it to + the package database. + + * jhbuild/utils/packagedb.py (PackageDB): new file to keep track + of installed versions of various packages. + +2004-03-21 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome26.modules: Fix branch for gnome-games, + gnome-netstatus, gnomemeeting. + +2004-03-21 Christian Persch <chpe@cvs.gnome.org> + + * modulesets/gnome26.modules: + Use gnome-2-6 branch for epiphany-extensions. + +2004-03-19 James Henstridge <james@daa.com.au> + + * Makefile: fix up the "make dist" target to do something useful. + This is in case I want to produce tarball releases ... + +2004-03-18 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (libgail-gnome): requires + gnome-panel. Fixes bug #137154. + + * jhbuild/commands/base.py (run): don't print a traceback for + unknown command names. Fixes bug #136445. Based on a patch by + Paolo Borelli <pborelli@katamail.com>. + + * jhbuild/commands/tinderbox.py (do_tinderbox): raise a UsageError + if no output directory specified (related to bug 136638). + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.end_build): + fix printing of error values. + +2004-03-18 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome24.modules: + Use gnome-2-4 branch for zenity. + +2004-03-17 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome24.modules: + Oops, reverting previous commit, I committed the wrong file. + + * modulesets/gnome26.modules: + Really commit the good file this time. + +2004-03-17 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome26.modules: + Disable mozilla freetype2 support. It is not needed since + we use Xft instead and doesn't build with freetype2 HEAD. + +2004-03-17 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome24.modules: + Use libcroco-0-4 branch for libcroco. + +2004-03-17 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/gnome26.modules: + + Use gnome-2-6 branch for epiphany + +2004-03-16 Kristian Rietveld <kris@babi-pangang.org> + + * jhbuild/main.py (main): write error message to stderr + when reading the config file fails. + + * jhbuild/config.py (Config): raise an exception when + the creation of the aclocaldir fails. + +2004-03-16 Johan Dahlin <johan@gnome.org> + + * jhbuild/config.py (Config.setup_env): If PKG_CONFIG_PATH is + unset, set it to $libdir/pkgconfig:/usr/lib/pkgconfig, so a + mozilla installation in /usr can be used. + +2004-03-04 James Henstridge <james@daa.com.au> + + * README, jhbuild/main.py: some help updates from Andreas + Persenius <ndap@ndap.net>. + +2004-03-03 James Henstridge <james@daa.com.au> + + * jhbuild/main.py (main): treat getopt.error like UsageError + + * jhbuild/moduleset.py (_parse_module_set): don't download module + files from network if nonetwork is true. + + * jhbuild/utils/httpcache.py (Cache.load): add a nonetwork + optional argument. If nonetwork is True, files will be returned + from cache even if it is expired. If the file is not in the + cache, raise an error. + (load): pass through the nonetwork argument. + + * jhbuild/main.py (main): remove the catch-all except clause, + instead replacing it with clauses for UsageError (print error and + a usage message) and FatalError (print error). This way real + jhbuild bugs should result in useful tracebacks while simple + runtime errors should result in nice error messages. + + * jhbuild/modtypes/tarball.py (Tarball.do_unpack): raise + FatalError instead of TypeError. + + * jhbuild/modtypes/mozilla.py (MozillaModule.get_mozilla_ver): + raise FatalError. + + * jhbuild/frontends/buildscript.py (BuildScript.__init__): raise + FatalError rather than use asserts. + + * jhbuild/commands/sanitycheck.py (do_sanitycheck): raise + UsageError if extra arguments found. + + * jhbuild/commands/bootstrap.py (do_bootstrap): raise UsageError + rather than getopt.error. + + * jhbuild/commands/base.py (run): raise FatalError instead of + RuntimeError. + (do_update_one): raise FatalError rather than SystemExit. + (do_build_one): same here. + + * jhbuild/config.py (Config.__init__): print tracebacks for bugs + in config files. + + * jhbuild/moduleset.py (ModuleSet.get_module_list): raise + UsageError instead of ValueError. + + * jhbuild/errors.py: new file for common exceptions used by + jhbuild. Currently just a "UsageError" one. + +2004-02-24 James Henstridge <james@daa.com.au> + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.end_phase): + flush the index file fp after each stage. + +2004-02-27 Murray Cumming <murrayc@gnome.org> + + * modulesets/gnome26.modules: Added gnome-netstatus, because it is new + in GNOME 2.6. meta-gnome-desktop: Added gnome-netstatus and moved + gnomemeeting and file-roller to the bottom because they never build. + +2004-02-22 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/gnome26.modules: + + epiphany-extensions is not part of the desktop + +2004-02-21 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (gnome-python/gnome-python): add + suggestions. + + * modulesets/freedesktop.modules (shared-mime-info): add a + suggestion of intltool. Not exactly correct, but will get things + ordered correctly if you build both packages. + + * modulesets/moduleset.dtd: add suggests element to DTD. + + * jhbuild/moduleset.py (ModuleSet.get_module_list): add support + for suggestions. + + * jhbuild/modtypes/mozilla.py (MozillaModule.__init__): and here. + (parse_mozillamodule): and here. + + * jhbuild/modtypes/tarball.py (Tarball.__init__): and here. + (parse_tarball): and here. + + * jhbuild/modtypes/base.py (parse_xml_node): pass the suggests + argument. + (Package.__init__): same here. + (CVSModule.__init__): and here. + (parse_cvsmodule): and here. + (parse_metamodule): and here. + + * jhbuild/moduleset.py (_parse_module_set): parse a "suggests" + element for all module nodes. + +2004-02-19 James Henstridge <james@daa.com.au> + + * jhbuild/frontends/tinderbox.py + (TinderboxBuildScript.start_build): include the distribution name + in the tinderbox build header. + + * jhbuild/commands/tinderbox.py (do_tinderbox): add extra options + to "jhbuild tinderbox" build. Patch from <torkel@acc.umu.se> + (fixes bug #134254). + + * jhbuild/modtypes/base.py (CVSModule.do_force_checkout): if + nobuild config key is set, then skip to done in this mode. Fix + based on patch from Trent Lloyd <lathiat@bur.st> + + * jhbuild/commands/bootstrap.py (libtool): don't apply + expsym-linux patch, since libtool-1.5.2 doesn't need it. + +2004-02-16 Telsa Gwynne <hobbit@aloss.ukuu.org.uk> + + * modulesets/gnome26.modules: Added dasher and conglomerate + +2004-02-16 Murray Cumming <murrayc@murrayc.com> + + * modulessets/gnome26.modules: Added gnomemm/libpanelappletmm. + +2004-02-16 James Henstridge <james@daa.com.au> + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): if + we are running CVS, preprocess its output to highlight modified + and conflicting files. Also print out a summary of conflicts at + the end of the run. + (TerminalBuildScript.execute): fix a small typo. + + * jhbuild/utils/cvs.py (CVSRoot.checkout, CVSRoot.update): set the + hint argument to 'cvs' when running the cvs command. + + * jhbuild/utils/cmds.py: new file containing utility routines for + running commands and grabbing their output. + +2004-02-15 James Henstridge <james@daa.com.au> + + * jhbuild/commands/bootstrap.py (bootstraps): remove some of the + libtool patches we apply during bootstrap (that aren't needed + anymore), and add some AMD64 ones from the RH rpm. + +2004-02-14 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome26.modules: remove gnome-vfs-extras since the smb + method is now im gnome-vfs + +2004-02-12 James Henstridge <james@daa.com.au> + + * jhbuild/utils/httpcache.py (Cache.load): use urlparse instead of + urlsplit, to give compatibility with Python < 2.2 (fixes bug + #134151). + + * modulesets/gnome22.modules (meta-gnome-c++): add missing quote + to bakery_gnomeui dependency. + + * modulesets/moduleset.dtd: add the include element to DTD. + + * modulesets/gnome24.modules (gnome-icon-theme): depend on + hicolor-icon-theme. + + * modulesets/gnome26.modules (gnome-icon-theme): depend on + hicolor-icon-theme. + + * modulesets/freedesktop.modules (hicolor-icon-theme): download as + a tarball, now that it builds using the standard "configure; make; + make install" commands. + +2004-02-10 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome26.modules: change libsigc++1.2 to libsigc++2. + +2004-02-10 James Henstridge <james@daa.com.au> + + * jhbuild/commands/sanitycheck.py (do_sanitycheck): add XML + catalog checks to sanitycheck. + (do_sanitycheck): check for various + (do_sanitycheck): check if db2html exists. + + * modulesets/freedesktop.modules (xcompmgr): add dependency on + Xrender. + + * jhbuild/commands/sanitycheck.py (do_sanitycheck): add checks to + see whether the checkout root and install prefix are directories + and writable. + + * jhbuild/main.py (main): turn off traceback printing, so we just + get the error message. + + * jhbuild/moduleset.py (ModuleSet.get_module_list): adjust so that + exception messages are a bit more meaningful. + +2004-02-09 James Henstridge <james@daa.com.au> + + * jhbuild/frontends/gtkui.py (GtkBuildScript.handle_error): fix up + the "terminal" option to actually work. Patch by Thom May (fixes + bug #133630). + + * jhbuild/main.py (help): add a line to the help text. + + * jhbuild/commands/tinderbox.py (do_tinderbox): same here. + + * jhbuild/commands/base.py (do_update): add support for -D option + to specify a sticky date. + (do_update_one): same here. + (do_build): same here. + (do_build_one): same here. + + * jhbuild/modtypes/mozilla.py (MozillaModule.checkout): same here. + + * jhbuild/modtypes/base.py (CVSModule.do_checkout): pass + sticky_date to "cvs update". + (CVSModule.do_force_checkout): same here. + + * jhbuild/defaults.jhbuildrc, jhbuild/config.py: declare + sticky_date config value. + + * jhbuild/commands/tinderbox.py (do_tinderbox): same here. + + * jhbuild/commands/base.py (do_update): convert the bunch of if + statements to a single get_module_list() call. + (do_build): same here. + (do_list): same here. + + * jhbuild/moduleset.py (ModuleSet.get_module_list): make this + handle the case of the module list being equal to 'all', so we can + simplify the callers of this code. + + * jhbuild/modtypes/base.py (CVSModule.do_checkout): pass + checkoutdir as keyword argument. + (CVSModule.do_force_checkout): same here. + + * jhbuild/utils/cvs.py (CVSRoot.checkout): add a "date" argument. + (CVSRoot.update): same here. + +2004-02-08 James Henstridge <james@daa.com.au> + + * jhbuild/commands/bootstrap.py: import getopt. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + add hint argument (currently unused). + (TinderboxBuildScript.handle_error): remove interract argument. + + * jhbuild/frontends/terminal.py (TerminalBuildScript.execute): add + currently unused "hint" argument. + (TerminalBuildScript.handle_error): remove unused interact argument. + (TerminalBuildScript.handle_error): put in a dummy assert to + indicate that control shouldn't reach the end of this function. + + * jhbuild/frontends/buildscript.py (BuildScript.message): last + argument should be optional (it is in all the concrete subclasses). + + * jhbuild/modtypes/mozilla.py (MozillaModule.do_checkout): remove + unused force_checkout argument. + (MozillaModule.do_force_checkout): fix up return of next state + when an error occurs. + + * jhbuild/modtypes/tarball.py (Tarball.__init__): correctly set + patches attribute. + (parse_tarball): fix up parsing of patch XML nodes. + + * jhbuild/modtypes/base.py (CVSModule.do_checkout): remove unused + force_checkout argument. + + * jhbuild/moduleset.py (ModuleSet.add): remove unused addmod() + method. + +Sun Feb 8 01:19:57 2004 Matthias Clasen <maclas@gmx.de> + + * jhbuild/modtypes/mozilla.py: Import os, for os.path.join. + +2004-02-07 James Henstridge <james@daa.com.au> + + * jhbuild/utils/cvs.py (login): same here. + + * jhbuild/config.py (Config.setup_env): same here. + + * jhbuild/commands/base.py: convert uses of string module + functions to string methods. + +2004-02-06 James Henstridge <james@daa.com.au> + + * *.jhbuildrc: update sample jhbuildrc files to take into account + recent changes. + + * jhbuild/frontends/gtkui.py (BUILD_SCRIPT): define BUILD_SCRIPT + in this module, so that "jhbuild gui" doesn't raise an uncaught + exception. Reported as bug #133630. + + * jhbuild/commands/base.py (do_shell): fix up reference to + "user_shell" that broke in the reorg. This command should work + again now (fixes bug #133594). + + * jhbuild/modtypes/tarball.py (Tarball.do_start): replace use of + string.find with a string method, and remove the import of the + string module. + +2004-02-05 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/gnome26.modules: + + Use mozilla 1.6 + +2004-02-05 Johan Dahlin <johan@gnome.org> + + * jhbuild/modtypes/tarball.py: Import os and string here + + * jhbuild/modtypes/tarball.py (Tarball.do_configure): s/ret/res/ + +2004-02-05 James Henstridge <james@daa.com.au> + + Modified version of Paolo Borelli's patch from bug #123304: + * jhbuild/main.py (help): add to help output. + + * jhbuild/commands/base.py (do_list): add -r flag. + + * jhbuild/modtypes/tarball.py (Tarball.get_revision): return + package version. + + * jhbuild/modtypes/base.py (Package.get_revision): function to get + version/revision of package. + (CVSModule.get_revision): return CVS revision/branch tag. + +2004-02-05 James Henstridge <james@daa.com.au> + + * modulesets/freedesktop.modules (hal): applied patch from Thom + May to build freedesktop.org HAL (bug #133314). + (icon-slicer): another patch from Thom (bug #133430). + + * *: merge the jhbuild-ng branch back to head. Things appear to + be functioning correctly now. + +2004-02-05 James Henstridge <james@daa.com.au> + + * jhbuild/commands/sanitycheck.py (do_sanitycheck): new "jhbuild + sanitycheck" that can be used to check whether the build + environment is sane. At the moment, it just checks whether + various tools are available. Will be expanded later on. + + * jhbuild/frontends/tinderbox.py (TinderboxBuildScript.execute): + change how we wrap the command being executed, so that it is more + like what the commands stdlib module does. + +2004-02-04 James Henstridge <james@daa.com.au> + + * Makefile (install): use template to create ~/bin/jhbuild. + + * jhbuild.in: template for the script installed in ~/bin. + +2004-02-03 James Henstridge <james@daa.com.au> + + * jhbuild/frontends/tinderbox.py + (TinderboxBuildScript.end_module): flush the index.html file + descriptor after writing each module's status. + (TinderboxBuildScript.end_build): add a final line to the + index.html table, giving the finish time. + (TinderboxBuildScript.start_build): add some information about the + build platform before the build results. + (TinderboxBuildScript.end_build): list failed modules at end of page. + + * jhbuild/config.py, jhbuild/defaults.jhbuildrc: add + tinderbox_outputdir config key. + + * jhbuild/commands/tinderbox.py (do_tinderbox): add a tinderbox + command. + + * jhbuild/frontends/tinderbox.py: new, non-interactive buildscript + that writes all the results to files. + + * jhbuild/commands/base.py: add missing include of "os". + + * jhbuild/config.py (Config.__init__): make sure we aren't trying + to set environment variables to None. + + * jhbuild/frontends/gtkui.py: lots more cleanups to get it to work + correctly, and changes to make it look less like C. The "jhbuild + gui" command now starts again. + + * jhbuild/frontends/gtkui.py: rename from gtk.py -- was causing + problems with imports of the toplevel gtk module ... + (get_glade_filename): fix to work with reorganisation. + (GtkBuildScript.build): don't override this function, instead use + the hooks now provided by the base BuildScript class. + + * jhbuild/commands/gui.py (do_gui): some small fixes. + + * Makefile (install): modify rule used to create jhbuild wrapper + script. + + * jhbuild/commands/bootstrap.py (Bootstrap.build): find patches in + the patches/ subdirectory now. + + * *.patch: move to a patches/ subdirectory, to keep things neat. + + * jhbuild.py: replace jhbuild.py with a simple script that tells + people to rerun "make install". + + * *.py: remove old jhbuild files. + + * *: branch the rest of the module (except for moduleset + definitions). + +2004-02-03 James Henstridge <james@daa.com.au> + + * jhbuild/config.py (_known_keys): same here. + + * jhbuild/defaults.jhbuildrc (makeargs): add makeargs. + + * jhbuild/modtypes/tarball.py: s/setAction/set_action/ + + * jhbuild/modtypes/mozilla.py: s/setAction/set_action/ + + * jhbuild/modtypes/base.py: s/setAction/set_action/ + + * jhbuild/main.py (main): remove BuildScript selection code from + main function. + + * jhbuild/commands/gui.py (do_gui): same here. + + * jhbuild/commands/base.py: use + jhbuild.frontends.get_buildscript() to create the buildscript. + + * jhbuild/frontends/__init__.py (get_buildscript): function to + load up the appropriate buildscript. + + * jhbuild/config.py (_known_keys): add a "buildscript" config + value to specify which buildscript is to be used. + + * jhbuild/frontends/buildscript.py: abstract base class for + buildscripts. + + * jhbuild/moduleset.py: remove unnused import of string module. + + * jhbuild/commands/bootstrap.py (do_bootstrap): same here. + (bootstraps): remove uses of the string module. + + * jhbuild/commands/base.py: remove interact function argument from + all commands. + + * jhbuild/main.py (main): if --no-interact is passed, just set the + config value, rather than passing it to the subcommand. The + subcommand is already being passed the config object, so there + should be no problem. + + * jhbuild/config.py (_known_keys): make "interact" a config value, + rather than passing it around separately everywhere. + + * jhbuild/modtypes/tarball.py (Tarball.do_configure): honour + use_lib64 setting. + + * jhbuild/main.py: add the remainder of jhbuild.py to this file. + + * jhbuild/commands/bootstrap.py (do_bootstrap): move bootstrap + code into commands subpackage. + (Bootstrap.build): if use_lib64 is true, pass --libdir when + configuring bootstrap packages. + + * jhbuild/commands/__init__.py: + * jhbuild/commands/base.py: move implementations of commands here. + + * jhbuild/config.py (Config.setup_env): add environment setup code + to the config module. + + * jhbuild/modtypes/mozilla.py (MozillaModule.do_configure): ditto. + + * jhbuild/modtypes/base.py (CVSModule.do_configure): if use_lib64 + is set, then pass --libdir when configuring the package. + + * jhbuild/config.py, jhbuild/defaults.jhbuildrc: config file + parsing. + +2004-02-02 James Henstridge <james@daa.com.au> + + * jhbuild/utils/__init__.py: + * jhbuild/utils/cvs.py: + * jhbuild/utils/httpcache.py: various utility modules, which could + be useful elsewhere. + + * jhbuild/moduleset.py: the remainder of module.py -- only + contains the ModuleSet class, and the skeleton XML module file + reader. + + * jhbuild/modtypes/__init__.py: + * jhbuild/modtypes/base.py: + * jhbuild/modtypes/tarball.py: + * jhbuild/modtypes/mozilla.py: refactor module type code so that + it is easy to add new types of modules to jhbuild (rather than + having to edit a monolithic module.py file. + + * jhbuild/__init__.py: start refactoring jhbuild. + +2004-02-01 Sri Ramkrishna,,, <sri@aracnet.com> + + * modulesets/gnome26.modules:added epiphany-extensions and + and added it to default meta-gnome-desktop + + +2004-02-01 Anders Carlsson <andersca@gnome.org> + + * modulesets/gnome26.modules: Planner depends on libgsf. + +2004-01-19 Fernando Herrera <fherrera@onirica.com> + + * libtool-1.3.5-mktemp.patch: update so it can be applied to + libtool-1.5.2 + +2004-01-28 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (regexxer): add back -- it is in 5th + toe, so may as well be here. Add dependencies on gconfmm and + gnome-vfsmm, as reported in bug 131497. + + * Makefile (install): update target so that the created shell + script exec's python instead of just running it. Results in one + less process. + + * terminal_buildscript.py (TerminalBuildScript.handle_error): if + we can't change to the build dir when the user chooses to start a + shell, change to the checkout root. Fixes bug #117406. + + * modulesets/gnome26.modules (gtk+): depend on shared-mime-info + (bug #127319). + (gtksourceview): depend on libxml2 and libgnomeprint (bug #124198). + + * bootstrap.py (automake-1.8): update to 1.8.2. + (audiofile): update the version to 0.2.5 (fixes bug #131915). + (libtool): update to 1.5.2. + + * module.py (parse_module_set): use httpcache so we can load + module sets via HTTP. + (read_module_set): if the moduleset config item contains a slash, + assume that it is a URI. Otherwise, look for it in the old + location. + + * httpcache.py: new file that implements a simple web cache. + +2004-01-24 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome26.modules: Remove a lot of cruft that + never should have been here in the first place. mcs, mono, + gtk-sharp, gtkglarea, regexxer. Mono and mcs had no chance + of compiling at all, and requires mono being installed + anyway so why compile it from scratch? + +2004-01-20 Xavier Ordoquy <xordoquy@wanadoo.fr> + + * modulesets/gnome26.modules: sodipodi depends on libgnomeprintui + and not libgnomeprintui-2.0 that has been removed. + +2004-01-19 Jon K Hellan <hellan@acm.org> + + * modulesets/gnome26.modules: Fetch libxklavier from freedesktop + cvs, not gnome. + +2004-01-18 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome26.modules: Remove fontilus since that has + been integrated into the control-center. + +2004-01-18 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome24.modules: Remove libgnomeprint[ui]-2.0 since + nothing depends on it. + * modulesets/gnome26.modules: Same here. Also fetch libxklavier + from CVS instead of using a tarball. + +2004-01-17 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome24.modules: Same as below. + +2004-01-17 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome26.modules: Remove gael for now. + Remove dia-newcanvas too since gael was the only user. + +2004-01-17 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/freedesktop.modules: Add dep on CompositeExt to + xserver to make it build on a fresh checkout. + +2004-01-16 Kjartan Maraas <kmaraas@gnome.org> + + * bootstrap.py: Update audiofile to 0.2.5. + +2004-01-14 Jeroen Zwartepoorte <jeroen@xs4all.nl> + + * modulesets/gnome26.modules: Removed separate acme module since it's now + part of gnome-control-center. + +2004-01-12 James Henstridge <james@daa.com.au> + + * bootstrap.py (automake-1.8): update to 1.8.1. + +2004-01-09 Jon K Hellan <hellan@acm.org> + + * modulesets/gnome26.modules: Added libxklavier dependency for + gnome-applets. http://bugzilla.gnome.org/show_bug.cgi?id=130972. + +2004-01-08 Sri Ramkrishna <sri@aracnet.com> + + * modulesets/gnome26.modules: added gst-plugin dependency for acme + fixes bug #130865 + +2004-01-08 Christophe Fergeau <teuf@gnome.org> + + * modulesets/gnome22.modules + * modulesets/gnome24.modules + * modulesets/gnome26.modules: removed gnet dependency for gnomeicu + +Thu Jan 8 16:22:01 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome26.modules: dependency on shared-mime-info. + +Wed Jan 7 13:45:34 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome26.modules: I was convinced by Alex to merge to + HEAD. MIME_REWRITE branch is no more. + +2004-01-08 Luis Villa <louie@ximian.com> + + * modulsets/gnome26.modules: update to xchat 2.0.7 + +Wed Jan 7 03:18:27 2004 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome26.modules: move to the MIME_REWRITE branch + +2004-01-05 Jonathan Blandford <jrb@redhat.com> + + * modulesets/freedesktop.modules: add shared-mime-info + +2003-12-30 Thomas Vander Stichele <thomas at apestaart dot org> + + * modulesets/gnome26.modules: update scrollkeeper version to 0.3.14, + which fixes the hardcoding of ${prefix}/var/log/scrollkeeper.log + as the logfile + +2003-12-22 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome26.modules: Removed duplicate gtkhtml dependency + for evolution + +2003-12-22 Thomas Vander Stichele <thomas at apestaart dot org> + + * modulesets/gnome26.modules: Moved GStreamer CVS to freedesktop + +2003-12-19 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: libxml++ has moved to the GNOME cvs. + +2003-12-17 James Henstridge <james@daa.com.au> + + * bootstrap.py (bootstraps): change back to getting libtool from + gnu.org, since it is up again. Update Autoconf to 2.59, + Automake-1.7 to 1.7.9 and add Automake-1.8. + +2003-12-14 James Henstridge <james@daa.com.au> + + * modulesets/freedesktop.modules: fix cairo's dependencies. + +2003-12-09 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome26.modules: remove linc + +2003-12-08 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: Replaced mrproject and libmrproject + by planner. + + * modulesets/gnome24.modules: ditto + +2003-12-08 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: use HEAD branch of glade. + +2003-12-07 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: USE head branch of gnomemeeting, + though I would be surprised if anybody can build the dependencies + for any branch. + +2003-12-05 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: use gnome-2-4 branch of libbonoboui. + +2003-12-04 Alex Graveley <orphennui@yahoo.com> + + * modulesets/gnome26.modules: Add gnome-keyring, and make + libgnomeui depend on it. + +2003-12-04 Jon K Hellan <hellan@acm.org> + + * modulesets/gnome26.modules: gnumeric depends on libgnomeprintui + + * modulesets/gnome24.modules: ditto + +2003-12-02 Rodrigo Moya <rodrigo@gnome-db.org> + + * modulesets/gnome2?.modules: made all use mergeant 0.12.x, HEAD + is just not ready for anything. + +2003-12-01 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: use gnome-2-4 branch of libbonobo. + +2003-11-21 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: use gnome-2-4 branch of libwnck. + +2003-11-20 Mark Finlay <sisobATtuxfamilyDOTorg> + + * modulesets/freedesktop.modules: + Add the X composite Manager and deps. Transparencies! yum + xcompmgr still needs to be installed manually tho ala + http://www.freedesktop.org/Software/XserverInstallGuide + +2003-11-20 David Bordoley <bordoley@msu.edu> + + *modulesets/gnome26.modules: Add OpenApplet. + +2003-11-13 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: gnome-session and gnome-desktop: use + gnome-2-4. + +2003-11-11 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules: get libxklavier from tarball in the + gnome26 moduleset at author's request. + +2003-11-10 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: gail, glade, file-roller, gok, + gnopernicus: use gnome-2-4. + +2003-11-07 Murray Cumming <murrayc@usa.net> + + * modulessets/gnome26.modules: Removed duplicate procman which had + a false dependency on gal. The other one seems to be OK.libgtop: + Use HEAD, needed by procman. + + * Renamed anjuta2 to scaffold and added anjuta. + +2003-11-06 James Henstridge <james@daa.com.au> + + * modulesets/freedesktop.modules (cairo): depend on xrender and + not Xft. + +2003-11-05 Johan Dahlin <johan@gnome.org> + + * jhbuild.py (read_config_file): Nicer error message when there is + no jhbuildrc. + +2003-11-05 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (libxklavier): use the + freedesktop.modules version. + + * modulesets/freedesktop.modules (libxklavier): add here, checking + out from freedesktop.org CVS. + +2003-11-05 Johan Dahlin <johan@gnome.org> + + * modulesets/freedesktop.modules: Add support for all libs on + xlibs.freedesktop.org and xserver. Also reorganize the file a bit. + +2003-11-04 Johan Dahlin <johan@gnome.org> + + * cvs.py (login): Allow empty newlines in .cvspass + +2003-11-04 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: Removed gal dependency from gtkhtml, + because it does not seem to need it, which is nice because gal does + not build with GTK+ 2.3. + +Fri Oct 31 18:52:52 2003 Jonathan Blandford <jrb@gnome.org> + + * jhbuild.py (addpath): add XDG_DATA_DIRS to the list of + environment variables. + +Fri Oct 31 18:09:41 2003 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome26.modules: change libgda/libgnomedb to be built + against HEAD as that's what mergeant requires. + + * modulesets/gnome26.modules: remove monkey-media + + * modulesets/gnome26.modules: remove drwright. + +Fri Oct 31 13:22:24 2003 Jonathan Blandford <jrb@gnome.org> + + * modulesets/gnome26.modules: use gstreamer HEAD as gnome-media + now depends on it. + +2003-10-30 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome24.modules: Use gnome-2-4 branches for + gconfmm, libglademm, libgnomemm, libgnomeuimm. + +2003-10-28 Jody Goldberg <jody@gnome.org> + + * modulesets/gnome26.modules : add libxklavier for and to + gnome-control-center. + +2003-10-24 James Henstridge <james@daa.com.au> + + * sample.jhbuildrc (moduleset): same here. + + * vbs-head.jhbuildrc (moduleset): switch to gnome 2.6. + + * bootstrap.py (bootstraps): temporarily point it somewhere else + for libtool-1.5.tar.gz + +2003-10-22 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: use gnome-2-4 branch of gtkhtml2. + +2003-10-21 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: bug-buddy, libgtop, procman, gdm2, + gucharmap, gtksourceview, gpdf updated revision to gnome-2-4; + removed duplicate procman; changed dependency for sodipodi from + libgnomeprintui-2.0 to libgnomeprintui; use mozilla 1.5. + +2003-10-21 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (acme): remove "gob" dependency. + + * modulesets/gnome24.modules: same here. + (acme): remove "gob" dependency. + + * modulesets/gnome26.modules: replace freedesktop modules with a + directive to include freedesktop.modules. + + * modulesets/freedesktop.modules: move all the freedesktop stuff + out of gnome26.modules to here. + + * module.py (read_module_set): don't error out if a default cvs + root isn't set in the modules file, unless some module tries to + use the default root. + +2003-10-20 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/gnome26.modules: + + Use mozilla 1.5 + +2003-10-17 Will LaShell <will@lashell.net> + * modulesets/gnome24.modules: add camorama tarball package + * modulesets/gnome26.modules: add camorama tarball package + +2003-10-14 Will LaShell <will@lashell.net> + * modulesets/gnome24.modules: update xchat version to 2.0.5 + * modulesets/gnome26.modules: update xchat version to 2.0.5 + +2003-10-14 Will LaShell <will@lashell.net> + + * bootstrap.py: missed a character change in the audiofile update + +2003-10-14 James Henstridge <james@daa.com.au> + + * module.py (read_module_set): add support for an <include> + element. + +2003-10-13 Will LaShell <will@lashell.net> + + * bootstrap.py: update audiofile-2.3 to 2.4 + + * bootstrap.py: update url to Michael Pruett's site for new version + +2003-10-13 Jens Finke <jens@triq.net> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of eog. + Depend on libgnomeprintui not only libgnomeprint. + +Mon Oct 13 13:36:54 2003 Jonathan Blandford <jrb@redhat.com> + + * modulesets/gnome26.modules: fix a broken dependency. + +2003-10-12 James Henstridge <james@daa.com.au> + + * bootstrap.py (bootstraps): update automake-1.7 to 1.7.8 + (Bootstrap.build): support bootstrapping from .bz2 files. + (bootstraps): update Python in bootstraps from 2.2.2 to 2.3.2. + +2003-10-10 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: use gnome-2-4 revision of metacity. + +2003-10-08 James Henstridge <james@daa.com.au> + + * jamesh.jhbuildrc: override cairo.freedesktop.org CVS root for my + config file. + + * modulesets/gnome26.modules (cairo): same here. + + * modulesets/gnome24.modules (cairo): change from keithp CVS to + freedesktop CVS. + +2003-10-07 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules: same changes here. + + * modulesets/gnome24.modules (gcalctool): depends on scrollkeeper + (bug #117742). + (gnome-panel): move scrollkeeper dep from gnome-applets (bug #117890). + + * bootstrap.py (bootstraps): update automake-1.7 to version 1.7.7. + + * module.py (MozillaModule.do_checkout): redo checkout of mozilla + if client.mk sticky tag is wrong. + + * cvs.py (check_sticky_tag): simple program to find the sticky tag + for a file. + + * module.py (MozillaModule.checkout): use the code in the cvs + module to construct the CVS command line to checkout + mozilla/client.mk. + (MozillaModule.checkout): rather than exiting if you can't + checkout mozilla/client.mk, just return the error result code, + which do_checkout() should be able to handle correctly. + + * terminal_buildscript.py (TerminalBuildScript.execute): print the + command that is about to be executed, like it did before. + + * module.py (MozillaModule.do_checkout): construct the path + properly, so that it checks for Makefile.in in the mozilla + directory. + +2003-10-06 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules (mozilla): same here. + + * modulesets/gnome24.modules (mozilla): change attribute name. + + * module.py (read_module_set): s/branch/revision/ for + <mozillamodule> elements. + (MozillaModule.__init__): s/branch/revision/ here too for + completeness. + +2003-10-02 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules: readd dbus, now that hp has fixed + the CVS root. + +2003-10-01 Marco Pesenti Gritti <marco@gnome.org> + + * gtk_buildscript.py: + * jhbuild.glade: + * jhbuild.py: + + Add a "Do not build" option to the gui. + +2003-10-01 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: commented-out dbus because jamesh + thinks that the dbus anon cvs needs fixing and it'll cause problems + for people who have used this when it is fixed. + +2003-10-01 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: Added dbus. + +2003-10-01 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: meta-gnome-c++: Added libgdamm and + libgnomeprint*mm. + +2003-09-30 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of ORBit2. + +Tue Sep 30 14:31:06 2003 Jonathan Blandford <jrb@redhat.com> + + * modulesets/gnome26.modules: move to glib/pango/gtk+-HEAD. + +2003-09-29 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of gnome-speech. + +2003-09-29 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Don't use gnome-2-4 branch for libbonoboui. + +2003-09-29 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branches of libgnomeui and + gconf. + +2003-09-29 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome24.modules: Use gnome-2-4 branches of + libgnomeprint*. + +2003-09-29 Anders Carlsson <andersca@gnome.org> + + * modulesets/gnome24.modules: Use gnome-2-4 branches of libgnome: + +2003-09-27 Seth Nickell <seth@gnome.org> + + * Makefile: + * jhbuild.desktop: + + Install a .desktop file for the GUI mode. + + * gtk_buildscript.py: + + Require GConf. + +2003-09-26 Marco Pesenti Gritti <marco@gnome.org> + + * gtk_buildscript.py: + + Fix jhbuild gui to work also from outside jhbuild dir + +2003-09-24 James Henstridge <james@daa.com.au> + + * module.py (user_shell): define this here, so that "jhbuild + shell" still works. + +2003-09-23 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome22.modules: + * modulesets/gnome26.modules: + Oops, I forgot thoses modules. + +2003-09-23 Frederic Crozat <fcrozat@mandrakesoft.com> + + * module.py: + * modulesets/gnome24.modules: + Fix options given to gstreamer/gst-plugins autogen.sh + +2003-09-22 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of gnome-terminal. + +2003-09-22 James Henstridge <james@daa.com.au> + + * modulesets/gnome26.modules: same here. + + * modulesets/gnome24.modules: same here. + + * modulesets/gnome22.modules: Xft is under the /cvs/xlibs cvs root + now. + +2003-09-22 Seth Nickell <seth@gnome.org> + + Add a GTK interface mode for jhbuild: "jhbuild gui" + + * module.py: + * buildscript.py: + * terminal_buildscript.py: + + Split BuildScript class into a separate module, containing + the basic logic for doing builds. Specific output commands + are refactored into terminal_buildscript.py. Also change + message method to the closely related setAction, which is + needed for doing good GUI output. + + * gtk_buildscript.py: + * jhbuild.glade: + + A buildscript flavour that displays using GTK instead. + + * jhbuild.py: + + Add the new gui mode, and add instantiation of different + buildscripts depending on whether you're in gui mode or + not. The idea is that eventually gui could be a flag not + a mode and the different commands would still work on it. + +2003-09-21 Anders Carlsson <andersca@gnome.org> + + * modulesets/gnome26.modules: Update cvs roots. + +2003-09-21 James Henstridge <james@daa.com.au> + + * changecvsroot.py (changecvsroot): short script that might be + helpful for some people. + + * modulesets/gnome22.modules: similar changes here. + + * modulesets/gnome24.modules: add some cvs roots. + (fontconfig): use fredesktop.org cvsroot. + (Render): same here. + (Xrender): same here. + +2003-09-19 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of gcalctool. + +2003-09-18 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome26.modules: Use the gtkmm and glibmm cvs + modules for 2.4. + +2003-09-18 Anders Carlsson <andersca@gnome.org> + + * modulesets/gnome26.modules: Add gnome26 moduleset. + +2003-09-17 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of gnome-media. + +2003-09-17 James Henstridge <james@daa.com.au> + + * module.py (_isxterm): same here. + + * bootstrap.py (_isxterm): rxvt can do xterm title escapes. + +2003-09-15 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Really use gnome-2-4 branch of gedit (oops); + Use gnome-2-4 branch of gnome-panel and gnome-applets. + +2003-09-15 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of gedit + +2003-09-12 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of gnome-utils + +2003-09-12 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of gnome-vfs, librsvg, + eel, and nautilus. + +2003-09-11 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of gnome-mime-data + +2003-09-11 Jeroen Zwartepoorte <jeroen@xs4all.nl> + + * modulesets/gnome24.modules: Revert change by Bryan Forbes to make + glimmer use HEAD instead of the dead new-gtksourceview branch. + +2003-09-09 Calum Benson <calum.benson@sun.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch of + for gnome-themes + +Mon Sep 8 16:35:26 2003 Jonathan Blandford <jrb@redhat.com> + + * modulesets/gnome24.modules: Use gnome-2-4 branch + +2003-09-07 James Henstridge <james@daa.com.au> + + * module.py (read_module_set): allow user to override branch tag + and autogen args for mozilla, like they can for other CVS modules. + +2003-09-06 Anders Carlsson <andersca@gnome.org> + + * modulesets/gnome24.modules: Use gnome-2-4 branch + for gconf-editor. + +2003-09-05 Bryan Forbes <mxpxfifws@yahoo.com> + + * modulesets/gnome22.modules: + * modulesets/gnome24.modules: added gnome-themes-extras, libgda, libgnomedb, + mergeant, gtranslator, gnome-spell, libgnomecups, gnome-cups-manager, + gnome-vfsmm, libxml++, bakery, bakery_gnomeui, gtk-sharp; added dependencies + and autogenargs for gnumeric and upped version of xchat, removed + monkey-media dependency for rhythmbox (22 only). + * modulesets/gnome24.modules (only): added cairo-gtk-engine; changed + revision of gnome-games, nautilus-cd-burner, yelp, and acme to gnome-2-4; + changed revision of gnomemeeting to gnome_2_4; changed revision of + evolution, gtkhtml, and gal to evolution-1-4-branch; changed revision of + glimmer to new-gtksourceview. + +2003-09-05 Jeroen Zwartepoorte <jeroen@xs4all.nl> + + * modulesets/gnome24.modules: Glimmer "new-gtksourceview" branch has + been joined with HEAD. + +2003-09-02 Mark Finlay<sisob@tuxfamily.org> + + * modulesets/gnome24.modules: Adding sound-juicer and gnome-network + +2003-08-31 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome24.modules: removed gal dep from gnumeric + +2003-08-30 Mark Finlay<sisob@tuxfamily.org> + + * modulesets/gnome24.modules: Adding gst-plugins as a dep of gnome-media + +2003-08-28 Marco Pesenti Gritti <marco@gnome.org> + + * modulesets/gnome24.modules: + + Change epiphany branch to gnome-2-4 + +Mon Aug 25 14:00:00 2003 Jonathan Blandford <jrb@redhat.com> + + * modulesets/gnome24.modules: revert it back to TAG, as epiphany + doesn't build with 1.4.1pre yet. grr... BRANCH doesn't build + either with gcc 3.3. When 1.4.1 comes out we can build against + that. + +Mon Aug 25 10:57:13 2003 Jonathan Blandford <jrb@redhat.com> + + * modulesets/gnome24.modules: change MOZILLA_1_4_TAG to + MOZILLA_1_4_BRANCH as the TAGGED version doesn't build with recent + compilers. + + * modulesets/gnome24.modules: libsoup-2-0-branch + +2003-08-24 Andrew Sobala <aes@gnome.org> + + * modulesets/gnome24.modules: added esound dep to libgnome + +2003-08-24 Mark Finlay<sisob@tuxfamily.org> + + * modulesets/gnome24.modules: Added gossip + and loudmouth. Need more deps though. + +2003-08-23 Mark Finlay <sisob@tuxfamily.org> + + * modulesets/gnome24.modules: changed gnome2-user-docs to + gnome-user-docs + +2003-08-23 Mark Finlay <sisob@tuxfamily.org> + + * modulesets/gnome24.modules: + gnome-media, gnome-games, gnome2-user-docs, + gnome-system-monitor(procman) added to meta-gnome-desktop; + gconf-editor and gnome-utils higher up the deps list; + Removed monkey-media rhythmbox dependency. + + * README: /r/--no-cvs/--no-network : bug #113652; + Update bootstap list; Add a "Starting Gnome" section; + Update/clarify one or two things. + + * sample.jhbuildrc: Removing whitespace from commented out options: + fix for #113652 + + TODO: Finish deps for gnome2-user-docs and gnome-system-tools + +2003-08-20 Mark Finlay <sisob@tuxfamily.org> + + * modulesets/gnome24.modules: + + Added gconf-editor and gnome-utils to meta-gnome-desktop + +2003-08-19 Marco Pesenti Gritti <marco@.gnome.org> + + * modulesets/gnome24.modules: + + Use MOZILLA_1_4_RELEASE branch for mozilla to avoid api problems + +2003-08-14 Jaka Mocnik <jaka@gnu.org> + + * modulesets/gnome24.modules: check out ggv from gnome-2-4 branch. + +2003-08-10 Andrew Sobala <aes@gnome.org> + + * modulesets/gnome24.modules: totem is not in GNOME 2.4 + +2003-08-05 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome24.modules: Update dep chain for libcroco. + +2003-07-31 Anders Carlsson <andersca@codefactory.se> + + * modulesets/gnome24.modules: Update dep chain for cairo. + +2003-07-23 James Henstridge <james@daa.com.au> + + * module.py (read_module_set): override module specific + autogenargs if specified in jhbuildrc. + + * jhbuild.py (default_config): add an module_autogenargs option to + the config file. + +2003-07-19 Anders Carlsson <andersca@codefactory.se> + + * modulesets/gnome24.modules: Xr now goes by the name cairo. + +2003-07-18 James Henstridge <james@daa.com.au> + + * bootstrap.py (bootstraps): update bootstraps to automake-1.7.6. + + * modulesets/gnome24.modules (totem): depend on gnome-desktop (bug + #117165). + (gok): depend on scrollkeeper (bug #114760). + (libgtcpsocket): depend on intltool (bug #114760). + +2003-07-17 James Henstridge <james@daa.com.au> + + * modulesets/gnome24.modules: add gnome-hello (bug #117615). + (gnopernicus): depend on linc (bug #116766). + +2003-07-05 James Henstridge <james@daa.com.au> + + * modulesets/gnome22.modules: and here. + + * modulesets/gnome24.modules: gnome-session depends on esound. + +2003-07-05 Marco Pesenti Gritti <marco@it.gnome.org> + + * module.py: + + Add the ability to specify a mozilla branch. + + * modulesets/gnome24.modules: + + Use 1.4 mozilla branch. + +2003-07-04 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome24.modules (meta-gnome-desktop): Replaced + meta-gnome-accessibilty dependency with gnopernicus+gok because + meta-gnome-accssibility contains extra stuff that is not part of + GNOME 2.4. + +2003-07-02 Andrew Sobala <aes@gnome.org> + + * modulesets/gnome24.modules: added nautilus-cd-burner + +2003-07-02 Andrew Sobala <aes@gnome.org> + + * modulesets/gnome24.modules: fixed up GNOME 2.4 modules (Murray :P) + +2003-07-01 Murray Cumming <murrayc@usa.net> + + * modulesets/gnome24.modules: + Added GNOME 2.4 new modules to meta-gnome-desktop dependencies, + some implicitly through other modules. I put epiphany and gnomemeeting + at the end because they are probably harder to build. + Actually it fails after zenity so I hope someone can fix it. + +2003-06-29 Mark Finlay <sisob@eircom.net> + + * modulesets/gnome24.modules: + Adding the gstreamer version of totem. + +2003-06-27 Matthias Clasen <maclas@gmx.de> + + * module.py (BuildScript.build): Respect --no-interact. + + * jhbuild.py: Pass --no-interact down to build.build(). + +2003-06-25 Bill Haneman <bill.haneman@gnome.org> + + * modulesets/gnome24.modules: + Removed erroneous gnome-2-0-0 tag from gnome-mag + module. + +2003-06-11 Mark McLoughlin <mark@skynet.ie> + + * jhbuild.py: add libdir to LD_LIBRARY_PATH when + it contains libdir already, but not as the first + in the list. + + * modulesets/gnome24.modules: + libwnck depends on startup-notification. + gnome-desktop doesn't depend on libwnck, but gnome-panel + does. + +2003-06-24 Ian McKellar <yakk@yakk.net> + + * cvs.py: + Fixed error reporting + +2003-06-24 Anders Carlsson <andersca@codefactory.se> + + * modulesets/gnome24.modules: + Remove thinice, it's now in gnome-themes. + +2003-06-21 Anders Carlsson <andersca@codefactory.se> + + * modulesets/gnome24.modules: ORBit2 now depends + on gnome-common. + +2003-06-16 Murray Cumming <murray@usa.net> + + * modulesets/gnome24.modules: meta-gnome-desktop: + Removed gedit-plugins. It was never part of GNOME Desktop. + +2003-06-15 Anders Carlsson <andersca@codefactory.se> + + * modulesets/gnome24.modules: Add drwright. + +2003-06-13 Jeroen Zwartepoorte <jeroen@xs4all.nl> + + * modulesets/gnome24.modules: Add gpdf. + +2003-06-11 Anders Carlsson <andersca@codefactory.se> + + * modulesets/gnome24.modules: Add Xr and friends. + +2003-05-29 Glynn Foster <glynn.foster@sun.com> + + * modulesets/gnome24.modules: Give jhbuild some zen power! + +2003-05-25 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome22.modules: Fix rhythmbox and glimmer + so they build. + +2003-05-18 Andrew Sobala <aes@gnome.org> + + * modulesets/gnome24.modules: Add nautilus dep from control-center + +2003-05-09 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome22.modules: Remove rhythmbox and monkey-media + add net-rhythmbox HEAD. Also remove gael. It doesn't build for + all people and it's been effectively dead for a long time now. + Also correct branches for libgnome, libgnomecanvas and libgnomeui. + +2003-05-08 Johan Dahlin <jdahlin@async.com.br> + + * module.py (MozillaModule): More fixes, most important, don't do + checkout mozilla/client.mk every time and don't run a full + checkout, if we already have checkout the tree, use fast-update + instead. + +2003-05-07 Anders Carlsson <andersca@codefactory.se> + + * modulesets/gnome24.modules: gtksourceview uses HEAD now + +2003-05-05 Johan Dahlin <jdahlin@async.com.br> + + * bootstrap.py: python seems to be confused about __file__ when + doing os.chdir(), save the absolute path before calling os.chdir(). + (Bootstrap.build): Use jhbuild_directory here. + (Bootstrap.build): Use .endswith instead of slicing. + (bootstraps): Simplify autoconf check + (_boldcode, _normal): Use commands.getoutput() here. + +2003-05-05 Johan Dahlin <jdahlin@async.com.br> + + * module.py: Import check for xml.dom.minidom. + refactor get_mozilla_ver and put it under __init__ + remove MozillaModule.do_install method, since it was on crack + Use .endswith instead of slicing in a couple of places + Add a few assertions + Make list comprehensions more readable + Strip text from raw_input() + +2003-05-05 James Henstridge <james@daa.com.au> + + * modulesets/gnome24.modules: linc now requires the gnome-common + autogen.sh script, so mark it as a dependency (fixes bug #112205). + +2003-04-29 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome22.modules: Update XChat + * modulesets/gnome24.modules: Same. + +2003-04-23 James Henstridge <james@daa.com.au> + + * jamesh.jhbuildrc (branches): set a custom branch to test things. + + * module.py (read_module_set): if a branch is listed in the + branches dict, use it instead of the branch tag in the module set. + + * jhbuild.py (read_config_file): backward compat for 'cvsroot' + setting was broken (key for gnome cvs is 'gnome.org'; not 'gnome'). + (default_config): add a branches dictionary. + + * jhbuild.py (do_update_one): add "jhbuild updateone" command + (suggested by bug #109617). + + * modulesets/gnome24.modules: add evolution to this moduleset too. + + * modulesets/moduleset.xsl: update this too. + + * modulesets/moduleset.dtd: remove fcpackage element from DTD. + + * module.py (FcPackage): remove specialised fcpackage build rules. + (read_module_set): get rid of parsing of <fcpackage> tags. + + * modulesets/gnome22.modules: same here, but use the fc-2_2_branch + branch of fontconfig. + + * modulesets/gnome24.modules: get fontconfig,etc from CVS. + +2003-04-22 James Henstridge <james@daa.com.au> + + * modulesets/gnome1.modules: same here. + + * modulesets/gnome24.modules: same here. + + * modulesets/gnome22.modules: same here. + + * modulesets/gnome20.modules: add cvs roots. + + * jhbuild.py (*): fix up arguments to read_module_set. + + * module.py (read_module_set): read a set of cvsroots from the XML + file that can be overriden from the jhbuildrc file. + + * cvs.py (login): new function to perform a cvs checkout + + * jhbuild.py (read_config_file): we now have a "cvsroots" + dictionary, mapping keys to cvs roots. + +2003-04-21 James Henstridge <james@daa.com.au> + + * cvs.py (_scramble, _descramble): add functions to scramble and + descramble CVS passwords. Will be used to work around "cvs login" + needing user input. + + * libtool-1.3.5-mktemp.patch: update to latest version from RH + packages, fixing a bug pointed out by Jeff. + + * bootstrap.py (bootstraps): move up to libtool-1.5, which is + required to build fontconfig, etc from CVS. Also add RH's + ltmain-SED patch that patches over problems when people use old + libtool.m4 with new ltmain.sh. + +2003-04-21 Jens Finke <jens@triq.net> + + * modulesets/gnome24.modules: + * modulesets/gnome22.modules: Added eel dep for eog. + +2003-04-21 Jon Svendsen <jon-sven@frisurf.no> + + * modulesets/gnome20.modules: + * modulesets/gnome22.modules: + * modulesets/gnome24.modules: Added eog to meta-gnome-desktop in + 2.0, 2.2 and 2.4 modulesets (bug #108017). + +2003-04-17 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome22.modules: Make gtkhtml depend on gal. + +2003-04-14 Jeroen Zwartepoorte <jeroen@xs4all.nl> + + * module.py: Remove some more runsocks mumbo jumbo. + * modulesets/gnome24.modules: gedit & glimmer now depend on + gtksourceview revision "toward-gedit-integration". + +2003-04-12 Mikael Hallendal <micke@codefactory.se> + + * modulesets/gnome24.modules: Don't build bonobo-activation, moved + the deps from bonobo-activation to libbonobo to be safe. + +2003-04-11 Mikael Hallendal <micke@codefactory.se> + + * cvs.py: Removed sun runsocks mumbo jumbo... :) + +2003-04-03 Bill Haneman <bill.haneman@sun.com> + + * modulesets/gnome24.modules: + * modulesets/gnome22.modules: + remove redundant at-spi entries. + +2003-04-02 Biswapesh Chattopadhyay <biswapesh_chatterjee@tcscal.co.in> + + * modulesets/gnome22.modules: Use gnome-2-2 branch for librsvg + * modulesets/gnome22.modules: Use gnome22branch for gnome-mime-data + +2003-04-02 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome24.modules: libcroco is now a librsvg dependency + +2003-04-01 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome24.modules: add galeon (was only in gnome22.modules) + +2003-04-01 Bill Haneman <bill.haneman@sun.com> + + * modulesets/gnome24.modules: remove gnome-2-2 tag + for atk, gail, and at-spi; + (HEAD of these modules is currently gtk+-2.2-compatible). + * modulesets/gnome22.modules: change gnome-2-0 tag + on at-spi to gnome-2-2 tag. + +2003-03-31 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: use gnome-2-2 branch for + for gnome-icon-theme, gnome-vfs, eel, nautilus + +2003-03-31 Mikael Hallendal <micke@codefactory.se> + + * modulesets/gnome22.modules: use gnome-2-2 branch of Yelp + +Wed Mar 26 18:06:43 2003 Jonathan Blandford <jrb@redhat.com> + + * modulesets/gnome24.modules: require gnome-2-2 version of gail. + +2003-03-20 Mikael Hallendal <micke@codefactory.se> + + * modulesets/gnome22.modules: use revision gnome-2-2 of gail. + +2003-03-19 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome22.modules: This is the janitor. Please + clean up after yourself. Your mother does not work here. + +2003-03-17 Kjartan Maraas <kmaraas@gnome.org> + + * modulesets/gnome22.modules: Added libgsf dep for eog. + Updated xchat tarball version. + +2003-03-07 Biswapesh Chattopadhyay <biswapesh_chatterjee@tcscal.co.in> + + * modulesets/gnome22.modules: Added libzvt, anjuta, gtkhtml, + evolution, glade3. Updated anjuta2 dependency. + Added stable gnome-2-2 revisions. + +2003-03-07 Havoc Pennington <hp@pobox.com> + + * modulesets/gnome22.modules: gconf stable is on gnome-2-2 branch + +2003-03-06 James Willcox <jwillcox@gnome.org> + + * modulesets/gnome24.modules: Added the gedit-plugins module + +2003-03-05 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome24.modules: remove --with-widget=vte autogen + args from gnome-termainal, since it no longer supports libzvt and + requires vte + +2003-03-06 James Henstridge <james@daa.com.au> + + * jhbuild.py (help): update help message to indicate that -s and + -t are valid for the "jhbuild update" command now. + +2003-03-05 James Henstridge <james@daa.com.au> + + * module.py (_isxterm): set to true if the string "xterm" is found + anywhere in $TERM, rather than just if $TERM==xterm. + + * jhbuild.py (do_update): take arguments similar to build and + buildone. + + * modulesets/gnome24.modules: add new moduleset for gnome 2.4. + + * modulesets/gnome*.modules: update to scrollkeeper-0.3.12. + +2003-03-02 James Henstridge <james@daa.com.au> + + * bootstrap.py (automake-1.7): update to automake 1.7.3 + (pkg-config): update to 0.15.0 + +2003-02-25 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: update libbonoboui to use + gnome-2-2 branch + +2003-02-22 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: update ggv to use gnome-2-2 branch + +2003-02-20 Frederic Crozat <fcrozat@mandrakesoft.com> + + * modulesets/gnome22.modules: + Updated vte to use gnome-2-2 branch. + +2003-02-19 Calum Benson <calum.benson@sun.com> + + * modulesets/gnome22.modules: + + Updated gnome-themes to use gnome-2-2 branch. + +2003-02-19 James Henstridge <james@daa.com.au> + + * modulesets/gnome22.modules (gnome-session): fix typo in revision + name. + (gtkhtml2): move to gnome-2-2 branch. + +2003-02-17 Will LaShell <will@lashell.net> + + * modulesets/gnome22.modules: Update following modules to + their 2.2 branches [ linc, ORBit2, gnome-session, eog ] + +2003-01-13 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: update procman branch + to gnome-2-2 + +2003-02-12 Marco Pesenti Gritti <marco@it.gnome.org> + + * module.py: Add a MozillaModule class + * modulesets/gnome22.modules: Add epiphany and mozilla + +2003-02-12 James Henstridge <james@daa.com.au> + + * modulesets/gnome22.modules (xchat): update to 2.0.0. + (gnet): check out the GNET_1_1 branch. Fixes bug 105589. + (gaim): add gaim, using patch from bug 105769. + +2003-02-11 James Henstridge <james@daa.com.au> + + * modulesets/gnome22.modules: fix up dependencies of the xchat + module from Will's patch (bug 105766). + +2003-02-10 James Henstridge <james@daa.com.au> + + * modulesets/gnome20.modules (pango): same. + + * modulesets/gnome22.modules (pango): move the autogenargs from + gtk+. + +2003-02-09 James Henstridge <james@daa.com.au> + + * modulesets/gnome22.modules (xchat): add xchat (as a tarball). + (gtk-engines-cleanice): add cleanice engine (fixes bug 104256). + (orbit-python): remove from modules list (fixes bug 104937). + +2003-02-06 Paolo Maggi <paolo.maggi@polito.it> + + * modulesets/gnome22.modules: make gnome-themes depends on thinice2 + +2003-02-05 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: update control-center branch + to gnome-2-2 + +2003-02-04 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: remove libole2, use gal head + +2003-02-01 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: make acme depend on libwnck + +2003-02-01 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: use gnome-2-2 bug-buddy branch + +2003-02-01 Alex Duggan <aldug@astrolinux.com> + + * modulesets/gnome22.modules: make anjuta2 depend on vte, not libzvt + +2003-01-29 James Henstridge <james@daa.com.au> + + * modulesets/moduleset.xsl: simple XSL file to display module sets + as HTML. + + * README: update minimum required python version to 2.0, to + reflect reality. + + * modulesets/moduleset.dtd: dtd for module sets. + + * modulesets/gnome*.modules: add module set files. Obsolete the + moduleinfo.py file. + + * module.py (read_module_set): new function to load up a moduleset + from an XML file. + +2003-01-28 Alex Duggan <aldug@astrolinux.com> + + * moduleinfo.py (gnome22): gnome-games branch gnome-2-2 + +2003-01-28 Alex Duggan <aldug@astrolinux.com> + + * moduleinfo.py (gnome22): gedit branch gnome-2-2 + +2003-01-27 Glynn Foster <glynn.foster@sun.com> + + * moduleinfo.py (gnome22): gnome-utils branch gnome-2-2 + +2003-01-20 Havoc Pennington <hp@redhat.com> + + * moduleinfo.py (gnome22): metacity branch gnome-2-2 + +2003-01-26 Alex Duggan <aldug@astrolinux.com> + + * moduleinfo.py (gnome22.gnome-applets): use gnome-2-2 branch + +2003-01-26 Alex Duggan <aldug@astrolinux.com> + + * moduleinfo.py (gnome22.gnome-themes): make it depend on gtk-engines. + Fixes #104466 + +2003-01-24 Alex Duggan <aldug@astrolinux.com> + + * moduleinfo.py (gnome20.pan): add gnet dep to pan. Fixes #104358 + +2003-01-23 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py (gnome22): Added gnome-media to meta-gnome-desktop.. + +2003-01-23 Daniel Elstner <daniel.elstner@gmx.net> + + * moduleinfo.py (gnome20): Add gucharmap module. + +2003-01-23 Thomas Vander Stichele <thomas at apestaart dot org> + + * moduleinfo.py: check out BRANCH-GSTREAMER-0_6 for gstreamer and + gst-plugins + +2003-01-23 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py (gnome22): Use gnome-2-2 branch of fileroller. + +2003-01-23 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py (gnome22): Don't build nautilus-gtkhmtml because + it is not part of GNOME 2.2. + +2003-01-22 Alex Duggan <aldug@astrolinux.com> + + * moduleinfo.py (gnome22): Use 2.2 branches for libgnomeprint + and libgnomeprintui + +2003-01-21 Christian Meyer <chrisime@gnome.org> + + * moduleinfo.py (gnome22): oops, forgot to add the correct file size. + +2003-01-21 Christian Meyer <chrisime@gnome.org> + + * moduleinfo.py (gnome22): Updated to startupnotification 0.5. + +2003-01-21 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py (gnome22): Use gnome 2.2 branches for glib, pango, + gtk+, and atk+. + +2003-01-20 Alex Duggan <aldug@astrolinux.com> + + * moduleinfo.py (gnome22.libwnck), (gnome22.gnome-terminal): + use the gnome-2-2 branch + +2003-01-19 Havoc Pennington <hp@redhat.com> + + * moduleinfo.py: add support for gnomechat + +2003-01-13 Johan Dahlin <jdahlin@async.com.br> + + * moduleinfo.py: Update URL for fontconfig + +2003-01-12 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome22.glimmer): require libgnomeprint 2.2 now. + + * vbs-head.jhbuildrc: similar changes here. + + * sample.jhbuildrc: update sample config file for gnome22, and + only build 'meta-gnome-desktop' by default, rather than 'all'. + + * module.py (Tarball.do_patch): if nobuild is set, go to + STATE_DONE on completion, rather than STATE_CONFIGURE. + +2003-01-10 Alex Duggan <aldug@gnome.org> + + * moduleinfo.py (gnome22.gnome-panel): get gnome-2-2 branch + +2003-01-03 Paolo Maggi <maggi@athena.polito.it> + + * moduleinfo.py (gnome20.gedit): get gnome-2-0 branch. Added + gedit to meta-gnome-desktop + (gnome22): added gedit module. Added gedit to meta-gnome-desktop + +2002-12-24 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py (gnome22): Replaced the gnome22 gnome-meta-desktop + metamodule with one that includes the new modules such as acme, + file-roller, gstreamer, and nautilus-media. + +2002-12-24 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome22.fcpackage): add fcpackage to gnome22 + module set. + (gnome22.pango): depend on fcpackage. + + * module.py (FcPackage): add a special Package subclass for + building fcpackage. + + * jhbuild.py (do_build): change the code that removes entries from + the module list so that it doesn't cause an exception if you + specify a module name that won't be built. + +2002-12-23 James Henstridge <james@daa.com.au> + + * bootstrap.py (bootstraps): add my libtool -export-dynamic patch. + +2002-12-23 <chema@celorio.com> + + * moduleinfo.py (gnome22): add intltool dependency to + libgnomeprint + +2002-12-22 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py (gnome22): Made gnome-desktop dependent on + gnome-themes because it is part of the Desktop release. + +2002-12-22 Murray CUmming <murrayc@usa.net> + + * moduleinfo.py (gnome22): Added gnome-themes module, because + the Theme control panel complains at runtime about it not being + installed. + +2002-12-20 Daniel Elstner <daniel.elstner@gmx.net> + + * moduleinfo.py (gnome20): Add accessibility modules at-spi, + libgail-gnome, at-poke, gnome-mag, gok, gnome-speech, gnopernicus, + plus the MetaModule meta-gnome-accessibility. + (gnome22): Override modules at-spi, libgail-gnome, gnome-mag to + check out the HEAD branch. + +2002-12-19 Biswapesh Chattopadhyay <biswapesh_chatterjee@tcscal.co.in> + * jhbuild.py: Move True/False definitions up - fixes undefined + errors for Python version < 2.2.1 + +2002-12-19 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py: Commented out the metatheme module because the + release team think it probably isn't useful anymore, and because its + Desktop Theme capplet is confusingly similar to the new 2.2 Theme + capplet. + +2002-12-17 James Henstridge <james@daa.com.au> + + * jhbuild.py: define True and False if they aren't defined in + __builtins__. This gets it to work with slightly older Pythons + (still need to decide whether to replace the other stuff using new + features). + +2002-12-16 James Henstridge <james@daa.com.au> + + * cvs.py (CVSRoot._login): take a pointer to the buildscript, and + use it to execute the cvs login command. + + * moduleinfo.py (gnome20.gnome-vfs-extras): add. + (gnome22.gnome-media): require gstreamer. + (gnome20.gnome-media): get gnome-2-0 branch. + + * jhbuild.py (do_dot): allow user to run "jhbuild dot" to print a + dot file that can be processed with graphviz to produce a nice + directed graph of what will be built. + (do_list): "jhbuild list" outputs list of modules that would be + built, in build order. + + * module.py (ModuleSet.write_dot): function to write out a dot + file for use with graphviz. + + * moduleinfo.py (gnome22): add fontilus and sodipodi (although + sodipodi doesn't seem to want to build yet ...) + +2002-12-14 Daniel Elstner <daniel.elstner@gmx.net> + + * bootstrap.py (_normal): Use 'tput sgr0' instead of 'tput rmso' + to fix bold uglyness, as already done in module.py. + +2002-12-14 James Henstridge <james@daa.com.au> + + * module.py (CVSModule.do_build): allow going to 'configure' state + if build fails. + + * bootstrap.py (bootstraps): update libtool to 1.4.3. + + * moduleinfo.py (gnome22.glimmer): depend on libgnomeprint-2.0 + (gnome22.startup-notification): add libsnot. + (gnome22.gnome-terminal): remove libzvt from list of deps. + +2002-12-13 Thomas Vander Stichele <thomas at apestaart dot org> + + * moduleinfo.py (gnome22): add nautilus-media. + +2002-12-13 Daniel Elstner <daniel.elstner@gmx.net> + + * moduleinfo.py: Add new module for regexxer. (#99780) + +2002-12-12 James Henstridge <james@daa.com.au> + + * module.py (CVSModule.do_configure): fix bug. + + * bootstrap.py (bootstraps): update versions of bootstraps. + Autoconf up to 2.57, Automake-1.7 up to 1.7.2 and gettext up to + 0.11.5. + + * moduleinfo.py (gnome2): add scrollkeeper as a dep of various + modules. + (gnome20.scrollkeeper): require intltool. scrollkeeper checks for + it, even though it distributes its own version of it. + (gnome20.devhelp): require libgsf (from bug #100177). + + * bootstrap.py (bootstraps): remove scrollkeeper from list of + bootstraps. + + * moduleinfo.py (gnome20.scrollkeeper): add scrollkeeper as a + Tarball type package, with libxml2 and libxslt as dependencies. + + * module.py (Tarball): another Package type, pulling most of the + logic from bootstrap.py. Can fit into dependency chains with CVS + modules. Not being used yet. + (Tarball.do_install): add a little build stamp when install has + completed. + (Tarball.do_start): if jhbuild-build-stamp exists, skip build. + +2002-12-11 James Henstridge <james@daa.com.au> + + * cvs.py (CVSRoot.update): fix up call to self.checkout. + + * moduleinfo.py (gnome22): add modules for the gnome 2.0 versions + of libgnomeprint{,ui}. Make changes to match updates to jhbuild. + + * cvs.py (CVSRoot.checkout, CVSRoot.update): update. + + * jhbuild.py: make it work with the refactored module.py + + * module.py: refactor a bit, putting more intelligence into the + Module classes, simplifying the build loop. + +2002-12-10 Chema Celorio <chema@celorio.com> + + * moduleinfo.py: Fix libgnomeprint[ui] deps. Remove bonobo, + add gnome-common & pango. + * add gnome-vfs & libbonobo for libgsf + +2002-11-28 Daniel Elstner <daniel.elstner@gmx.net> + + * module.py (_normal): Use 'tput sgr0' instead of 'tput rmso'. + According to the tput/terminfo manpages 'rmso' is meant to + complement 'smso', which isn't necessarily the same as 'bold'. + 'sgr0' turns off all attribute modes and works fine for me. + +2002-12-05 Glynn Foster <glynn.foster@sun.com> + + * moduleinfo.py: Fix up the bonobo stuff for proper branches. + Change file-roller to get from cvs.gnome.org. Add gnome-utils + to the 2.2 list. + +2002-12-03 Chema Celorio <chema@celorio.com> + + * moduleinfo.py: fix the libgnomeprint[ui] deps + (gnome22): fix the 22 version too + +2002-11-28 Daniel Elstner <daniel.elstner@gmx.net> + + * moduleinfo.py (gnome22): Add module for gnome-vfs HEAD, + overriding gnome-vfs in the gnome20 module set. + This means that gnome22 now uses gnome-vfs HEAD. It was using + the gnome-vfs gnome-2-0 branch before. + +2002-11-29 Murray Cumming <murrayc@usa.net> + + * jhbuild.py: Commented-out the addpath() call that sets + C_INCLUDE_PATH. We don't know why this was set. Maybe we will find out + now. It seems to set the system directories, which leads to warnings + with gcc 3.x. + +2002-11-28 Daniel Elstner <daniel.elstner@gmx.net> + + * moduleinfo.py (gnome20): Fetch the gtkmm-2-0 branch of gtkmm2. + (gnome22): Override the gtkmm2 module to use the HEAD branch. + +2002-11-28 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py: dia-canvas requires pygtk. + +2002-11-20 Murray Cumming <murrayc@usa.net> + + * Applied patch in bug #97786, which makes gal depend on + libgnomeprintui. + +2002-11-20 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py: gst-player requires gst-plugins, because it does a + pkg-config check for gstreamer-libs. + +2002-11-19 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py: (gnome22): gnome-control-center: Added dependency on + metacity, because it requires libmetacity-private. + +Thu Nov 7 16:01:40 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py (gnome22): libgnomeprint/libgnomeprintui require + HEAD for gnome22 + +2002-11-07 Ross Burton <ross@burtonini.com> + + * moduleinfo.py: Change from orbit-python to gnome-python/pyorbit. + +2002-11-02 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py: gnomemm/libgnomuimm requires gnomemm/libgnomecanvasmm + and gnomemm/libglademm. + +2002-11-01 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py: gnomemm/libgnomeuimm: Now depends on libbonobouimm, + which needs the new orbitcpp module. + +2002-10-26 Sri Ramkrishna <sri@aracnet.com> + + * moduleinfo.py: gnome-terminal HEAD(gnome22) uses vte widget + instead of zvt. + +2002-10-26 Anders Carlsson <andersca@gnu.org> + + * moduleinfo.py: Upgrade pkg-config to 0.14.0 and remove the + patches since they've gone upstream. + +2002-10-24 Murray Cumming <murrayc@usa.net> + + * moduleinfo.py: The gtkmm-1.3 virtual cvs module is now called gtkmm2. + +2002-10-13 Sriram Ramkrishna <sri@aracnet.com> + * moduleinfo.py: Added gnome-icon-theme as a dependency to libgnomeui + +2002-10-06 Anders Carlsson <andersca@gnu.org> + + * bootstrap.py (bootstraps): Add bug-fix for pkgconfig. + +2002-10-05 Xavier Ordoquy <MCArkan@gael.sourceforge.net> + + * moduleinfo.py: gael is now in gnome cvs + +2002-09-29 James Henstridge <james@daa.com.au> + + * moduleinfo.py: update various modules to gnome-2-0 branches. + + * jhbuild.py (help): update help output (bug 93563). + + * moduleinfo.py (gnome2): add devhelp to meta-gnome-devel-tools + (bug 93563). + + * bootstrap.py (bootstraps): update bootstraps to use + Autoconf-2.54 and Python-2.2.1. Add Automake-1.7 in addition to + 1.4 and 1.6. + +2002-09-26 Bastien Nocera <hadess@hadess.net> + + * moduleinfo.py: update gnome-common branches (hope I'm not breaking + anything...) + +2002-09-26 Anders Carlsson <andersca@gnu.org> + + * bootstrap.py: + * pkgconfig-0.13-include.patch: + Use pkg-config 0.13 and add an include fix. + +2002-09-18 Will LaShell <will@lashell.net> + + * cvs.py: adding the -dP arguement to cvs update + +2002-09-18 Havoc Pennington <hp@pobox.com> + + * moduleinfo.py (gnome2): use gconf-1-2 branch for gnome20, + add gconf HEAD to gnome22 + +2002-09-17 Havoc Pennington <hp@redhat.com> + + * moduleinfo.py (gnome2): pull gnome-2-0 branch of libwnck + +Mon Sep 16 15:12:31 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py (gnome2): add '-- ' to gstreamers autogen.sh to + pass args on to configure. This still doesn't work with + --maintainer-mode etc., but people can fix that on their own. + +2002-09-16 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome22): s/profterm/gnome-terminal/ + (gnome22): add gnome-2-0 branch for libglade. + +Thu Sep 12 19:10:35 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py (gnome2): libmrproject requires libgsf + +Thu Sep 12 19:08:58 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py: s/monkey-sound/monkey-media/g + +2002-09-10 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome2): get mrproject from GNOME CVS now (patch + from Xavier Ordoquy. + +2002-09-09 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome2): updates from Will Lashell (bug #92581). + +2002-09-06 Havoc Pennington <hp@pobox.com> + + * moduleinfo.py (gnome2): add right branch for gail + +Thu Sep 5 15:28:35 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py (gnome-build): Require gtkhtml2 as well. + +2002-08-18 Anders Carlsson <andersca@gnu.org> + + * bootstrap.py (bootstraps): Fetch automake-1.4 as well as + automake-1.6. + +2002-07-24 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome-control-center): set to gnome-2-0 branch + for gnome20 module set (and head for gnome22). + (anjuta2): depends on libzvt (from bug #87661). + +2002-07-14 Havoc Pennington <hp@pobox.com> + + * moduleinfo.py (gnome2): add branch to profterm + (gnome22): put profterm HEAD in gnome22 + +2002-07-13 Xavier Ordoquy <MCArkan@gael.sourceforge.net> + + * moduleinfo.py: + Added dia-newcanvas and gael2 to the gnome20 set. + +2002-07-05 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome22): add start of gnome22 set (based on + gnome20), which at the moment just has head glib, pango and gtk+. + + * module.py (ModuleSet.__init__): add optional "baseset" argument + to constructor, based on idea by hp. + + * module.py (BuildScript.build): rest of jrb's patch. + + * jhbuild.py (do_build): add --start-at arg from patch by Jonathan + Blandford <jrb@redhat.com> (from bug #87344) + + * moduleinfo.py (rhythmbox): rhythmbox module is called rhythmbox + now. Patch from hingwah@gnupilgrims.org (from bug #85905). + (gnomeicu): Another patch from hingwah (from bug #85907). + + * jhbuid.py, module.py: apply patch to add makeargs setting + contributed by C. Evans <ccevans@cox.net> (from bug #85228). + +Wed Jun 19 14:02:05 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py (head): update rhythmbox dependencies and module + +2002-06-16 James Henstridge <james@daa.com.au> + + * moduleinfo.py (head): add libxslt dependency to gtk-doc. + (head): add sigc-1.1 dependency to gtkmm-1.3. + +2002-06-09 James Henstridge <james@daa.com.au> + + * moduleinfo.py: add extra modules, based on patch by Gediminas + Paulauskas <menesis@delfi.lt>. + + * bootstrap.py (Bootstrap.build): add support for multiple patch + files. + (bootstraps): add a number of the patches from the libtool-1.4.2-9 + SRPM from Rawhide, so that we use a non sucky libtool. + (Bootstrap.wants_package): allow people to install bootstrap + packages they already have on their system. + +2002-06-08 James Henstridge <james@daa.com.au> + + * moduleinfo.py (head): add gtkmm-1.3 as a dependency for + gnomemm/libgnomecanvasmm (bug fix by Hing-Wah Wan + <hingwah@gnupilgrims.org>). + +2002-06-03 James Henstridge <james@daa.com.au> + + * README: add note about filing jhbuild bugs in bugzilla. + + * moduleinfo.py (head): fix up meta-gnome-c++ MetaModule def. + +2002-06-01 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome2): add support for the gtk-- modules. + Patch from Ross Burton <r.burton@180sw.com> (from bug 82656). + + * bootstrap.py (bootstraps): update list of bootstraps to latest + gettext, and also add scrollkeeper to list of imports. + + Apply modified version of Dom's patch: + + * module.py (BuildScript.build): keep a counter of which module we + are building. + (BuildScript._message): show the module number in the messages. + +2002-05-20 James Henstridge <james@daa.com.au> + + * moduleinfo.py: add gnome-applets to meta-gnome-core module. + +2002-05-05 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome-applets): add gail dependency for + gnome-applets (from Sam th). + (gnome2): rename the 'head' moduleset to 'gnome2'. A + compatibility set name has been added. + + Merge in Johan Dahlin's updates: + + * moduleinfo.py: add some module defs for stuff outside of the + gnome CVS repo. + + * module.py (Module.__init__): optionally save a cvsroot string + with the module def. + (BuildScript.__init__): save checkoutroot on the BuildScript + object. + (BuildScript._cvscheckout): if module.cvsroot is not None, then + use it as the cvsroot. + (ModuleSet.addmod): new function as shorthand in the moduleinfo.py + file. + +2002-05-02 Benjamin Kahn <xkahn@ximian.com> + + * bootstrap.py (bootstraps): Add audiofile to the bootstrap + list. Not everyone has it, and it isn't in GNOME CVS. + +2002-04-30 Malcolm Tredinnick <malcolm@commsecure.com.au> + + * bootstrap.py: When there is an error downloading one of the + files in the bootstrap phase, report the error. Bitter + experience indicates that it might not be what you initially + expect. + +2002-04-28 Malcolm Tredinnick <malcolm@commsecure.com.au> + + * README: Made the indicated tools' version numbers match what + is actually downloaded and installed. + +2002-04-26 Malcolm Tredinnick <malcolm@commsecure.com.au> + + * Makefile: The install target depends on install-check. + Otherwise blindly following the instructions in the README leads + to tears. + +2002-04-25 Manish Singh <yosh@gimp.org> + + * moduleinfo.py (head): eog requires libgnomeprint + +Mon Apr 15 11:51:26 2002 Owen Taylor <otaylor@redhat.com> + + * moduleinfo.py (head): Point glib, gtk+ at 2-0 branches. + +2002-04-13 Alex Graveley <alex@ximian.com> + + * moduleinfo.py (head): eel requires gail. + +Sat Apr 13 11:04:46 2002 Owen Taylor <otaylor@redhat.com> + + * moduleinfo.py (head): Point pango at pango-1-0, since + pango HEAD is post GNOME-2.0. + +2002-04-05 Alex Graveley <alex@ximian.com> + + * jhbuild.py (do_shell): Impl to allow starting a new blessed + shell from the command line. + +2002-04-05 Jeffrey Stedfast <fejj@ximian.com> + + * bootstrap.py (Bootstrap.build): s/zcat/gunzip -dc/ - + unfortunately zcat does not work so well on Solaris. Hopefully I + will not anger the gods by committing this :-) + +2002-03-27 Manish Singh <yosh@gimp.org> + + * install-check.c: check for *.c as well (gobject installs a .c + file as a public header) + +2002-03-20 Johan Dahlin <jdahlin@telia.com> + + * jhbuild.py: if prefix don't exist, create it. + + * moduleinfo.py: Add gail as a dependency to gnome-media module. + + * moduleinfo.py: Add gnome-panel as a dependency to gnome-utils module. + + * moduleinfo.py: Add gnome-desktop as a dependency to + gnome-control-center module. + +2002-03-19 Manish Singh <yosh@gimp.org> + + * install-check.c: So my assumption was wrong. Add cases for *.idl + and orbit-idl-2 + +2002-03-18 James Henstridge <james@daa.com.au> + + * moduleinfo.py: apply Greg Schafer's patch for the gnome1 + build rules. + +2002-03-15 Manish Singh <yosh@gimp.org> + + * Makefile + * install-check.c: rewrote install-check in C. Much faster now. + I also did a check for .h[^.]*$ to make it only cmp on header + files. Not entirely sure that is completely valid (are there any + installed headers that don't end in .h?) + +2002-03-15 Dave Neary <bolsh@gimp.org> + + * moduleinfo.py (head): Added sawfish and it's + dependencies. Watch out for librep trying to install + rep.m4 in /usr/shar/aclocal. + +2002-03-14 James Henstridge <james@daa.com.au> + + * moduleinfo.py (head): add glade2c. + + * bootstrap.py (bootstraps): update versions to bootstrap with. + + * jhbuild.py (addpath): set ACLOCAL_AMFLAGS as well. This should + make things work a bit better with automake-1.6. + +2002-03-06 Havoc Pennington <hp@redhat.com> + + * moduleinfo.py (gnome1): remove libzvt dep from gnome1 gnome-core + +2002-03-06 James Henstridge <james@daa.com.au> + + * moduleinfo.py (head): add a meta-gnome-devel-tools meta module. + + * module.py (BuildScript._*): force a chdir before configure, + make, etc. + (BuildScript.__init__): create a CVSRoot object to handle + checkouts. + (BuildScript._cvscheckout): simplify to use the CVSRoot object. + (BuildScript._configure): use the CVSRoot to find the checkoutdir + (BuildScript._makeclean): same here. + (BuildScript._make): same here. + (BuildScript._makeinstall): same here. + (Module): remove the cvs args stuff. + +2002-03-05 James Henstridge <james@daa.com.au> + + * module.py (BuildScript.build): if we are forcing a configure, + also force a checkout, rather than update. + + * moduleinfo.py (head): s/Task/MetaModule/, and rename meta + modules to begin with meta-, so they match the GARNOME naming. + + * module.py (MetaModule): rename from Task. + +2002-03-02 Havoc Pennington <hp@pobox.com> + + * moduleinfo.py: add bug-buddy to 'desktop' task + +2002-02-20 James Henstridge <james@daa.com.au> + + * module.py (BuildScript.login): make python 1.5 compatible. And + make it work with both new and old style lines in the .cvspass + file. + +2002-02-20 Johan Dahlin <jdahlin@telia.com> + + * bootstrap.py: use version from autoconf2.50 is it exists (which is + the case on debian systems) + + * jhbuild.py: Add nicer output if the config file isn't found, + create $PREFIX/share and $PREFIX/share/aclocal if they don't exist + + * module.py: strip out port when checking for cvs server in ~/.cvspass + +2002-02-20 James Henstridge <james@daa.com.au> + + * moduleinfo.py (head): add extra dep for nautilus. Patch from + Wan Hing Wah <hingwah@computer.org>. + +2002-02-18 Manish Singh <yosh@gimp.org> + + * jhbuild.py: allow a default list of modules to skip in the + config file + +2002-02-14 Johan Dahlin <jdahlin@telia.com> + + * moduleinfo.py: make libgnomecanvas depends on gnome-common + +2002-02-13 James Henstridge <james@daa.com.au> + + * moduleinfo.py (head): add tasks gnome-libs, gnome-core and + desktop (if anyone else has good ideas for tasks, please suggest + them). + (head): fix up deps for the split up gnome-core. + + * module.py (Task): simple class for mapping a single name to a + list of modules to build. + (ModuleSet.__expand_mod_list): function for expanding a list of + strings to a list of Module instances. Takes task objects into + account. + (ModuleSet.get_module_list): use __expand_mod_list() to expand + module lists, so we get task support. + +2002-02-13 Xavier Ordoquy <MCArkan@gael.sourceforge.net> + + * moduleinfo.py: changed gnome-core to + gnome-desktop/panel/session. + +2002-02-12 James Henstridge <james@daa.com.au> + + * moduleinfo.py: add glade (glade-gnome2-branch). + +2002-02-05 Gediminas Paulauskas <menesis@delfi.lt> + + * moduleinfo.py (head): add gnome-media, bug-buddy, gnome-games; + remove libcapplet; fix gal + +2002-02-01 Havoc Pennington <hp@pobox.com> + + * Makefile (bindir): use a "bindir" variable so "make install + bindir=/foo" works + + * jhbuild.py (do_build): if passing extra args to build mode, + take them as a list of modules to build + + * moduleinfo.py (head): make metacity depend on gconf + +Thu Jan 24 13:12:08 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py (head): add libgnomeprint, libgnomeprintui, and gedit + +Sat Jan 19 20:31:16 2002 Owen Taylor <otaylor@redhat.com> + + * moduleinfo.py (head): Add gtk-engines. + +Thu Jan 17 15:07:15 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py (head): add profterm and gdm2 + +2002-01-16 James Henstridge <james@daa.com.au> + + * moduleinfo.py (head): add orbit-python info. + + * jhbuild.py (do_build): expand the skip list to include dependent + modules. So --skip=libgnomeui will skip glib, gtk+, libgnome, + etc. Now it is actually useful. + +2002-01-14 Alex Graveley <alex@ximian.com> + + * bootstrap.py (bootstraps): Add python bootstrap for 2.x. + (Bootstrap.build): Allow tarballs to end in tgz, + (Bootstrap.wants_package): Remove 'x' in the version string to let + us display "checking for python 2.x" but really just look for '2.' + This should probably use regexps. + +2002-01-12 Xavier Ordoquy <MCArkan@gael.sourceforge.net> + + * moduleinfo.py: added gnome-common to gnome-mime-data + and libgtop to gnome-core. + +Fri Jan 11 12:08:14 2002 Owen Taylor <otaylor@redhat.com> + + * moduleinfo.py (head): gtkhtml2 now depends on gail, not + vice-versa. + +Thu Jan 10 16:18:20 2002 Jonathan Blandford <jrb@redhat.com> + + * module.py (BuildScript.build): Allow you to re ./configure on + error. + (moduleinfo.py): Update dependencies on gnome-control-center + +Tue Jan 8 12:05:06 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py: whoops. add esound. Also add gconf-editor + +Mon Jan 7 20:00:42 2002 Jonathan Blandford <jrb@redhat.com> + + * moduleinfo.py: nautilus depends on esound. gnome-control-center + doesn't depend on libcapplet or bonobo-config. + +2002-01-04 Alex Graveley <alex@ximian.com> + + * jhbuild.py (addpath): Fix LD_PRELOAD munging so entire path to + libgdkxft is removed, not just the library name. + +2002-01-04 James Henstridge <james@daa.com.au> + + * jhbuild.py (setup_env): get rid of libgdkxft.so from LD_PRELOAD + if it is in there. Can fix some build errors for people. + +2002-01-03 Alex Graveley <alex@ximian.com> + + * moduleinfo.py (head): libzvt depends on gnome-common for + gnome-autogen.sh. + +2001-12-24 James Henstridge <james@daa.com.au> + + * bootstrap.py (Bootstrap._bold): same here. + (Bootstrap.wants_package): string.find returns -1 on error -- not 0 + + * module.py (BuildScript._message): if it is an xterm, also put + messages in the window title. + +2001-12-17 Xavier Ordoquy <mcarkan@users.sourceforge.net> + + * moduleinfo.py: added zvt dependance to gnome-core. + +2001-12-09 James Henstridge <james@daa.com.au> + + * bootstrap.py: fix up bug for patch apply code found by Josh Lucas + <josh@stonecottage.com> + +2001-12-05 Owen Taylor <otaylor@redhat.com> + + * moduleinfo.py (head): Add dependency on gnome-common + for librsvg, libzvt for gnome-core. Add gnome-utils. + +2001-12-04 James Henstridge <james@daa.com.au> + + * README: more documentation updates. + + * gettext-changelog.patch: a patch to make gettextize not suck. + + * bootstrap.py (build_bootstraps): code to handle building + required tools, such as autoconf, etc. + + * module.py (BuildScript.__init__): get rid of code setting up the + environment from here. + + * jhbuild.py (addpath): move code that sets up the environment to + this file. + + * README: update readme to reflect changed command line args. + + * jhbuild.py (main): rearrange the argument parsing a bit. + +Mon Dec 3 23:31:43 2001 Owen Taylor <otaylor@redhat.com> + + * moduleinfo.py: Added a whole bunch more GNOME-2.0 modules. + +2001-11-30 James Henstridge <james@daa.com.au> + + * jamesh.jhbuildrc: add --enable-maintainer-mode for packages whose + autogen scripts don't automatically. + + * moduleinfo.py: fix up dependencies a bit. + +2001-11-19 James Henstridge <james@daa.com.au> + + * module.py (BuildScript.__addpath): prepend the new path element, + rather than appending it. + +2001-10-26 James Henstridge <james@daa.com.au> + + * module.py (Module.cvs_update_args): add -P -d arguments to cvs + update commands for people who don't have them hard coded in their + ~/.cvsrc file. + +2001-10-25 James Henstridge <james@daa.com.au> + + * moduleinfo.py (gnome1): add initial (untested) support for + building the gnome 1.x platform. + +# Local Variables: +# coding:utf-8 +# End: diff --git a/build-scripts/jhbuild/HACKING b/build-scripts/jhbuild/HACKING new file mode 100644 index 0000000..f5b03b9 --- /dev/null +++ b/build-scripts/jhbuild/HACKING @@ -0,0 +1,46 @@ +The jhbuild module consists of a package build framework, and a number +of configuration files for building various Gnome releases. The rules +for checkins differ for each. + +Modifications to the build framework should be submitted as bug +reports at http://bugzilla.gnome.org/ where they can be reviewed +before being committed. The exception to this is build sheriff style +commits for small errors that prevent people from using jhbuild. When +in doubt, submit a bug report. + +The modulesets/ directory contains configuration files that describe +how to build various versions of Gnome. The file gnomeXY.modules +contains rules needed to build the stable version X.Y of Gnome or the +development branch leading up to that version. Changes of the +following types can be committed without approval: + + - Updating the branch tag for a module if it is incorrect for that + Gnome release. + + - Updating to a new version of a tarball for tarball type + defintions, provided the new version is appropriate for that Gnome + release. + + - Adding a definition for a module that is part of the Gnome desktop, + developer platform, 5th toe or bindings release, etc, but is + missing from the module set. + + - Removal of module definitions where the associated module has been + removed/obsoleted from the particular Gnome version (eg. acme was + removed from gnome26 when it got integrated into control-center). + +A number of modules that fall outside of a Gnome release but are +related to Gnome are also included in the module set. This includes +software that may be under development and not ready for general use. + +If you would like to add a module to one of the standard module sets, +submit a bug report as detailed above. If it is Gnome related, it +will probably get accepted. + +If your module is not Gnome related, it may get rejected. Keep in +mind that jhbuild supports external module sets that are identified by +a full URI, which allows third parties to maintain module sets +independently. + + +James Henstridge. diff --git a/build-scripts/jhbuild/Makefile b/build-scripts/jhbuild/Makefile new file mode 100644 index 0000000..2d0ae4d --- /dev/null +++ b/build-scripts/jhbuild/Makefile @@ -0,0 +1,64 @@ +PACKAGE = jhbuild +VERSION = 0.1 + +CC = gcc +CFLAGS = -Wall -O2 + +bindir=$(HOME)/bin +desktopdir=$(HOME)/.local/share/applications + +all: install-check + @echo 'Run "make install" to install.' + +install-check: install-check.c + $(CC) $(CFLAGS) -o install-check install-check.c + +update: + svn update --quiet + +install: install-check + @echo "Creating $(bindir)/jhbuild" + @mkdir -p $(bindir) + @sed "s,@jhbuilddir@,`pwd`,g" < jhbuild.in > $(bindir)/jhbuild + @chmod a+x $(bindir)/jhbuild + + @echo "Creating $(desktopdir)/jhbuild.desktop" + @mkdir -p $(desktopdir) + @cp jhbuild.desktop $(desktopdir) + @echo "Exec=$(bindir)/jhbuild gui" >> $(desktopdir)/jhbuild.desktop + + @[ -f $(HOME)/.jhbuildrc ]||echo "Don't forget to create ~/.jhbuildrc" + install -m755 install-check $(bindir)/install-check + +distdir = $(PACKAGE)-$(VERSION) +dist: + -rm -rf $(distdir) + mkdir $(distdir) + cp -p README COPYING ChangeLog Makefile jhbuild.in jhbuild.desktop $(distdir)/ + cp -p *.c *.jhbuildrc $(distdir)/ + mkdir $(distdir)/modulesets + cp -p modulesets/*.modules $(distdir)/modulesets/ + cp -p modulesets/moduleset.dtd modulesets/moduleset.xsl $(distdir)/modulesets/ + mkdir $(distdir)/patches + cp -p patches/*.patch $(distdir)/patches/ + mkdir $(distdir)/jhbuild + cp -p jhbuild/*.py jhbuild/defaults.jhbuildrc $(distdir)/jhbuild/ + mkdir $(distdir)/jhbuild/commands + cp -p jhbuild/commands/*.py $(distdir)/jhbuild/commands/ + mkdir $(distdir)/jhbuild/frontends + cp -p jhbuild/frontends/*.py $(distdir)/jhbuild/frontends/ + cp -p jhbuild/frontends/jhbuild.glade $(distdir)/jhbuild/frontends/ + mkdir $(distdir)/jhbuild/modtypes + cp -p jhbuild/modtypes/*.py $(distdir)/jhbuild/modtypes/ + mkdir $(distdir)/jhbuild/utils + cp -p jhbuild/utils/*.py $(distdir)/jhbuild/utils/ + mkdir $(distdir)/scripts + cp -p scripts/*.py scripts/*.xsl scripts/*.deps scripts/*.exceptions $(distdir)/scripts/ + mkdir $(distdir)/scripts/branch-violations + cp -p scripts/branch-violations/README scripts/branch-violations/find-branch-* \ + $(distdir)/scripts/branch-violations/ + chmod -R a+r $(distdir) + tar czf $(distdir).tar.gz $(distdir) + rm -rf $(distdir) + +.PHONY: all update install diff --git a/build-scripts/jhbuild/README b/build-scripts/jhbuild/README new file mode 100644 index 0000000..47f46c5 --- /dev/null +++ b/build-scripts/jhbuild/README @@ -0,0 +1,215 @@ +Yet Another Gnome 2 Build Script +================================ + +This is another set of scripts for building GNOME 2. They are still a +little rough around the edges, but may still be useful to you. + +They don't enforce any particular checkout, build or install +directories for your gnome2 setup (this is deduced from the config +file). + +You must have python >= 2.2 installed for jhbuild to run. + +Note that the included module sets build most software from CVS (or +equivalent), so you may encounter occasional build failures. + +If you want to build from released tarballs instead, some options +include: + + * use a jhbuild module set comprised of tarball releases: + http://blogs.gnome.org/view/newren/2005/10/04/0 + + * use GARNOME: a GAR configuration for building Gnome from tarballs: + http://www.gnome.org/projects/garnome/ + + +Why use jhbuild? +---------------- + +I wrote jhbuild because there were a few features missing from +vicious-build-scripts that I wanted. The main one is dependency +handling. + +With vicious-build-scripts, there is a list of modules that get built +in order. In contrast, jhbuild stores a list of modules along with +their dependencies. In the config file, you specify what modules you +want to end up with, and it will work out what dependencies need to be +built. + +The other main feature of jhbuild is its error handling. If an error +occurs while building a module, you are given a number of options: +rerun the build stage, start a shell, give up on the module, or ignore +the error. If you give up on the module, then jhbuild will not +attempt to build any module that depends on it (taking into account +transitive dependencies, as needed). At the end of the build, a list +of unbuilt modules is printed. + +If you wish to run a non interactive build, you can pass the +--no-interact option. + + +Configuring +----------- + +To install the scripts run "make install", and then copy +sample.jhbuildrc to you home directory, rename it to .jhbuildrc +and edit to match your setup. My rc file is provided for reference as +jamesh.jhbuildrc. + +For people using vicious-build-scripts to build gnome 2.0, the +vbs-head.jhbuildrc sample configuration file might be a good one to +start with. + +Before you can build packages from CVS, you will need to have various +build tools installed. Currently, these include: + gettext >= 0.10.40 + libtool >= 1.5 + autoconf >= 2.58 + automake 1.4-p6 + automake 1.6.x + automake 1.7.x + automake 1.8.x + pkg-config >= 0.14 + python >= 2.2 + audiofile + +Some modules may be managed with Subversion or GNU Arch, so you will +need those tools to build affected modules: + subversion http://subversion.tigris.org/ + bazaar http://bazaar.canonical.com/ (an Arch implementation) + +You can check whether the tools are available by running the following +command: + jhbuild sanitycheck + +If any problems are reported, you have two options: + +1) install packages from your distribution to satisfy the + requirements. You may need to pull some packages from the + development branch of your distro (eg. for Red Hat 9 or Fedora Core + 1 you would need updated automake packages from + rawhide/development). + +2) Run jhbuild's bootstrap procedure to install all the build tools to + your jhbuild installroot. This can be done by running the + following command: + jhbuild bootstrap + + Note that if you depend on m4 macros or pkg-config files in /usr, + you might need to adjust ACLOCAL_FLAGS and PKG_CONFIG_PATH after + running bootstrap. This can be done by adding the following lines + to your ~/.jhbuildrc file: + addpath('ACLOCAL_FLAGS', '/usr/share/aclocal') + addpath('PKG_CONFIG_PATH', '/usr/lib/pkgconfig') + +After installing the required build tools, rerun sanitycheck to make +sure everything is okay. + +Bootstrapping should only need to be done once (unless the +requirements of some package change). + + +Using jhbuild +------------- + +To build everything, just type 'jhbuild build', or just 'jhbuild'. +Some useful options that this command takes include: + + --autogen always run autogen.sh + --clean run "make clean" before make when building + --no-network don't update source from cvs + --skip=MODULES skip building the given modules + --start-at=MODULE start building at the given module + +If you just want to checkout the latest versions of everything, run: + jhbuild update + +If you want to build everything without updating from CVS (for +instance, when disconnected from the internet), use the following +command: + jhbuild build --no-network + +(this command takes the same options as 'jhbuild build'). + +If you want to run a command in the build environment (PATH, +LD_LIBRARY_PATH, etc all configured), use the following command: + jhbuild run program + +For example, to start a shell in the build environment: + jhbuild run bash + +To build a single module with no dependencies, use the following +command: + jhbuild buildone modulename + +(this command takes the same extra options as 'jhbuild build'). + +To run an unattended build and create a status page showing the +results of building each package: + jhbuild tinderbox --output=/dir/to/store/build/logs + +(this command takes the same extra options as 'jhbuild build'). + +For details of all jbhuild's command line options: + jhbuild --help + + +Error handling +-------------- + +When an error is encountered while building, you will be given a +chance to fix the problem. You can choose to rerun that part of the +build, start a shell to give you a chance to fix things, give up on +the module all together, or ignore the error (useful for certain cvs +errors). + +If you give up on building a module, all modules that depend on it +will be skipped. If you would prefer the build not to ask questions +on errors, you can pass the --no-interact switch, which is equivalent +to always choosing give up. + + +Module info +----------- + +Information about how to build the modules is contained in the +moduleinfo.py file. This file needs to be modified when dependencies +between modules change (usually, no change to the ~/.jhbuildrc will be +needed). + + +Running Gnome +-------------- + +Once you have built Gnome with jhbuild you need a way to start it: + +If you use GDM to log into Gnome you need to create a session file in +/usr/share/xsessions/ (directory may be different on non-redhat systems). +Call it 'jhbuild.desktop' and make it executable. Then add the lines: + +[Desktop Entry] +Encoding=UTF-8 +Name=Gnome-cvs +Comment=This session logs you into Gnome-cvs +Exec=jhbuild run gnome-session +Type=Application + +In order to have the name & comment show up in your native language, you will +have to add lines similar to the following: + +Name[es]=Gnome-cvs +Comment[es]=Con esta sesión accede a gnome-cvs + +If you use startx to run gnome just add 'exec jhbuild run gnome-session' +to your ~/.xinitrc + + +Reporting Bugs +-------------- + +If you find any bugs in jhbuild, or have feature requests (or +implementations :), please file them in bugzilla at: + + http://bugzilla.gnome.org/enter_bug.cgi?product=jhbuild + +This will make sure I don't lose your request. diff --git a/build-scripts/jhbuild/contrib/jhbuild_completion.bash b/build-scripts/jhbuild/contrib/jhbuild_completion.bash new file mode 100644 index 0000000..2f1b502 --- /dev/null +++ b/build-scripts/jhbuild/contrib/jhbuild_completion.bash @@ -0,0 +1,85 @@ +#!/bin/bash +# +# jhbuild tab completion for bash. +# (c) 2004, Davyd Madeley <davyd@ucc.asn.au> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# To use this completion function simply source this file into your bashrc +# with: +# . ~/path/to/jhbuild/contrib/jhbuild_completion.bash +# This completion function depends on helper functions from the main set of +# bash completions, ensure you've sourced /etc/bash_completion before sourcing +# this file. +# + +_jhbuild() +{ + local cur prev command_list i v + + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + gui|tinderbox|shell|sanitycheck|bootstrap) + command_list="" + ;; + update|updateone|build|buildone|list|dot|info|-t|-s|-a|-n|-c) + # FIXME: some of these options can take multiple module names + # give them a list of modules + command_list="`jhbuild list`" + ;; + run) + # give them a list of commands + COMP_WORDS=(COMP_WORDS[0] $cur) + COMP_CWORD=1 + _command + ;; + -f|-m) + # give them file completion + _filedir + ;; + -o) + # give them directory completion + _filedir -d + ;; + *) + command_list="gui update updateone build buildone tinderbox run shell sanitycheck bootstrap list dot info" + + v=false + if [ $COMP_CWORD -gt 2 ]; then + for i in $command_list; do + if [ "${COMP_WORDS[COMP_CWORD-2]}" == "$i" ]; then + v=true + break + fi + done + fi + + if $v; then + command_list="" + fi + ;; + esac + + for i in $command_list; do + if [ -z "${i/$cur*}" ]; then + COMPREPLY=( ${COMPREPLY[@]} $i ) + fi + done +} + +# load the completion +complete -F _jhbuild jhbuild diff --git a/build-scripts/jhbuild/doc/custom.xsl b/build-scripts/jhbuild/doc/custom.xsl new file mode 100644 index 0000000..5b96d76 --- /dev/null +++ b/build-scripts/jhbuild/doc/custom.xsl @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + + <xsl:param name="shade.verbatim.style" select="1"/> + <xsl:param name="use.id.as.filename" select="1"/> + <xsl:param name="html.stylesheet" select="'jhbuild.css'"/> + +</xsl:stylesheet> diff --git a/build-scripts/jhbuild/doc/jhbuild.css b/build-scripts/jhbuild/doc/jhbuild.css new file mode 100644 index 0000000..a08067b --- /dev/null +++ b/build-scripts/jhbuild/doc/jhbuild.css @@ -0,0 +1,20 @@ +tr.question > td > :first-child, tr.answer > td > :first-child, +tr.qandadiv > td > h4, tr.toc > td > :first-child { + margin-top: 0em; +} + +.variablelist > table td { + vertical-align: top; +} + +.programlisting { + background: #eeeeff; + border: solid 1px #aaaaff; + padding: 0.5em; +} + +.screen { + background: #eeeeee; + border: solid 1px #aaaaaa; + padding: 0.5em; +} diff --git a/build-scripts/jhbuild/doc/jhbuild.xml b/build-scripts/jhbuild/doc/jhbuild.xml new file mode 100644 index 0000000..0f658b5 --- /dev/null +++ b/build-scripts/jhbuild/doc/jhbuild.xml @@ -0,0 +1,1579 @@ +<?xml version="1.0" standalone="no"?><!--*- mode: nxml -*--> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> +<!-- process to HTML with: xmlto xhtml-nochunks -m custom.xsl jhbuild.xml --> +<article id="index"> + <articleinfo> + <title>JHBuild Manual</title> + <authorgroup> + <author> + <firstname>James</firstname> + <surname>Henstridge</surname> + </author> + </authorgroup> + <copyright> + <year>2004</year> + <holder>James Henstridge</holder> + </copyright> + </articleinfo> + + <section id="introduction"> + <title>Introduction</title> + + <para>JHBuild is a tool designed to make building collections of + source packages (also known as modules). It uses <quote>module + set</quote> files to describe the modules available to build. + These files include dependency information that allows JHBuild to + work out what modules need to be built and in what order to build + what the user requested.</para> + + <para>JHBuild was originally written for building <ulink + url="http://www.gnome.org">GNOME</ulink>, but has since been + extended to make it usable with other projects. A <quote>module + set</quote> file can be hosted on a web server, allowing people to + provide build rules independent of the JHBuild.</para> + + <para>JHBuild can build modules from a variety of sources, + including:</para> + + <itemizedlist> + <listitem> + <simpara><ulink url="http://www.cvshome.org/">CVS</ulink> + repositories</simpara> + </listitem> + <listitem> + <simpara><ulink + url="http://subversion.tigris.org/">Subversion</ulink> + repositories</simpara> + </listitem> + <listitem> + <simpara><ulink url="http://wiki.gnuarch.org/">Arch</ulink> + archives</simpara> + </listitem> + <listitem> + <simpara>Tar archives hosted on web or ftp sites.</simpara> + </listitem> + </itemizedlist> + + <para>JHBuild is not intended as a replacement for the + distribution's package management system. Instead, it makes it + easy to build everything into a separate install prefix so that it + doesn't interfere with the rest of the system.</para> + + </section> + + <section id="getting-started"> + <title>Getting Started</title> + + <para>JHBuild takes a bit of work to set up on a system. As well + as installing JHBuild's prerequisites, it is necessary to install + the prerequisite tools needed to build the software in CVS (or + where ever else it is stored).</para> + + <section id="getting-started-install"> + <title>Installing JHBuild</title> + + <para>Before downloading JHBuild, you should make sure you have + a copy of Python >= 2.0 installed on your system. It is also + essential that the Expat XML parser extension is installed. + This will be the case if you are using Python >= 2.3, or had + expat installed when building Python. You can check whether + this is the case by running the following simple command from + the Python interpreter:</para> + + <screen><prompt>>>></prompt> <userinput>import xml.parsers.expat</userinput> +<prompt>>>></prompt></screen> + + <para>If this completes without an exception, then it is + installed correctly.</para> + + <para>At the moment, the only way to download JHBuild is via + CVS. This can be achieved with the following commands. They + should be run in the directory where jhbuild will be installed + (for example, <filename>~/cvs/gnome2</filename>).</para> + + <screen><prompt>$</prompt> <userinput>cvs -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome login</userinput> +<computeroutput>Logging in to :pserver:anonymous@anoncvs.gnome.org:2401/cvs/gnome +CVS password: </computeroutput><userinput><replaceable>press enter</replaceable></userinput> +<prompt>$</prompt> <userinput>cvs -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome checkout jhbuild</userinput> +<prompt>$</prompt></screen> + + <para>This will download JHBuild into a + <filename>jhbuild</filename> folder under the current + directory. Now to build and install it:</para> + + <screen><prompt>$</prompt> <userinput>cd jhbuild</userinput> +<prompt>$</prompt> <userinput>make</userinput> +<computeroutput>...</computeroutput> +<prompt>$</prompt> <userinput>make install</userinput> +<computeroutput>...</computeroutput> +<prompt>$</prompt></screen> + + <para>If these steps complete successfully, a small shell script + should be installed in <filename>~/bin</filename> to start + JHBuild. If this directory is not in the <envar>PATH</envar>, + it will need to be added (possibly by editing + <filename>~/.profile</filename> or + <filename>~/.bashrc</filename>).</para> + + <para>Before JHBuild can be run, it will be necessary to set up + a <filename>~/.jhbuildrc</filename> file that configures how + JHBuild will behave.</para> + </section> + + <section id="getting-started-configure"> + <title>Configuring JHBuild</title> + + <para>The <filename>~/.jhbuildrc</filename> file uses Python + syntax to set a number of configuration variables for JHBuild. + A minimal configuration file might look something like + this:</para> + + <programlisting> +moduleset = 'gnome-2.10' +modules = [ 'meta-gnome-desktop' ] +checkoutroot = os.path.join(os.environ['HOME'], 'cvs', 'gnome2') +prefix = os.path.join(os.environ['HOME'], 'prefix') +os.environ['INSTALL'] = os.path.join(os.environ['HOME'], + 'bin', 'install-check') +</programlisting> + + <para>This will get JHBuild to build the + <application>meta-gnome-desktop</application> module (and its + dependencies) from the <systemitem>gnome-2.10</systemitem> module + set. It will unpack source trees to + <filename>~/cvs/gnome2</filename> and install modules to + <filename>~/prefix</filename>. It also sets the + <envar>INSTALL</envar> environment variable to a program that + handles installation of headers specially in order to decrease + the work during a rebuild.</para> + + <para>Some of configuration variables available include:</para> + + <variablelist> + <?dbhtml list-presentation="table"?> + <varlistentry> + <term><varname>moduleset</varname></term> + <listitem> + <simpara>A string or list of strings giving the name(s) of + the module set(s) to use. If a module set name is a fully + qualified URL, then the module set will be cached locally + and regularly updated. If two module sets contain a + module with the same name, then the last module set listed + wins.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>modules</varname></term> + <listitem> + <simpara>A list of strings giving the modules you want to + build. The list of modules actually built will be + recursively expanded to include all the + dependencies.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>checkoutroot</varname></term> + <listitem> + <simpara>The base directory where all source modules + should be unpacked.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>prefix</varname></term> + <listitem> + <simpara>The directory prefix to install modules + to.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>os.environ</varname></term> + <listitem> + <simpara>A dictionary representing the environment. This + can be used to set or get environment variable values as + seen in the example above.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>skip</varname></term> + <listitem> + <simpara>A list of module names that should not be + included when deciding what to build. One use of this + variable is to use the version of a package included with + the distribution instead of building it</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>autogenargs</varname></term> + <listitem> + <simpara>A string listing arguments that should be passed + to the <command>autogen.sh</command> or + <command>configure</command> scripts for + modules.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>makeargs</varname></term> + <listitem> + <simpara>A string listing arguments that should be passed + to <command>make</command>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>cvsroots</varname></term> + <listitem> + <simpara>By default, JHBuild will check out code from CVS + using an anonymous CVS root. This dictionary is used to + tell JHBuild to use an alternative CVS root for a + particular repository (a developer would probably want to + do this). This variable is a dictionary where the keys + are short repository names (for example, <systemitem + class="systemname">gnome.org</systemitem> is used for the + GNOME CVS repository), and the values are the alternative + CVS root strings.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>svnroots</varname></term> + <listitem> + <simpara>Similar to <varname>cvsroots</varname> but for + Subversion repositories.</simpara> + </listitem> + </varlistentry> + </variablelist> + </section> + + <section id="getting-started-bootstrap"> + <title>Build Prerequisites</title> + + <para>Before any modules can be built, it is necessary to have + certain build tools installed. These include the GNU auto tools + (<application>autoconf</application>, + <application>automake</application>, + <application>libtool</application> and + <application>gettext</application>), pkg-config nad + Python.</para> + + <para>JHBuild can check if your distro has installed these tools + using the <command>sanitycheck</command> command:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild sanitycheck</userinput></screen> + + <para>If this command prints any messages, these can be fixed in + one of two ways:</para> + + <orderedlist> + <listitem> + <simpara>Install the required package from the + distribution. The <command>sanitycheck</command> command + should be run again afterwards to make sure everything is + okay.</simpara> + </listitem> + <listitem> + <simpara>Run the <command>bootstrap</command> command to + install the build prerequsites.</simpara> + </listitem> + </orderedlist> + + <para>The <command>bootstrap</command> command can be invoked + like so:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild bootstrap</userinput></screen> + + <para>This will download and install all the build + prerequisites. Once it is finished, the + <command>sanitycheck</command> command should be rerun to verify + that everything is in place.</para> + + <note> + <para>The <command>bootstrap</command> command does not build + all the packages required by these tools. If the OS does not + provide those packages, then they will need to be built + separately.</para> + + <para>Some packages to check for include + <application>m4</application>, <application>perl</application> + and a C compiler.</para> + </note> + </section> + + <section id="getting-started-use"> + <title>Using JHBuild</title> + + <para>Now that everything is set up, JHBuild can be used to + build some software. To build all the modules selected in the + <filename>~/.jhbuildrc</filename> file, run the following command:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild build</userinput></screen> + + <para>This will download, configure, compile and install each of + the modules. If an error occurs at any stage, JHBuild will + present a menu asking the user what to do. These choices + include dropping to a shell to fix the error, rerunning the + build stage, giving up on the module (which will also cause any + modules depending on it to fail), or ignore the error and + continue.</para> + + <para>It is also possible to build a different set of modules + (and their dependencies) by passing their names as arguments to + the <command>build</command> command:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild build gtk+</userinput></screen> + + <para>If you exit JHBuild part way through a build for some + reason, it is possible to pick up a build at a particular + package using the <option>--start-at</option> option:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild build --start-at=pango</userinput></screen> + + <para>To build one or more modules, without their dependencies, + the <command>buildone</command> command can be used:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild buildone gtk+</userinput></screen> + + <para>To get a list of the modules jhbuild will build, and the + order they will be built in, use the <command>list</command> + command:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild list</userinput></screen> + + <para>To get information about a particular module, the + <command>info</command> command can be used:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild info gtk+</userinput></screen> + + <para>If your internet bandwidth varies, you can get JHBuild to + download or update all the software it will build in one go + without actually building it:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild update</userinput></screen> + + <para>Later on, you can tell JHBuild to build everything without + downloading or updating:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild build --no-network</userinput></screen> + + <para>If you want to run a particular command with the same + environment variables set that JHBuild uses, use the + <command>run</command> command:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild run <replaceable>program</replaceable></userinput></screen> + + <para>To start a shell with that environment, use the + <command>shell</command> command:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild shell</userinput></screen> + + </section> + </section> + + <section id="command-reference"> + <title>Command Reference</title> + + <para>JHBuild uses a command line syntax similar to tools like CVS:</para> + + <cmdsynopsis> + <command>jhbuild</command> + <arg><replaceable>global-options</replaceable></arg> + <arg choice="plain">command</arg> + <arg><replaceable>command-arguments</replaceable></arg> + </cmdsynopsis> + + <para>The global jhbuild options are:</para> + + <variablelist> + <varlistentry> + <term><option>-f</option>, <option>--file</option> + <replaceable>config</replaceable></term> + <listitem> + <simpara>Use an alternative configuration file, instead of + the default <filename>~/.jhbuildrc</filename>.</simpara> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-m</option>, <option>--moduleset</option> + <replaceable>moduleset</replaceable></term> + <listitem> + <simpara>Use a module set other than the one listed in the + configuration file.</simpara> + </listitem> + </varlistentry> + </variablelist> + + <para>Command specific options are listed below.</para> + + <section id="command-reference-bootstrap"> + <title>bootstrap</title> + + <para>The <command>bootstrap</command> command is used to + install a set of build utilities required to build most modules + (eg. autoconf, automake, etc).</para> + + <cmdsynopsis> + <command>jhbuild bootstrap</command> + </cmdsynopsis> + + <para>Internally <command>bootstrap</command> is implemented + using the same code as <command>build</command>, using the + <filename>bootstrap.modules</filename> moduleset.</para> + + </section> + + <section id="command-reference-build"> + <title>build</title> + + <para>The <command>build</command> command is used to build one + or more packages, including their dependencies.</para> + + <cmdsynopsis> + <command>jhbuild build</command> + <arg>--autogen</arg> + <arg>--clean</arg> + <arg>--no-network</arg> + <arg rep="repeat">--skip=<replaceable>module</replaceable></arg> + <arg>--start-at=<replaceable>module</replaceable></arg> + <arg>-D <replaceable>date</replaceable></arg> + <arg rep="repeat">module</arg> + </cmdsynopsis> + + <para>If no module names are given on the command line, then the + module list found in the configuration file will be used.</para> + + <variablelist> + <varlistentry> + <term><option>-a</option>, <option>--autogen</option></term> + <listitem> + <simpara>Always run <command>autogen.sh</command> + before building modules. By default, + <command>autogen.sh</command> will only be called if the + toplevel makefile is missing. Otherwise, it relies on the + package's makefiles to detect if configure needs to be + rebuilt or rerun.</simpara> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-c</option>, <option>--clean</option></term> + <listitem> + <simpara>Run <command>make clean</command> before building + modules.</simpara> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-n</option>, <option>--no-network</option></term> + <listitem> + <simpara>Do not access the network when building modules. + This will skip download or update stages in a build. If a + module can't be built without network access, it will + fail.</simpara> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-s</option>, + <option>--skip</option>=<replaceable>module,...</replaceable></term> + <listitem> + <simpara>Ignore the named modules when following + dependencies to expand the list of modules to be + built.</simpara> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-t</option>, + <option>--start-at</option>=<replaceable>module</replaceable></term> + <listitem> + <simpara>After expanding the list of modules to build, + start at the named module rather than at the beginning of + the list. This is useful if the build was interrupted for + some reason.</simpara> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-D</option> + <replaceable>date</replaceable></term> + <listitem> + <simpara>If the underlying version control system supports + it, try to update the source tree to its state at the + given date before building. The date string should be in + ISO format.</simpara> + </listitem> + </varlistentry> + </variablelist> + + </section> + + <section id="command-reference-buildone"> + <title>buildone</title> + + <para>The <command>buildone</command> command is similar to + <command>build</command>, but it does not use dependency + information to expand the module list. It is useful for quickly + rebuilding one or more modules.</para> + + <cmdsynopsis> + <command>jhbuild buildone</command> + <arg>--autogen</arg> + <arg>--clean</arg> + <arg>--no-network</arg> + <arg>-D <replaceable>date</replaceable></arg> + <arg choice="plain" rep="repeat">module</arg> + </cmdsynopsis> + + <para>The <option>--autogen</option>, <option>--clean</option>, + <option>--no-network</option> and <option>-D</option> options + are processed the same as for <command>build</command>.</para> + + <para>Unlike <command>build</command>, at least one module must + be listed on the command line.</para> + + </section> + + <section id="command-reference-dot"> + <title>dot</title> + + <para>The <command>dot</command> command generates a file + describing the directed graph formed by the dependencies between + a set of modules. This file can then be processed using the + <ulink url="http://www.graphviz.org/">GraphViz</ulink> software + to produce a nice diagram.</para> + + <cmdsynopsis> + <command>jhbuild dot</command> + <arg rep="repeat">module</arg> + </cmdsynopsis> + + <para>If no module names are given on the command line, then the + module list found in the configuration file will be used.</para> + + <para>The output of this command can easily be piped to the + <command>dot</command> utility to generate a postscript + file:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild dot <replaceable>modules</replaceable> | dot -Tps > dependencies.ps</userinput></screen> + + </section> + + <section id="command-reference-info"> + <title>info</title> + + <para>The <command>info</command> command is used to display + information about one or more modules.</para> + + <cmdsynopsis> + <command>jhbuild info</command> + <arg choice="plain" rep="repeat">module</arg> + </cmdsynopsis> + + <para>The command prints the module name, type, dependencies, + dependent packages, and the time it was last installed with + JHBuild. It may also print some information specific to the + module type, such as the CVS repository or download URL.</para> + + </section> + + <section id="command-reference-list"> + <title>list</title> + + <para>The <command>list</command> command is used to show the + expanded list of modules the <command>build</command> command + would build.</para> + + <cmdsynopsis> + <command>jhbuild list</command> + <arg>--show-revision</arg> + <arg rep="repeat">module</arg> + </cmdsynopsis> + + <para>If no module names are given on the command line, then the + module list found in the configuration file will be used.</para> + + <variablelist> + <varlistentry> + <term><option>-r</option>, + <option>--show-revision</option></term> + <listitem> + <simpara>If a particular module is being checked out on a + branch, show the branch tag name with the module + name.</simpara> + </listitem> + </varlistentry> + </variablelist> + + </section> + + <section id="command-reference-run"> + <title>run</title> + + <para>The <command>run</command> command is used to run an + arbitrary command using the same environment as JHBuild uses + when building modules.</para> + + <cmdsynopsis> + <command>jhbuild run</command> + <arg choice="plain"><replaceable>program</replaceable></arg> + <arg rep="repeat"><replaceable>argument</replaceable></arg> + </cmdsynopsis> + + <para>If using JHBuild to build GNOME, this command can be + useful in X startup scripts.</para> + </section> + + <section id="command-reference-sanitycheck"> + <title>sanitycheck</title> + + <para>The <command>sanitycheck</command> command performs a + number of checks to see whether the build environment is + okay.</para> + + <cmdsynopsis> + <command>jhbuild sanitycheck</command> + </cmdsynopsis> + + <para>Some of the checks include:</para> + + <itemizedlist> + <listitem> + <simpara>That the checkout and install prefixes are + writable.</simpara> + </listitem> + <listitem> + <simpara>That some of the required build tools are + installed.</simpara> + </listitem> + <listitem> + <simpara>That some commonly used macros are available in the + search paths of the <command>aclocal</command> commands + associated with the various versions of + <command>automake</command>.</simpara> + </listitem> + <listitem> + <simpara>That the XML catalog contains the DocBook DTD and + stylesheets.</simpara> + </listitem> + </itemizedlist> + + </section> + + <section id="command-reference-shell"> + <title>shell</title> + + <para>The <command>shell</command> command starts the user's + shell with the same environment as JHBuild uses when building + modules.</para> + + <cmdsynopsis> + <command>jhbuild shell</command> + </cmdsynopsis> + + <para>This command is roughly equivalent to the + following:</para> + + <screen><prompt>$</prompt> <userinput>jhbuild run $SHELL</userinput></screen> + </section> + + <section id="command-reference-tinderbox"> + <title>tinderbox</title> + + <para>The <command>tinderbox</command> command is similar to + <command>build</command>, but writes all terminal output to HTML + files suitable for publishing on a website. It can be used to + set up systems similar to Mozilla's Tinderbox, or Debian's + Buildd.</para> + + <cmdsynopsis> + <command>jhbuild tinderbox</command> + <arg>--autogen</arg> + <arg>--clean</arg> + <arg>--no-network</arg> + <arg>--output=<replaceable>directory</replaceable></arg> + <arg rep="repeat">--skip=<replaceable>module</replaceable></arg> + <arg>--start-at=<replaceable>module</replaceable></arg> + <arg>-D <replaceable>date</replaceable></arg> + <arg rep="repeat">module</arg> + </cmdsynopsis> + + <para>The <option>--autogen</option>, <option>--clean</option>, + <option>--no-network</option>, <option>--skip</option>, + <option>--start-at</option> and <option>-D</option> options are + processed the same as for <command>build</command>.</para> + + <variablelist> + <varlistentry> + <term><option>-o</option>, + <option>--output</option>=<replaceable>directory</replaceable></term> + <listitem> + <simpara>The directory to write the HTML build + logs.</simpara> + </listitem> + </varlistentry> + </variablelist> + + </section> + + <section id="command-reference-update"> + <title>update</title> + + <para>The <command>update</command> command is similar to + <command>build</command>, but only performs the download or + update stage for modules without building them.</para> + + <cmdsynopsis> + <command>jhbuild update</command> + <arg rep="repeat">--skip=<replaceable>module</replaceable></arg> + <arg>--start-at=<replaceable>module</replaceable></arg> + <arg>-D <replaceable>date</replaceable></arg> + <arg rep="repeat">module</arg> + </cmdsynopsis> + + <para>The <option>--skip</option>, <option>--start-at</option> + and <option>-D</option> options are processed the same as for + <command>build</command>.</para> + + </section> + + <section id="command-reference-updateone"> + <title>updateone</title> + + <para>The <command>updateone</command> command is similar to + <command>update</command>, but it does not use dependency + information to expand the module list. It is useful for quickly + updating one or more modules.</para> + + <cmdsynopsis> + <command>jhbuild updateone</command> + <arg>-D <replaceable>date</replaceable></arg> + <arg choice="plain" rep="repeat">module</arg> + </cmdsynopsis> + + <para>The <option>-D</option> option is processed the same as + for <command>update</command>.</para> + + <para>Unlike <command>update</command>, at least one module must + be listed on the command line.</para> + </section> + + </section> + + <section id="config-reference"> + <title>Configuration File Reference</title> + + <para>The <filename>~/.jhbuildrc</filename> file uses standard + Python syntax. The file is run, and the resulting variables + defined in the namespace are used to control how JHBuild acts. A + set of default values are inserted into the namespace before + running the user's configuration file.</para> + + <section id="config-reference-variables"> + <title>Configuration Variables</title> + + <variablelist> + <?dbhtml list-presentation="table"?> + <varlistentry> + <term><varname>alwaysautogen</varname></term> + <listitem> + <simpara>If set to <constant>True</constant>, then always + run <command>autogen.sh</command> before + <command>make</command> even if a makefile exists. This + is equivalent to passing <option>--always-autogen</option> + option to JHBuild. Defaults to + <constant>False</constant>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>autogenargs</varname></term> + <listitem> + <simpara>A string containing arguments passed to the + <command>autogen.sh</command> script of all modules. Can + be overriden for particular modules using the + <varname>module_autogenargs</varname> + dictionary.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>builddir_pattern</varname></term> + <listitem> + <simpara>A <function>printf</function> style formatting + pattern used to generate build directory names. This is + only used when using separate source and build trees. The + <literal>%s</literal> in the format string will be + replaced with the source directory name. Defaults to + <literal>'%s'</literal>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>buildroot</varname></term> + <listitem> + <simpara>A string giving the parent directory to place + build trees. Defaults to <constant>None</constant>, which + causes builds to be performed within the source + trees.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>checkoutroot</varname></term> + <listitem> + <simpara>A string giving the directory to unpack source + trees to. Unless <varname>buildroot</varname> is set, + builds will occur in this directory too. Defaults to + <filename>~/cvs/gnome2</filename>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>cvsroots</varname></term> + <listitem> + <simpara>A dictionary that can be used to change the CVS + roots used to check out source code. If you have a CVS + account for a particular project, you can set the + associated key to use that account rather than the + anonymous account. For example, you might want to set + <literal>'gnome.org'</literal> to + <literal>':ext:<replaceable>username</replaceable>@cvs.gnome.org:/cvs/gnome'</literal>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>branches</varname></term> + <listitem> + <simpara>A dictionary that can be used to override the + branch used for a particular module. This is useful if + you are doing some changes on a branch of a module and + want JHBuild to build that branch instead of the one + listed in the module set.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>makeargs</varname></term> + <listitem> + <simpara>A string listing additional arguments to be + passed to <command>make</command>. Defaults to + <literal>''</literal>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>makecheck</varname></term> + <listitem> + <simpara>A boolean value specifying whether to run + <command>make check</command> after + <command>make</command>. This might be useful in a + tinderbox-style setup. Defaults to + <constant>False</constant>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>makeclean</varname></term> + <listitem> + <simpara>A boolean value specifying whether to run + <command>make clean</command> before + <command>make</command>. Defaults to + <constant>False</constant>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>module_autogenargs</varname></term> + <listitem> + <simpara>A dictionary mapping module names to strings + giving arguments to be passed to + <command>autogen.sh</command>. If a particular module + isn't listed in the dictionary, the global + <varname>autogenargs</varname> will be used + instead.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>module_makeargs</varname></term> + <listitem> + <simpara>A dictionary mapping module names to strings + giving arguments to be passed to <command>make</command>. + If a particular module isn't listed in the dictionary, the + global <varname>makeargs</varname> will be used + instead.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>modules</varname></term> + <listitem> + <simpara>A list of module names to build. This list will + be expanded using the dependency information found in the + module set. Defaults to <literal>[ 'meta-gnome-desktop' + ]</literal>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>moduleset</varname></term> + <listitem> + <simpara>A string giving the name of the module set to + use. This can either be a short string to refer to one of + JHBuild's included module sets, or a full HTTP URL to + refer to an externally managed module set. Currently + defaults to <literal>'gnome-2.10'</literal>, but is + usually updated as GNOME development progresses.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>nonetwork</varname></term> + <listitem> + <simpara>A boolean value saying whether to access the + network or not. This affects checking out or updating CVS + modules, downloading tarballs and updating module sets. + Setting this to <constant>True</constant> is equivalent to + passing the <option>--no-network</option> option to + JHBuild. Defaults to + <constant>False</constant>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>prefix</varname></term> + <listitem> + <simpara>A string giving the prefix to install modules to. + Defaults to <literal>'/opt/gnome2'</literal>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>pretty_print</varname></term> + <listitem> + <simpara>A boolean value that can be used to disable + pretty printing of subprocess output. Currently there is + only support for pretty printing CVS output. You probably + only want to disable this if the pretty printing causes + problems. Defaults to <literal>True</literal>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>skip</varname></term> + <listitem> + <simpara>A list of modules to skip when expanding the list + of modules to build. This is similar to the + <option>--skip</option> option (in fact, the + <option>--skip</option> option extends this list). This + list is empty by default.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>sticky_date</varname></term> + <listitem> + <simpara>If set, JHBuild will attempt to check out modules + as they existed at the given date. The date should be + given in the form + <literal>'<replaceable>yyyy</replaceable>-<replaceable>mm</replaceable>-<replaceable>dd</replaceable>'</literal>. + Defaults to <constant>None</constant>.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>svnroots</varname></term> + <listitem> + <simpara>Similar to <varname>cvsroots</varname> but for + Subversion repositories.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>tarballdir</varname></term> + <listitem> + <simpara>If set, tarballs will be downloaded to this + directory instead of <varname>checkoutroot</varname>. + This is useful if you have multiple JHBuild environments + or regularly blow away your + <varname>checkoutroot</varname> and want to reduce + bandwidth usage.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>tinderbox_outputdir</varname></term> + <listitem> + <simpara>A string giving the directory to store + <command>jhbuild tinderbox</command> output. This string + can be overridden by the <option>--output</option> option. + Defaults to <constant>None</constant>, so either the + command line option must be used or this variable must be + set in the configuration file.</simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>use_lib64</varname></term> + <listitem> + <simpara>A boolean value that specifies whether to install + libraries to <filename>lib64</filename> directories. If + this is set, + <literal>--libdir=\${exec_prefix}/lib64</literal> will be + passed to configure. Defaults to + <constant>True</constant> if running on + <literal>x86_64</literal>, <literal>ppc64</literal> or + <literal>s390x</literal> Linux, and + <constant>False</constant> on other systems.</simpara> + </listitem> + </varlistentry> + </variablelist> + </section> + + <section id="config-reference-other"> + <title>Other Configuration File Structures</title> + + <para>In addition to the above variables, there are some other + things that can be set in the configuration file:</para> + + <variablelist> + <varlistentry> + <term><varname>os.environ</varname></term> + <listitem> + <para>This is dictionary represents the environment of the + process (which also gets passed on to processes that + JHBuild spawns).</para> + <para>Some environment variables you may want to set + include <envar>CFLAGS</envar>, <envar>INSTALL</envar> (to + use the more efficient <command>install-check</command> + program included with JHBuild) and + <envar>LDFLAGS</envar>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><function>addpath</function>(<parameter>envvar</parameter>, + <parameter>pathname</parameter>)</term> + <listitem> + <para>This will add a directory to a + <envar>PATH</envar>-style environment variable. It will + correctly handle the case when the environment variable is + initially empty (having a stray colon at the beginning or + end of an environment variable can have unexpected + consequences).</para> + <para>This function has special handling for the + <envar>ACLOCAL_FLAGS</envar> environment variable, which + expects paths to be listed in the form <literal>-I + <replaceable>pathname</replaceable></literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><function>prependpath</function>(<parameter>envvar</parameter>, + <parameter>pathname</parameter>)</term> + <listitem> + <para>After processing the configuration file, JHBuild + will alter some paths based on variables such as + <varname>prefix</varname> (eg. adding + <literal>$prefix/bin</literal> to the start of + <envar>PATH</envar>).</para> + <para>The <function>prependpath</function> function works + like <function>addpath</function>, except that the + environment variable is modified after JHBuild has made + its changes to the environment.</para> + </listitem> + </varlistentry> + </variablelist> + </section> + </section> + + <section id="moduleset-syntax"> + <title>Module Set File Syntax</title> + + <para>JHBuild uses simple XML files to describe the dependencies + between modules. A RELAX-NG schema and Document Type Definition + are included with JHBuild in the <filename>modulesets/</filename> + directory. The RELAX-NG schema makes it trivial to edit module + set files using <literal>nxml-mode</literal> in Emacs.</para> + + <para>The toplevel element in a module set file is <sgmltag + class="element">moduleset</sgmltag> element. Currently no XML + namespace is used, but in the future this might change. The + elements below the toplevel come in three types: module sources, + include statements and module definitions.</para> + + <section id="moduleset-syntax-sources"> + <title>Module Sources</title> + + <para>Rather than listing the full location of every module, a + number of "module sources" are listed in the module set, and + then referenced by name in the module definitions. As well as + reducing the amount of redundant information in the module set, + it makes it easy for a user to specify an alternative source for + those modules (for CVS and Subversion, it is common for + developers and users to use different repository access + methods).</para> + + <section id="moduleset-syntax-sources-cvsroot"> + <title>cvsroot</title> + + <para>The <sgmltag class="element">cvsroot</sgmltag> element + is used to describe a CVS repository.</para> + + <programlisting> +<cvsroot name="<replaceable>rootname</replaceable>" + [ default="<replaceable>yes|no</replaceable>" ] + root="<replaceable>anon-cvsroot</replaceable>" + password="<replaceable>anon-password</replaceable>"/> +</programlisting> + + <para>The <sgmltag class="attribute">name</sgmltag> attribute + should be a unique identifier for the CVS repository.</para> + + <para>If <sgmltag class="attribute">default</sgmltag> + attribute says whether this is the default module source for + this module set file.</para> + + <para>The <sgmltag class="attribute">root</sgmltag> attribute + lists the CVS root used for anonymous access to this + repository, and the <sgmltag + class="attribute">password</sgmltag> attribute gives the + password used for anonymous access.</para> + </section> + + <section id="moduleset-syntax-sources-svnroot"> + <title>svnroot</title> + + <para>The <sgmltag class="element">svnroot</sgmltag> element + is used to describe a Subversion repository.</para> + + <programlisting> +<svnroot name="<replaceable>rootname</replaceable>" + [ default="<replaceable>yes|no</replaceable>" ] + href="<replaceable>anon-svnroot</replaceable>"/> +</programlisting> + + <para>The <sgmltag class="attribute">name</sgmltag> attribute + should be a unique identifier for the Subversion + repository.</para> + + <para>If <sgmltag class="attribute">default</sgmltag> + attribute says whether this is the default module source for + this module set file.</para> + + <para>The <sgmltag class="attribute">href</sgmltag> attribute + lists the base URL for the repository. This will probably be + either a <literal>http</literal>, <literal>https</literal> or + <literal>svn</literal> URL.</para> + </section> + + <section id="moduleset-syntax-sources-arch-archive"> + <title>arch-archive</title> + + <para>The <sgmltag class="element">arch-archive</sgmltag> element + is used to describe a GNU Arch archive.</para> + + <programlisting> +<arch-archive name="<replaceable>archivename</replaceable>" + [ default="<replaceable>yes|no</replaceable>" ] + href="<replaceable>mirror-url</replaceable>"/> +</programlisting> + + <para>The <sgmltag class="attribute">name</sgmltag> attribute + should be the Arch archive name.</para> + + <para>If <sgmltag class="attribute">default</sgmltag> + attribute says whether this is the default module source for + this module set file.</para> + + <para>The <sgmltag class="attribute">href</sgmltag> attribute + lists a public mirror URL for the archive.</para> + </section> + </section> + + <section id="moduleset-syntax-includes"> + <title>Including Other Module Sets</title> + + <para>JHBuild allows one module set to include the contents of + another by reference using the <sgmltag + class="element">include</sgmltag> element.</para> + + <programlisting> +<include href="<replaceable>uri</replaceable>"/> +</programlisting> + + <para>The <sgmltag class="attribute">href</sgmltag> is a URI + reference to the module set to be included, relative to the file + containing the <sgmltag class="element">include</sgmltag> + element.</para> + + <para>Only module definitions are imported from the referenced + module set — module sources are not. Multiple levels of + includes are allowed, but include loops are not (there isn't any + code to handle loops at the moment).</para> + </section> + + <section id="moduleset-syntax-defs"> + <title>Module Definitions</title> + + <para>There are various types of module definitions that can be + used in a module set file, and the list can easily be extended. + Only the most common ones will be mentioned here.</para> + + <section id="moduleset-syntax-defs-cvsmodule"> + <title>cvsmodule</title> + + <para>The <sgmltag class="element">cvsmodule</sgmltag> element + is used to define a module that is to be built from + CVS.</para> + + <programlisting> +<cvsmodule module="<replaceable>modulename</replaceable>" + [ revision="<replaceable>branch-or-tag</replaceable>" ] + [ checkoutdir="<replaceable>directory</replaceable>" ] + [ root="<replaceable>rootname</replaceable>" ] + [ autogenargs="<replaceable>autogenargs</replaceable>" ] + [ makeargs="<replaceable>makeargs</replaceable>" ] + [ supports-non-srcdir-builds="<replaceable>yes|no</replaceable>" ]> + <dependencies> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </dependencies> + <suggests> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </suggests> +</cvsmodule> +</programlisting> + + <para>The <sgmltag class="attribute">module</sgmltag>, + <sgmltag class="attribute">revision</sgmltag> and <sgmltag + class="attribute">root</sgmltag> attributes identify the + module to check out from CVS. The <sgmltag + class="attribute">checkoutdir</sgmltag> attribute can be used + to specify an alternative directory to check out to (by + default, the value of <sgmltag + class="attribute">module</sgmltag> is used).</para> + + <para>The <sgmltag class="attribute">autogenargs</sgmltag>, + <sgmltag class="attribute">makeargs</sgmltag> and <sgmltag + class="attribute">supports-non-srcdir-builds</sgmltag> + attributes are common to many different module types. The + <sgmltag class="attribute">autogenargs</sgmltag> attribute + lists additional arguments to be passed to + <command>autogen.sh</command>, and <sgmltag + class="attribute">makeargs</sgmltag> lists additional + arguments to be passed to <command>make</command>. The + <sgmltag + class="attribute">supports-non-srcdir-builds</sgmltag> + attribute is used to mark modules that can't be cleanly built + using a separate source directory.</para> + + <para>The <sgmltag class="element">dependencies</sgmltag> and + <sgmltag class="element">suggests</sgmltag> elements are used + to declare the dependencies of the module. Any modules listed + in the <sgmltag class="element">dependencies</sgmltag> element + will be added to the module list for <command>jhbuild + build</command> if it isn't already included, and make sure + the dependent modules are built first.</para> + + <para>After generating the modules list, the modules listed in + the <sgmltag class="element">suggests</sgmltag> element will + be used to further sort the modules list (although it will not + pull any additional modules). This is intended for cases + where a module has an optional dependency on another + module.</para> + </section> + + <section id="moduleset-syntax-defs-svnmodule"> + <title>svnmodule</title> + + <para>The <sgmltag class="element">svnmodule</sgmltag> element + is used to define a module that is to be built from + Subversion.</para> + + <programlisting> +<svnmodule module="<replaceable>modulename</replaceable>" + [ checkoutdir="<replaceable>directory</replaceable>" ] + [ root="<replaceable>rootname</replaceable>" ] + [ autogenargs="<replaceable>autogenargs</replaceable>" ] + [ makeargs="<replaceable>makeargs</replaceable>" ] + [ supports-non-srcdir-builds="<replaceable>yes|no</replaceable>" ]> + <dependencies> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </dependencies> + <suggests> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </suggests> +</svnmodule> +</programlisting> + <para>The <sgmltag class="attribute">module</sgmltag> + attribute gives the path of the module relative to the + repository URI. All other options for this element are + processed as for <link + linkend="moduleset-syntax-defs-cvsmodule"><sgmltag + class="element">cvsmodule</sgmltag></link>.</para> + </section> + + <section id="moduleset-syntax-defs-archmodule"> + <title>archmodule</title> + + <para>The <sgmltag class="element">archmodule</sgmltag> element + is used to define a module that is to be built from + a GNU Arch archive.</para> + + <programlisting> +<archmodule version="<replaceable>modulename</replaceable>" + [ checkoutdir="<replaceable>directory</replaceable>" ] + [ root="<replaceable>rootname</replaceable>" ] + [ autogenargs="<replaceable>autogenargs</replaceable>" ] + [ makeargs="<replaceable>makeargs</replaceable>" ] + [ supports-non-srcdir-builds="<replaceable>yes|no</replaceable>" ]> + <dependencies> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </dependencies> + <suggests> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </suggests> +</archmodule> +</programlisting> + <para>The <sgmltag class="attribute">version</sgmltag> + attribute gives the version to be checked out from the archive + specified by <sgmltag class="attribute">root</sgmltag>. All + other options for this element are processed as for <link + linkend="moduleset-syntax-defs-cvsmodule"><sgmltag + class="element">cvsmodule</sgmltag></link>.</para> + </section> + + <section id="moduleset-syntax-defs-tarball"> + <title>tarball</title> + + <para>The <sgmltag class="element">tarball</sgmltag> element + is used to define a module that is to be built from + a tarball.</para> + + <programlisting> +<tarball id="<replaceable>modulename</replaceable>" + [ version="<replaceable>version</replaceable>" ] + [ autogenargs="<replaceable>autogenargs</replaceable>" ] + [ makeargs="<replaceable>makeargs</replaceable>" ] + [ supports-non-srcdir-builds="<replaceable>yes|no</replaceable>" ]> + <source href="<replaceable>source-url</replaceable>" + [ size="<replaceable>source-size</replaceable>" ] + [ md5sum="<replaceable>source-md5sum</replaceable>" ]/> + <patches> + <patch file="<replaceable>filename</replaceable>" strip="<replaceable>level</replaceable>"/> + ... + </patches> + <dependencies> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </dependencies> + <suggests> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </suggests> +</tarball> +</programlisting> + <para>The <sgmltag class="attribute">id</sgmltag> and <sgmltag + class="attribute">version</sgmltag> attributes are used to + identify the module.</para> + <para>The <sgmltag class="element">source</sgmltag> element + specifies the file to download and compile. The <sgmltag + class="attribute">href</sgmltag> attribute is mandatory, while + the <sgmltag class="attribute">size</sgmltag> and <sgmltag + class="attribute">md5sum</sgmltag> attributes are optional. + If the last two attributes are present, they are used to check + that the source package was downloaded correctly.</para> + <para>The <sgmltag class="element">patches</sgmltag> element + is used to specify one or more patches to apply to the source + tree after unpacking. The patch files are looked up in the + <filename>jhbuild/patches/</filename> directory, and the + <sgmltag class="attribute">strip</sgmltag> attribute says how + many levels of directories to prune when applying the + patch.</para> + <para>The other attributes and the <sgmltag + class="element">dependencies</sgmltag> and <sgmltag + class="element">suggests</sgmltag> sub-elements are processed + as for <link + linkend="moduleset-syntax-defs-cvsmodule"><sgmltag + class="element">cvsmodule</sgmltag></link>.</para> + </section> + + <section id="moduleset-syntax-defs-metamodule"> + <title>metamodule</title> + + <para>The <sgmltag class="element">metamodule</sgmltag> + element defines a module that doesn't actually do anythin. + The only purpose of a module of this type is its + dependencies.</para> + + <programlisting> +<metamodule id="<replaceable>modulename</replaceable>"> + <dependencies> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </dependencies> + <suggests> + <dep package="<replaceable>modulename</replaceable>"/> + ... + </suggests> +</metamodule> +</programlisting> + <para>The <sgmltag class="attribute">id</sgmltag> attribute + gives the name of the module. The child elements are handled + as for <link + linkend="moduleset-syntax-defs-cvsmodule"><sgmltag + class="element">cvsmodule</sgmltag></link>.</para> + </section> + </section> + </section> + + <section id="faq"> + <title>Frequently Asked Questions</title> + + <qandaset defaultlabel="qanda"> + <qandadiv> + <title>General JHBuild Questions</title> + <qandaentry> + <question> + <simpara>The <command>wget</command> command can't + download any tarballs. How do I get it to work with my + firewall?</simpara> + </question> + <answer> + <para>This can be fixed by creating or editing a + <filename>~/.wgetrc</filename> file. If you need to go + through an HTTP proxy to access FTP sites, add a line like + the following to the file:</para> + <programlisting>ftp_proxy = http://<replaceable>hostname</replaceable>:<replaceable>port</replaceable>/</programlisting> + <para>If you just need to use passive FTP connections + (sometimes needed with NAT firewalls), add the following + line:</para> + <programlisting>passive_ftp = on</programlisting> + <para>This will fix all uses of the + <command>wget</command> command.</para> + </answer> + </qandaentry> + <qandaentry> + <question> + <simpara>Building stuff is slow. Is there any way I can + speed it up?</simpara> + </question> + <answer> + <para>Other than buying a faster CPU, hard disk or getting + more memory, you might want to install <ulink + url="http://ccache.samba.org/">CCache</ulink>, which can + cache compilation results for you. It is available with + most distributions.</para> + <para>After installing CCache, set the cache size with the + following command:</para> + <programlisting>ccache -M 2G</programlisting> + <para>(replace <literal>2G</literal> with the size you + want for your cache). Then create symlinks to CCache for + your compiler in <filename>~/bin</filename>:</para> + <programlisting>cd ~/bin +for cmd in cc gcc c++ g++; do + ln -s /usr/bin/ccache $cmd +done</programlisting> + <para>You can check the status of your cache (such as + cache hit rates) with the following command:</para> + <programlisting>ccache -s</programlisting> + </answer> + </qandaentry> + <qandaentry> + <question> + <simpara>Is there a better way to monitor the status of + the build than looking at terminal window?</simpara> + </question> + <answer> + <para>If you have Zenity >= 2.9 installed on your system, + JHBuild will display an icon in the system tray. The icon + will display the current build stage, and the tooltip will + show the last message from JHBuild.</para> + <para>In the future, the icon may get support for popping + up a balloon on error.</para> + </answer> + </qandaentry> + </qandadiv> + <qandadiv> + <title>Building GNOME</title> + <qandaentry> + <question> + <simpara>What other prerequisites are needed to build GNOME + with JHBuild?</simpara> + </question> + <answer> + <para>Some of the packages you will need on your system + include:</para> + <itemizedlist> + <listitem> + <simpara>DocBook XML DTD and XSLT stylesheets. These + need to be registered in the XML catalog + (<filename>/etc/xml/catalog</filename>).</simpara> + </listitem> + <listitem> + <simpara>X libraries</simpara> + </listitem> + <listitem> + <simpara>fam or gamin (used by gnome-vfs for file + monitoring).</simpara> + </listitem> + <listitem> + <simpara><filename>libsmbclient</filename> from Samba + (used for browsing Windows networks).</simpara> + </listitem> + <listitem> + <simpara><filename>libbz2</filename> from + bzip2.</simpara> + </listitem> + <listitem> + <simpara><filename>libpng</filename>, + <filename>libjpeg</filename> and + <filename>libtiff</filename> (used for image + loading).</simpara> + </listitem> + </itemizedlist> + <para>If you are installing distro packages, you may need + to install corresponding "dev" or "devel" packages. Note + that this list is just a starting point — not a + comprehensive list.</para> + </answer> + </qandaentry> + <qandaentry> + <question> + <simpara>I've built GNOME with JHBuild. How do I run + it?</simpara> + </question> + <answer> + <para>You will want to create a + <filename>~/.xsession</filename> file, which is run by the + display manager when you log in. This file should look + something like this:</para> + <programlisting>#!/bin/sh +exec jhbuild run gnome-session</programlisting> + <para>Finally, you should make sure that the + <filename>~/.xsession</filename> file is executable.</para> + </answer> + </qandaentry> + <qandaentry> + <question> + <simpara>I built GNOME using JHBuild with + <varname>prefix</varname> set to <filename>/usr</filename>, + and now my system is broken. What should I do?</simpara> + </question> + <answer> + <para>Don't set <varname>prefix</varname> to + <filename>/usr</filename>.</para> + </answer> + </qandaentry> + <qandaentry> + <question> + <simpara>How do I get + <command>gnome-volume-manager</command> to work when + running in a prefix?</simpara> + </question> + <answer> + <para>The <command>gnome-volume-manager</command> program + reacts to messages from <command>hald</command> over the + system message bus, which must be running as root. + Assuming that your distribution comes with + <acronym>HAL</acronym>, the main problem is getting + <command>gnome-volume-manager</command> to talk to the + system message bus.</para> + <para>Since communication is done over a UNIX domain + socket, the easiest way to do this is to create a symlink + from <filename>/var/run/dbus</filename> to + <filename>$prefix/var/run/dbus</filename>:</para> + <programlisting>mkdir -p $prefix/var/run +cd $prefix/var/run +ln -s /var/run/dbus dbus</programlisting> + <para>You may also have trouble building HAL with JHBuild, + since it tries to install some things outside of its build + root. Running <userinput>make -k install</userinput> in + the hal directory might help here.</para> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + </section> +</article> diff --git a/build-scripts/jhbuild/install-check.c b/build-scripts/jhbuild/install-check.c new file mode 100644 index 0000000..743d213 --- /dev/null +++ b/build-scripts/jhbuild/install-check.c @@ -0,0 +1,119 @@ +/* install-check + * Copyright (C) 2002 Manish Singh + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <errno.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/wait.h> + +static void +compare (const char *f1, + const char *f2) +{ + struct stat b1, b2; + int status; + pid_t pid, rpid; + + if (stat (f2, &b2) || stat (f1, &b1)) + return; + + if (b1.st_size != b2.st_size) + return; + + pid = fork (); + + if (pid == 0) + execlp ("cmp", "cmp", "-s", f1, f2, NULL); + else if (pid < 0) + return; + + do + rpid = waitpid (pid, &status, 0); + while (rpid == -1 && errno == EINTR); + + if (rpid != pid) + status = -1; + + if (status != -1 && WIFEXITED (status) && WEXITSTATUS (status) == 0) + exit (0); +} + +int +main (int argc, + char **argv) +{ + struct stat buf; + char **args; + int i, len; + char *dot, *lastarg, *start; + + lastarg = argv[argc - 1]; + + dot = strrchr (lastarg, '.'); + if (dot == NULL) + { + len = strlen (lastarg); + if (len < strlen ("orbit-idl-2")) + goto install; + + start = lastarg + len - strlen ("orbit-idl-2"); + if (strcmp (start, "orbit-idl-2") != 0) + goto install; + } + else if (dot[1] != 'h' && dot[1] != 'c' && strcmp (dot + 1, "idl") != 0) + goto install; + + if ((argc == 4) && + (strcmp (argv[1], "-c") == 0) && + (strcmp (argv[2], "-d") != 0) && + !stat (argv[3], &buf) && + !S_ISDIR (buf.st_mode)) + compare (argv[2], argv[3]); + else if ((argc == 3) && + (strcmp (argv[1], "-d") != 0) && + !stat (argv[2], &buf) && + !S_ISDIR (buf.st_mode)) + compare (argv[1], argv[2]); + else if ((argc == 6) && + (strcmp (argv[1], "-c") == 0) && + (strcmp (argv[2], "-m") == 0) && + !stat (argv[5], &buf) && + !S_ISDIR (buf.st_mode)) + compare (argv[4], argv[5]); + else if ((argc == 5) && + (strcmp (argv[1], "-m") == 0) && + !stat (argv[4], &buf) && + !S_ISDIR (buf.st_mode)) + compare (argv[3], argv[4]); + +install: + args = malloc (sizeof (char *) * (argc + 1)); + + args[0] = "/usr/bin/install"; + + for (i = 1; i < argc; i++) + args[i] = argv[i]; + + args[argc] = NULL; + + return execv (args[0], args); +} diff --git a/build-scripts/jhbuild/jamesh.jhbuildrc b/build-scripts/jhbuild/jamesh.jhbuildrc new file mode 100644 index 0000000..7e9b282 --- /dev/null +++ b/build-scripts/jhbuild/jamesh.jhbuildrc @@ -0,0 +1,37 @@ +# -*- mode: python -*- + +# information about cvs server +repos['gnome.org'] = ':ext:jamesh@cvs.gnome.org:/cvs/gnome' +repos['cairo.freedesktop.org'] = ':ext:james@cvs.freedesktop.org:/cvs/cairo' + +# modules to build (deps are also built) +moduleset = 'gnome-2.16' +modules = ['gtk+', 'meta-gnome-desktop', 'meta-gnome-devel-tools' ] + +skip = [ 'mozilla' ] + +# the prefix to install things to (user must have write access) +prefix = os.path.expanduser('~/prefix') + +# where the sources are checked out to +checkoutroot = os.path.expanduser('~/cvs/gnome2') + +# where to put downloaded tarballs. +tarballdir = os.path.join(checkoutroot, 'pkgs') + +# arguments to pass to autogen script +autogenargs='--enable-maintainer-mode --disable-static --disable-gtk-doc' + +os.environ['INSTALL'] = os.path.expanduser('~/bin/install-check') + +branches['gnome-common'] = None + +#branches['libglade'] = 'libglade-gobject-support-branch' +module_autogenargs['gnome-vfs'] = autogenargs + ' --enable-hal' +module_autogenargs['gimp'] = autogenargs + ' --disable-print --enable-python' +module_autogenargs['planner'] = autogenargs + ' --enable-database' + +#module_autogenargs['howl'] = autogenargs.replace('--disable-static', '') +module_autogenargs['totem'] = autogenargs + ' --disable-gstreamer --disable-mozilla' + +addpath('XDG_DATA_DIRS', '/usr/share') diff --git a/build-scripts/jhbuild/jhbuild.desktop b/build-scripts/jhbuild/jhbuild.desktop new file mode 100644 index 0000000..48b1562 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Build GNOME Modules +Icon=gnome-devel.png +Terminal=false +Type=Application +Categories=GNOME;Development;Application; +StartupNotify=true +X-Desktop-File-Install-Version=0.3 + diff --git a/build-scripts/jhbuild/jhbuild.in b/build-scripts/jhbuild/jhbuild.in new file mode 100644 index 0000000..1f88aab --- /dev/null +++ b/build-scripts/jhbuild/jhbuild.in @@ -0,0 +1,6 @@ +#!/usr/bin/env python +import sys +sys.path.insert(0, '@jhbuilddir@') + +import jhbuild.main +jhbuild.main.main(sys.argv[1:]) diff --git a/build-scripts/jhbuild/jhbuild/.cvsignore b/build-scripts/jhbuild/jhbuild/.cvsignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/.cvsignore @@ -0,0 +1 @@ +*.pyc diff --git a/build-scripts/jhbuild/jhbuild/__init__.py b/build-scripts/jhbuild/jhbuild/__init__.py new file mode 100644 index 0000000..7cdb30e --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/__init__.py @@ -0,0 +1,19 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from jhbuild import monkeypatch +del monkeypatch diff --git a/build-scripts/jhbuild/jhbuild/commands/.cvsignore b/build-scripts/jhbuild/jhbuild/commands/.cvsignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/.cvsignore @@ -0,0 +1 @@ +*.pyc diff --git a/build-scripts/jhbuild/jhbuild/commands/__init__.py b/build-scripts/jhbuild/jhbuild/commands/__init__.py new file mode 100644 index 0000000..4c99961 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/__init__.py @@ -0,0 +1,77 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# __init__.py: a package holding the various jhbuild subcommands +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type +__all__ = [ + 'Command', + 'register_command', + 'run' + ] + +import optparse + +from jhbuild.errors import UsageError, FatalError + + +class Command: + """Base class for Command objects""" + + name = None + usage_args = '[ options ... ]' + + def __init__(self, options=[]): + self.options = options + + def execute(self, config, args): + options, args = self.parse_args(args) + self.run(config, options, args) + + def parse_args(self, args): + parser = optparse.OptionParser( + usage='%%prog %s %s' % (self.name, self.usage_args), + description=self.__doc__) + parser.add_options(self.options) + return parser.parse_args(args) + + def run(self, config, options, args): + """The body of the command""" + raise NotImplementedError + + +# handle registration of new commands +_commands = {} +def register_command(command_class): + _commands[command_class.name] = command_class + +def run(command, config, args): + # if the command hasn't been registered, load a module by the same name + if command not in _commands: + try: + __import__('jhbuild.commands.%s' % command) + except ImportError: + pass + if command not in _commands: + raise FatalError('command not found') + + command_class = _commands[command] + cmd = command_class() + cmd.execute(config, args) + + +from jhbuild.commands import base diff --git a/build-scripts/jhbuild/jhbuild/commands/autobuild.py b/build-scripts/jhbuild/jhbuild/commands/autobuild.py new file mode 100644 index 0000000..c54c1d5 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/autobuild.py @@ -0,0 +1,85 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2004 James Henstridge +# +# autobuild.py: non-interactive build that generates a report +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from optparse import make_option + +from jhbuild.errors import UsageError +from jhbuild.commands.base import Command, register_command +import jhbuild.frontends + +class cmd_autobuild(Command): + '''Distributed tinderbox for jhbuild''' + + name = 'autobuild' + + def __init__(self): + Command.__init__(self, [ + make_option('-a', '--autogen', + action='store_true', dest='autogen', default=False, + help='always run autogen.sh'), + make_option('-c', '--clean', + action='store_true', dest='clean', default=False, + help='run make clean before make'), + make_option('-s', '--skip', metavar='MODULES', + action='append', dest='skip', default=[], + help='treat the given modules as up to date'), + make_option('-t', '--start-at', metavar='MODULE', + action='store', dest='startat', default=None, + help='start building at the given module'), + make_option('-r', '--report-url', + action='store', dest='reporturl', default=None, + help='jhautobuild report URL'), + make_option('-v', '--verbose', + action='store_true', dest='verbose', default=False, + help='verbose mode'), + ]) + + def run(self, config, options, args): + config.buildscript = 'autobuild' + + config.autobuild_report_url = None + config.verbose = False + + if options.autogen: + config.alwaysautogen = True + if options.clean: + config.makeclean = True + if options.reporturl is not None: + config.autobuild_report_url = options.reporturl + if options.verbose: + config.verbose = True + + if not config.autobuild_report_url: + raise UsageError('report url for autobuild not specified') + + module_set = jhbuild.moduleset.load(config) + module_list = module_set.get_module_list(args or config.modules, + config.skip) + + # remove modules up to startat + if options.startat: + while module_list and module_list[0].name != options.startat: + del module_list[0] + if not module_list: + raise FatalError('%s not in module list' % options.startat) + + build = jhbuild.frontends.get_buildscript(config, module_list) + build.build() + +register_command(cmd_autobuild) diff --git a/build-scripts/jhbuild/jhbuild/commands/base.py b/build-scripts/jhbuild/jhbuild/commands/base.py new file mode 100644 index 0000000..3762f2b --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/base.py @@ -0,0 +1,288 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# base.py: the most common jhbuild commands +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +from optparse import make_option + +import jhbuild.moduleset +import jhbuild.frontends +from jhbuild.errors import UsageError, FatalError +from jhbuild.commands import Command, register_command + + +class cmd_update(Command): + """Pull updates from the version control system for one or more modules, + plus its dependencies.""" + + name = 'update' + usage_args = '[ options ... ] [ modules ... ]' + + def __init__(self): + Command.__init__(self, [ + make_option('-s', '--skip', metavar='MODULES', + action='append', dest='skip', default=[], + help='treat the given modules as up to date'), + make_option('-t', '--start-at', metavar='MODULE', + action='store', dest='startat', default=None, + help='start building at the given module'), + make_option('-D', metavar='DATE-SPEC', + action='store', dest='sticky_date', default=None, + help='set a sticky date when checking out modules'), + ]) + + def run(self, config, options, args): + for item in options.skip: + config.skip += item.split(',') + if options.sticky_date is not None: + config.sticky_date = options.sticky_date + + module_set = jhbuild.moduleset.load(config) + module_list = module_set.get_module_list(args or config.modules, + config.skip) + # remove modules up to startat + if options.startat: + while module_list and module_list[0].name != options.startat: + del module_list[0] + if not module_list: + raise FatalError('%s not in module list' % options.startat) + + # don't actually perform build ... + config.nobuild = True + config.nonetwork = False + + build = jhbuild.frontends.get_buildscript(config, module_list) + build.build() + +register_command(cmd_update) + + +class cmd_updateone(Command): + """Pull updates from the version control system for one or more modules.""" + + name = 'updateone' + usage_args = '[ options ... ] [ modules ... ]' + + def __init__(self): + Command.__init__(self, [ + make_option('-D', metavar='DATE-SPEC', + action='store', dest='sticky_date', default=None, + help='set a sticky date when checking out modules'), + ]) + + def run(self, config, options, args): + if options.sticky_date is not None: + config.sticky_date = options.sticky_date + + module_set = jhbuild.moduleset.load(config) + try: + module_list = [module_set.modules[modname] for modname in args] + except KeyError, e: + raise FatalError("A module called '%s' could not be found." + % str(e)) + + # don't actually perform build ... + config.nobuild = True + config.nonetwork = False + + build = jhbuild.frontends.get_buildscript(config, module_list) + build.build() + +register_command(cmd_updateone) + + +class cmd_build(Command): + """Pull updates from the version control system for one or more modules, + plus its dependencies.""" + + name = 'build' + usage_args = '[ options ... ] [ modules ... ]' + + def __init__(self): + Command.__init__(self, [ + make_option('-a', '--autogen', + action='store_true', dest='autogen', default=False, + help='always run autogen.sh'), + make_option('-c', '--clean', + action='store_true', dest='clean', default=False, + help='run make clean before make'), + make_option('-n', '--no-network', + action='store_true', dest='nonetwork', default=False, + help='skip version control update'), + make_option('-s', '--skip', metavar='MODULES', + action='append', dest='skip', default=[], + help='treat the given modules as up to date'), + make_option('-t', '--start-at', metavar='MODULE', + action='store', dest='startat', default=None, + help='start building at the given module'), + make_option('-D', metavar='DATE-SPEC', + action='store', dest='sticky_date', default=None, + help='set a sticky date when checking out modules'), + ]) + + def run(self, config, options, args): + if options.autogen: + config.alwaysautogen = True + if options.clean: + config.makeclean = True + if options.nonetwork: + config.nonetwork = True + for item in options.skip: + config.skip += item.split(',') + if options.sticky_date is not None: + config.sticky_date = options.sticky_date + + module_set = jhbuild.moduleset.load(config) + module_list = module_set.get_module_list(args or config.modules, + config.skip) + # remove modules up to startat + if options.startat: + while module_list and module_list[0].name != options.startat: + del module_list[0] + if not module_list: + raise FatalError('%s not in module list' % options.startat) + + build = jhbuild.frontends.get_buildscript(config, module_list) + build.build() + +register_command(cmd_build) + + +class cmd_buildone(Command): + """Pull updates from the version control system for one or more modules.""" + + name = 'buildone' + usage_args = '[ options ... ] [ modules ... ]' + + def __init__(self): + Command.__init__(self, [ + make_option('-a', '--autogen', + action='store_true', dest='autogen', default=False, + help='always run autogen.sh'), + make_option('-c', '--clean', + action='store_true', dest='clean', default=False, + help='run make clean before make'), + make_option('-n', '--no-network', + action='store_true', dest='nonetwork', default=False, + help='skip version control update'), + make_option('-D', metavar='DATE-SPEC', + action='store', dest='sticky_date', default=None, + help='set a sticky date when checking out modules'), + ]) + + def run(self, config, options, args): + if options.autogen: + config.alwaysautogen = True + if options.clean: + config.makeclean = True + if options.nonetwork: + config.nonetwork = True + if options.sticky_date is not None: + config.sticky_date = options.sticky_date + + module_set = jhbuild.moduleset.load(config) + try: + module_list = [module_set.modules[modname] for modname in args] + except KeyError, e: + raise FatalError("A module called '%s' could not be found." + % str(e)) + + build = jhbuild.frontends.get_buildscript(config, module_list) + build.build() + +register_command(cmd_buildone) + + +class cmd_run(Command): + """Run a command under the jhbuild environment""" + + name = 'run' + usage_args = 'program [ arguments ... ]' + + def execute(self, config, args): + os.execlp(args[0], *args) + +register_command(cmd_run) + + +class cmd_shell(Command): + """Run a command under the jhbuild environment""" + + name = 'shell' + usage_args = '' + + def execute(self, config, args): + user_shell = os.environ.get('SHELL', '/bin/sh') + os.execlp(user_shell, user_shell) + +register_command(cmd_shell) + + +class cmd_list(Command): + """List the modules that would be built.""" + + name = 'list' + usage_args = '[ options ... ] [ modules ... ]' + + def __init__(self): + Command.__init__(self, [ + make_option('-r', '--show-revision', + action='store_true', dest='show_rev', default=False, + help='show which revision will be built'), + make_option('-s', '--skip', metavar='MODULES', + action='append', dest='skip', default=[], + help='treat the given modules as up to date'), + ]) + + def run(self, config, options, args): + for item in options.skip: + config.skip += item.split(',') + module_set = jhbuild.moduleset.load(config) + module_list = module_set.get_module_list(args or config.modules, + config.skip) + + for mod in module_list: + if options.show_rev: + rev = mod.get_revision() + if rev: + print '%s (%s)' % (mod.name, rev) + else: + print mod.name + else: + print mod.name + +register_command(cmd_list) + + +class cmd_dot(Command): + """Output a Graphviz input file for the given modules""" + + name = 'dot' + usage_args = '[ modules ... ]' + + def run(self, config, options, args): + module_set = jhbuild.moduleset.load(config) + if args: + modules = args + elif config.modules == 'all': + modules = None + else: + modules = config.modules + module_set.write_dot(modules) + +register_command(cmd_dot) diff --git a/build-scripts/jhbuild/jhbuild/commands/bootstrap.py b/build-scripts/jhbuild/jhbuild/commands/bootstrap.py new file mode 100644 index 0000000..a148d0a --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/bootstrap.py @@ -0,0 +1,41 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# bootstrap.py: code to check whether prerequisite modules are installed +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +import urllib + +import jhbuild.moduleset +import jhbuild.frontends +from jhbuild.commands import Command, register_command + +class cmd_bootstrap(Command): + """Build required support tools.""" + + name = 'bootstrap' + usage_args = '' + + def run(self, config, options, args): + # load the bootstrap module set + module_set = jhbuild.moduleset.load(config, 'bootstrap') + module_list = module_set.get_module_list(['meta-bootstrap']) + + build = jhbuild.frontends.get_buildscript(config, module_list) + build.build() + +register_command(cmd_bootstrap) diff --git a/build-scripts/jhbuild/jhbuild/commands/gui.py b/build-scripts/jhbuild/jhbuild/commands/gui.py new file mode 100644 index 0000000..0b465c5 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/gui.py @@ -0,0 +1,56 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# Copyright (C) 2003-2004 Seth Nickell +# +# gui.py: the GTK interface for jhbuild +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from jhbuild.commands import Command, register_command +import jhbuild.frontends +from jhbuild.frontends.gtkui import Configuration + + +class cmd_gui(Command): + """GTK frontend for jhbuild""" + + name = 'gui' + usage_args = '' + + def run(self, config, options, args): + # request GTK build script. + config.buildscript = 'gtkui' + + configuration = Configuration(config, args) + (module_list, start_at, + run_autogen, cvs_update, no_build) = configuration.run() + + if start_at: + while module_list and module_list[0].name != start_at: + del module_list[0] + + if run_autogen: + config.alwaysautogen = True + elif not cvs_update: + config.nonetwork = True + + if no_build: + config.nobuild = True + + if module_list != None: + build = jhbuild.frontends.get_buildscript(config, module_list) + build.build() + +register_command(cmd_gui) diff --git a/build-scripts/jhbuild/jhbuild/commands/info.py b/build-scripts/jhbuild/jhbuild/commands/info.py new file mode 100644 index 0000000..796a060 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/info.py @@ -0,0 +1,126 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# info.py: show information about a module +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import sys +import time + +import jhbuild.moduleset +import jhbuild.frontends +from jhbuild.errors import FatalError +from jhbuild.commands import Command, register_command +from jhbuild.modtypes import MetaModule +from jhbuild.modtypes.autotools import AutogenModule +from jhbuild.modtypes.mozillamodule import MozillaModule +from jhbuild.modtypes.tarball import Tarball +from jhbuild.versioncontrol.cvs import CVSBranch +from jhbuild.versioncontrol.svn import SubversionBranch +from jhbuild.versioncontrol.arch import ArchBranch +from jhbuild.versioncontrol.darcs import DarcsBranch +from jhbuild.versioncontrol.git import GitBranch +from jhbuild.versioncontrol.tarball import TarballBranch + + +class cmd_info(Command): + """Display information about one or more modules""" + + name = 'info' + usage_args = '[ modules ... ]' + + def run(self, config, options, args): + packagedb = jhbuild.frontends.get_buildscript(config, []).packagedb + module_set = jhbuild.moduleset.load(config) + + for modname in args: + try: + module = module_set.modules[modname] + except KeyError: + raise FatalError('unknown module %s' % modname) + self.show_info(module, packagedb, module_set) + + def show_info(self, module, packagedb, module_set): + if isinstance(module, MozillaModule): + installdate = packagedb.installdate(module.name, + module.get_revision() or '') + elif isinstance(module, AutogenModule): + installdate = packagedb.installdate(module.name, + module.branch.branchname or '') + elif isinstance(module, Tarball): + installdate = packagedb.installdate(module.name, + module.version or '') + else: + installdate = packagedb.installdate(module.name) + + print 'Name:', module.name + print 'Type:', module.type + + if installdate is not None: + print 'Install-date:', time.strftime('%Y-%m-%d %H:%M:%S', + time.localtime(installdate)) + else: + print 'Install-date:', 'not installed' + + if isinstance(module, MozillaModule): + print 'CVS-Root:', module.repository.cvsroot + if module.revision is not None: + print 'CVS-Revision:', module.revision + if module.projects: + print 'Moz-Projects:', ', '.join(module.projects) + elif isinstance(module, AutogenModule): + if isinstance(module.branch, CVSBranch): + print 'CVS-Root:', module.branch.repository.cvsroot + print 'CVS-Module:', module.branch.module + if module.branch.revision: + print 'CVS-Revision:', module.branch.revision + elif isinstance(module.branch, SubversionBranch): + print 'Subversion-Module:', module.branch.module + elif isinstance(module.branch, ArchBranch): + print 'Arch-Version:', module.branch.module + elif isinstance(module.branch, DarcsBranch): + print 'Darcs-Archive:', module.branch.module + elif isinstance(module.branch, GitBranch): + print 'Git-Module:', module.branch.module + elif isinstance(module.branch, TarballBranch): + print 'URL:', module.branch.module + print 'Version:', module.branch.version + try: + tree_id = module.branch.tree_id() + print 'Tree-ID:', tree_id + except NotImplementedError: + pass + elif isinstance(module, Tarball): + print 'URL:', module.source_url + print 'Version:', module.version + + # dependencies + if module.dependencies: + print 'Requires:', ', '.join(module.dependencies) + requiredby = [ mod.name for mod in module_set.modules.values() + if module.name in mod.dependencies ] + if requiredby: + print 'Required-by:', ', '.join(requiredby) + if module.after: + print 'After:', ', '.join(module.after) + before = [ mod.name for mod in module_set.modules.values() + if module.name in mod.after ] + if before: + print 'Before:', ', '.join(before) + + print + +register_command(cmd_info) diff --git a/build-scripts/jhbuild/jhbuild/commands/sanitycheck.py b/build-scripts/jhbuild/jhbuild/commands/sanitycheck.py new file mode 100644 index 0000000..53f6b6b --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/sanitycheck.py @@ -0,0 +1,153 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# sanitycheck.py: check whether build environment is sane +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import sys +import os +import re + +from jhbuild.commands import Command, register_command +from jhbuild.utils.cmds import get_output +from jhbuild.errors import UsageError, FatalError + +def check_version(cmd, regexp, minver): + try: + data = get_output(cmd) + except: + return False + match = re.match(regexp, data, re.MULTILINE) + if not match: return False + version = match.group(1) + + version = version.split('.') + for i, ver in enumerate(version): + part = re.sub(r'^[^\d]*(\d+).*$', r'\1', ver) + if not part: + version[i] = None + else: + version[i] = int(part) + minver = minver.split('.') + for i, ver in enumerate(minver): + part = re.sub(r'^[^\d]*(\d+).*$', r'\1', ver) + if not part: + minver[i] = None + else: + minver[i] = int(part) + return version >= minver + +def get_aclocal_path(version): + data = get_output(['aclocal-%s' % version, '--print-ac-dir']) + path = [data[:-1]] + env = os.environ.get('ACLOCAL_FLAGS', '').split() + i = 0 + while i < len(env): + if env[i] == '-I': + path.append(env[i+1]) + i = i + 2 + else: + i = i + 1 + return path + +def inpath(filename, path): + for dir in path: + if os.path.isfile(os.path.join(dir, filename)): + return True + return False + + +class cmd_sanitycheck(Command): + """Check that required support tools are available""" + + name = 'sanitycheck' + usage_args = '' + + def run(self, config, options, args): + if args: + raise UsageError('no extra arguments expected') + + # check whether the checkout root and install prefix are writable + if not (os.path.isdir(config.checkoutroot) and + os.access(config.checkoutroot, os.R_OK|os.W_OK|os.X_OK)): + print 'checkout root is not writable' + if not (os.path.isdir(config.prefix) and + os.access(config.prefix, os.R_OK|os.W_OK|os.X_OK)): + print 'install prefix is not writable' + + # check whether various tools are installed + if not check_version(['libtoolize', '--version'], + r'libtoolize \([^)]*\) ([\d.]+)', '1.5'): + print 'libtool >= 1.5 not found' + if not check_version(['gettext', '--version'], + r'gettext \([^)]*\) ([\d.]+)', '0.10.40'): + print 'gettext >= 0.10.40 not found' + if not check_version(['pkg-config', '--version'], + r'^([\d.]+)', '0.14.0'): + print 'pkg-config >= 0.14.0 not found' + if not check_version(['db2html', '--version'], + r'.* ([\d.]+)', '0.0'): + print 'db2html not found' + if not check_version(['autoconf', '--version'], + r'autoconf \([^)]*\) ([\d.]+)', '2.53'): + print 'autoconf >= 2.53 not found' + if not check_version(['automake-1.4', '--version'], + r'automake \([^)]*\) ([\d.]+)', '1.4'): + print 'automake-1.4 not found' + if not check_version(['automake-1.7', '--version'], + r'automake \([^)]*\) ([\d.]+)', '1.7'): + print 'automake-1.7 not found' + if not check_version(['automake-1.8', '--version'], + r'automake \([^)]*\) ([\d.]+)', '1.8'): + print 'automake-1.8 not found' + if not check_version(['automake-1.9', '--version'], + r'automake \([^)]*\) ([\d.]+)', '1.9'): + print 'automake-1.9 not found' + + for amver in ('1.4', '1.7', '1.8', '1.9'): + try: + path = get_aclocal_path(amver) + except: + continue # exception raised if aclocal-ver not runnable + + if not inpath('libtool.m4', path): + print "aclocal-%s can't see libtool macros" % amver + if not inpath('gettext.m4', path): + print "aclocal-%s can't see gettext macros" % amver + if not inpath('pkg.m4', path): + print "aclocal-%s can't see pkg-config macros" % amver + + # XML catalog sanity checks + if not os.access('/etc/xml/catalog', os.R_OK): + print 'Could not find XML catalog' + else: + for (item, name) in [('-//OASIS//DTD DocBook XML V4.1.2//EN', + 'DocBook XML DTD V4.1.2'), + ('http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl', + 'DocBook XSL Stylesheets')]: + try: + data = get_output(['xmlcatalog', '/etc/xml/catalog', item]) + except: + print 'Could not find %s in XML catalog' % name + + # Perl modules used by tools such as intltool: + for perlmod in [ 'XML::Parser' ]: + try: + get_output(['perl', '-M%s' % perlmod, '-e', 'exit']) + except: + print 'Could not find the perl module %s' % perlmod + +register_command(cmd_sanitycheck) diff --git a/build-scripts/jhbuild/jhbuild/commands/tinderbox.py b/build-scripts/jhbuild/jhbuild/commands/tinderbox.py new file mode 100644 index 0000000..19ac5ee --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/commands/tinderbox.py @@ -0,0 +1,92 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# tinderbox.py: non-interactive build that generates a report +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from optparse import make_option + +from jhbuild.errors import UsageError +from jhbuild.commands import Command, register_command +import jhbuild.frontends + + +class cmd_tinderbox(Command): + """Build modules non-interactively and store build logs""" + + name = 'tinderbox' + usage_args = '[ options ... ] [ modules ... ]' + + def __init__(self): + Command.__init__(self, [ + make_option('-a', '--autogen', + action='store_true', dest='autogen', default=False, + help='always run autogen.sh'), + make_option('-c', '--clean', + action='store_true', dest='clean', default=False, + help='run make clean before make'), + make_option('-n', '--no-network', + action='store_true', dest='nonetwork', default=False, + help='skip version control update'), + make_option('-o', '--output', metavar='DIR', + action='store', dest='outputdir', default=None, + help='directory to store build logs in'), + make_option('-s', '--skip', metavar='MODULES', + action='append', dest='skip', default=[], + help='treat the given modules as up to date'), + make_option('-t', '--start-at', metavar='MODULE', + action='store', dest='startat', default=None, + help='start building at the given module'), + make_option('-D', metavar='DATE-SPEC', + action='store', dest='sticky_date', default=None, + help='set a sticky date when checking out modules'), + ]) + + def run(self, config, options, args): + config.buildscript = 'tinderbox' + + if options.autogen: + config.alwaysautogen = True + if options.clean: + config.makeclean = True + if options.nonetwork: + config.nonetwork = True + if options.outputdir is not None: + config.tinderbox_outputdir = options.outputdir + for item in options.skip: + config.skip += item.split(',') + if options.sticky_date is not None: + config.sticky_date = options.sticky_date + + if not config.tinderbox_outputdir: + raise UsageError('output directory for tinderbox build ' + 'not specified') + + module_set = jhbuild.moduleset.load(config) + module_list = module_set.get_module_list(args or config.modules, + config.skip) + + # remove modules up to startat + if options.startat: + while module_list and module_list[0].name != options.startat: + del module_list[0] + if not module_list: + raise FatalError('%s not in module list' % options.startat) + + build = jhbuild.frontends.get_buildscript(config, module_list) + build.build() + +register_command(cmd_tinderbox) diff --git a/build-scripts/jhbuild/jhbuild/config.py b/build-scripts/jhbuild/jhbuild/config.py new file mode 100644 index 0000000..0c2df18 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/config.py @@ -0,0 +1,185 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# config.py: configuration file parser +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +import traceback + +from jhbuild.errors import UsageError, FatalError + +__all__ = [ 'Config' ] + +_defaults_file = os.path.join(os.path.dirname(__file__), 'defaults.jhbuildrc') +_default_jhbuildrc = os.path.join(os.environ['HOME'], '.jhbuildrc') + +_known_keys = [ 'moduleset', 'modules', 'skip', 'prefix', + 'checkoutroot', 'buildroot', 'autogenargs', 'makeargs', + 'repos', 'branches', + 'builddir_pattern', 'module_autogenargs', 'module_makeargs', + 'interact', 'buildscript', 'nonetwork', + 'alwaysautogen', 'nobuild', 'makeclean', 'makecheck', + 'use_lib64', 'tinderbox_outputdir', 'sticky_date', + 'tarballdir', 'pretty_print' ] + +env_prepends = {} +def prependpath(envvar, path): + env_prepends.setdefault(envvar, []).append(path) + +def addpath(envvar, path): + '''Adds a path to an environment variable.''' + # special case ACLOCAL_FLAGS + if envvar in [ 'ACLOCAL_FLAGS' ]: + envval = os.environ.get(envvar, '-I %s' % path) + parts = ['-I', path] + envval.split() + i = 2 + while i < len(parts)-1: + if parts[i] == '-I': + # check if "-I parts[i]" comes earlier + for j in range(0, i-1): + if parts[j] == '-I' and parts[j+1] == parts[i+1]: + del parts[i:i+2] + break + else: + i += 2 + else: + i += 1 + envval = ' '.join(parts) + else: + envval = os.environ.get(envvar, path) + parts = envval.split(':') + parts.insert(0, path) + # remove duplicate entries: + i = 1 + while i < len(parts): + if parts[i] in parts[:i]: + del parts[i] + else: + i += 1 + envval = ':'.join(parts) + + os.environ[envvar] = envval + +class Config: + def __init__(self, filename=_default_jhbuildrc): + config = { + '__file__': _defaults_file, + 'addpath': addpath, + 'prependpath': prependpath + } + env_prepends.clear() + try: + execfile(_defaults_file, config) + except: + traceback.print_exc() + raise FatalError('could not load config defaults') + config['__file__'] = filename + try: + execfile(filename, config) + except: + traceback.print_exc() + raise FatalError('could not load config file') + + # backward compatibility, from the days when jhbuild only + # supported Gnome.org CVS. + if config.has_key('cvsroot'): + config['cvsroots']['gnome.org'] = config['cvsroot'] + if config.has_key('cvsroots'): + config['repos'].update(config['cvsroots']) + if config.has_key('svnroots'): + config['repos'].update(config['svnroots']) + + # environment variables + if config.has_key('cflags') and config['cflags']: + os.environ['CFLAGS'] = config['cflags'] + if config.has_key('installprog') and config['installprog']: + os.environ['INSTALL'] = config['installprog'] + + # copy known config keys to attributes on the instance + for name in _known_keys: + setattr(self, name, config[name]) + + # default tarballdir to checkoutroot + if not self.tarballdir: self.tarballdir = self.checkoutroot + + self.setup_env() + + def setup_env(self): + '''set environment variables for using prefix''' + + if not os.path.exists(self.prefix): + try: + os.makedirs(self.prefix) + except: + raise FatalError("Can't create %s directory" % self.prefix) + + #includedir = os.path.join(prefix, 'include') + #addpath('C_INCLUDE_PATH', includedir) + + # LD_LIBRARY_PATH + if self.use_lib64: + libdir = os.path.join(self.prefix, 'lib64') + else: + libdir = os.path.join(self.prefix, 'lib') + addpath('LD_LIBRARY_PATH', libdir) + + # PATH + bindir = os.path.join(self.prefix, 'bin') + addpath('PATH', bindir) + + # PKG_CONFIG_PATH + pkgconfigdatadir = os.path.join(self.prefix, 'share', 'pkgconfig') + pkgconfigdir = os.path.join(libdir, 'pkgconfig') + addpath('PKG_CONFIG_PATH', pkgconfigdatadir) + addpath('PKG_CONFIG_PATH', pkgconfigdir) + + # XDG_DATA_DIRS + xdgdatadir = os.path.join(self.prefix, 'share') + addpath('XDG_DATA_DIRS', xdgdatadir) + + # XDG_CONFIG_DIRS + xdgconfigdir = os.path.join(self.prefix, 'etc', 'xdg') + addpath('XDG_CONFIG_DIRS', xdgconfigdir) + + # ACLOCAL_FLAGS + aclocaldir = os.path.join(self.prefix, 'share', 'aclocal') + if not os.path.exists(aclocaldir): + try: + os.makedirs(aclocaldir) + except: + raise FatalError("Can't create %s directory" % aclocaldir) + addpath('ACLOCAL_FLAGS', aclocaldir) + + # PERL5LIB + perl5lib = os.path.join(self.prefix, 'lib', 'perl5') + addpath('PERL5LIB', perl5lib) + + os.environ['CERTIFIED_GNOMIE'] = 'yes' + + # handle environment prepends ... + for envvar in env_prepends.keys(): + for path in env_prepends[envvar]: + addpath(envvar, path) + + + # get rid of gdkxft from the env -- it will cause problems. + if os.environ.has_key('LD_PRELOAD'): + valarr = os.environ['LD_PRELOAD'].split(' ') + for x in valarr[:]: + if x.find('libgdkxft.so') >= 0: + valarr.remove(x) + os.environ['LD_PRELOAD'] = ' '.join(valarr) diff --git a/build-scripts/jhbuild/jhbuild/cut_n_paste/.cvsignore b/build-scripts/jhbuild/jhbuild/cut_n_paste/.cvsignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/cut_n_paste/.cvsignore @@ -0,0 +1 @@ +*.pyc diff --git a/build-scripts/jhbuild/jhbuild/cut_n_paste/__init__.py b/build-scripts/jhbuild/jhbuild/cut_n_paste/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/cut_n_paste/__init__.py diff --git a/build-scripts/jhbuild/jhbuild/cut_n_paste/optparse.py b/build-scripts/jhbuild/jhbuild/cut_n_paste/optparse.py new file mode 100644 index 0000000..17daad6 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/cut_n_paste/optparse.py @@ -0,0 +1,2008 @@ +"""optparse - a powerful, extensible, and easy-to-use option parser. + +By Greg Ward <gward@python.net> + +Originally distributed as Optik; see http://optik.sourceforge.net/ . + +If you have problems with this module, please do not file bugs, +patches, or feature requests with Python; instead, use Optik's +SourceForge project page: + http://sourceforge.net/projects/optik + +For support, use the optik-users@lists.sourceforge.net mailing list +(http://lists.sourceforge.net/lists/listinfo/optik-users). +""" + +# Python developers: please do not make changes to this file, since +# it is automatically generated from the Optik source code. + +__version__ = "1.5.1" + +__all__ = ['Option', + 'SUPPRESS_HELP', + 'SUPPRESS_USAGE', + 'Values', + 'OptionContainer', + 'OptionGroup', + 'OptionParser', + 'HelpFormatter', + 'IndentedHelpFormatter', + 'TitledHelpFormatter', + 'OptParseError', + 'OptionError', + 'OptionConflictError', + 'OptionValueError', + 'BadOptionError'] + +__copyright__ = """ +Copyright (c) 2001-2006 Gregory P. Ward. All rights reserved. +Copyright (c) 2002-2006 Python Software Foundation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the author nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +""" + +import sys, os +import string, re +import types + +def _repr(self): + return "<%s at 0x%x: %s>" % (self.__class__.__name__, id(self), self) + + +# This file was generated from: +# Id: option_parser.py 509 2006-04-20 00:58:24Z gward +# Id: option.py 509 2006-04-20 00:58:24Z gward +# Id: help.py 509 2006-04-20 00:58:24Z gward +# Id: errors.py 509 2006-04-20 00:58:24Z gward + +try: + from gettext import gettext +except ImportError: + def gettext(message): + return message +_ = gettext + + +class OptParseError (Exception): + def __init__(self, msg): + self.msg = msg + + def __str__(self): + return self.msg + + +class OptionError (OptParseError): + """ + Raised if an Option instance is created with invalid or + inconsistent arguments. + """ + + def __init__(self, msg, option): + self.msg = msg + self.option_id = str(option) + + def __str__(self): + if self.option_id: + return "option %s: %s" % (self.option_id, self.msg) + else: + return self.msg + +class OptionConflictError (OptionError): + """ + Raised if conflicting options are added to an OptionParser. + """ + +class OptionValueError (OptParseError): + """ + Raised if an invalid option value is encountered on the command + line. + """ + +class BadOptionError (OptParseError): + """ + Raised if an invalid option is seen on the command line. + """ + def __init__(self, opt_str): + self.opt_str = opt_str + + def __str__(self): + return _("no such option: %s") % self.opt_str + +class AmbiguousOptionError (BadOptionError): + """ + Raised if an ambiguous option is seen on the command line. + """ + def __init__(self, opt_str, possibilities): + BadOptionError.__init__(self, opt_str) + self.possibilities = possibilities + + def __str__(self): + return (_("ambiguous option: %s (%s?)") + % (self.opt_str, ", ".join(self.possibilities))) + + +class HelpFormatter: + + """ + Abstract base class for formatting option help. OptionParser + instances should use one of the HelpFormatter subclasses for + formatting help; by default IndentedHelpFormatter is used. + + Instance attributes: + parser : OptionParser + the controlling OptionParser instance + indent_increment : int + the number of columns to indent per nesting level + max_help_position : int + the maximum starting column for option help text + help_position : int + the calculated starting column for option help text; + initially the same as the maximum + width : int + total number of columns for output (pass None to constructor for + this value to be taken from the $COLUMNS environment variable) + level : int + current indentation level + current_indent : int + current indentation level (in columns) + help_width : int + number of columns available for option help text (calculated) + default_tag : str + text to replace with each option's default value, "%default" + by default. Set to false value to disable default value expansion. + option_strings : { Option : str } + maps Option instances to the snippet of help text explaining + the syntax of that option, e.g. "-h, --help" or + "-fFILE, --file=FILE" + _short_opt_fmt : str + format string controlling how short options with values are + printed in help text. Must be either "%s%s" ("-fFILE") or + "%s %s" ("-f FILE"), because those are the two syntaxes that + Optik supports. + _long_opt_fmt : str + similar but for long options; must be either "%s %s" ("--file FILE") + or "%s=%s" ("--file=FILE"). + """ + + NO_DEFAULT_VALUE = "none" + + def __init__(self, + indent_increment, + max_help_position, + width, + short_first): + self.parser = None + self.indent_increment = indent_increment + self.help_position = self.max_help_position = max_help_position + if width is None: + try: + width = int(os.environ['COLUMNS']) + except (KeyError, ValueError): + width = 80 + width -= 2 + self.width = width + self.current_indent = 0 + self.level = 0 + self.help_width = None # computed later + self.short_first = short_first + self.default_tag = "%default" + self.option_strings = {} + self._short_opt_fmt = "%s %s" + self._long_opt_fmt = "%s=%s" + + def set_parser(self, parser): + self.parser = parser + + def set_short_opt_delimiter(self, delim): + if delim not in ("", " "): + raise ValueError( + "invalid metavar delimiter for short options: %r" % delim) + self._short_opt_fmt = "%s" + delim + "%s" + + def set_long_opt_delimiter(self, delim): + if delim not in ("=", " "): + raise ValueError( + "invalid metavar delimiter for long options: %r" % delim) + self._long_opt_fmt = "%s" + delim + "%s" + + def indent(self): + self.current_indent += self.indent_increment + self.level += 1 + + def dedent(self): + self.current_indent -= self.indent_increment + assert self.current_indent >= 0, "Indent decreased below 0." + self.level -= 1 + + def format_usage(self, usage): + raise NotImplementedError, "subclasses must implement" + + def format_heading(self, heading): + raise NotImplementedError, "subclasses must implement" + + def _format_text(self, text): + """ + Format a paragraph of free-form text for inclusion in the + help output at the current indentation level. + """ + text_width = self.width - self.current_indent + indent = " "*self.current_indent + return fill(text, + text_width, + initial_indent=indent, + subsequent_indent=indent) + + def format_description(self, description): + if description: + return self._format_text(description) + "\n" + else: + return "" + + def format_epilog(self, epilog): + if epilog: + return "\n" + self._format_text(epilog) + "\n" + else: + return "" + + + def expand_default(self, option): + if self.parser is None or not self.default_tag: + return option.help + + default_value = self.parser.defaults.get(option.dest) + if default_value is NO_DEFAULT or default_value is None: + default_value = self.NO_DEFAULT_VALUE + + return option.help.replace(self.default_tag, str(default_value)) + + def format_option(self, option): + # The help for each option consists of two parts: + # * the opt strings and metavars + # eg. ("-x", or "-fFILENAME, --file=FILENAME") + # * the user-supplied help string + # eg. ("turn on expert mode", "read data from FILENAME") + # + # If possible, we write both of these on the same line: + # -x turn on expert mode + # + # But if the opt string list is too long, we put the help + # string on a second line, indented to the same column it would + # start in if it fit on the first line. + # -fFILENAME, --file=FILENAME + # read data from FILENAME + result = [] + opts = self.option_strings[option] + opt_width = self.help_position - self.current_indent - 2 + if len(opts) > opt_width: + opts = "%*s%s\n" % (self.current_indent, "", opts) + indent_first = self.help_position + else: # start help on same line as opts + opts = "%*s%-*s " % (self.current_indent, "", opt_width, opts) + indent_first = 0 + result.append(opts) + if option.help: + help_text = self.expand_default(option) + help_lines = wrap(help_text, self.help_width) + result.append("%*s%s\n" % (indent_first, "", help_lines[0])) + result.extend(["%*s%s\n" % (self.help_position, "", line) + for line in help_lines[1:]]) + elif opts[-1] != "\n": + result.append("\n") + return "".join(result) + + def store_option_strings(self, parser): + self.indent() + max_len = 0 + for opt in parser.option_list: + strings = self.format_option_strings(opt) + self.option_strings[opt] = strings + max_len = max(max_len, len(strings) + self.current_indent) + self.indent() + for group in parser.option_groups: + for opt in group.option_list: + strings = self.format_option_strings(opt) + self.option_strings[opt] = strings + max_len = max(max_len, len(strings) + self.current_indent) + self.dedent() + self.dedent() + self.help_position = min(max_len + 2, self.max_help_position) + self.help_width = self.width - self.help_position + + def format_option_strings(self, option): + """Return a comma-separated list of option strings & metavariables.""" + if option.takes_value(): + metavar = option.metavar or option.dest.upper() + short_opts = [self._short_opt_fmt % (sopt, metavar) + for sopt in option._short_opts] + long_opts = [self._long_opt_fmt % (lopt, metavar) + for lopt in option._long_opts] + else: + short_opts = option._short_opts + long_opts = option._long_opts + + if self.short_first: + opts = short_opts + long_opts + else: + opts = long_opts + short_opts + + return ", ".join(opts) + +class IndentedHelpFormatter (HelpFormatter): + """Format help with indented section bodies. + """ + + def __init__(self, + indent_increment=2, + max_help_position=24, + width=None, + short_first=1): + HelpFormatter.__init__( + self, indent_increment, max_help_position, width, short_first) + + def format_usage(self, usage): + return _("Usage: %s\n") % usage + + def format_heading(self, heading): + return "%*s%s:\n" % (self.current_indent, "", heading) + + +class TitledHelpFormatter (HelpFormatter): + """Format help with underlined section headers. + """ + + def __init__(self, + indent_increment=0, + max_help_position=24, + width=None, + short_first=0): + HelpFormatter.__init__ ( + self, indent_increment, max_help_position, width, short_first) + + def format_usage(self, usage): + return "%s %s\n" % (self.format_heading(_("Usage")), usage) + + def format_heading(self, heading): + return "%s\n%s\n" % (heading, "=-"[self.level] * len(heading)) + + +def _parse_num(val, type): + if val[:2].lower() == "0x": # hexadecimal + radix = 16 + elif val[:2].lower() == "0b": # binary + radix = 2 + val = val[2:] or "0" # have to remove "0b" prefix + elif val[:1] == "0": # octal + radix = 8 + else: # decimal + radix = 10 + + return type(val, radix) + +def _parse_int(val): + return _parse_num(val, int) + +def _parse_long(val): + return _parse_num(val, long) + +_builtin_cvt = { "int" : (_parse_int, _("integer")), + "long" : (_parse_long, _("long integer")), + "float" : (float, _("floating-point")), + "complex" : (complex, _("complex")) } + +def check_builtin(option, opt, value): + (cvt, what) = _builtin_cvt[option.type] + try: + return cvt(value) + except ValueError: + raise OptionValueError( + _("option %s: invalid %s value: %r") % (opt, what, value)) + +def check_choice(option, opt, value): + if value in option.choices: + return value + else: + choices = ", ".join(map(repr, option.choices)) + raise OptionValueError( + _("option %s: invalid choice: %r (choose from %s)") + % (opt, value, choices)) + +# Not supplying a default is different from a default of None, +# so we need an explicit "not supplied" value. +NO_DEFAULT = ("NO", "DEFAULT") + + +class Option: + """ + Instance attributes: + _short_opts : [string] + _long_opts : [string] + + action : string + type : string + dest : string + default : any + nargs : int + const : any + choices : [string] + callback : function + callback_args : (any*) + callback_kwargs : { string : any } + help : string + metavar : string + """ + + # The list of instance attributes that may be set through + # keyword args to the constructor. + ATTRS = ['action', + 'type', + 'dest', + 'default', + 'nargs', + 'const', + 'choices', + 'callback', + 'callback_args', + 'callback_kwargs', + 'help', + 'metavar'] + + # The set of actions allowed by option parsers. Explicitly listed + # here so the constructor can validate its arguments. + ACTIONS = ("store", + "store_const", + "store_true", + "store_false", + "append", + "append_const", + "count", + "callback", + "help", + "version") + + # The set of actions that involve storing a value somewhere; + # also listed just for constructor argument validation. (If + # the action is one of these, there must be a destination.) + STORE_ACTIONS = ("store", + "store_const", + "store_true", + "store_false", + "append", + "append_const", + "count") + + # The set of actions for which it makes sense to supply a value + # type, ie. which may consume an argument from the command line. + TYPED_ACTIONS = ("store", + "append", + "callback") + + # The set of actions which *require* a value type, ie. that + # always consume an argument from the command line. + ALWAYS_TYPED_ACTIONS = ("store", + "append") + + # The set of actions which take a 'const' attribute. + CONST_ACTIONS = ("store_const", + "append_const") + + # The set of known types for option parsers. Again, listed here for + # constructor argument validation. + TYPES = ("string", "int", "long", "float", "complex", "choice") + + # Dictionary of argument checking functions, which convert and + # validate option arguments according to the option type. + # + # Signature of checking functions is: + # check(option : Option, opt : string, value : string) -> any + # where + # option is the Option instance calling the checker + # opt is the actual option seen on the command-line + # (eg. "-a", "--file") + # value is the option argument seen on the command-line + # + # The return value should be in the appropriate Python type + # for option.type -- eg. an integer if option.type == "int". + # + # If no checker is defined for a type, arguments will be + # unchecked and remain strings. + TYPE_CHECKER = { "int" : check_builtin, + "long" : check_builtin, + "float" : check_builtin, + "complex": check_builtin, + "choice" : check_choice, + } + + + # CHECK_METHODS is a list of unbound method objects; they are called + # by the constructor, in order, after all attributes are + # initialized. The list is created and filled in later, after all + # the methods are actually defined. (I just put it here because I + # like to define and document all class attributes in the same + # place.) Subclasses that add another _check_*() method should + # define their own CHECK_METHODS list that adds their check method + # to those from this class. + CHECK_METHODS = None + + + # -- Constructor/initialization methods ---------------------------- + + def __init__(self, *opts, **attrs): + # Set _short_opts, _long_opts attrs from 'opts' tuple. + # Have to be set now, in case no option strings are supplied. + self._short_opts = [] + self._long_opts = [] + opts = self._check_opt_strings(opts) + self._set_opt_strings(opts) + + # Set all other attrs (action, type, etc.) from 'attrs' dict + self._set_attrs(attrs) + + # Check all the attributes we just set. There are lots of + # complicated interdependencies, but luckily they can be farmed + # out to the _check_*() methods listed in CHECK_METHODS -- which + # could be handy for subclasses! The one thing these all share + # is that they raise OptionError if they discover a problem. + for checker in self.CHECK_METHODS: + checker(self) + + def _check_opt_strings(self, opts): + # Filter out None because early versions of Optik had exactly + # one short option and one long option, either of which + # could be None. + opts = filter(None, opts) + if not opts: + raise TypeError("at least one option string must be supplied") + return opts + + def _set_opt_strings(self, opts): + for opt in opts: + if len(opt) < 2: + raise OptionError( + "invalid option string %r: " + "must be at least two characters long" % opt, self) + elif len(opt) == 2: + if not (opt[0] == "-" and opt[1] != "-"): + raise OptionError( + "invalid short option string %r: " + "must be of the form -x, (x any non-dash char)" % opt, + self) + self._short_opts.append(opt) + else: + if not (opt[0:2] == "--" and opt[2] != "-"): + raise OptionError( + "invalid long option string %r: " + "must start with --, followed by non-dash" % opt, + self) + self._long_opts.append(opt) + + def _set_attrs(self, attrs): + for attr in self.ATTRS: + if attrs.has_key(attr): + setattr(self, attr, attrs[attr]) + del attrs[attr] + else: + if attr == 'default': + setattr(self, attr, NO_DEFAULT) + else: + setattr(self, attr, None) + if attrs: + raise OptionError( + "invalid keyword arguments: %s" % ", ".join(attrs.keys()), + self) + + + # -- Constructor validation methods -------------------------------- + + def _check_action(self): + if self.action is None: + self.action = "store" + elif self.action not in self.ACTIONS: + raise OptionError("invalid action: %r" % self.action, self) + + def _check_type(self): + if self.type is None: + if self.action in self.ALWAYS_TYPED_ACTIONS: + if self.choices is not None: + # The "choices" attribute implies "choice" type. + self.type = "choice" + else: + # No type given? "string" is the most sensible default. + self.type = "string" + else: + # Allow type objects or builtin type conversion functions + # (int, str, etc.) as an alternative to their names. (The + # complicated check of __builtin__ is only necessary for + # Python 2.1 and earlier, and is short-circuited by the + # first check on modern Pythons.) + import __builtin__ + if ( type(self.type) is types.TypeType or + (hasattr(self.type, "__name__") and + getattr(__builtin__, self.type.__name__, None) is self.type) ): + self.type = self.type.__name__ + + if self.type == "str": + self.type = "string" + + if self.type not in self.TYPES: + raise OptionError("invalid option type: %r" % self.type, self) + if self.action not in self.TYPED_ACTIONS: + raise OptionError( + "must not supply a type for action %r" % self.action, self) + + def _check_choice(self): + if self.type == "choice": + if self.choices is None: + raise OptionError( + "must supply a list of choices for type 'choice'", self) + elif type(self.choices) not in (types.TupleType, types.ListType): + raise OptionError( + "choices must be a list of strings ('%s' supplied)" + % str(type(self.choices)).split("'")[1], self) + elif self.choices is not None: + raise OptionError( + "must not supply choices for type %r" % self.type, self) + + def _check_dest(self): + # No destination given, and we need one for this action. The + # self.type check is for callbacks that take a value. + takes_value = (self.action in self.STORE_ACTIONS or + self.type is not None) + if self.dest is None and takes_value: + + # Glean a destination from the first long option string, + # or from the first short option string if no long options. + if self._long_opts: + # eg. "--foo-bar" -> "foo_bar" + self.dest = self._long_opts[0][2:].replace('-', '_') + else: + self.dest = self._short_opts[0][1] + + def _check_const(self): + if self.action not in self.CONST_ACTIONS and self.const is not None: + raise OptionError( + "'const' must not be supplied for action %r" % self.action, + self) + + def _check_nargs(self): + if self.action in self.TYPED_ACTIONS: + if self.nargs is None: + self.nargs = 1 + elif self.nargs is not None: + raise OptionError( + "'nargs' must not be supplied for action %r" % self.action, + self) + + def _check_callback(self): + if self.action == "callback": + if not callable(self.callback): + raise OptionError( + "callback not callable: %r" % self.callback, self) + if (self.callback_args is not None and + type(self.callback_args) is not types.TupleType): + raise OptionError( + "callback_args, if supplied, must be a tuple: not %r" + % self.callback_args, self) + if (self.callback_kwargs is not None and + type(self.callback_kwargs) is not types.DictType): + raise OptionError( + "callback_kwargs, if supplied, must be a dict: not %r" + % self.callback_kwargs, self) + else: + if self.callback is not None: + raise OptionError( + "callback supplied (%r) for non-callback option" + % self.callback, self) + if self.callback_args is not None: + raise OptionError( + "callback_args supplied for non-callback option", self) + if self.callback_kwargs is not None: + raise OptionError( + "callback_kwargs supplied for non-callback option", self) + + + CHECK_METHODS = [_check_action, + _check_type, + _check_choice, + _check_dest, + _check_const, + _check_nargs, + _check_callback] + + + # -- Miscellaneous methods ----------------------------------------- + + def __str__(self): + return "/".join(self._short_opts + self._long_opts) + + __repr__ = _repr + + def takes_value(self): + return self.type is not None + + def get_opt_string(self): + if self._long_opts: + return self._long_opts[0] + else: + return self._short_opts[0] + + + # -- Processing methods -------------------------------------------- + + def check_value(self, opt, value): + checker = self.TYPE_CHECKER.get(self.type) + if checker is None: + return value + else: + return checker(self, opt, value) + + def convert_value(self, opt, value): + if value is not None: + if self.nargs == 1: + return self.check_value(opt, value) + else: + return tuple([self.check_value(opt, v) for v in value]) + + def process(self, opt, value, values, parser): + + # First, convert the value(s) to the right type. Howl if any + # value(s) are bogus. + value = self.convert_value(opt, value) + + # And then take whatever action is expected of us. + # This is a separate method to make life easier for + # subclasses to add new actions. + return self.take_action( + self.action, self.dest, opt, value, values, parser) + + def take_action(self, action, dest, opt, value, values, parser): + if action == "store": + setattr(values, dest, value) + elif action == "store_const": + setattr(values, dest, self.const) + elif action == "store_true": + setattr(values, dest, True) + elif action == "store_false": + setattr(values, dest, False) + elif action == "append": + values.ensure_value(dest, []).append(value) + elif action == "append_const": + values.ensure_value(dest, []).append(self.const) + elif action == "count": + setattr(values, dest, values.ensure_value(dest, 0) + 1) + elif action == "callback": + args = self.callback_args or () + kwargs = self.callback_kwargs or {} + self.callback(self, opt, value, parser, *args, **kwargs) + elif action == "help": + parser.print_help() + parser.exit() + elif action == "version": + parser.print_version() + parser.exit() + else: + raise RuntimeError, "unknown action %r" % self.action + + return 1 + +# class Option + + +SUPPRESS_HELP = "SUPPRESS"+"HELP" +SUPPRESS_USAGE = "SUPPRESS"+"USAGE" + +# For compatibility with Python 2.2 +try: + True, False +except NameError: + (True, False) = (1, 0) + +def isbasestring(x): + return isinstance(x, types.StringType) or isinstance(x, types.UnicodeType) + +class Values: + + def __init__(self, defaults=None): + if defaults: + for (attr, val) in defaults.items(): + setattr(self, attr, val) + + def __str__(self): + return str(self.__dict__) + + __repr__ = _repr + + def __cmp__(self, other): + if isinstance(other, Values): + return cmp(self.__dict__, other.__dict__) + elif isinstance(other, types.DictType): + return cmp(self.__dict__, other) + else: + return -1 + + def _update_careful(self, dict): + """ + Update the option values from an arbitrary dictionary, but only + use keys from dict that already have a corresponding attribute + in self. Any keys in dict without a corresponding attribute + are silently ignored. + """ + for attr in dir(self): + if dict.has_key(attr): + dval = dict[attr] + if dval is not None: + setattr(self, attr, dval) + + def _update_loose(self, dict): + """ + Update the option values from an arbitrary dictionary, + using all keys from the dictionary regardless of whether + they have a corresponding attribute in self or not. + """ + self.__dict__.update(dict) + + def _update(self, dict, mode): + if mode == "careful": + self._update_careful(dict) + elif mode == "loose": + self._update_loose(dict) + else: + raise ValueError, "invalid update mode: %r" % mode + + def read_module(self, modname, mode="careful"): + __import__(modname) + mod = sys.modules[modname] + self._update(vars(mod), mode) + + def read_file(self, filename, mode="careful"): + vars = {} + execfile(filename, vars) + self._update(vars, mode) + + def ensure_value(self, attr, value): + if not hasattr(self, attr) or getattr(self, attr) is None: + setattr(self, attr, value) + return getattr(self, attr) + + +class OptionContainer: + + """ + Abstract base class. + + Class attributes: + standard_option_list : [Option] + list of standard options that will be accepted by all instances + of this parser class (intended to be overridden by subclasses). + + Instance attributes: + option_list : [Option] + the list of Option objects contained by this OptionContainer + _short_opt : { string : Option } + dictionary mapping short option strings, eg. "-f" or "-X", + to the Option instances that implement them. If an Option + has multiple short option strings, it will appears in this + dictionary multiple times. [1] + _long_opt : { string : Option } + dictionary mapping long option strings, eg. "--file" or + "--exclude", to the Option instances that implement them. + Again, a given Option can occur multiple times in this + dictionary. [1] + defaults : { string : any } + dictionary mapping option destination names to default + values for each destination [1] + + [1] These mappings are common to (shared by) all components of the + controlling OptionParser, where they are initially created. + + """ + + def __init__(self, option_class, conflict_handler, description): + # Initialize the option list and related data structures. + # This method must be provided by subclasses, and it must + # initialize at least the following instance attributes: + # option_list, _short_opt, _long_opt, defaults. + self._create_option_list() + + self.option_class = option_class + self.set_conflict_handler(conflict_handler) + self.set_description(description) + + def _create_option_mappings(self): + # For use by OptionParser constructor -- create the master + # option mappings used by this OptionParser and all + # OptionGroups that it owns. + self._short_opt = {} # single letter -> Option instance + self._long_opt = {} # long option -> Option instance + self.defaults = {} # maps option dest -> default value + + + def _share_option_mappings(self, parser): + # For use by OptionGroup constructor -- use shared option + # mappings from the OptionParser that owns this OptionGroup. + self._short_opt = parser._short_opt + self._long_opt = parser._long_opt + self.defaults = parser.defaults + + def set_conflict_handler(self, handler): + if handler not in ("error", "resolve"): + raise ValueError, "invalid conflict_resolution value %r" % handler + self.conflict_handler = handler + + def set_description(self, description): + self.description = description + + def get_description(self): + return self.description + + + def destroy(self): + """see OptionParser.destroy().""" + del self._short_opt + del self._long_opt + del self.defaults + + + # -- Option-adding methods ----------------------------------------- + + def _check_conflict(self, option): + conflict_opts = [] + for opt in option._short_opts: + if self._short_opt.has_key(opt): + conflict_opts.append((opt, self._short_opt[opt])) + for opt in option._long_opts: + if self._long_opt.has_key(opt): + conflict_opts.append((opt, self._long_opt[opt])) + + if conflict_opts: + handler = self.conflict_handler + if handler == "error": + raise OptionConflictError( + "conflicting option string(s): %s" + % ", ".join([co[0] for co in conflict_opts]), + option) + elif handler == "resolve": + for (opt, c_option) in conflict_opts: + if opt.startswith("--"): + c_option._long_opts.remove(opt) + del self._long_opt[opt] + else: + c_option._short_opts.remove(opt) + del self._short_opt[opt] + if not (c_option._short_opts or c_option._long_opts): + c_option.container.option_list.remove(c_option) + + def add_option(self, *args, **kwargs): + """add_option(Option) + add_option(opt_str, ..., kwarg=val, ...) + """ + if type(args[0]) is types.StringType: + option = self.option_class(*args, **kwargs) + elif len(args) == 1 and not kwargs: + option = args[0] + if not isinstance(option, Option): + raise TypeError, "not an Option instance: %r" % option + else: + raise TypeError, "invalid arguments" + + self._check_conflict(option) + + self.option_list.append(option) + option.container = self + for opt in option._short_opts: + self._short_opt[opt] = option + for opt in option._long_opts: + self._long_opt[opt] = option + + if option.dest is not None: # option has a dest, we need a default + if option.default is not NO_DEFAULT: + self.defaults[option.dest] = option.default + elif not self.defaults.has_key(option.dest): + self.defaults[option.dest] = None + + return option + + def add_options(self, option_list): + for option in option_list: + self.add_option(option) + + # -- Option query/removal methods ---------------------------------- + + def get_option(self, opt_str): + return (self._short_opt.get(opt_str) or + self._long_opt.get(opt_str)) + + def has_option(self, opt_str): + return (self._short_opt.has_key(opt_str) or + self._long_opt.has_key(opt_str)) + + def remove_option(self, opt_str): + option = self._short_opt.get(opt_str) + if option is None: + option = self._long_opt.get(opt_str) + if option is None: + raise ValueError("no such option %r" % opt_str) + + for opt in option._short_opts: + del self._short_opt[opt] + for opt in option._long_opts: + del self._long_opt[opt] + option.container.option_list.remove(option) + + + # -- Help-formatting methods --------------------------------------- + + def format_option_help(self, formatter): + if not self.option_list: + return "" + result = [] + for option in self.option_list: + if not option.help is SUPPRESS_HELP: + result.append(formatter.format_option(option)) + return "".join(result) + + def format_description(self, formatter): + return formatter.format_description(self.get_description()) + + def format_help(self, formatter): + result = [] + if self.description: + result.append(self.format_description(formatter)) + if self.option_list: + result.append(self.format_option_help(formatter)) + return "\n".join(result) + + +class OptionGroup (OptionContainer): + + def __init__(self, parser, title, description=None): + self.parser = parser + OptionContainer.__init__( + self, parser.option_class, parser.conflict_handler, description) + self.title = title + + def _create_option_list(self): + self.option_list = [] + self._share_option_mappings(self.parser) + + def set_title(self, title): + self.title = title + + def destroy(self): + """see OptionParser.destroy().""" + OptionContainer.destroy(self) + del self.option_list + + # -- Help-formatting methods --------------------------------------- + + def format_help(self, formatter): + result = formatter.format_heading(self.title) + formatter.indent() + result += OptionContainer.format_help(self, formatter) + formatter.dedent() + return result + + +class OptionParser (OptionContainer): + + """ + Class attributes: + standard_option_list : [Option] + list of standard options that will be accepted by all instances + of this parser class (intended to be overridden by subclasses). + + Instance attributes: + usage : string + a usage string for your program. Before it is displayed + to the user, "%prog" will be expanded to the name of + your program (self.prog or os.path.basename(sys.argv[0])). + prog : string + the name of the current program (to override + os.path.basename(sys.argv[0])). + epilog : string + paragraph of help text to print after option help + + option_groups : [OptionGroup] + list of option groups in this parser (option groups are + irrelevant for parsing the command-line, but very useful + for generating help) + + allow_interspersed_args : bool = true + if true, positional arguments may be interspersed with options. + Assuming -a and -b each take a single argument, the command-line + -ablah foo bar -bboo baz + will be interpreted the same as + -ablah -bboo -- foo bar baz + If this flag were false, that command line would be interpreted as + -ablah -- foo bar -bboo baz + -- ie. we stop processing options as soon as we see the first + non-option argument. (This is the tradition followed by + Python's getopt module, Perl's Getopt::Std, and other argument- + parsing libraries, but it is generally annoying to users.) + + process_default_values : bool = true + if true, option default values are processed similarly to option + values from the command line: that is, they are passed to the + type-checking function for the option's type (as long as the + default value is a string). (This really only matters if you + have defined custom types; see SF bug #955889.) Set it to false + to restore the behaviour of Optik 1.4.1 and earlier. + + rargs : [string] + the argument list currently being parsed. Only set when + parse_args() is active, and continually trimmed down as + we consume arguments. Mainly there for the benefit of + callback options. + largs : [string] + the list of leftover arguments that we have skipped while + parsing options. If allow_interspersed_args is false, this + list is always empty. + values : Values + the set of option values currently being accumulated. Only + set when parse_args() is active. Also mainly for callbacks. + + Because of the 'rargs', 'largs', and 'values' attributes, + OptionParser is not thread-safe. If, for some perverse reason, you + need to parse command-line arguments simultaneously in different + threads, use different OptionParser instances. + + """ + + standard_option_list = [] + + def __init__(self, + usage=None, + option_list=None, + option_class=Option, + version=None, + conflict_handler="error", + description=None, + formatter=None, + add_help_option=True, + prog=None, + epilog=None): + OptionContainer.__init__( + self, option_class, conflict_handler, description) + self.set_usage(usage) + self.prog = prog + self.version = version + self.allow_interspersed_args = True + self.process_default_values = True + if formatter is None: + formatter = IndentedHelpFormatter() + self.formatter = formatter + self.formatter.set_parser(self) + self.epilog = epilog + + # Populate the option list; initial sources are the + # standard_option_list class attribute, the 'option_list' + # argument, and (if applicable) the _add_version_option() and + # _add_help_option() methods. + self._populate_option_list(option_list, + add_help=add_help_option) + + self._init_parsing_state() + + + def destroy(self): + """ + Declare that you are done with this OptionParser. This cleans up + reference cycles so the OptionParser (and all objects referenced by + it) can be garbage-collected promptly. After calling destroy(), the + OptionParser is unusable. + """ + OptionContainer.destroy(self) + for group in self.option_groups: + group.destroy() + del self.option_list + del self.option_groups + del self.formatter + + + # -- Private methods ----------------------------------------------- + # (used by our or OptionContainer's constructor) + + def _create_option_list(self): + self.option_list = [] + self.option_groups = [] + self._create_option_mappings() + + def _add_help_option(self): + self.add_option("-h", "--help", + action="help", + help=_("show this help message and exit")) + + def _add_version_option(self): + self.add_option("--version", + action="version", + help=_("show program's version number and exit")) + + def _populate_option_list(self, option_list, add_help=True): + if self.standard_option_list: + self.add_options(self.standard_option_list) + if option_list: + self.add_options(option_list) + if self.version: + self._add_version_option() + if add_help: + self._add_help_option() + + def _init_parsing_state(self): + # These are set in parse_args() for the convenience of callbacks. + self.rargs = None + self.largs = None + self.values = None + + + # -- Simple modifier methods --------------------------------------- + + def set_usage(self, usage): + if usage is None: + self.usage = _("%prog [options]") + elif usage is SUPPRESS_USAGE: + self.usage = None + # For backwards compatibility with Optik 1.3 and earlier. + elif usage.lower().startswith("usage: "): + self.usage = usage[7:] + else: + self.usage = usage + + def enable_interspersed_args(self): + self.allow_interspersed_args = True + + def disable_interspersed_args(self): + self.allow_interspersed_args = False + + def set_process_default_values(self, process): + self.process_default_values = process + + def set_default(self, dest, value): + self.defaults[dest] = value + + def set_defaults(self, **kwargs): + self.defaults.update(kwargs) + + def _get_all_options(self): + options = self.option_list[:] + for group in self.option_groups: + options.extend(group.option_list) + return options + + def get_default_values(self): + if not self.process_default_values: + # Old, pre-Optik 1.5 behaviour. + return Values(self.defaults) + + defaults = self.defaults.copy() + for option in self._get_all_options(): + default = defaults.get(option.dest) + if isbasestring(default): + opt_str = option.get_opt_string() + defaults[option.dest] = option.check_value(opt_str, default) + + return Values(defaults) + + + # -- OptionGroup methods ------------------------------------------- + + def add_option_group(self, *args, **kwargs): + # XXX lots of overlap with OptionContainer.add_option() + if type(args[0]) is types.StringType: + group = OptionGroup(self, *args, **kwargs) + elif len(args) == 1 and not kwargs: + group = args[0] + if not isinstance(group, OptionGroup): + raise TypeError, "not an OptionGroup instance: %r" % group + if group.parser is not self: + raise ValueError, "invalid OptionGroup (wrong parser)" + else: + raise TypeError, "invalid arguments" + + self.option_groups.append(group) + return group + + def get_option_group(self, opt_str): + option = (self._short_opt.get(opt_str) or + self._long_opt.get(opt_str)) + if option and option.container is not self: + return option.container + return None + + + # -- Option-parsing methods ---------------------------------------- + + def _get_args(self, args): + if args is None: + return sys.argv[1:] + else: + return args[:] # don't modify caller's list + + def parse_args(self, args=None, values=None): + """ + parse_args(args : [string] = sys.argv[1:], + values : Values = None) + -> (values : Values, args : [string]) + + Parse the command-line options found in 'args' (default: + sys.argv[1:]). Any errors result in a call to 'error()', which + by default prints the usage message to stderr and calls + sys.exit() with an error message. On success returns a pair + (values, args) where 'values' is an Values instance (with all + your option values) and 'args' is the list of arguments left + over after parsing options. + """ + rargs = self._get_args(args) + if values is None: + values = self.get_default_values() + + # Store the halves of the argument list as attributes for the + # convenience of callbacks: + # rargs + # the rest of the command-line (the "r" stands for + # "remaining" or "right-hand") + # largs + # the leftover arguments -- ie. what's left after removing + # options and their arguments (the "l" stands for "leftover" + # or "left-hand") + self.rargs = rargs + self.largs = largs = [] + self.values = values + + try: + stop = self._process_args(largs, rargs, values) + except (BadOptionError, OptionValueError), err: + self.error(str(err)) + + args = largs + rargs + return self.check_values(values, args) + + def check_values(self, values, args): + """ + check_values(values : Values, args : [string]) + -> (values : Values, args : [string]) + + Check that the supplied option values and leftover arguments are + valid. Returns the option values and leftover arguments + (possibly adjusted, possibly completely new -- whatever you + like). Default implementation just returns the passed-in + values; subclasses may override as desired. + """ + return (values, args) + + def _process_args(self, largs, rargs, values): + """_process_args(largs : [string], + rargs : [string], + values : Values) + + Process command-line arguments and populate 'values', consuming + options and arguments from 'rargs'. If 'allow_interspersed_args' is + false, stop at the first non-option argument. If true, accumulate any + interspersed non-option arguments in 'largs'. + """ + while rargs: + arg = rargs[0] + # We handle bare "--" explicitly, and bare "-" is handled by the + # standard arg handler since the short arg case ensures that the + # len of the opt string is greater than 1. + if arg == "--": + del rargs[0] + return + elif arg[0:2] == "--": + # process a single long option (possibly with value(s)) + self._process_long_opt(rargs, values) + elif arg[:1] == "-" and len(arg) > 1: + # process a cluster of short options (possibly with + # value(s) for the last one only) + self._process_short_opts(rargs, values) + elif self.allow_interspersed_args: + largs.append(arg) + del rargs[0] + else: + return # stop now, leave this arg in rargs + + # Say this is the original argument list: + # [arg0, arg1, ..., arg(i-1), arg(i), arg(i+1), ..., arg(N-1)] + # ^ + # (we are about to process arg(i)). + # + # Then rargs is [arg(i), ..., arg(N-1)] and largs is a *subset* of + # [arg0, ..., arg(i-1)] (any options and their arguments will have + # been removed from largs). + # + # The while loop will usually consume 1 or more arguments per pass. + # If it consumes 1 (eg. arg is an option that takes no arguments), + # then after _process_arg() is done the situation is: + # + # largs = subset of [arg0, ..., arg(i)] + # rargs = [arg(i+1), ..., arg(N-1)] + # + # If allow_interspersed_args is false, largs will always be + # *empty* -- still a subset of [arg0, ..., arg(i-1)], but + # not a very interesting subset! + + def _match_long_opt(self, opt): + """_match_long_opt(opt : string) -> string + + Determine which long option string 'opt' matches, ie. which one + it is an unambiguous abbrevation for. Raises BadOptionError if + 'opt' doesn't unambiguously match any long option string. + """ + return _match_abbrev(opt, self._long_opt) + + def _process_long_opt(self, rargs, values): + arg = rargs.pop(0) + + # Value explicitly attached to arg? Pretend it's the next + # argument. + if "=" in arg: + (opt, next_arg) = arg.split("=", 1) + rargs.insert(0, next_arg) + had_explicit_value = True + else: + opt = arg + had_explicit_value = False + + opt = self._match_long_opt(opt) + option = self._long_opt[opt] + if option.takes_value(): + nargs = option.nargs + if len(rargs) < nargs: + if nargs == 1: + self.error(_("%s option requires an argument") % opt) + else: + self.error(_("%s option requires %d arguments") + % (opt, nargs)) + elif nargs == 1: + value = rargs.pop(0) + else: + value = tuple(rargs[0:nargs]) + del rargs[0:nargs] + + elif had_explicit_value: + self.error(_("%s option does not take a value") % opt) + + else: + value = None + + option.process(opt, value, values, self) + + def _process_short_opts(self, rargs, values): + arg = rargs.pop(0) + stop = False + i = 1 + for ch in arg[1:]: + opt = "-" + ch + option = self._short_opt.get(opt) + i += 1 # we have consumed a character + + if not option: + raise BadOptionError(opt) + if option.takes_value(): + # Any characters left in arg? Pretend they're the + # next arg, and stop consuming characters of arg. + if i < len(arg): + rargs.insert(0, arg[i:]) + stop = True + + nargs = option.nargs + if len(rargs) < nargs: + if nargs == 1: + self.error(_("%s option requires an argument") % opt) + else: + self.error(_("%s option requires %d arguments") + % (opt, nargs)) + elif nargs == 1: + value = rargs.pop(0) + else: + value = tuple(rargs[0:nargs]) + del rargs[0:nargs] + + else: # option doesn't take a value + value = None + + option.process(opt, value, values, self) + + if stop: + break + + + # -- Feedback methods ---------------------------------------------- + + def get_prog_name(self): + if self.prog is None: + return os.path.basename(sys.argv[0]) + else: + return self.prog + + def expand_prog_name(self, s): + return s.replace("%prog", self.get_prog_name()) + + def get_description(self): + return self.expand_prog_name(self.description) + + def exit(self, status=0, msg=None): + if msg: + sys.stderr.write(msg) + sys.exit(status) + + def error(self, msg): + """error(msg : string) + + Print a usage message incorporating 'msg' to stderr and exit. + If you override this in a subclass, it should not return -- it + should either exit or raise an exception. + """ + self.print_usage(sys.stderr) + self.exit(2, "%s: error: %s\n" % (self.get_prog_name(), msg)) + + def get_usage(self): + if self.usage: + return self.formatter.format_usage( + self.expand_prog_name(self.usage)) + else: + return "" + + def print_usage(self, file=None): + """print_usage(file : file = stdout) + + Print the usage message for the current program (self.usage) to + 'file' (default stdout). Any occurence of the string "%prog" in + self.usage is replaced with the name of the current program + (basename of sys.argv[0]). Does nothing if self.usage is empty + or not defined. + """ + if self.usage: + print >>file, self.get_usage() + + def get_version(self): + if self.version: + return self.expand_prog_name(self.version) + else: + return "" + + def print_version(self, file=None): + """print_version(file : file = stdout) + + Print the version message for this program (self.version) to + 'file' (default stdout). As with print_usage(), any occurence + of "%prog" in self.version is replaced by the current program's + name. Does nothing if self.version is empty or undefined. + """ + if self.version: + print >>file, self.get_version() + + def format_option_help(self, formatter=None): + if formatter is None: + formatter = self.formatter + formatter.store_option_strings(self) + result = [] + result.append(formatter.format_heading(_("Options"))) + formatter.indent() + if self.option_list: + result.append(OptionContainer.format_option_help(self, formatter)) + result.append("\n") + for group in self.option_groups: + result.append(group.format_help(formatter)) + result.append("\n") + formatter.dedent() + # Drop the last "\n", or the header if no options or option groups: + return "".join(result[:-1]) + + def format_epilog(self, formatter): + return formatter.format_epilog(self.epilog) + + def format_help(self, formatter=None): + if formatter is None: + formatter = self.formatter + result = [] + if self.usage: + result.append(self.get_usage() + "\n") + if self.description: + result.append(self.format_description(formatter) + "\n") + result.append(self.format_option_help(formatter)) + result.append(self.format_epilog(formatter)) + return "".join(result) + + def print_help(self, file=None): + """print_help(file : file = stdout) + + Print an extended help message, listing all options and any + help text provided with them, to 'file' (default stdout). + """ + if file is None: + file = sys.stdout + file.write(self.format_help()) + +# class OptionParser + + +def _match_abbrev(s, wordmap): + """_match_abbrev(s : string, wordmap : {string : Option}) -> string + + Return the string key in 'wordmap' for which 's' is an unambiguous + abbreviation. If 's' is found to be ambiguous or doesn't match any of + 'words', raise BadOptionError. + """ + # Is there an exact match? + if wordmap.has_key(s): + return s + else: + # Isolate all words with s as a prefix. + possibilities = [word for word in wordmap.keys() + if word.startswith(s)] + # No exact match, so there had better be just one possibility. + if len(possibilities) == 1: + return possibilities[0] + elif not possibilities: + raise BadOptionError(s) + else: + # More than one possible completion: ambiguous prefix. + raise AmbiguousOptionError(s, possibilities) + + +# Some day, there might be many Option classes. As of Optik 1.3, the +# preferred way to instantiate Options is indirectly, via make_option(), +# which will become a factory function when there are many Option +# classes. +make_option = Option + +# Hardcode the recognized whitespace characters to the US-ASCII +# whitespace characters. The main reason for doing this is that in +# ISO-8859-1, 0xa0 is non-breaking whitespace, so in certain locales +# that character winds up in string.whitespace. Respecting +# string.whitespace in those cases would 1) make textwrap treat 0xa0 the +# same as any other whitespace char, which is clearly wrong (it's a +# *non-breaking* space), 2) possibly cause problems with Unicode, +# since 0xa0 is not in range(128). +_whitespace = '\t\n\x0b\x0c\r ' + +class TextWrapper: + """ + Object for wrapping/filling text. The public interface consists of + the wrap() and fill() methods; the other methods are just there for + subclasses to override in order to tweak the default behaviour. + If you want to completely replace the main wrapping algorithm, + you'll probably have to override _wrap_chunks(). + + Several instance attributes control various aspects of wrapping: + width (default: 70) + the maximum width of wrapped lines (unless break_long_words + is false) + initial_indent (default: "") + string that will be prepended to the first line of wrapped + output. Counts towards the line's width. + subsequent_indent (default: "") + string that will be prepended to all lines save the first + of wrapped output; also counts towards each line's width. + expand_tabs (default: true) + Expand tabs in input text to spaces before further processing. + Each tab will become 1 .. 8 spaces, depending on its position in + its line. If false, each tab is treated as a single character. + replace_whitespace (default: true) + Replace all whitespace characters in the input text by spaces + after tab expansion. Note that if expand_tabs is false and + replace_whitespace is true, every tab will be converted to a + single space! + fix_sentence_endings (default: false) + Ensure that sentence-ending punctuation is always followed + by two spaces. Off by default because the algorithm is + (unavoidably) imperfect. + break_long_words (default: true) + Break words longer than 'width'. If false, those words will not + be broken, and some lines might be longer than 'width'. + """ + + whitespace_trans = string.maketrans(_whitespace, ' ' * len(_whitespace)) + + unicode_whitespace_trans = {} + uspace = ord(u' ') + for x in map(ord, _whitespace): + unicode_whitespace_trans[x] = uspace + + # This funky little regex is just the trick for splitting + # text up into word-wrappable chunks. E.g. + # "Hello there -- you goof-ball, use the -b option!" + # splits into + # Hello/ /there/ /--/ /you/ /goof-/ball,/ /use/ /the/ /-b/ /option! + # (after stripping out empty strings). + wordsep_re = re.compile( + r'(\s+|' # any whitespace + r'[^\s\w]*\w+[a-zA-Z]-(?=\w+[a-zA-Z])|' # hyphenated words + r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))') # em-dash + + # XXX this is not locale- or charset-aware -- string.lowercase + # is US-ASCII only (and therefore English-only) + sentence_end_re = re.compile(r'[%s]' # lowercase letter + r'[\.\!\?]' # sentence-ending punct. + r'[\"\']?' # optional end-of-quote + % string.lowercase) + + + def __init__(self, + width=70, + initial_indent="", + subsequent_indent="", + expand_tabs=True, + replace_whitespace=True, + fix_sentence_endings=False, + break_long_words=True): + self.width = width + self.initial_indent = initial_indent + self.subsequent_indent = subsequent_indent + self.expand_tabs = expand_tabs + self.replace_whitespace = replace_whitespace + self.fix_sentence_endings = fix_sentence_endings + self.break_long_words = break_long_words + + + # -- Private methods ----------------------------------------------- + # (possibly useful for subclasses to override) + + def _munge_whitespace(self, text): + """_munge_whitespace(text : string) -> string + + Munge whitespace in text: expand tabs and convert all other + whitespace characters to spaces. Eg. " foo\tbar\n\nbaz" + becomes " foo bar baz". + """ + if self.expand_tabs: + text = text.expandtabs() + if self.replace_whitespace: + if isinstance(text, types.StringType): + text = text.translate(self.whitespace_trans) + elif isinstance(text, types.UnicodeType): + text = text.translate(self.unicode_whitespace_trans) + return text + + + def _split(self, text): + """_split(text : string) -> [string] + + Split the text to wrap into indivisible chunks. Chunks are + not quite the same as words; see wrap_chunks() for full + details. As an example, the text + Look, goof-ball -- use the -b option! + breaks into the following chunks: + 'Look,', ' ', 'goof-', 'ball', ' ', '--', ' ', + 'use', ' ', 'the', ' ', '-b', ' ', 'option!' + """ + chunks = self.wordsep_re.split(text) + chunks = filter(None, chunks) + return chunks + + def _fix_sentence_endings(self, chunks): + """_fix_sentence_endings(chunks : [string]) + + Correct for sentence endings buried in 'chunks'. Eg. when the + original text contains "... foo.\nBar ...", munge_whitespace() + and split() will convert that to [..., "foo.", " ", "Bar", ...] + which has one too few spaces; this method simply changes the one + space to two. + """ + i = 0 + pat = self.sentence_end_re + while i < len(chunks)-1: + if chunks[i+1] == " " and pat.search(chunks[i]): + chunks[i+1] = " " + i += 2 + else: + i += 1 + + def _handle_long_word(self, reversed_chunks, cur_line, cur_len, width): + """_handle_long_word(chunks : [string], + cur_line : [string], + cur_len : int, width : int) + + Handle a chunk of text (most likely a word, not whitespace) that + is too long to fit in any line. + """ + space_left = max(width - cur_len, 1) + + # If we're allowed to break long words, then do so: put as much + # of the next chunk onto the current line as will fit. + if self.break_long_words: + cur_line.append(reversed_chunks[-1][:space_left]) + reversed_chunks[-1] = reversed_chunks[-1][space_left:] + + # Otherwise, we have to preserve the long word intact. Only add + # it to the current line if there's nothing already there -- + # that minimizes how much we violate the width constraint. + elif not cur_line: + cur_line.append(reversed_chunks.pop()) + + # If we're not allowed to break long words, and there's already + # text on the current line, do nothing. Next time through the + # main loop of _wrap_chunks(), we'll wind up here again, but + # cur_len will be zero, so the next line will be entirely + # devoted to the long word that we can't handle right now. + + def _wrap_chunks(self, chunks): + """_wrap_chunks(chunks : [string]) -> [string] + + Wrap a sequence of text chunks and return a list of lines of + length 'self.width' or less. (If 'break_long_words' is false, + some lines may be longer than this.) Chunks correspond roughly + to words and the whitespace between them: each chunk is + indivisible (modulo 'break_long_words'), but a line break can + come between any two chunks. Chunks should not have internal + whitespace; ie. a chunk is either all whitespace or a "word". + Whitespace chunks will be removed from the beginning and end of + lines, but apart from that whitespace is preserved. + """ + lines = [] + if self.width <= 0: + raise ValueError("invalid width %r (must be > 0)" % self.width) + + # Arrange in reverse order so items can be efficiently popped + # from a stack of chucks. + chunks.reverse() + + while chunks: + + # Start the list of chunks that will make up the current line. + # cur_len is just the length of all the chunks in cur_line. + cur_line = [] + cur_len = 0 + + # Figure out which static string will prefix this line. + if lines: + indent = self.subsequent_indent + else: + indent = self.initial_indent + + # Maximum width for this line. + width = self.width - len(indent) + + # First chunk on line is whitespace -- drop it, unless this + # is the very beginning of the text (ie. no lines started yet). + if chunks[-1].strip() == '' and lines: + del chunks[-1] + + while chunks: + l = len(chunks[-1]) + + # Can at least squeeze this chunk onto the current line. + if cur_len + l <= width: + cur_line.append(chunks.pop()) + cur_len += l + + # Nope, this line is full. + else: + break + + # The current line is full, and the next chunk is too big to + # fit on *any* line (not just this one). + if chunks and len(chunks[-1]) > width: + self._handle_long_word(chunks, cur_line, cur_len, width) + + # If the last chunk on this line is all whitespace, drop it. + if cur_line and cur_line[-1].strip() == '': + del cur_line[-1] + + # Convert current line back to a string and store it in list + # of all lines (return value). + if cur_line: + lines.append(indent + ''.join(cur_line)) + + return lines + + + # -- Public interface ---------------------------------------------- + + def wrap(self, text): + """wrap(text : string) -> [string] + + Reformat the single paragraph in 'text' so it fits in lines of + no more than 'self.width' columns, and return a list of wrapped + lines. Tabs in 'text' are expanded with string.expandtabs(), + and all other whitespace characters (including newline) are + converted to space. + """ + text = self._munge_whitespace(text) + chunks = self._split(text) + if self.fix_sentence_endings: + self._fix_sentence_endings(chunks) + return self._wrap_chunks(chunks) + + def fill(self, text): + """fill(text : string) -> string + + Reformat the single paragraph in 'text' to fit in lines of no + more than 'self.width' columns, and return a new string + containing the entire wrapped paragraph. + """ + return "\n".join(self.wrap(text)) + + +# -- Convenience interface --------------------------------------------- + +def wrap(text, width=70, **kwargs): + """Wrap a single paragraph of text, returning a list of wrapped lines. + + Reformat the single paragraph in 'text' so it fits in lines of no + more than 'width' columns, and return a list of wrapped lines. By + default, tabs in 'text' are expanded with string.expandtabs(), and + all other whitespace characters (including newline) are converted to + space. See TextWrapper class for available keyword args to customize + wrapping behaviour. + """ + w = TextWrapper(width=width, **kwargs) + return w.wrap(text) + +def fill(text, width=70, **kwargs): + """Fill a single paragraph of text, returning a new string. + + Reformat the single paragraph in 'text' to fit in lines of no more + than 'width' columns, and return a new string containing the entire + wrapped paragraph. As with wrap(), tabs are expanded and other + whitespace characters converted to space. See TextWrapper class for + available keyword args to customize wrapping behaviour. + """ + w = TextWrapper(width=width, **kwargs) + return w.fill(text) + + +# -- Loosely related functionality ------------------------------------- + +def dedent(text): + """dedent(text : string) -> string + + Remove any whitespace than can be uniformly removed from the left + of every line in `text`. + + This can be used e.g. to make triple-quoted strings line up with + the left edge of screen/whatever, while still presenting it in the + source code in indented form. + + For example: + + def test(): + # end first line with \ to avoid the empty line! + s = '''\ + hello + world + ''' + print repr(s) # prints ' hello\n world\n ' + print repr(dedent(s)) # prints 'hello\n world\n' + """ + lines = text.expandtabs().split('\n') + margin = None + for line in lines: + content = line.lstrip() + if not content: + continue + indent = len(line) - len(content) + if margin is None: + margin = indent + else: + margin = min(margin, indent) + + if margin is not None and margin > 0: + for i in range(len(lines)): + lines[i] = lines[i][margin:] + + return '\n'.join(lines) diff --git a/build-scripts/jhbuild/jhbuild/cut_n_paste/subprocess.py b/build-scripts/jhbuild/jhbuild/cut_n_paste/subprocess.py new file mode 100644 index 0000000..d115e87 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/cut_n_paste/subprocess.py @@ -0,0 +1,1165 @@ +# subprocess - Subprocesses with accessible I/O streams +# +# For more information about this module, see PEP 324. +# +# Copyright (c) 2003-2004 by Peter Astrand <astrand@lysator.liu.se> +# +# By obtaining, using, and/or copying this software and/or its +# associated documentation, you agree that you have read, understood, +# and will comply with the following terms and conditions: +# +# Permission to use, copy, modify, and distribute this software and +# its associated documentation for any purpose and without fee is +# hereby granted, provided that the above copyright notice appears in +# all copies, and that both that copyright notice and this permission +# notice appear in supporting documentation, and that the name of the +# author not be used in advertising or publicity pertaining to +# distribution of the software without specific, written prior +# permission. +# +# THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +r"""subprocess - Subprocesses with accessible I/O streams + +This module allows you to spawn processes, connect to their +input/output/error pipes, and obtain their return codes. This module +intends to replace several other, older modules and functions, like: + +os.system +os.spawn* +os.popen* +popen2.* +commands.* + +Information about how the subprocess module can be used to replace these +modules and functions can be found below. + + + +Using the subprocess module +=========================== +This module defines one class called Popen: + +class Popen(args, bufsize=0, executable=None, + stdin=None, stdout=None, stderr=None, + preexec_fn=None, close_fds=False, shell=False, + cwd=None, env=None, universal_newlines=False, + startupinfo=None, creationflags=0): + + +Arguments are: + +args should be a string, or a sequence of program arguments. The +program to execute is normally the first item in the args sequence or +string, but can be explicitly set by using the executable argument. + +On UNIX, with shell=False (default): In this case, the Popen class +uses os.execvp() to execute the child program. args should normally +be a sequence. A string will be treated as a sequence with the string +as the only item (the program to execute). + +On UNIX, with shell=True: If args is a string, it specifies the +command string to execute through the shell. If args is a sequence, +the first item specifies the command string, and any additional items +will be treated as additional shell arguments. + +On Windows: the Popen class uses CreateProcess() to execute the child +program, which operates on strings. If args is a sequence, it will be +converted to a string using the list2cmdline method. Please note that +not all MS Windows applications interpret the command line the same +way: The list2cmdline is designed for applications using the same +rules as the MS C runtime. + +bufsize, if given, has the same meaning as the corresponding argument +to the built-in open() function: 0 means unbuffered, 1 means line +buffered, any other positive value means use a buffer of +(approximately) that size. A negative bufsize means to use the system +default, which usually means fully buffered. The default value for +bufsize is 0 (unbuffered). + +stdin, stdout and stderr specify the executed programs' standard +input, standard output and standard error file handles, respectively. +Valid values are PIPE, an existing file descriptor (a positive +integer), an existing file object, and None. PIPE indicates that a +new pipe to the child should be created. With None, no redirection +will occur; the child's file handles will be inherited from the +parent. Additionally, stderr can be STDOUT, which indicates that the +stderr data from the applications should be captured into the same +file handle as for stdout. + +If preexec_fn is set to a callable object, this object will be called +in the child process just before the child is executed. + +If close_fds is true, all file descriptors except 0, 1 and 2 will be +closed before the child process is executed. + +if shell is true, the specified command will be executed through the +shell. + +If cwd is not None, the current directory will be changed to cwd +before the child is executed. + +If env is not None, it defines the environment variables for the new +process. + +If universal_newlines is true, the file objects stdout and stderr are +opened as a text files, but lines may be terminated by any of '\n', +the Unix end-of-line convention, '\r', the Macintosh convention or +'\r\n', the Windows convention. All of these external representations +are seen as '\n' by the Python program. Note: This feature is only +available if Python is built with universal newline support (the +default). Also, the newlines attribute of the file objects stdout, +stdin and stderr are not updated by the communicate() method. + +The startupinfo and creationflags, if given, will be passed to the +underlying CreateProcess() function. They can specify things such as +appearance of the main window and priority for the new process. +(Windows only) + + +This module also defines two shortcut functions: + +call(*args, **kwargs): + Run command with arguments. Wait for command to complete, then + return the returncode attribute. + + The arguments are the same as for the Popen constructor. Example: + + retcode = call(["ls", "-l"]) + + +Exceptions +---------- +Exceptions raised in the child process, before the new program has +started to execute, will be re-raised in the parent. Additionally, +the exception object will have one extra attribute called +'child_traceback', which is a string containing traceback information +from the childs point of view. + +The most common exception raised is OSError. This occurs, for +example, when trying to execute a non-existent file. Applications +should prepare for OSErrors. + +A ValueError will be raised if Popen is called with invalid arguments. + + +Security +-------- +Unlike some other popen functions, this implementation will never call +/bin/sh implicitly. This means that all characters, including shell +metacharacters, can safely be passed to child processes. + + +Popen objects +============= +Instances of the Popen class have the following methods: + +poll() + Check if child process has terminated. Returns returncode + attribute. + +wait() + Wait for child process to terminate. Returns returncode attribute. + +communicate(input=None) + Interact with process: Send data to stdin. Read data from stdout + and stderr, until end-of-file is reached. Wait for process to + terminate. The optional stdin argument should be a string to be + sent to the child process, or None, if no data should be sent to + the child. + + communicate() returns a tuple (stdout, stderr). + + Note: The data read is buffered in memory, so do not use this + method if the data size is large or unlimited. + +The following attributes are also available: + +stdin + If the stdin argument is PIPE, this attribute is a file object + that provides input to the child process. Otherwise, it is None. + +stdout + If the stdout argument is PIPE, this attribute is a file object + that provides output from the child process. Otherwise, it is + None. + +stderr + If the stderr argument is PIPE, this attribute is file object that + provides error output from the child process. Otherwise, it is + None. + +pid + The process ID of the child process. + +returncode + The child return code. A None value indicates that the process + hasn't terminated yet. A negative value -N indicates that the + child was terminated by signal N (UNIX only). + + +Replacing older functions with the subprocess module +==================================================== +In this section, "a ==> b" means that b can be used as a replacement +for a. + +Note: All functions in this section fail (more or less) silently if +the executed program cannot be found; this module raises an OSError +exception. + +In the following examples, we assume that the subprocess module is +imported with "from subprocess import *". + + +Replacing /bin/sh shell backquote +--------------------------------- +output=`mycmd myarg` +==> +output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0] + + +Replacing shell pipe line +------------------------- +output=`dmesg | grep hda` +==> +p1 = Popen(["dmesg"], stdout=PIPE) +p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE) +output = p2.communicate()[0] + + +Replacing os.system() +--------------------- +sts = os.system("mycmd" + " myarg") +==> +p = Popen("mycmd" + " myarg", shell=True) +sts = os.waitpid(p.pid, 0) + +Note: + +* Calling the program through the shell is usually not required. + +* It's easier to look at the returncode attribute than the + exitstatus. + +A more real-world example would look like this: + +try: + retcode = call("mycmd" + " myarg", shell=True) + if retcode < 0: + print >>sys.stderr, "Child was terminated by signal", -retcode + else: + print >>sys.stderr, "Child returned", retcode +except OSError, e: + print >>sys.stderr, "Execution failed:", e + + +Replacing os.spawn* +------------------- +P_NOWAIT example: + +pid = os.spawnlp(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg") +==> +pid = Popen(["/bin/mycmd", "myarg"]).pid + + +P_WAIT example: + +retcode = os.spawnlp(os.P_WAIT, "/bin/mycmd", "mycmd", "myarg") +==> +retcode = call(["/bin/mycmd", "myarg"]) + + +Vector example: + +os.spawnvp(os.P_NOWAIT, path, args) +==> +Popen([path] + args[1:]) + + +Environment example: + +os.spawnlpe(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg", env) +==> +Popen(["/bin/mycmd", "myarg"], env={"PATH": "/usr/bin"}) + + +Replacing os.popen* +------------------- +pipe = os.popen(cmd, mode='r', bufsize) +==> +pipe = Popen(cmd, shell=True, bufsize=bufsize, stdout=PIPE).stdout + +pipe = os.popen(cmd, mode='w', bufsize) +==> +pipe = Popen(cmd, shell=True, bufsize=bufsize, stdin=PIPE).stdin + + +(child_stdin, child_stdout) = os.popen2(cmd, mode, bufsize) +==> +p = Popen(cmd, shell=True, bufsize=bufsize, + stdin=PIPE, stdout=PIPE, close_fds=True) +(child_stdin, child_stdout) = (p.stdin, p.stdout) + + +(child_stdin, + child_stdout, + child_stderr) = os.popen3(cmd, mode, bufsize) +==> +p = Popen(cmd, shell=True, bufsize=bufsize, + stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True) +(child_stdin, + child_stdout, + child_stderr) = (p.stdin, p.stdout, p.stderr) + + +(child_stdin, child_stdout_and_stderr) = os.popen4(cmd, mode, bufsize) +==> +p = Popen(cmd, shell=True, bufsize=bufsize, + stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True) +(child_stdin, child_stdout_and_stderr) = (p.stdin, p.stdout) + + +Replacing popen2.* +------------------ +Note: If the cmd argument to popen2 functions is a string, the command +is executed through /bin/sh. If it is a list, the command is directly +executed. + +(child_stdout, child_stdin) = popen2.popen2("somestring", bufsize, mode) +==> +p = Popen(["somestring"], shell=True, bufsize=bufsize + stdin=PIPE, stdout=PIPE, close_fds=True) +(child_stdout, child_stdin) = (p.stdout, p.stdin) + + +(child_stdout, child_stdin) = popen2.popen2(["mycmd", "myarg"], bufsize, mode) +==> +p = Popen(["mycmd", "myarg"], bufsize=bufsize, + stdin=PIPE, stdout=PIPE, close_fds=True) +(child_stdout, child_stdin) = (p.stdout, p.stdin) + +The popen2.Popen3 and popen3.Popen4 basically works as subprocess.Popen, +except that: + +* subprocess.Popen raises an exception if the execution fails +* the capturestderr argument is replaced with the stderr argument. +* stdin=PIPE and stdout=PIPE must be specified. +* popen2 closes all filedescriptors by default, but you have to specify + close_fds=True with subprocess.Popen. + + +""" + +import sys +mswindows = (sys.platform == "win32") + +import os +import types +import traceback + +if mswindows: + import threading + import msvcrt + if 0: # <-- change this to use pywin32 instead of the _subprocess driver + import pywintypes + from win32api import GetStdHandle, STD_INPUT_HANDLE, \ + STD_OUTPUT_HANDLE, STD_ERROR_HANDLE + from win32api import GetCurrentProcess, DuplicateHandle, \ + GetModuleFileName, GetVersion + from win32con import DUPLICATE_SAME_ACCESS, SW_HIDE + from win32pipe import CreatePipe + from win32process import CreateProcess, STARTUPINFO, \ + GetExitCodeProcess, STARTF_USESTDHANDLES, \ + STARTF_USESHOWWINDOW, CREATE_NEW_CONSOLE + from win32event import WaitForSingleObject, INFINITE, WAIT_OBJECT_0 + else: + from _subprocess import * + class STARTUPINFO: + dwFlags = 0 + hStdInput = None + hStdOutput = None + hStdError = None + class pywintypes: + error = IOError +else: + import select + import errno + import fcntl + import pickle + +__all__ = ["Popen", "PIPE", "STDOUT", "call"] + +try: + MAXFD = os.sysconf("SC_OPEN_MAX") +except: + MAXFD = 256 + +# True/False does not exist on 2.2.0 +try: + False +except NameError: + False = 0 + True = 1 + +_active = [] + +def _cleanup(): + for inst in _active[:]: + inst.poll() + +PIPE = -1 +STDOUT = -2 + + +def call(*args, **kwargs): + """Run command with arguments. Wait for command to complete, then + return the returncode attribute. + + The arguments are the same as for the Popen constructor. Example: + + retcode = call(["ls", "-l"]) + """ + return Popen(*args, **kwargs).wait() + + +def list2cmdline(seq): + """ + Translate a sequence of arguments into a command line + string, using the same rules as the MS C runtime: + + 1) Arguments are delimited by white space, which is either a + space or a tab. + + 2) A string surrounded by double quotation marks is + interpreted as a single argument, regardless of white space + contained within. A quoted string can be embedded in an + argument. + + 3) A double quotation mark preceded by a backslash is + interpreted as a literal double quotation mark. + + 4) Backslashes are interpreted literally, unless they + immediately precede a double quotation mark. + + 5) If backslashes immediately precede a double quotation mark, + every pair of backslashes is interpreted as a literal + backslash. If the number of backslashes is odd, the last + backslash escapes the next double quotation mark as + described in rule 3. + """ + + # See + # http://msdn.microsoft.com/library/en-us/vccelng/htm/progs_12.asp + result = [] + needquote = False + for arg in seq: + bs_buf = [] + + # Add a space to separate this argument from the others + if result: + result.append(' ') + + needquote = (" " in arg) or ("\t" in arg) + if needquote: + result.append('"') + + for c in arg: + if c == '\\': + # Don't know if we need to double yet. + bs_buf.append(c) + elif c == '"': + # Double backspaces. + result.append('\\' * len(bs_buf)*2) + bs_buf = [] + result.append('\\"') + else: + # Normal char + if bs_buf: + result.extend(bs_buf) + bs_buf = [] + result.append(c) + + # Add remaining backspaces, if any. + if bs_buf: + result.extend(bs_buf) + + if needquote: + result.extend(bs_buf) + result.append('"') + + return ''.join(result) + + +class Popen(object): + def __init__(self, args, bufsize=0, executable=None, + stdin=None, stdout=None, stderr=None, + preexec_fn=None, close_fds=False, shell=False, + cwd=None, env=None, universal_newlines=False, + startupinfo=None, creationflags=0): + """Create new Popen instance.""" + _cleanup() + + if not isinstance(bufsize, (int, long)): + raise TypeError("bufsize must be an integer") + + if mswindows: + if preexec_fn is not None: + raise ValueError("preexec_fn is not supported on Windows " + "platforms") + if close_fds: + raise ValueError("close_fds is not supported on Windows " + "platforms") + else: + # POSIX + if startupinfo is not None: + raise ValueError("startupinfo is only supported on Windows " + "platforms") + if creationflags != 0: + raise ValueError("creationflags is only supported on Windows " + "platforms") + + self.stdin = None + self.stdout = None + self.stderr = None + self.pid = None + self.returncode = None + self.universal_newlines = universal_newlines + + # Input and output objects. The general principle is like + # this: + # + # Parent Child + # ------ ----- + # p2cwrite ---stdin---> p2cread + # c2pread <--stdout--- c2pwrite + # errread <--stderr--- errwrite + # + # On POSIX, the child objects are file descriptors. On + # Windows, these are Windows file handles. The parent objects + # are file descriptors on both platforms. The parent objects + # are None when not using PIPEs. The child objects are None + # when not redirecting. + + (p2cread, p2cwrite, + c2pread, c2pwrite, + errread, errwrite) = self._get_handles(stdin, stdout, stderr) + + self._execute_child(args, executable, preexec_fn, close_fds, + cwd, env, universal_newlines, + startupinfo, creationflags, shell, + p2cread, p2cwrite, + c2pread, c2pwrite, + errread, errwrite) + + if p2cwrite: + self.stdin = os.fdopen(p2cwrite, 'wb', bufsize) + if c2pread: + if universal_newlines: + self.stdout = os.fdopen(c2pread, 'rU', bufsize) + else: + self.stdout = os.fdopen(c2pread, 'rb', bufsize) + if errread: + if universal_newlines: + self.stderr = os.fdopen(errread, 'rU', bufsize) + else: + self.stderr = os.fdopen(errread, 'rb', bufsize) + + _active.append(self) + + + def _translate_newlines(self, data): + data = data.replace("\r\n", "\n") + data = data.replace("\r", "\n") + return data + + + if mswindows: + # + # Windows methods + # + def _get_handles(self, stdin, stdout, stderr): + """Construct and return tupel with IO objects: + p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite + """ + if stdin == None and stdout == None and stderr == None: + return (None, None, None, None, None, None) + + p2cread, p2cwrite = None, None + c2pread, c2pwrite = None, None + errread, errwrite = None, None + + if stdin == None: + p2cread = GetStdHandle(STD_INPUT_HANDLE) + elif stdin == PIPE: + p2cread, p2cwrite = CreatePipe(None, 0) + # Detach and turn into fd + p2cwrite = p2cwrite.Detach() + p2cwrite = msvcrt.open_osfhandle(p2cwrite, 0) + elif type(stdin) == types.IntType: + p2cread = msvcrt.get_osfhandle(stdin) + else: + # Assuming file-like object + p2cread = msvcrt.get_osfhandle(stdin.fileno()) + p2cread = self._make_inheritable(p2cread) + + if stdout == None: + c2pwrite = GetStdHandle(STD_OUTPUT_HANDLE) + elif stdout == PIPE: + c2pread, c2pwrite = CreatePipe(None, 0) + # Detach and turn into fd + c2pread = c2pread.Detach() + c2pread = msvcrt.open_osfhandle(c2pread, 0) + elif type(stdout) == types.IntType: + c2pwrite = msvcrt.get_osfhandle(stdout) + else: + # Assuming file-like object + c2pwrite = msvcrt.get_osfhandle(stdout.fileno()) + c2pwrite = self._make_inheritable(c2pwrite) + + if stderr == None: + errwrite = GetStdHandle(STD_ERROR_HANDLE) + elif stderr == PIPE: + errread, errwrite = CreatePipe(None, 0) + # Detach and turn into fd + errread = errread.Detach() + errread = msvcrt.open_osfhandle(errread, 0) + elif stderr == STDOUT: + errwrite = c2pwrite + elif type(stderr) == types.IntType: + errwrite = msvcrt.get_osfhandle(stderr) + else: + # Assuming file-like object + errwrite = msvcrt.get_osfhandle(stderr.fileno()) + errwrite = self._make_inheritable(errwrite) + + return (p2cread, p2cwrite, + c2pread, c2pwrite, + errread, errwrite) + + + def _make_inheritable(self, handle): + """Return a duplicate of handle, which is inheritable""" + return DuplicateHandle(GetCurrentProcess(), handle, + GetCurrentProcess(), 0, 1, + DUPLICATE_SAME_ACCESS) + + + def _find_w9xpopen(self): + """Find and return absolut path to w9xpopen.exe""" + w9xpopen = os.path.join(os.path.dirname(GetModuleFileName(0)), + "w9xpopen.exe") + if not os.path.exists(w9xpopen): + # Eeek - file-not-found - possibly an embedding + # situation - see if we can locate it in sys.exec_prefix + w9xpopen = os.path.join(os.path.dirname(sys.exec_prefix), + "w9xpopen.exe") + if not os.path.exists(w9xpopen): + raise RuntimeError("Cannot locate w9xpopen.exe, which is " + "needed for Popen to work with your " + "shell or platform.") + return w9xpopen + + + def _execute_child(self, args, executable, preexec_fn, close_fds, + cwd, env, universal_newlines, + startupinfo, creationflags, shell, + p2cread, p2cwrite, + c2pread, c2pwrite, + errread, errwrite): + """Execute program (MS Windows version)""" + + if not isinstance(args, types.StringTypes): + args = list2cmdline(args) + + # Process startup details + default_startupinfo = STARTUPINFO() + if startupinfo == None: + startupinfo = default_startupinfo + if not None in (p2cread, c2pwrite, errwrite): + startupinfo.dwFlags |= STARTF_USESTDHANDLES + startupinfo.hStdInput = p2cread + startupinfo.hStdOutput = c2pwrite + startupinfo.hStdError = errwrite + + if shell: + default_startupinfo.dwFlags |= STARTF_USESHOWWINDOW + default_startupinfo.wShowWindow = SW_HIDE + comspec = os.environ.get("COMSPEC", "cmd.exe") + args = comspec + " /c " + args + if (GetVersion() >= 0x80000000L or + os.path.basename(comspec).lower() == "command.com"): + # Win9x, or using command.com on NT. We need to + # use the w9xpopen intermediate program. For more + # information, see KB Q150956 + # (http://web.archive.org/web/20011105084002/http://support.microsoft.com/support/kb/articles/Q150/9/56.asp) + w9xpopen = self._find_w9xpopen() + args = '"%s" %s' % (w9xpopen, args) + # Not passing CREATE_NEW_CONSOLE has been known to + # cause random failures on win9x. Specifically a + # dialog: "Your program accessed mem currently in + # use at xxx" and a hopeful warning about the + # stability of your system. Cost is Ctrl+C wont + # kill children. + creationflags |= CREATE_NEW_CONSOLE + + # Start the process + try: + hp, ht, pid, tid = CreateProcess(executable, args, + # no special security + None, None, + # must inherit handles to pass std + # handles + 1, + creationflags, + env, + cwd, + startupinfo) + except pywintypes.error, e: + # Translate pywintypes.error to WindowsError, which is + # a subclass of OSError. FIXME: We should really + # translate errno using _sys_errlist (or simliar), but + # how can this be done from Python? + raise WindowsError(*e.args) + + # Retain the process handle, but close the thread handle + self._handle = hp + self.pid = pid + ht.Close() + + # Child is launched. Close the parent's copy of those pipe + # handles that only the child should have open. You need + # to make sure that no handles to the write end of the + # output pipe are maintained in this process or else the + # pipe will not close when the child process exits and the + # ReadFile will hang. + if p2cread != None: + p2cread.Close() + if c2pwrite != None: + c2pwrite.Close() + if errwrite != None: + errwrite.Close() + + + def poll(self): + """Check if child process has terminated. Returns returncode + attribute.""" + if self.returncode == None: + if WaitForSingleObject(self._handle, 0) == WAIT_OBJECT_0: + self.returncode = GetExitCodeProcess(self._handle) + _active.remove(self) + return self.returncode + + + def wait(self): + """Wait for child process to terminate. Returns returncode + attribute.""" + if self.returncode == None: + obj = WaitForSingleObject(self._handle, INFINITE) + self.returncode = GetExitCodeProcess(self._handle) + _active.remove(self) + return self.returncode + + + def _readerthread(self, fh, buffer): + buffer.append(fh.read()) + + + def communicate(self, input=None): + """Interact with process: Send data to stdin. Read data from + stdout and stderr, until end-of-file is reached. Wait for + process to terminate. The optional input argument should be a + string to be sent to the child process, or None, if no data + should be sent to the child. + + communicate() returns a tuple (stdout, stderr).""" + stdout = None # Return + stderr = None # Return + + if self.stdout: + stdout = [] + stdout_thread = threading.Thread(target=self._readerthread, + args=(self.stdout, stdout)) + stdout_thread.setDaemon(True) + stdout_thread.start() + if self.stderr: + stderr = [] + stderr_thread = threading.Thread(target=self._readerthread, + args=(self.stderr, stderr)) + stderr_thread.setDaemon(True) + stderr_thread.start() + + if self.stdin: + if input != None: + self.stdin.write(input) + self.stdin.close() + + if self.stdout: + stdout_thread.join() + if self.stderr: + stderr_thread.join() + + # All data exchanged. Translate lists into strings. + if stdout != None: + stdout = stdout[0] + if stderr != None: + stderr = stderr[0] + + # Translate newlines, if requested. We cannot let the file + # object do the translation: It is based on stdio, which is + # impossible to combine with select (unless forcing no + # buffering). + if self.universal_newlines and hasattr(open, 'newlines'): + if stdout: + stdout = self._translate_newlines(stdout) + if stderr: + stderr = self._translate_newlines(stderr) + + self.wait() + return (stdout, stderr) + + else: + # + # POSIX methods + # + def _get_handles(self, stdin, stdout, stderr): + """Construct and return tupel with IO objects: + p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite + """ + p2cread, p2cwrite = None, None + c2pread, c2pwrite = None, None + errread, errwrite = None, None + + if stdin == None: + pass + elif stdin == PIPE: + p2cread, p2cwrite = os.pipe() + elif type(stdin) == types.IntType: + p2cread = stdin + else: + # Assuming file-like object + p2cread = stdin.fileno() + + if stdout == None: + pass + elif stdout == PIPE: + c2pread, c2pwrite = os.pipe() + elif type(stdout) == types.IntType: + c2pwrite = stdout + else: + # Assuming file-like object + c2pwrite = stdout.fileno() + + if stderr == None: + pass + elif stderr == PIPE: + errread, errwrite = os.pipe() + elif stderr == STDOUT: + errwrite = c2pwrite + elif type(stderr) == types.IntType: + errwrite = stderr + else: + # Assuming file-like object + errwrite = stderr.fileno() + + return (p2cread, p2cwrite, + c2pread, c2pwrite, + errread, errwrite) + + + def _set_cloexec_flag(self, fd): + try: + cloexec_flag = fcntl.FD_CLOEXEC + except AttributeError: + cloexec_flag = 1 + + old = fcntl.fcntl(fd, fcntl.F_GETFD) + fcntl.fcntl(fd, fcntl.F_SETFD, old | cloexec_flag) + + + def _close_fds(self, but): + for i in range(3, MAXFD): + if i == but: + continue + try: + os.close(i) + except: + pass + + + def _execute_child(self, args, executable, preexec_fn, close_fds, + cwd, env, universal_newlines, + startupinfo, creationflags, shell, + p2cread, p2cwrite, + c2pread, c2pwrite, + errread, errwrite): + """Execute program (POSIX version)""" + + if isinstance(args, types.StringTypes): + args = [args] + + if shell: + args = ["/bin/sh", "-c"] + args + + if executable == None: + executable = args[0] + + # For transferring possible exec failure from child to parent + # The first char specifies the exception type: 0 means + # OSError, 1 means some other error. + errpipe_read, errpipe_write = os.pipe() + self._set_cloexec_flag(errpipe_write) + + self.pid = os.fork() + if self.pid == 0: + # Child + try: + # Close parent's pipe ends + if p2cwrite: + os.close(p2cwrite) + if c2pread: + os.close(c2pread) + if errread: + os.close(errread) + os.close(errpipe_read) + + # Dup fds for child + if p2cread: + os.dup2(p2cread, 0) + if c2pwrite: + os.dup2(c2pwrite, 1) + if errwrite: + os.dup2(errwrite, 2) + + # Close pipe fds. Make sure we doesn't close the same + # fd more than once. + if p2cread: + os.close(p2cread) + if c2pwrite and c2pwrite not in (p2cread,): + os.close(c2pwrite) + if errwrite and errwrite not in (p2cread, c2pwrite): + os.close(errwrite) + + # Close all other fds, if asked for + if close_fds: + self._close_fds(but=errpipe_write) + + if cwd != None: + os.chdir(cwd) + + if preexec_fn: + apply(preexec_fn) + + if env == None: + os.execvp(executable, args) + else: + os.execvpe(executable, args, env) + + except: + exc_type, exc_value, tb = sys.exc_info() + # Save the traceback and attach it to the exception object + exc_lines = traceback.format_exception(exc_type, + exc_value, + tb) + exc_value.child_traceback = ''.join(exc_lines) + os.write(errpipe_write, pickle.dumps(exc_value)) + + # This exitcode won't be reported to applications, so it + # really doesn't matter what we return. + os._exit(255) + + # Parent + os.close(errpipe_write) + if p2cread and p2cwrite: + os.close(p2cread) + if c2pwrite and c2pread: + os.close(c2pwrite) + if errwrite and errread: + os.close(errwrite) + + # Wait for exec to fail or succeed; possibly raising exception + data = os.read(errpipe_read, 1048576) # Exceptions limited to 1 MB + os.close(errpipe_read) + if data != "": + os.waitpid(self.pid, 0) + child_exception = pickle.loads(data) + raise child_exception + + + def _handle_exitstatus(self, sts): + if os.WIFSIGNALED(sts): + self.returncode = -os.WTERMSIG(sts) + elif os.WIFEXITED(sts): + self.returncode = os.WEXITSTATUS(sts) + else: + # Should never happen + raise RuntimeError("Unknown child exit status!") + + _active.remove(self) + + + def poll(self): + """Check if child process has terminated. Returns returncode + attribute.""" + if self.returncode == None: + try: + pid, sts = os.waitpid(self.pid, os.WNOHANG) + if pid == self.pid: + self._handle_exitstatus(sts) + except os.error: + pass + return self.returncode + + + def wait(self): + """Wait for child process to terminate. Returns returncode + attribute.""" + if self.returncode == None: + pid, sts = os.waitpid(self.pid, 0) + self._handle_exitstatus(sts) + return self.returncode + + + def communicate(self, input=None): + """Interact with process: Send data to stdin. Read data from + stdout and stderr, until end-of-file is reached. Wait for + process to terminate. The optional input argument should be a + string to be sent to the child process, or None, if no data + should be sent to the child. + + communicate() returns a tuple (stdout, stderr).""" + read_set = [] + write_set = [] + stdout = None # Return + stderr = None # Return + + if self.stdin: + # Flush stdio buffer. This might block, if the user has + # been writing to .stdin in an uncontrolled fashion. + self.stdin.flush() + if input: + write_set.append(self.stdin) + else: + self.stdin.close() + if self.stdout: + read_set.append(self.stdout) + stdout = [] + if self.stderr: + read_set.append(self.stderr) + stderr = [] + + while read_set or write_set: + rlist, wlist, xlist = select.select(read_set, write_set, []) + + if self.stdin in wlist: + # When select has indicated that the file is writable, + # we can write up to PIPE_BUF bytes without risk + # blocking. POSIX defines PIPE_BUF >= 512 + bytes_written = os.write(self.stdin.fileno(), input[:512]) + input = input[bytes_written:] + if not input: + self.stdin.close() + write_set.remove(self.stdin) + + if self.stdout in rlist: + data = os.read(self.stdout.fileno(), 1024) + if data == "": + self.stdout.close() + read_set.remove(self.stdout) + stdout.append(data) + + if self.stderr in rlist: + data = os.read(self.stderr.fileno(), 1024) + if data == "": + self.stderr.close() + read_set.remove(self.stderr) + stderr.append(data) + + # All data exchanged. Translate lists into strings. + if stdout != None: + stdout = ''.join(stdout) + if stderr != None: + stderr = ''.join(stderr) + + # Translate newlines, if requested. We cannot let the file + # object do the translation: It is based on stdio, which is + # impossible to combine with select (unless forcing no + # buffering). + if self.universal_newlines and hasattr(open, 'newlines'): + if stdout: + stdout = self._translate_newlines(stdout) + if stderr: + stderr = self._translate_newlines(stderr) + + self.wait() + return (stdout, stderr) + + +def _demo_posix(): + # + # Example 1: Simple redirection: Get process list + # + plist = Popen(["ps"], stdout=PIPE).communicate()[0] + print "Process list:" + print plist + + # + # Example 2: Change uid before executing child + # + if os.getuid() == 0: + p = Popen(["id"], preexec_fn=lambda: os.setuid(100)) + p.wait() + + # + # Example 3: Connecting several subprocesses + # + print "Looking for 'hda'..." + p1 = Popen(["dmesg"], stdout=PIPE) + p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE) + print repr(p2.communicate()[0]) + + # + # Example 4: Catch execution error + # + print + print "Trying a weird file..." + try: + print Popen(["/this/path/does/not/exist"]).communicate() + except OSError, e: + if e.errno == errno.ENOENT: + print "The file didn't exist. I thought so..." + print "Child traceback:" + print e.child_traceback + else: + print "Error", e.errno + else: + print >>sys.stderr, "Gosh. No error." + + +def _demo_windows(): + # + # Example 1: Connecting several subprocesses + # + print "Looking for 'PROMPT' in set output..." + p1 = Popen("set", stdout=PIPE, shell=True) + p2 = Popen('find "PROMPT"', stdin=p1.stdout, stdout=PIPE) + print repr(p2.communicate()[0]) + + # + # Example 2: Simple execution of program + # + print "Executing calc..." + p = Popen("calc") + p.wait() + + +if __name__ == "__main__": + if mswindows: + _demo_windows() + else: + _demo_posix() diff --git a/build-scripts/jhbuild/jhbuild/defaults.jhbuildrc b/build-scripts/jhbuild/jhbuild/defaults.jhbuildrc new file mode 100644 index 0000000..019b19a --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/defaults.jhbuildrc @@ -0,0 +1,69 @@ +# -*- mode: python -*- +# This file holds the default values for the ~/.jhbuildrc file. +# Do not copy this to ~/.jhbuildrc + +import os + +# what modules to build? +moduleset = 'gnome-2.16' +modules = [ 'meta-gnome-desktop' ] + +# modules to skip during dependency expansion +skip = [] + +# directories +prefix = '/opt/gnome2' +checkoutroot = os.path.join(os.environ['HOME'], 'cvs', 'gnome2') +tarballdir = None # will default to checkoutroot +buildroot = None # if set, packages will be build with srcdir!=builddir + +# When using srcdir!=builddir builds, this key allows you to use a +# different builddir name. Some people like this because it reduces +# the chance of mixing the two up. In the pattern, '%s' will be +# substituted with the srcdir base component. +builddir_pattern = '%s' + +# override environment variables, command line arguments, etc +autogenargs = '--disable-static --disable-gtk-doc' +makeargs = '' +cflags = '' +installprog = None + +# override cvs roots, branch tags, etc +repos = {} +cvsroots = {} +svnroots = {} +branches = {} +module_autogenargs = {} +module_makeargs = {} + +# control parts of the build process +nonetwork = False # never touch the network +alwaysautogen = False # call autogen.sh even if a makefile is found +nobuild = False # don't actually build the packages +makeclean = False # run make clean before building +makecheck = False # run make check after building + +interact = True # whether to interact with the user. + +# whether to install to lib64 directories? Currently this will default to +# True on Linux AMD64, PPC64 or S390x systems, and False everywhere else. +# Patches accepted to fix the default for other architectures. +uname = os.uname() +use_lib64 = (uname[0], uname[4]) in [ ('Linux', 'x86_64'), + ('Linux', 'ppc64'), + ('Linux', 's390x') ] +del uname + +# default buildscript. You should probably leave this as the default. +# In particular, don't set it to 'gtk'. +buildscript = 'terminal' + +# where to put tinderbox output +tinderbox_outputdir = None + +# sticky date to perform historic checkouts +sticky_date = None + +# whether to try and pretty print the output +pretty_print = True diff --git a/build-scripts/jhbuild/jhbuild/errors.py b/build-scripts/jhbuild/jhbuild/errors.py new file mode 100644 index 0000000..bf36b9c --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/errors.py @@ -0,0 +1,41 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# errors.py: definitions of exceptions used by jhbuild modules +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +class UsageError(Exception): + '''An exception that should result in a usage message rather than + a full traceback.''' + + +class ConfigError(Exception): + '''A problem in a configuration file.''' + + +class FatalError(Exception): + '''An error not related to the user input.''' + + +class CommandError(Exception): + '''An error occurred in an external command.''' + + def __init__(self, message, returncode=None): + Exception.__init__(self, message) + self.returncode = returncode + +class BuildStateError(Exception): + '''An error occurred while processing a build state.''' diff --git a/build-scripts/jhbuild/jhbuild/frontends/.cvsignore b/build-scripts/jhbuild/jhbuild/frontends/.cvsignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/.cvsignore @@ -0,0 +1 @@ +*.pyc diff --git a/build-scripts/jhbuild/jhbuild/frontends/__init__.py b/build-scripts/jhbuild/jhbuild/frontends/__init__.py new file mode 100644 index 0000000..ba63ffa --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/__init__.py @@ -0,0 +1,26 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# __init__.py: a package holding the various build frontends +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import sys + +def get_buildscript(config, module_list): + modname = 'jhbuild.frontends.%s' % config.buildscript + __import__(modname) + BuildScript = sys.modules[modname].BUILD_SCRIPT + return BuildScript(config, module_list) diff --git a/build-scripts/jhbuild/jhbuild/frontends/autobuild.py b/build-scripts/jhbuild/jhbuild/frontends/autobuild.py new file mode 100644 index 0000000..ffd9371 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/autobuild.py @@ -0,0 +1,258 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2004 James Henstridge +# +# autobuild.py: build logic for a non-interactive reporting build +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +import time +import subprocess +import sys +import locale +import socket + +from jhbuild.utils import cmds +from jhbuild.errors import CommandError +import buildscript + +import xmlrpclib +import zlib +from cStringIO import StringIO + +from tinderbox import get_distro +from terminal import TerminalBuildScript, trayicon, t_bold, t_reset + +def escape(string): + return string.replace('&','&').replace('<','<').replace('>','>') + +def fix_encoding(string): + charset = locale.getpreferredencoding() + s = 'VERY BORKEN ENCODING' + for encoding in [charset, 'utf-8', 'iso-8859-15']: + try: + s = unicode(string, encoding) + except: + continue + break + return s.encode('us-ascii', 'xmlcharrefreplace') + +def compress_data(data): + c_data = zlib.compress(data) + return xmlrpclib.Binary(c_data) + +class ServerProxy(xmlrpclib.ServerProxy): + verbose_timeout = False + + def __request(self, methodname, params): + ITERS = 10 + for i in range(ITERS): + try: + return xmlrpclib.ServerProxy.__request(self, methodname, params) + except xmlrpclib.ProtocolError, e: + if e.errcode != 500: + raise + except socket.error, e: + pass + if i < ITERS-1: + if self.verbose_timeout: + print >> sys.stderr, 'Server Error, retrying in %d seconds' % ((i+1)**2) + time.sleep((i+1)**2) + else: + if self.verbose_timeout: + print >> sys.stderr, 'Server Error, aborting' + raise e + + +class AutobuildBuildScript(buildscript.BuildScript, TerminalBuildScript): + xmlrpc_report_url = None + verbose = False + + def __init__(self, config, module_list): + buildscript.BuildScript.__init__(self, config, module_list) + self.xmlrpc_report_url = config.autobuild_report_url + self.verbose = config.verbose + self.server = None + self.modulefp = None + self.phasefp = None + + # cleanup environment + os.environ['TERM'] = 'dumb' + os.environ['LANG'] = 'C' + for k in os.environ.keys(): + if k.startswith('LC_'): + os.environ[k] = 'C' + + if self.verbose: + self.trayicon = trayicon.TrayIcon() + + def message(self, msg, module_num=-1, skipfp = False): + '''Display a message to the user''' + if not skipfp: + if self.phasefp: + fp = self.phasefp + elif self.modulefp: + fp = self.modulefp + else: + fp = None + + if fp: + fp.write(msg + '\n') + + if self.verbose: + TerminalBuildScript.message(self, msg, module_num) + + def set_action(self, action, module, module_num=-1, action_target=None): + if module_num == -1: + module_num = self.module_num + if not action_target: + action_target = module.name + self.message('%s %s' % (action, action_target), module_num, skipfp = True) + + def execute(self, command, hint=None, cwd=None, extra_env=None): + '''executes a command, and returns the error code''' + kws = { + 'close_fds': True + } + if isinstance(command, (str, unicode)): + displayed_command = command + kws['shell'] = True + else: + displayed_command = ' '.join(command) + + self.phasefp.write('<span class="command">%s</span>\n' % escape(displayed_command)) + if self.verbose: + print ' $', displayed_command + + kws['stdin'] = subprocess.PIPE + kws['stdout'] = subprocess.PIPE + kws['stderr'] = subprocess.PIPE + if hint == 'cvs': + def format_line(line, error_output, fp=self.phasefp): + if line[-1] == '\n': line = line[:-1] + if self.verbose: + print line + if line.startswith('C '): + fp.write('<span class="conflict">%s</span>\n' + % escape(line)) + else: + fp.write('%s\n' % escape(line)) + kws['stderr'] = subprocess.STDOUT + else: + def format_line(line, error_output, fp=self.phasefp): + if line[-1] == '\n': line = line[:-1] + if self.verbose: + if error_output: + print >> sys.stderr, line + else: + print line + if error_output: + fp.write('<span class="error">%s</span>\n' + % escape(line)) + else: + fp.write('%s\n' % escape(line)) + + if cwd is not None: + kws['cwd'] = cwd + + if extra_env is not None: + kws['env'] = os.environ.copy() + kws['env'].update(extra_env) + + try: + p = subprocess.Popen(command, **kws) + except OSError, e: + self.phasefp.write('<span class="error">Error: %s</span>\n' % escape(str(e))) + raise CommandError(str(e)) + + cmds.pprint_output(p, format_line) + if p.returncode != 0: + raise CommandError('Error running %s' % command, p.returncode) + + def start_build(self): + self.server = ServerProxy(self.xmlrpc_report_url, allow_none = True) + if self.verbose: + self.server.verbose_timeout = True + + # close stdin + os.close(0) + + info = {} + import socket + un = os.uname() + + info['build_host'] = socket.gethostname() + info['architecture'] = (un[0], un[2], un[4]) + + distro = get_distro() + if distro: + info['distribution'] = distro + + info['module_set'] = self.config.moduleset + + try: + self.build_id = self.server.start_build(info) + except xmlrpclib.ProtocolError, e: + if e.errcode == 403: + print >> sys.stderr, 'ERROR: Wrong credentials, please check username/password' + sys.exit(1) + raise + + + if self.verbose: + s = 'Starting Build #%s' % self.build_id + print s + print '=' * len(s) + print '' + + + def end_build(self, failures): + self.server.end_build(self.build_id, failures) + if self.verbose: + TerminalBuildScript.end_build(self, failures) + + + def start_module(self, module): + if self.verbose: + print '\n%s**** Starting module %s ****%s' % (t_bold, module, t_reset) + self.server.start_module(self.build_id, module) + self.current_module = module + self.modulefp = StringIO() + + + def end_module(self, module, failed): + log = fix_encoding(self.modulefp.getvalue()) + self.modulefp = None + self.server.end_module(self.build_id, module, compress_data(log), failed) + + def start_phase(self, module, state): + self.server.start_phase(self.build_id, module, state) + if self.verbose: + TerminalBuildScript.start_phase(self, module, state) + self.phasefp = StringIO() + + + def end_phase(self, module, state, error): + log = fix_encoding(self.phasefp.getvalue()) + self.phasefp = None + self.server.end_phase(self.build_id, module, state, compress_data(log), error) + + def handle_error(self, module, state, nextstate, error, altstates): + '''handle error during build''' + print 'handle error!' + return 'fail' + + +BUILD_SCRIPT = AutobuildBuildScript diff --git a/build-scripts/jhbuild/jhbuild/frontends/buildscript.py b/build-scripts/jhbuild/jhbuild/frontends/buildscript.py new file mode 100644 index 0000000..04d519d --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/buildscript.py @@ -0,0 +1,136 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# Copyright (C) 2003-2004 Seth Nickell +# +# buildscript.py: base class of the various interface types +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os + +from jhbuild.utils import packagedb +from jhbuild.errors import FatalError + +class BuildScript: + def __init__(self, config, module_list): + if self.__class__ is BuildScript: + raise NotImplementedError('BuildScript is an abstract base class') + + self.modulelist = module_list + self.module_num = 0 + + self.config = config + + if not os.path.exists(self.config.checkoutroot): + os.mkdir(self.config.checkoutroot) + if not os.access(self.config.checkoutroot, os.R_OK|os.W_OK|os.X_OK): + raise FatalError('checkout root must be writable') + if not os.path.exists(self.config.prefix): + os.mkdir(self.config.prefix) + if not os.access(self.config.prefix, os.R_OK|os.W_OK|os.X_OK): + raise FatalError('install prefix must be writable') + + packagedbdir = os.path.join(self.config.prefix, 'share', 'jhbuild') + try: + if not os.path.isdir(packagedbdir): + os.makedirs(packagedbdir) + except OSError: + raise FatalError('could not create directory %s' % packagedbdir) + self.packagedb = packagedb.PackageDB(os.path.join(packagedbdir, + 'packagedb.xml')) + + def execute(self, command, hint=None, cwd=None, extra_env=None): + '''Executes the given command. + + If an error occurs, CommandError is raised. The hint argument + gives a hint about the type of output to expect. + ''' + raise NotImplementedError + + def build(self): + '''start the build of the current configuration''' + self.start_build() + + failures = [] # list of modules that couldn't be built + self.module_num = 0 + for module in self.modulelist: + self.module_num = self.module_num + 1 + self.start_module(module.name) + failed = False + for dep in module.dependencies: + if dep in failures: + self.message('module %s not built due to non buildable %s' + % (module.name, dep)) + failed = True + if failed: + failures.append(module.name) + self.end_module(module.name, failed) + continue + + state = module.STATE_START + while state != module.STATE_DONE: + self.start_phase(module.name, state) + nextstate, error, altstates = module.run_state(self, state) + self.end_phase(module.name, state, error) + + if error: + newstate = self.handle_error(module, state, + nextstate, error, + altstates) + if newstate == 'fail': + failures.append(module.name) + failed = True + state = module.STATE_DONE + else: + state = newstate + else: + state = nextstate + self.end_module(module.name, failed) + self.end_build(failures) + + def start_build(self): + '''Hook to perform actions at start of build.''' + pass + def end_build(self, failures): + '''Hook to perform actions at end of build. + The argument is a list of modules that were not buildable.''' + pass + def start_module(self, module): + '''Hook to perform actions before starting a build of a module.''' + pass + def end_module(self, module, failed): + '''Hook to perform actions after finishing a build of a module. + The argument is true if the module failed to build.''' + pass + def start_phase(self, module, state): + '''Hook to perform actions before starting a particular build phase.''' + pass + def end_phase(self, module, state, error): + '''Hook to perform actions after finishing a particular build phase. + The argument is a string containing the error text if something + went wrong.''' + pass + + def message(self, msg, module_num=-1): + '''Display a message to the user''' + raise NotImplementedError + + def set_action(self, action, module, module_num=-1, action_target=None): + '''inform the buildscript of a new stage of the build''' + raise NotImplementedError + + def handle_error(self, module, state, nextstate, error, altstates): + '''handle error during build''' + raise NotImplementedError diff --git a/build-scripts/jhbuild/jhbuild/frontends/gtkui.py b/build-scripts/jhbuild/jhbuild/frontends/gtkui.py new file mode 100644 index 0000000..a4cb380 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/gtkui.py @@ -0,0 +1,463 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# Copyright (C) 2003-2004 Seth Nickell +# +# gtkui.py: build logic for a GTK interface +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import pygtk +pygtk.require('2.0') + +import sys +import time +import os +import signal +import fcntl +import select +import subprocess + +import gobject +import gtk +import gtk.glade + +#FIXME: would be nice if we ran w/o GConf, do a try...except block around +# the import and then set have_gconf to false +import gconf +have_gconf = True + +import buildscript +import jhbuild.moduleset +from jhbuild.modtypes import MetaModule +from jhbuild.errors import CommandError + +def get_glade_filename(): + return os.path.join(os.path.dirname(__file__), 'jhbuild.glade') + +class Configuration: + def __init__(self, config, args): + self.config = config + self.args = args + + glade_filename = get_glade_filename() + + # Fetch widgets out of the Glade + self.glade = gtk.glade.XML(glade_filename) + self.window = self.glade.get_widget("ConfigWindow") + self.meta_modules_list = self.glade.get_widget("ConfigMetaModules") + self.start_module_menu = self.glade.get_widget("ConfigStartModule") + self.run_autogen_checkbox = self.glade.get_widget("ConfigRunAutogen") + self.cvs_update_checkbox = self.glade.get_widget("ConfigCVSUpdate") + self.no_build_checkbox = self.glade.get_widget("ConfigNoBuild") + self.start_build_button = self.glade.get_widget("ConfigBuildButton") + self.cancel_button = self.glade.get_widget("ConfigCancelButton") + + # Get settings for the checkboxes, etc + self._get_default_settings() + + # Hook up the buttons / checkboxes + self.start_build_button.connect('clicked', lambda button: gtk.main_quit()) + self.cancel_button.connect('clicked', lambda button: sys.exit(-1)) + self.run_autogen_checkbox.connect('toggled', self._autogen_checkbox_toggled) + self.cvs_update_checkbox.connect('toggled', self._cvs_update_checkbox_toggled) + self.no_build_checkbox.connect('toggled', self._no_build_checkbox_toggled) + #self.start_module_menu.connect('clicked', self._start_module_menu_clicked) + + # Get the list of meta modules + self.module_set = jhbuild.moduleset.load(config) + full_module_list = self.module_set.get_full_module_list() + self.meta_modules = [] + self.name_to_meta_module = {} + for possible_meta_module in full_module_list: + if isinstance(possible_meta_module, MetaModule): + print "Found meta module %s" % possible_meta_module.name + self.meta_modules.append(possible_meta_module) + self.name_to_meta_module[possible_meta_module.name] = possible_meta_module + + self._create_meta_modules_list_view(self.meta_modules) + + self._build_start_module_menu() + + def run(self): + self.window.show_all() + gtk.main() + self.window.hide() + self._set_default_settings() + return (self.module_list, self.start_at_module, self.run_autogen, self.cvs_update, + self.no_build) + + def _get_default_settings(self): + if have_gconf: + client = gconf.client_get_default() + self.run_autogen = client.get_bool("/apps/jhbuild/always_run_autogen") + self.cvs_update = client.get_bool("/apps/jhbuild/update_from_cvs") + self.no_build = client.get_bool("/apps/jhbuild/no_build") + self.selected_modules = client.get_list("/apps/jhbuild/modules_to_build", gconf.VALUE_STRING) + self.start_at_module = client.get_string("/apps/jhbuild/start_at_module") + else: + self.run_autogen = False + self.cvs_update = True + self.no_build = False + + self.run_autogen_checkbox.set_active(self.run_autogen) + self.cvs_update_checkbox.set_active(self.cvs_update) + self.no_build_checkbox.set_active(self.no_build) + + def _set_default_settings(self): + if have_gconf: + client = gconf.client_get_default() + client.set_bool("/apps/jhbuild/always_run_autogen", self.run_autogen) + client.set_bool("/apps/jhbuild/update_from_cvs", self.cvs_update) + client.set_bool("/apps/jhbuild/no_build", self.no_build) + client.set_list("/apps/jhbuild/modules_to_build", gconf.VALUE_STRING, self.selected_modules) + if self.start_at_module: + client.set_string("/apps/jhbuild/start_at_module", self.start_at_module) + else: + client.set_string("/apps/jhbuild/start_at_module", "") + + print ("Gconf setting for update from CVS is %d" % self.cvs_update) + + + def _meta_module_toggled(self, cell, path, model): + iter = model.get_iter((int(path),)) + build = model.get_value(iter, 0) + build = not build + model.set(iter, 0, build) + self.selected_modules = self._get_selected_meta_modules() + self._build_start_module_menu() + + def _create_meta_modules_list_view(self, meta_modules): + self.model = gtk.ListStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING) + self.meta_modules_list.set_model(self.model) + + for module in meta_modules: + iter = self.model.append() + if self.selected_modules: + selected = (module.name in self.selected_modules) + else: + selected = False + self.model.set(iter, 0, selected, 1, module.name) + + renderer = gtk.CellRendererToggle() + renderer.connect('toggled', self._meta_module_toggled, self.model) + column = gtk.TreeViewColumn('Build', renderer, active=0) + column.set_clickable(True) + self.meta_modules_list.append_column(column) + + column = gtk.TreeViewColumn('Module Group', gtk.CellRendererText(), text=1) + self.meta_modules_list.append_column(column) + + def _get_selected_meta_modules(self): + modules = [] + iter = self.model.get_iter_first() + + while iter: + build = self.model.get_value(iter, 0) + if build: + name = self.model.get_value(iter, 1) + module = self.name_to_meta_module[name] + if module: + modules.append(module.name) + iter = self.model.iter_next(iter) + + return modules + + + def _build_start_module_menu(self): + if not self.selected_modules: + return + + self.module_list = self.module_set.get_module_list(self.selected_modules, self.config.skip) + + menu = gtk.Menu() + menu.connect('selection-done', self._start_module_menu_clicked) + + selected_item_number = None + i = 0 + for module in self.module_list: + menu_item = gtk.MenuItem(module.name) + menu.append(menu_item) + if module.name == self.start_at_module: + selected_item_number = i + i = i + 1 + + self.start_module_menu.set_menu (menu) + + if selected_item_number: + self.start_module_menu.set_history(selected_item_number) + else: + if self.module_list: + self.start_at_module = self.module_list[0].name + else: + self.start_at_module = None + + menu.show_all() + + def _start_module_menu_clicked(self, option_menu): + number = self.start_module_menu.get_history() + if self.module_list: + item = self.module_list[number] + self.start_at_module = item.name + else: + self.start_at_module = None + + def _autogen_checkbox_toggled(self, checkbox): + self.run_autogen = not self.run_autogen + + def _cvs_update_checkbox_toggled(self, checkbox): + self.cvs_update = not self.cvs_update + + def _no_build_checkbox_toggled(self, checkbox): + self.no_build = not self.no_build + +def optionmenu_get_history(self): + menu = self.get_menu() + children = menu.children() + item = menu.get_active() + + for i in range(len(children)): + if children[i] == item: + break + + return i + +class GtkBuildScript(buildscript.BuildScript): + def __init__(self, config, module_list): + buildscript.BuildScript.__init__(self, config, module_list) + self.current_module = None + self._createWindow() + if have_gconf: + self.terminal_command = self._getTerminalCommand() + else: + self.terminal_command = "gnome-terminal" + + def _getTerminalCommand(self): + client = gconf.client_get_default() + command = client.get_string("/desktop/gnome/applications/terminal/exec") + return command + + def message(self, msg, module_num = -1): + '''shows a message to the screen''' + + if module_num == -1: + module_num = self.module_num + dialog = gtk.MessageDialog(buttons=gtk.BUTTONS_OK, message_format=msg) + dialog.run() + dialog.hide() + return + + def set_action(self, action, module, module_num=-1, action_target=None): + if module_num == -1: + module_num = self.module_num + if not action_target: + action_target = module.name + if self.current_module != module and self.current_module != None: + self.current_module._build_text_buffer = self.build_text + self.build_text = gtk.TextBuffer(self.tag_table) + self.build_text_view.set_buffer(self.build_text) + self.iter = self.build_text.get_end_iter() + self.current_module = module + + num_modules = len(self.modulelist) + if module_num > 0: + self.build_progress.set_fraction(module_num / float(num_modules)) + self.build_progress.set_text('%d of %d modules' + % (module_num, num_modules)) + + self.window.set_title('[%d/%d] %s %s' % (module_num, num_modules, action, module.name)) + self.current_status_label.set_text('%s %s' % (action, module.name)) + + def _runEventLoop(self): + while gtk.events_pending(): + gtk.main_iteration() + + def _printToBuildOutput(self, output): + self.iter = self.build_text.get_end_iter() + self.build_text.insert(self.iter, output) + self.build_text.move_mark (self.ins_mark, self.iter) + self.build_text_view.scroll_to_mark (self.ins_mark, 0.0, True, 0.5, 0.5) + + def _printToWarningOutput(self, output): + self.build_text.insert_with_tags_by_name(self.iter, output, "warning") + + def _pauseBuild(self): + return self.pause_button.get_active() + + def _makeNonBlocking(self, fd): + fl = fcntl.fcntl(fd, fcntl.F_GETFL) + fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NDELAY) + + + def execute(self, command, hint=None, cwd=None, extra_env=None): + '''executes a command, and returns the error code''' + return_code = -1 + + kws = { + 'close_fds': True, + 'shell': isinstance(command, (str,unicode)), + 'stdin': subprocess.PIPE, + 'stdout': subprocess.PIPE, + 'stderr': subprocess.PIPE, + } + + if cwd is not None: + kws['cwd'] = cwd + + if extra_env is not None: + kws['env'] = os.environ.copy() + kws['env'].update(extra_env) + + try: + p = subprocess.Popen(command, **kws) + except OSError, e: + raise CommandError(str(e)) + + p.stdin.close() + self._makeNonBlocking(p.stdout) + self._makeNonBlocking(p.stderr) + + build_paused = False + read_set = [p.stdout, p.stderr] + + while read_set: + # Allow the frontend to get a little time + self._runEventLoop() + + rlist, wlist, xlist = select.select(read_set, [], [], 0) + + if p.stdout in rlist: + chunk = p.stdout.read() + if chunk == '': + p.stdout.close() + read_set.remove(p.stdout) + self._printToBuildOutput(chunk) + + if p.stderr in rlist: + chunk = p.stderr.read() + if chunk == '': + p.stderr.close() + read_set.remove(p.stderr) + self._printToWarningOutput(chunk) + + # See if we should pause the current command + if not build_paused and self._pauseBuild(): + print ("Pausing this guy, sending os.kill to %d", p.pid) + os.kill(p.pid, signal.SIGSTOP) + build_paused = True + elif build_paused and not self._pauseBuild(): + print ("Continuing him") + os.kill(p.pid, signal.SIGCONT) + build_paused = False + + time.sleep(0.05) + + return p.wait() + + def start_build(self): + self.window.show_all() + def end_build(self, failures): + if len(failures) == 0: + self.message('success') + else: + self.message('the following modules were not built:\n%s' + % ', '.join(failures)) + def start_module(self, module): + # Remember where we are in case something fails + if have_gconf: + client = gconf.client_get_default() + client.set_string("/apps/jhbuild/start_at_module", module) + + def handle_error(self, module, state, nextstate, error, altstates): + '''Ask the user what to do about an error. + + Returns one of ERR_RERUN, ERR_CONT or ERR_GIVEUP.''' #" + + if not self.config.interact: + return 'fail' + + dialog = gtk.Dialog('Error during %s for module %s' % (state, module.name)) + dialog.add_button('_Try %s Again' % state, 1) + dialog.add_button('_Ignore Error', 2) + dialog.add_button('_Skip Module', 3) + dialog.add_button('_Terminal', 4) + + for i, altstate in enumerate(altstates): + dialog.add_button('Go to %s' % altstate, i + 5) + + text_view = gtk.TextView() + text_view.set_buffer(self.build_text) + text_view.set_wrap_mode(gtk.WRAP_WORD) + + scroller = gtk.ScrolledWindow() + scroller.add(text_view) + dialog.vbox.pack_start(scroller) + + scroller.set_size_request(-1, 250) + scroller.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + scroller.set_shadow_type(gtk.SHADOW_IN) + scroller.set_border_width(12) + + while True: + + #self.message('error during %s for module %s' % (state, module.name)) + + text_view.scroll_to_iter(self.build_text.get_end_iter(), 0.0, True, 0.5, 0.5) + dialog.show_all() + + val = dialog.run() + + if val != 4: + dialog.hide() + # If the dialog was destroyed, interpret that as try again. + if val in (1, gtk.RESPONSE_NONE, gtk.RESPONSE_DELETE_EVENT): + return state + elif val == 2: + return nextstate + elif val == 3: + return 'fail' + elif val == 4: + command = 'cd %s; %s' % (module.get_builddir(self), + self.terminal_command) + os.system(command) + else: + return altstates[val - 5] + + def _createWindow(self): + glade_filename = get_glade_filename() + self.glade = gtk.glade.XML(glade_filename) + + self.window = self.glade.get_widget("BuildWindow") + self.build_progress = self.glade.get_widget("BuildProgressBar") + self.build_text_view = self.glade.get_widget("BuildText") + self.current_status_label = self.glade.get_widget("CurrentStatusLabel") + self.pause_button = self.glade.get_widget("BuildPauseButton") + self.cancel_button = self.glade.get_widget("BuildCancelButton") + #self.expander_button = self.glade.get_widget("ExpanderButton") + #self.expander_arrow = self.glade.get_widget("ExpanderArrow") + + self.window.connect('destroy', lambda win: sys.exit()) + self.cancel_button.connect('clicked', lambda button: sys.exit()) + #self.expander_button.connect('activate', + + self.tag_table = gtk.TextTagTable() + self.build_text = gtk.TextBuffer(self.tag_table) + self.warning_tag = self.build_text.create_tag("warning") + self.warning_tag.set_property("foreground", "red") + self.build_text_view.set_buffer(self.build_text) + self.build_text_view.set_wrap_mode(gtk.WRAP_WORD) + self.iter = self.build_text.get_end_iter() + self.ins_mark = self.build_text.create_mark ("jhbuild-mark", self.iter, True); + +BUILD_SCRIPT = GtkBuildScript diff --git a/build-scripts/jhbuild/jhbuild/frontends/icons/build.png b/build-scripts/jhbuild/jhbuild/frontends/icons/build.png Binary files differnew file mode 100644 index 0000000..43f2267 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/icons/build.png diff --git a/build-scripts/jhbuild/jhbuild/frontends/icons/checkout.png b/build-scripts/jhbuild/jhbuild/frontends/icons/checkout.png Binary files differnew file mode 100644 index 0000000..0c4a663 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/icons/checkout.png diff --git a/build-scripts/jhbuild/jhbuild/frontends/icons/configure.png b/build-scripts/jhbuild/jhbuild/frontends/icons/configure.png Binary files differnew file mode 100644 index 0000000..7e9d696 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/icons/configure.png diff --git a/build-scripts/jhbuild/jhbuild/frontends/icons/error.png b/build-scripts/jhbuild/jhbuild/frontends/icons/error.png Binary files differnew file mode 100644 index 0000000..3af3a69 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/icons/error.png diff --git a/build-scripts/jhbuild/jhbuild/frontends/icons/install.png b/build-scripts/jhbuild/jhbuild/frontends/icons/install.png Binary files differnew file mode 100644 index 0000000..8d4e7bc --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/icons/install.png diff --git a/build-scripts/jhbuild/jhbuild/frontends/jhbuild.glade b/build-scripts/jhbuild/jhbuild/frontends/jhbuild.glade new file mode 100644 index 0000000..6ec916d --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/jhbuild.glade @@ -0,0 +1,534 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> + +<glade-interface> +<requires lib="gnome"/> + +<widget class="GtkWindow" id="BuildWindow"> + <property name="border_width">12</property> + <property name="title" translatable="yes"></property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + + <child> + <widget class="GtkVBox" id="vbox2"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">12</property> + + <child> + <widget class="GtkVBox" id="Contents"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">6</property> + + <child> + <widget class="GtkVBox" id="ProgressBox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="CurrentStatusLabel"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkProgressBar" id="BuildProgressBar"> + <property name="visible">True</property> + <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property> + <property name="fraction">0</property> + <property name="pulse_step">0.1</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkVBox" id="BuildOutputBox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">6</property> + + <child> + <widget class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="label" translatable="yes">Build Output</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkArrow" id="arrow1"> + <property name="visible">True</property> + <property name="arrow_type">GTK_ARROW_DOWN</property> + <property name="shadow_type">GTK_SHADOW_OUT</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + + <child> + <widget class="GtkTextView" id="BuildText"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="justification">GTK_JUSTIFY_LEFT</property> + <property name="wrap_mode">GTK_WRAP_NONE</property> + <property name="cursor_visible">True</property> + <property name="pixels_above_lines">0</property> + <property name="pixels_below_lines">0</property> + <property name="pixels_inside_wrap">0</property> + <property name="left_margin">0</property> + <property name="right_margin">0</property> + <property name="indent">0</property> + <property name="text" translatable="yes"></property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="ButtonBox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">12</property> + + <child> + <widget class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkToggleButton" id="BuildPauseButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Pause Build</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="BuildCancelButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-cancel</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> +</widget> + +<widget class="GtkWindow" id="ConfigWindow"> + <property name="border_width">12</property> + <property name="title" translatable="yes">Configure Build</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + + <child> + <widget class="GtkVBox" id="vbox4"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkVBox" id="vbox3"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkVBox" id="vbox4"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">6</property> + + <child> + <widget class="GtkHBox" id="hbox5"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">12</property> + + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow2"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + + <child> + <widget class="GtkTreeView" id="ConfigMetaModules"> + <property name="height_request">261</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">True</property> + <property name="rules_hint">False</property> + <property name="reorderable">False</property> + <property name="enable_search">True</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkVBox" id="vbox5"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">6</property> + + <child> + <widget class="GtkVBox" id="vbox6"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="label10"> + <property name="visible">True</property> + <property name="label" translatable="yes">Start Building At:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkOptionMenu" id="ConfigStartModule"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="history">-1</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="ConfigRunAutogen"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Always run autogen.sh</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="ConfigCVSUpdate"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Update from CVS</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="ConfigNoBuild"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Do not build</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox6"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">12</property> + + <child> + <widget class="GtkLabel" id="label9"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="ConfigCancelButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-cancel</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="ConfigBuildButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Start _Build</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> +</widget> + +</glade-interface> diff --git a/build-scripts/jhbuild/jhbuild/frontends/terminal.py b/build-scripts/jhbuild/jhbuild/frontends/terminal.py new file mode 100644 index 0000000..36bac2b --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/terminal.py @@ -0,0 +1,213 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# Copyright (C) 2003-2004 Seth Nickell +# +# terminal.py: build logic for a terminal interface +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import sys +import os +import signal +import subprocess + +from jhbuild.frontends import buildscript +from jhbuild.utils import cmds +from jhbuild.utils import trayicon +from jhbuild.errors import CommandError + +term = os.environ.get('TERM', '') +is_xterm = term.find('xterm') >= 0 or term == 'rxvt' +del term + +try: t_bold = cmds.get_output(['tput', 'bold']) +except: t_bold = '' +try: t_reset = cmds.get_output(['tput', 'sgr0']) +except: t_reset = '' +t_colour = [''] * 16 +try: + for i in range(8): + t_colour[i] = cmds.get_output(['tput', 'setf', '%d' % i]) + t_colour[i+8] = t_bold + t_colour[i] +except: pass + +user_shell = os.environ.get('SHELL', '/bin/sh') + +# tray icon stuff ... +icondir = os.path.join(os.path.dirname(__file__), 'icons') +phase_map = { + 'checkout': 'checkout.png', + 'force_checkout': 'checkout.png', + 'download': 'checkout.png', + 'unpack': 'checkout.png', + 'patch': 'checkout.png', + 'configure': 'configure.png', + #'clean': 'clean.png', + 'build': 'build.png', + #'check': 'check.png', + 'install': 'install.png', + } + +class TerminalBuildScript(buildscript.BuildScript): + def __init__(self, config, module_list): + buildscript.BuildScript.__init__(self, config, module_list) + self.trayicon = trayicon.TrayIcon() + + def message(self, msg, module_num=-1): + '''Display a message to the user''' + + if module_num == -1: + module_num = self.module_num + if module_num > 0: + progress = ' [%d/%d]' % (module_num, len(self.modulelist)) + else: + progress = '' + print '%s*** %s ***%s%s' % (t_bold, msg, progress, t_reset) + if is_xterm: + print '\033]0;jhbuild: %s%s\007' % (msg, progress) + self.trayicon.set_tooltip('%s%s' % (msg, progress)) + + def set_action(self, action, module, module_num=-1, action_target=None): + if module_num == -1: + module_num = self.module_num + if not action_target: + action_target = module.name + self.message('%s %s' % (action, action_target), module_num) + + def execute(self, command, hint=None, cwd=None, extra_env=None): + '''executes a command, and returns the error code''' + kws = { + 'close_fds': True + } + if isinstance(command, (str, unicode)): + kws['shell'] = True + pretty_command = command + else: + pretty_command = ' '.join(command) + print pretty_command + + # get rid of hint if pretty printing is disabled. + if not self.config.pretty_print: + hint = None + + kws['stdin'] = subprocess.PIPE + if hint == 'cvs': + kws['stdout'] = subprocess.PIPE + kws['stderr'] = subprocess.STDOUT + else: + kws['stdout'] = None + kws['stderr'] = None + + if cwd is not None: + kws['cwd'] = cwd + + if extra_env is not None: + kws['env'] = os.environ.copy() + kws['env'].update(extra_env) + + try: + p = subprocess.Popen(command, **kws) + except OSError, e: + sys.stderr.write('Error: %s\n' % str(e)) + raise CommandError(str(e)) + + if hint == 'cvs': + conflicts = [] + def format_line(line, error_output, conflicts=conflicts): + if line[-1] == '\n': line = line[:-1] + if line.startswith('C '): + conflicts.append(line) + print '%s%s%s' % (t_colour[12], line, t_reset) + elif line.startswith('M '): + print '%s%s%s' % (t_colour[10], line, t_reset) + elif line.startswith('? '): + print '%s%s%s' % (t_colour[8], line, t_reset) + else: + print line + cmds.pprint_output(p, format_line) + if conflicts: + sys.stdout.write('\nConflicts during checkout:\n') + for line in conflicts: + sys.stdout.write('%s %s%s\n' + % (t_colour[12], line, t_reset)) + # make sure conflicts fail + if p.returncode == 0: p.returncode = 1 + else: + try: + p.communicate() + except KeyboardInterrupt: + try: + os.kill(p.pid, signal.SIGINT) + except OSError: + # process might already be dead. + pass + if p.wait() != 0: + raise CommandError('########## Error running %s' % pretty_command, p.returncode) + + def start_phase(self, module, state): + self.trayicon.set_icon(os.path.join(icondir, + phase_map.get(state, 'build.png'))) + + def end_build(self, failures): + if len(failures) == 0: + self.message('success') + else: + self.message('the following modules were not built') + for module in failures: + print module, + print + + def handle_error(self, module, state, nextstate, error, altstates): + '''handle error during build''' + self.message('error during stage %s of %s: %s' % (state, module.name, + error)) + self.trayicon.set_icon(os.path.join(icondir, 'error.png')) + + if not self.config.interact: + return 'fail' + while True: + print + print ' [1] rerun stage %s' % state + print ' [2] ignore error and continue to %s' % nextstate + print ' [3] give up on module' + print ' [4] start shell' + i = 5 + for altstate in altstates: + print ' [%d] go to stage %s' % (i, altstate) + i = i + 1 + val = raw_input('choice: ') + val = val.strip() + if val == '1': + return state + elif val == '2': + return nextstate + elif val == '3': + return 'fail' + elif val == '4': + try: + os.chdir(module.get_builddir(self)) + except OSError: + os.chdir(self.config.checkoutroot) + print 'exit shell to continue with build' + os.system(user_shell) + else: + try: + val = int(val) + return altstates[val - 5] + except: + print 'invalid choice' + assert False, 'not reached' + +BUILD_SCRIPT = TerminalBuildScript diff --git a/build-scripts/jhbuild/jhbuild/frontends/tinderbox.py b/build-scripts/jhbuild/jhbuild/frontends/tinderbox.py new file mode 100644 index 0000000..a7e125a --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/frontends/tinderbox.py @@ -0,0 +1,330 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# tinderbox.py: build logic for a non-interactive reporting build +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +import time +import subprocess +import locale + +from jhbuild.utils import cmds +from jhbuild.errors import CommandError +import buildscript + +index_header = '''<html> + <head> + <meta http-equiv="Content-Type" content="text/html%(charset)s"> + <title>JHBuild Results</title> + <style type="text/css"> + .section { + margin-after: 1.5em; + } + .success { + color: black; + background-color: #afa; + } + .failure { + color: black; + background-color: #faa; + } + </style> + </head> + <body> + <h1>JHBuild Results</h1> + + <div class="section"> + <h2>Platform</h2> + %(buildplatform)s + </div> + + <div class="section"> + <h2>Summary</h2> + <table> + <tr> + <th>Time</th> + <th>Module</th> + <th>Phases</th> + <th>Status</th> + </tr> +''' +index_footer = ''' + </table> + </div> + + %(failures)s + </body> +</html> +''' + +buildlog_header = '''<html> + <head> + <meta http-equiv="Content-Type" content="text/html%(charset)s"> + <title>%(module)s Build Log</title> + <style type="text/css"> + pre { + /* unfortunately, white-space: pre-wrap is not widely supported ... */ + white-space: -moz-pre-wrap; /* Mozilla based browsers */ + white-space: -pre-wrap; /* Opera 4 - 6 */ + white-space: -o-pre-wrap; /* Opera >= 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + } + .message { + font-size: larger; + } + .timestamp{ + font-size: smaller; + font-style: italic; + } + .command { + color: blue; + } + .conflict { + color: red; + } + .error { + color: red; + } + </style> + </head> + <body> + <h1>%(module)s Build Log</h1> +''' +buildlog_footer = ''' + </body> +</html> +''' + +def get_distro(): + # try using the lsb_release tool to get the distro info + try: + distro = cmds.get_output(['lsb_release', '--short', '--id']).strip() + release = cmds.get_output(['lsb_release', '--short', '--release']).strip() + codename = cmds.get_output(['lsb_release', '--short', '--codename']).strip() + if codename: + return '%s %s (%s)' % (distro, release, codename) + else: + return '%s %s' % (distro, release) + except (CommandError, IOError): + pass + + # otherwise, look for a /etc/*-release file + release_files = ['/etc/redhat-release', '/etc/debian_version' ] + release_files.extend([ os.path.join('/etc', fname) + for fname in os.listdir('/etc') + if fname.endswith('release') \ + and fname != 'lsb-release' ]) + for filename in release_files: + if os.path.exists(filename): + return open(filename, 'r').readline().strip() + + # else: + return None + +def escape(string): + return string.replace('&','&').replace('<','<').replace('>','>') + +class TinderboxBuildScript(buildscript.BuildScript): + def __init__(self, config, module_list): + buildscript.BuildScript.__init__(self, config, module_list) + self.indexfp = None + self.modulefp = None + + self.outputdir = os.path.abspath(config.tinderbox_outputdir) + if not os.path.exists(self.outputdir): + os.makedirs(self.outputdir) + + os.environ['TERM'] = 'dumb' + + charset = locale.getpreferredencoding() + if charset: + self.charset = ';charset=%s' % charset + else: + self.charset = '' + + def timestamp(self): + tm = time.time() + s = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(tm)) + msecs = max(int((tm - int(tm)) * 1000), 0) + return '%s.%03d' % (s, msecs) + + def message(self, msg, module_num=-1): + '''Display a message to the user''' + if self.modulefp: + self.modulefp.write('<div><b class="message">%s</b> ' + '<span class="timestamp">%s</span></div>\n' + % (escape(msg), self.timestamp())) + else: + # do something with messages outside of builds of module builds + pass + + def set_action(self, action, module, module_num=-1, action_target=None): + if module_num == -1: + module_num = self.module_num + if not action_target: + action_target = module.name + self.message('%s %s' % (action, action_target), module_num) + + def execute(self, command, hint=None, cwd=None, extra_env=None): + '''executes a command, and returns the error code''' + assert self.modulefp, 'not currently building a module' + + kws = { + 'close_fds': True + } + self.modulefp.write('<pre>') + if isinstance(command, (str, unicode)): + self.modulefp.write('<span class="command">%s</span>\n' + % escape(command)) + kws['shell'] = True + else: + self.modulefp.write('<span class="command">%s</span>\n' + % escape(' '.join(command))) + kws['stdin'] = subprocess.PIPE + kws['stdout'] = subprocess.PIPE + kws['stderr'] = subprocess.PIPE + if hint == 'cvs': + def format_line(line, error_output, fp=self.modulefp): + if line[-1] == '\n': line = line[:-1] + if line.startswith('C '): + fp.write('<span class="conflict">%s</span>\n' + % escape(line)) + else: + fp.write('%s\n' % escape(line)) + kws['stderr'] = subprocess.STDOUT + else: + def format_line(line, error_output, fp=self.modulefp): + if line[-1] == '\n': line = line[:-1] + if error_output: + fp.write('<span class="error">%s</span>\n' + % escape(line)) + else: + fp.write('%s\n' % escape(line)) + + if cwd is not None: + kws['cwd'] = cwd + + if extra_env is not None: + kws['env'] = os.environ.copy() + kws['env'].update(extra_env) + + try: + p = subprocess.Popen(command, **kws) + except OSError, e: + self.modulefp.write('<span class="error">Error: %s</span>\n' + % escape(str(e))) + raise CommandError(str(e)) + cmds.pprint_output(p, format_line) + self.modulefp.write('</pre>\n') + self.modulefp.flush() + if p.returncode != 0: + raise CommandError('Error running %s' % command, p.returncode) + + def start_build(self): + assert self.outputdir + + # close stdin + os.close(0) + + info = [] + import socket + un = os.uname() + + info.append(('Build Host', socket.gethostname())) + info.append(('Architecture', '%s %s (%s)' % (un[0], un[2], un[4]))) + + distro = get_distro() + if distro: + info.append(('Distribution', distro)) + + info.append(('Module Set', self.config.moduleset)) + info.append(('Start Time', self.timestamp())) + + buildplatform = '<table>\n' + for (key, val) in info: + buildplatform += '<tr><th align="left">%s</th><td>%s</td></tr>\n' \ + % (key, val) + buildplatform += '</table>\n' + + self.indexfp = open(os.path.join(self.outputdir, 'index.html'), 'w') + + self.indexfp.write(index_header % { 'buildplatform': buildplatform, + 'charset': self.charset }) + self.indexfp.flush() + + def end_build(self, failures): + self.indexfp.write('<tr>' + '<td>%s</td>' + '<td>finish</td>' + '</tr>\n' % self.timestamp()) + if failures: + info = '<p>The following modules failed to build</p>\n' + info += '<blockquote>\n' + info += ', '.join(failures) + info += '</blockquote>\n' + else: + info = '' + self.indexfp.write(index_footer % { 'failures': info }) + self.indexfp.close() + self.indexfp = None + + def start_module(self, module): + self.modulefilename='%s.html' % module.replace('/','_') + self.indexfp.write('<tr>' + '<td>%s</td>' + '<td><a href="%s">%s</a></td>' + '<td>\n' % (self.timestamp(), self.modulefilename, + module)) + self.modulefp = open(os.path.join(self.outputdir, + self.modulefilename), 'w') + self.modulefp.write(buildlog_header % { 'module': module, + 'charset': self.charset }) + def end_module(self, module, failed): + if failed: + self.message('Failed') + else: + self.message('Succeeded') + self.modulefp.write(buildlog_footer) + self.modulefp.close() + self.modulefp = None + self.indexfp.write('</td>\n') + if failed: + self.indexfp.write('<td class="failure">failed</td>\n') + else: + self.indexfp.write('<td class="success">ok</td>\n') + self.indexfp.write('</tr>\n\n') + self.indexfp.flush() + + def start_phase(self, module, state): + self.modulefp.write('<a name="%s"></a>\n' % state) + def end_phase(self, module, state, error): + if error: + self.indexfp.write('<a class="failure" title="%s" href="%s#%s">%s</a>\n' + % (error, self.modulefilename, state, state)) + else: + self.indexfp.write('<a class="success" href="%s#%s">%s</a>\n' + % (self.modulefilename, state, state)) + self.indexfp.flush() + + def handle_error(self, module, state, nextstate, error, altstates): + '''handle error during build''' + self.message('error during stage %s of %s: %s' % (state, module.name, + error)) + return 'fail' + +BUILD_SCRIPT = TinderboxBuildScript diff --git a/build-scripts/jhbuild/jhbuild/main.py b/build-scripts/jhbuild/jhbuild/main.py new file mode 100644 index 0000000..8af8620 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/main.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# main.py: parses command line arguments and starts the build +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import sys, os +import optparse +import traceback + +import jhbuild.config +import jhbuild.commands +from jhbuild.errors import UsageError, FatalError + +def help_commands(option, opt_str, value, parser): + commands = [ + ('build', 'update and compile (the default)'), + ('buildone', 'modules build a single module'), + ('update', 'update from version control'), + ('updateone', 'update a fixed set of modules'), + ('list', 'list what modules would be built'), + ('info', 'prints information about modules'), + ('tinderbox', 'build non-interactively with logging'), + ('gui', 'build targets from a gui app'), + ('run', 'run a command in the build environment'), + ('shell', 'start a shell in the build environment'), + ('sanitycheck', 'check that required support tools exists'), + ('bootstrap', 'build required support tools'), + ('dot', 'output a dependency graph for processing with graphviz'), + ] + print 'JHBuild commands are:' + for (cmd, description) in commands: + print ' %-15s %s' % (cmd, description) + print + print 'For more information run "jhbuild <command> --help"' + parser.exit() + +def main(args): + parser = optparse.OptionParser( + usage='%prog [ -f config ] command [ options ... ]', + description='Build a set of CVS modules (such as GNOME).') + parser.disable_interspersed_args() + parser.add_option('--help-commands', action='callback', + callback=help_commands, + help='Information about available jhbuild commands') + parser.add_option('-f', '--file', action='store', metavar='CONFIG', + type='string', dest='configfile', + default=os.path.join(os.environ['HOME'], '.jhbuildrc'), + help='use a non default configuration file') + parser.add_option('-m', '--moduleset', action='store', metavar='URI', + type='string', dest='moduleset', default=None, + help='use a non default module set') + parser.add_option('--no-interact', action='store_true', + dest='nointeract', default=False, + help='do not prompt for input') + + options, args = parser.parse_args(args) + + try: + config = jhbuild.config.Config(options.configfile) + except FatalError, exc: + sys.stderr.write('jhbuild: %s\n' % (str(exc))) + sys.exit(1) + + if options.moduleset: config.moduleset = options.moduleset + if options.nointeract: config.interact = False + + if not args or args[0][0] == '-': + command = 'build' # default to cvs update + compile + else: + command = args[0] + args = args[1:] + + try: + jhbuild.commands.run(command, config, args) + except UsageError, exc: + sys.stderr.write('jhbuild %s: %s\n' % (command, str(exc))) + parser.print_usage() + sys.exit(1) + except FatalError, exc: + sys.stderr.write('jhbuild %s: %s\n' % (command, str(exc))) + sys.exit(1) + except KeyboardInterrupt: + print "Interrupted" + sys.exit(1) + except EOFError: + print "EOF" + sys.exit(1) diff --git a/build-scripts/jhbuild/jhbuild/modtypes/.cvsignore b/build-scripts/jhbuild/jhbuild/modtypes/.cvsignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/.cvsignore @@ -0,0 +1 @@ +*.pyc diff --git a/build-scripts/jhbuild/jhbuild/modtypes/__init__.py b/build-scripts/jhbuild/jhbuild/modtypes/__init__.py new file mode 100644 index 0000000..46a3e0f --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/__init__.py @@ -0,0 +1,190 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# __init__.py: package to hold module type defintions +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type + +__all__ = [ + 'register_module_type', + 'parse_xml_node', + 'Package', + 'get_dependencies' + 'get_branch' + ] + +from jhbuild.errors import FatalError, CommandError, BuildStateError + +_module_types = {} +def register_module_type(name, parse_func): + _module_types[name] = parse_func + +def register_lazy_module_type(name, module): + def parse_func(node, config, repositories, default_repo): + old_func = _module_types[name] + mod = __import__(module) + assert _module_types[name] != old_func, ( + 'module did not register new parser_func for %s' % name) + return _module_types[name](node, config, repositories, default_repo) + _module_types[name] = parse_func + +def parse_xml_node(node, config, repositories, default_repo): + if not _module_types.has_key(node.nodeName): + try: + __import__('jhbuild.modtypes.%s' % node.nodeName) + except ImportError: + pass + if not _module_types.has_key(node.nodeName): + raise FatalError('unknown module type %s' % node.nodeName) + + parser = _module_types[node.nodeName] + return parser(node, config, repositories, default_repo) + +def get_dependencies(node): + """Scan for dependencies in <dependencies> and <after> elements.""" + dependencies = [] + after = [] + for childnode in node.childNodes: + if childnode.nodeType != childnode.ELEMENT_NODE: continue + if childnode.nodeName == 'dependencies': + for dep in childnode.childNodes: + if dep.nodeType == dep.ELEMENT_NODE and dep.nodeName == 'dep': + dependencies.append(dep.getAttribute('package')) + elif childnode.nodeName in ['after', 'suggests']: + for dep in childnode.childNodes: + if dep.nodeType == dep.ELEMENT_NODE and dep.nodeName == 'dep': + after.append(dep.getAttribute('package')) + return dependencies, after + +def get_branch(node, repositories, default_repo): + """Scan for a <branch> element and create a corresponding Branch object.""" + name = node.getAttribute('id') + for childnode in node.childNodes: + if (childnode.nodeType == childnode.ELEMENT_NODE and + childnode.nodeName == 'branch'): + break + else: + raise FatalError('no <branch> element found for %s' % name) + + # look up the repository for this branch ... + if childnode.hasAttribute('repo'): + try: + repo = repositories[childnode.getAttribute('repo')] + except KeyError: + raise FatalError('Repository=%s not found for module id=%s. Possible repositories are %s' % (childnode.getAttribute('repo'), name, repositories)) + else: + try: + repo = repositories[default_repo] + except KeyError: + raise FatalError('Default Repository=%s not found for module id=%s. Possible repositories are %s' % (default_repo, name, repositories)) + + return repo.branch_from_xml(name, childnode) + + +class Package: + type = 'base' + STATE_START = 'start' + STATE_DONE = 'done' + def __init__(self, name, dependencies=[], after=[]): + self.name = name + self.dependencies = dependencies + self.after = after + def __repr__(self): + return "<%s '%s'>" % (self.__class__.__name__, self.name) + + def get_srcdir(self, buildscript): + raise NotImplementedError + def get_builddir(self, buildscript): + raise NotImplementedError + + def get_revision(self): + return None + + def _next_state(self, buildscript, last_state): + """Work out what state to go to next, possibly skipping some states. + + This function executes skip_$state() to decide whether to run that + state or not. If it returns True, go to do_$state.next_state and + repeat. If it returns False, return that state. + """ + seen_states = [] + state = getattr(self, 'do_' + last_state).next_state + while True: + seen_states.append(state) + if state == self.STATE_DONE: + return state + do_method = getattr(self, 'do_' + state) + if hasattr(self, 'skip_' + state): + skip_method = getattr(self, 'skip_' + state) + if skip_method(buildscript, last_state): + state = do_method.next_state + assert state not in seen_states, ( + 'state %s should not appear in list of ' + 'skipped states: %r' % (state, seen_states)) + else: + return state + else: + # no skip rule + return state + + def run_state(self, buildscript, state): + """run a particular part of the build for this package. + + Returns a tuple of the following form: + (next-state, error-flag, [other-states]) + """ + method = getattr(self, 'do_' + state) + # has the state been updated to the new system? + if hasattr(method, 'next_state'): + try: + method(buildscript) + except (CommandError, BuildStateError), e: + return (self._next_state(buildscript, state), + str(e), method.error_states) + else: + return (self._next_state(buildscript, state), + None, None) + else: + return method(buildscript) + + +class MetaModule(Package): + """A simple module type that consists only of dependencies.""" + type = 'meta' + def get_srcdir(self, buildscript): + return buildscript.config.checkoutroot + def get_builddir(self, buildscript): + return buildscript.config.buildroot or \ + self.get_srcdir(buildscript) + + # nothing to actually build in a metamodule ... + def do_start(self, buildscript): + pass + do_start.next_state = Package.STATE_DONE + do_start.error_states = [] + +def parse_metamodule(node, config, repos, default_repo): + id = node.getAttribute('id') + dependencies, after = get_dependencies(node) + return MetaModule(id, dependencies=dependencies, after=after) +register_module_type('metamodule', parse_metamodule) + + +register_lazy_module_type('autotools', 'jhbuild.modtypes.autotools') +register_lazy_module_type('cvsmodule', 'jhbuild.modtypes.autotools') +register_lazy_module_type('svnmodule', 'jhbuild.modtypes.autotools') +register_lazy_module_type('archmodule', 'jhbuild.modtypes.autotools') diff --git a/build-scripts/jhbuild/jhbuild/modtypes/autotools.py b/build-scripts/jhbuild/jhbuild/modtypes/autotools.py new file mode 100644 index 0000000..dd67274 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/autotools.py @@ -0,0 +1,354 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# autotools.py: autotools module type definitions. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type + +import os + +from jhbuild.errors import FatalError, BuildStateError +from jhbuild.modtypes import \ + Package, get_dependencies, get_branch, register_module_type + +__all__ = [ 'AutogenModule' ] + +class AutogenModule(Package): + '''Base type for modules that are distributed with a Gnome style + "autogen.sh" script and the GNU build tools. Subclasses are + responsible for downloading/updating the working copy.''' + type = 'autogen' + + STATE_CHECKOUT = 'checkout' + STATE_FORCE_CHECKOUT = 'force_checkout' + STATE_CLEAN = 'clean' + STATE_CONFIGURE = 'configure' + STATE_BUILD = 'build' + STATE_CHECK = 'check' + STATE_INSTALL = 'install' + + def __init__(self, name, branch, autogenargs='', makeargs='', + dependencies=[], after=[], + supports_non_srcdir_builds=True, + autogen_sh='autogen.sh', + makefile='Makefile'): + Package.__init__(self, name, dependencies, after) + self.branch = branch + self.autogenargs = autogenargs + self.makeargs = makeargs + self.supports_non_srcdir_builds = supports_non_srcdir_builds + self.autogen_sh = autogen_sh + self.makefile = makefile + + def get_srcdir(self, buildscript): + return self.branch.srcdir + + def get_builddir(self, buildscript): + if buildscript.config.buildroot and self.supports_non_srcdir_builds: + d = buildscript.config.builddir_pattern % ( + os.path.basename(self.get_srcdir(buildscript))) + return os.path.join(buildscript.config.buildroot, d) + else: + return self.get_srcdir(buildscript) + + def get_revision(self): + return self.branch.branchname + + def do_start(self, buildscript): + pass + do_start.next_state = STATE_CHECKOUT + do_start.error_states = [] + + def skip_checkout(self, buildscript, last_state): + # skip the checkout stage if the nonetwork flag is set + return buildscript.config.nonetwork + + def do_checkout(self, buildscript): + srcdir = self.get_srcdir(buildscript) + builddir = self.get_builddir(buildscript) + buildscript.set_action('Checking out', self) + self.branch.checkout(buildscript) + # did the checkout succeed? + if not os.path.exists(srcdir): + raise BuildStateError('source directory %s was not created' + % srcdir) + do_checkout.next_state = STATE_CONFIGURE + do_checkout.error_states = [STATE_FORCE_CHECKOUT] + + def skip_force_checkout(self, buildscript, last_state): + return False + + def do_force_checkout(self, buildscript): + buildscript.set_action('Checking out', self) + self.branch.force_checkout(buildscript) + do_force_checkout.next_state = STATE_CONFIGURE + do_force_checkout.error_states = [STATE_FORCE_CHECKOUT] + + def skip_configure(self, buildscript, last_state): + # skip if nobuild is set. + if buildscript.config.nobuild: + return True + + # don't skip this stage if we got here from one of the + # following states: + if last_state in [self.STATE_FORCE_CHECKOUT, + self.STATE_CLEAN, + self.STATE_BUILD, + self.STATE_INSTALL]: + return False + + # skip if the makefile exists and we don't have the + # alwaysautogen flag turned on: + builddir = self.get_builddir(buildscript) + return (os.path.exists(os.path.join(builddir, self.makefile)) and + not buildscript.config.alwaysautogen) + + def do_configure(self, buildscript): + builddir = self.get_builddir(buildscript) + if buildscript.config.buildroot and not os.path.exists(builddir): + os.makedirs(builddir) + buildscript.set_action('Configuring', self) + + if buildscript.config.buildroot and self.supports_non_srcdir_builds: + cmd = self.get_srcdir(buildscript) + '/' + self.autogen_sh + else: + cmd = './' + self.autogen_sh + cmd += ' --prefix %s' % buildscript.config.prefix + if buildscript.config.use_lib64: + cmd += " --libdir '${exec_prefix}/lib64'" + cmd += ' %s' % self.autogenargs + + # if we are using configure as the autogen command, make sure + # we don't pass --enable-maintainer-mode, since it breaks many + # tarball builds. + if self.autogen_sh == 'configure': + cmd = cmd.replace('--enable-maintainer-mode', '') + + buildscript.execute(cmd, cwd=builddir) + do_configure.next_state = STATE_CLEAN + do_configure.error_states = [STATE_FORCE_CHECKOUT] + + def skip_clean(self, buildscript, last_state): + return (not buildscript.config.makeclean or + buildscript.config.nobuild) + + def do_clean(self, buildscript): + buildscript.set_action('Cleaning', self) + cmd = '%s %s clean' % (os.environ.get('MAKE', 'make'), self.makeargs) + buildscript.execute(cmd, cwd=self.get_builddir(buildscript)) + do_clean.next_state = STATE_BUILD + do_clean.error_states = [STATE_FORCE_CHECKOUT, STATE_CONFIGURE] + + def skip_build(self, buildscript, last_state): + return buildscript.config.nobuild + + def do_build(self, buildscript): + buildscript.set_action('Building', self) + cmd = '%s %s' % (os.environ.get('MAKE', 'make'), self.makeargs) + buildscript.execute(cmd, cwd=self.get_builddir(buildscript)) + do_build.next_state = STATE_CHECK + do_build.error_states = [STATE_FORCE_CHECKOUT, STATE_CONFIGURE] + + def skip_check(self, buildscript, last_state): + return (not buildscript.config.makecheck or + buildscript.config.nobuild) + + def do_check(self, buildscript): + buildscript.set_action('Checking', self) + cmd = '%s %s check' % (os.environ.get('MAKE', 'make'), self.makeargs) + buildscript.execute(cmd, cwd=self.get_builddir(buildscript)) + do_check.next_state = STATE_INSTALL + do_check.error_states = [STATE_FORCE_CHECKOUT, STATE_CONFIGURE] + + def skip_install(self, buildscript, last_state): + return buildscript.config.nobuild + + def do_install(self, buildscript): + buildscript.set_action('Installing', self) + cmd = '%s %s install' % (os.environ.get('MAKE', 'make'), self.makeargs) + buildscript.execute(cmd, cwd=self.get_builddir(buildscript)) + buildscript.packagedb.add(self.name, self.get_revision() or '') + do_install.next_state = Package.STATE_DONE + do_install.error_states = [] + + +def parse_autotools(node, config, repositories, default_repo): + id = node.getAttribute('id') + autogenargs = '' + makeargs = '' + supports_non_srcdir_builds = True + autogen_sh = 'autogen.sh' + makefile = 'Makefile' + if node.hasAttribute('autogenargs'): + autogenargs = node.getAttribute('autogenargs') + if node.hasAttribute('makeargs'): + makeargs = node.getAttribute('makeargs') + if node.hasAttribute('supports-non-srcdir-builds'): + supports_non_srcdir_builds = \ + (node.getAttribute('supports-non-srcdir-builds') != 'no') + if node.hasAttribute('autogen-sh'): + autogen_sh = node.getAttribute('autogen-sh') + if node.hasAttribute('makefile'): + makefile = node.getAttribute('makefile') + + # override revision tag if requested. + autogenargs += ' ' + config.module_autogenargs.get(id, config.autogenargs) + makeargs += ' ' + config.module_makeargs.get(id, config.makeargs) + + dependencies, after = get_dependencies(node) + branch = get_branch(node, repositories, default_repo) + + return AutogenModule(id, branch, autogenargs, makeargs, + dependencies=dependencies, + after=after, + supports_non_srcdir_builds=supports_non_srcdir_builds, + autogen_sh=autogen_sh, + makefile=makefile) +register_module_type('autotools', parse_autotools) + + +# deprecated module types below: +def parse_cvsmodule(node, config, repositories, default_repo): + id = node.getAttribute('id') + module = None + revision = None + checkoutdir = None + autogenargs = '' + makeargs = '' + supports_non_srcdir_builds = True + if node.hasAttribute('module'): + module = node.getAttribute('module') + if node.hasAttribute('revision'): + revision = node.getAttribute('revision') + if node.hasAttribute('checkoutdir'): + checkoutdir = node.getAttribute('checkoutdir') + if node.hasAttribute('autogenargs'): + autogenargs = node.getAttribute('autogenargs') + if node.hasAttribute('makeargs'): + makeargs = node.getAttribute('makeargs') + if node.hasAttribute('supports-non-srcdir-builds'): + supports_non_srcdir_builds = \ + (node.getAttribute('supports-non-srcdir-builds') != 'no') + + if not id: + id = checkoutdir or module + + # override revision tag if requested. + autogenargs += ' ' + config.module_autogenargs.get(id, config.autogenargs) + makeargs += ' ' + config.module_makeargs.get(id, config.makeargs) + + dependencies, after = get_dependencies(node) + + for attrname in ['cvsroot', 'root']: + if node.hasAttribute(attrname): + try: + repo = repositories[node.getAttribute(attrname)] + break + except KeyError: + raise FatalError('Repository=%s not found for module id=%s. ' + 'Possible repositories are %s' + % (node.getAttribute(attrname), + node.getAttribute('id'), repositories)) + else: + repo = repositories.get(default_repo, None) + branch = repo.branch(id, module=module, checkoutdir=checkoutdir, + revision=revision) + + return AutogenModule(id, branch, autogenargs, makeargs, + dependencies=dependencies, + after=after, + supports_non_srcdir_builds=supports_non_srcdir_builds) +register_module_type('cvsmodule', parse_cvsmodule) + +def parse_svnmodule(node, config, repositories, default_repo): + id = node.getAttribute('id') + module = None + checkoutdir = None + autogenargs = '' + makeargs = '' + supports_non_srcdir_builds = True + if node.hasAttribute('module'): + module = node.getAttribute('module') + if node.hasAttribute('checkoutdir'): + checkoutdir = node.getAttribute('checkoutdir') + if node.hasAttribute('autogenargs'): + autogenargs = node.getAttribute('autogenargs') + if node.hasAttribute('makeargs'): + makeargs = node.getAttribute('makeargs') + if node.hasAttribute('supports-non-srcdir-builds'): + supports_non_srcdir_builds = \ + (node.getAttribute('supports-non-srcdir-builds') != 'no') + + if not id: + id = checkoutdir or os.path.basename(module) + + # override revision tag if requested. + autogenargs += ' ' + config.module_autogenargs.get(id, config.autogenargs) + makeargs += ' ' + config.module_makeargs.get(id, config.makeargs) + + dependencies, after = get_dependencies(node) + + if node.hasAttribute('root'): + repo = repositories[node.getAttribute('root')] + else: + repo = repositories.get(default_repo, None) + branch = repo.branch(id, module=module, checkoutdir=checkoutdir) + + return AutogenModule(id, branch, autogenargs, makeargs, + dependencies=dependencies, + after=after, + supports_non_srcdir_builds=supports_non_srcdir_builds) +register_module_type('svnmodule', parse_svnmodule) + +def parse_archmodule(node, config, repositories, default_repo): + id = node.getAttribute('id') + version = None + checkoutdir = None + autogenargs = '' + makeargs = '' + supports_non_srcdir_builds = True + if node.hasAttribute('version'): + version = node.getAttribute('version') + if node.hasAttribute('checkoutdir'): + checkoutdir = node.getAttribute('checkoutdir') + if node.hasAttribute('autogenargs'): + autogenargs = node.getAttribute('autogenargs') + if node.hasAttribute('makeargs'): + makeargs = node.getAttribute('makeargs') + if node.hasAttribute('supports-non-srcdir-builds'): + supports_non_srcdir_builds = \ + (node.getAttribute('supports-non-srcdir-builds') != 'no') + + if not id: + id = checkoutdir or version + + autogenargs += ' ' + config.module_autogenargs.get(id, config.autogenargs) + makeargs += ' ' + config.module_makeargs.get(id, makeargs) + + dependencies, after = get_dependencies(node) + + if node.hasAttribute('root'): + repo = repositories[node.getAttribute('root')] + else: + repo = repositories.get(default_repo, None) + branch = repo.branch(id, module=version, checkoutdir=checkoutdir) + + return AutogenModule(id, branch, autogenargs, makeargs, + dependencies=dependencies, + after=after, + supports_non_srcdir_builds=supports_non_srcdir_builds) +register_module_type('archmodule', parse_archmodule) diff --git a/build-scripts/jhbuild/jhbuild/modtypes/distutils.py b/build-scripts/jhbuild/jhbuild/modtypes/distutils.py new file mode 100644 index 0000000..6e1da79 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/distutils.py @@ -0,0 +1,137 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# distutils.py: Python distutils module type definitions. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type + +import os + +from jhbuild.errors import BuildStateError +from jhbuild.modtypes import \ + Package, get_dependencies, get_branch, register_module_type + +__all__ = [ 'DistutilsModule' ] + +class DistutilsModule(Package): + """Base type for modules that are distributed with a Python + Distutils style setup.py.""" + type = 'distutils' + + STATE_CHECKOUT = 'checkout' + STATE_FORCE_CHECKOUT = 'force_checkout' + STATE_BUILD = 'build' + STATE_INSTALL = 'install' + + def __init__(self, name, branch, + dependencies=[], after=[], + supports_non_srcdir_builds=True): + Package.__init__(self, name, dependencies, after) + self.branch = branch + self.supports_non_srcdir_builds = supports_non_srcdir_builds + + def get_srcdir(self, buildscript): + return self.branch.srcdir + + def get_builddir(self, buildscript): + if buildscript.config.buildroot and self.supports_non_srcdir_builds: + d = buildscript.config.builddir_pattern % ( + os.path.basename(self.get_srcdir(buildscript))) + return os.path.join(buildscript.config.buildroot, d) + else: + return self.get_srcdir(buildscript) + + def get_revision(self): + return self.branch.branchname + + def do_start(self, buildscript): + pass + do_start.next_state = STATE_CHECKOUT + do_start.error_states = [] + + def skip_checkout(self, buildscript, last_state): + # skip the checkout stage if the nonetwork flag is set + return buildscript.config.nonetwork + + def do_checkout(self, buildscript): + srcdir = self.get_srcdir(buildscript) + buildscript.set_action('Checking out', self) + self.branch.checkout(buildscript) + # did the checkout succeed? + if not os.path.exists(srcdir): + raise BuildStateError('source directory %s was not created' + % srcdir) + do_checkout.next_state = STATE_BUILD + do_checkout.error_states = [STATE_FORCE_CHECKOUT] + + def skip_force_checkout(self, buildscript, last_state): + return False + + def do_force_checkout(self, buildscript): + buildscript.set_action('Checking out', self) + self.branch.force_checkout(buildscript) + do_force_checkout.next_state = STATE_BUILD + do_force_checkout.error_states = [STATE_FORCE_CHECKOUT] + + def skip_build(self, buildscript, last_state): + return buildscript.config.nobuild + + def do_build(self, buildscript): + buildscript.set_action('Building', self) + srcdir = self.get_srcdir(buildscript) + builddir = self.get_builddir(buildscript) + python = os.environ.get('PYTHON', 'python') + cmd = [python, 'setup.py', 'build'] + if srcdir != builddir: + cmd.extend(['--build-base', builddir]) + buildscript.execute(cmd, cwd=srcdir) + do_build.next_state = STATE_INSTALL + do_build.error_states = [STATE_FORCE_CHECKOUT] + + def skip_install(self, buildscript, last_state): + return buildscript.config.nobuild + + def do_install(self, buildscript): + buildscript.set_action('Installing', self) + srcdir = self.get_srcdir(buildscript) + builddir = self.get_builddir(buildscript) + python = os.environ.get('PYTHON', 'python') + cmd = [python, 'setup.py'] + if srcdir != builddir: + cmd.extend(['build', '--build-base', builddir]) + cmd.extend(['install', '--prefix', buildscript.config.prefix]) + buildscript.execute(cmd, cwd=srcdir) + buildscript.packagedb.add(self.name, self.get_revision() or '') + do_install.next_state = Package.STATE_DONE + do_install.error_states = [] + + +def parse_distutils(node, config, repositories, default_repo): + id = node.getAttribute('id') + supports_non_srcdir_builds = True + + if node.hasAttribute('supports-non-srcdir-builds'): + supports_non_srcdir_builds = \ + (node.getAttribute('supports-non-srcdir-builds') != 'no') + dependencies, after = get_dependencies(node) + branch = get_branch(node, repositories, default_repo) + + return DistutilsModule(id, branch, + dependencies=dependencies, after=after, + supports_non_srcdir_builds=supports_non_srcdir_builds) +register_module_type('distutils', parse_distutils) + diff --git a/build-scripts/jhbuild/jhbuild/modtypes/gcjmodule.py b/build-scripts/jhbuild/jhbuild/modtypes/gcjmodule.py new file mode 100644 index 0000000..b42054d --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/gcjmodule.py @@ -0,0 +1,174 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2004 James Henstridge +# +# gcjmodule.py: module type definitions for the GNU Compiler for Java +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os + +import base +from jhbuild.utils import cvs + +class GCCCVSRoot(cvs.CVSRoot): + '''A class to handle CVS checkout and update operations in the GCC + tree.''' + + def getcheckoutdir(self, module, checkoutdir=None): + '''Override CVSRoot.getcheckoutdir to return GCJ''s top-level + directory, gcc.''' + return os.path.join(self.localroot, 'gcc') + + def checkout(self, buildscript, module, revision=None, date=None, + checkoutdir=None): + '''Override cvs.CVSRoot.checkout to check out a list of + modules instead of just one.''' + os.chdir(self.localroot) + cmd = 'cvs -z3 -q -d %s checkout -P ' % self.cvsroot + + if checkoutdir: + cmd += '-d %s ' % checkoutdir + + if revision: + cmd += '-r %s ' % revision + if date: + cmd += '-D "%s" ' % date + if not (revision or date): + cmd = cmd + '-A ' + + for updatemod in module.split(" "): + res = buildscript.execute(cmd + updatemod, 'cvs') + if res != 0: + break + + return res + + def update(self, buildscript, module, revision=None, date=None, + checkoutdir=None): + '''Override cvs.CVSRoot.update to use gcc_update in place of + "cvs update".''' + dir = self.getcheckoutdir(module, checkoutdir) + if not os.path.exists(dir): + return self.checkout(buildscript, 'gcc', + revision, date, checkoutdir) + + # gcc_update will not update the tree properly if a previous + # checkout attempt was aborted. Because gcc_update decides + # what to update based on the directories that are present in + # the top-level gcc directory, it is difficult to make the + # update process robust against checkout interruptions. + os.chdir(dir) + cmd = 'contrib/gcc_update --nostdflags -d -P ' + + if revision: + cmd += '-r %s ' % revision + if date: + cmd += '-D "%s" ' % date + if not (revision or date): + cmd = cmd + '-A ' + + return buildscript.execute(cmd, 'cvs') + +class GCJModule(base.CVSModule): + CVSRoot = GCCCVSRoot + def __init__(self, + cvsmodule, + checkoutdir=None, + revision=None, + autogenargs=None, + makeargs=None, + dependencies=[], + suggests=[], + cvsroot=None, + supports_non_srcdir_builds=True): + base.CVSModule.__init__(self, + cvsmodule, + checkoutdir=checkoutdir, + revision=revision, + autogenargs=autogenargs, + makeargs=makeargs, + dependencies=dependencies, + suggests=suggests, + cvsroot=cvsroot, + supports_non_srcdir_builds=supports_non_srcdir_builds) + + def get_srcdir(self, buildscript): + '''Override base.CVSModule.get_srcdir to return GCJ''s + top-level directory, gcc.''' + cvsroot = self.CVSRoot(self.cvsroot, + buildscript.config.checkoutroot) + + return cvsroot.getcheckoutdir(self.cvsmodule, + self.checkoutdir) + + def do_configure(self, buildscript): + '''Override base.CVSModule.do_configure to call configure + rather than autogen, and to have gcc install its tools in + gcj-bin rather than bin.''' + builddir = self.get_builddir(buildscript) + if buildscript.config.buildroot and not os.path.exists(builddir): + os.makedirs(builddir) + os.chdir(builddir) + buildscript.set_action('Configuring', self) + if buildscript.config.buildroot and self.supports_non_srcdir_builds: + cmd = self.get_srcdir(buildscript) + '/configure' + else: + cmd = './configure' + cmd += ' --prefix=%s' % buildscript.config.prefix + # Keep the installed gcc tools (gcc, g++, ...) out of the main + # JHBuild path. + cmd += ' --bindir=%s' % os.path.join(buildscript.config.prefix, 'gcj-bin') + if buildscript.config.use_lib64: + cmd += " --libdir='${exec_prefix}/lib64'" + cmd += ' %s' % self.autogenargs + if buildscript.config.makeclean: + nextstate = self.STATE_CLEAN + else: + nextstate = self.STATE_BUILD + if buildscript.execute(cmd) == 0: + return (nextstate, None, None) + else: + return (nextstate, 'could not configure module', + [self.STATE_FORCE_CHECKOUT]) + + def do_install(self, buildscript): + '''Override base.CVSModule.do_install to create a symbolic + link from gcj-bin to bin for gcj and gij. This prevents the + JHBuild-installed C and C++ compilers from overriding the + system compilers.''' + os.chdir(self.get_builddir(buildscript)) + buildscript.set_action('Installing', self) + cmd = '%s %s install' % (os.environ.get('MAKE', 'make'), self.makeargs) + error = None + if buildscript.execute(cmd) != 0: + error = 'could not make module' + else: + buildscript.packagedb.add(self.name, self.revision or '') + if not os.path.exists(os.path.join(buildscript.config.prefix, 'bin', 'gcj')): + os.symlink(os.path.join(buildscript.config.prefix, 'gcj-bin', 'gcj'), \ + os.path.join(buildscript.config.prefix, 'bin', 'gcj')) + if not os.path.exists(os.path.join(buildscript.config.prefix, 'bin', 'gij')): + os.symlink(os.path.join(buildscript.config.prefix, 'gcj-bin', 'gij'), \ + os.path.join(buildscript.config.prefix, 'bin', 'gij')) + if not os.path.exists(os.path.join(buildscript.config.prefix, 'bin', 'gcj-dbtool')): + os.symlink(os.path.join(buildscript.config.prefix, 'gcj-bin', 'gcj-dbtool'), \ + os.path.join(buildscript.config.prefix, 'bin', 'gcj-dbtool')) + return (self.STATE_DONE, error, []) + +def parse_gcjmodule(node, config, dependencies, suggests, cvsroot): + return base.parse_cvsmodule(node, config, dependencies, + suggests, cvsroot, CVSModule=GCJModule) + +base.register_module_type('gcjmodule', parse_gcjmodule) diff --git a/build-scripts/jhbuild/jhbuild/modtypes/gdbmodule.py b/build-scripts/jhbuild/jhbuild/modtypes/gdbmodule.py new file mode 100644 index 0000000..afa2f87 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/gdbmodule.py @@ -0,0 +1,124 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2004 James Henstridge +# +# gdbmodule.py: module type definitions for the GNU Debugger +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +import string + +import base +from jhbuild.utils import cvs + +class GDBCVSRoot(cvs.CVSRoot): + '''A class to handle CVS update operations in the GDB CVS + repository.''' + + def getcheckoutdir(self, module, checkoutdir=None): + '''Override CVSRoot.getcheckoutdir to return GDB''s top-level + directory, src.''' + return os.path.join(self.localroot, 'src') + + def update(self, buildscript, module, revision=None, date=None, + checkoutdir=None): + '''Override CVSRoot.update to remove the -d option to cvs + update. When run in GDB''s top-level directory, src, cvs + update -d will checkout all modules in the repository rather + than simply updating gdb and its requirements.''' + dir = self.getcheckoutdir(module, checkoutdir) + if not os.path.exists(dir): + return self.checkout(buildscript, module, + revision, date, checkoutdir) + + os.chdir(dir) + cmd = 'cvs -z3 -q -d %s update -P ' % self.cvsroot + + if revision: + cmd += '-r %s ' % revision + if date: + cmd += '-D "%s" ' % date + if not (revision or date): + cmd = cmd + '-A ' + + cmd += '.' + + return buildscript.execute(cmd, 'cvs') + +class GDBModule(base.CVSModule): + CVSRoot = GDBCVSRoot + def __init__(self, + cvsmodule, + checkoutdir=None, + revision=None, + autogenargs=None, + makeargs=None, + dependencies=[], + suggests=[], + cvsroot=None, + supports_non_srcdir_builds=True): + base.CVSModule.__init__(self, + cvsmodule, + checkoutdir=checkoutdir, + revision=revision, + autogenargs=autogenargs, + makeargs=makeargs, + dependencies=dependencies, + suggests=suggests, + cvsroot=cvsroot, + supports_non_srcdir_builds=supports_non_srcdir_builds) + + def get_srcdir(self, buildscript): + '''Override base.CVSModule.get_srcdir to return GDB''s + top-level directory, src.''' + cvsroot = self.CVSRoot(self.cvsroot, + buildscript.config.checkoutroot) + + return cvsroot.getcheckoutdir(self.cvsmodule, + self.checkoutdir) + + def do_configure(self, buildscript): + '''Override base.CVSModule.do_configure to call configure + rather than autogen. Also, GDB''s configure script only + accepts the --option=%s syntax; the build fails if --prefix %s + is used.''' + builddir = self.get_builddir(buildscript) + if buildscript.config.buildroot and not os.path.exists(builddir): + os.makedirs(builddir) + os.chdir(builddir) + buildscript.set_action('Configuring', self) + if buildscript.config.buildroot and self.supports_non_srcdir_builds: + cmd = self.get_srcdir(buildscript) + '/configure' + else: + cmd = './configure' + cmd += ' --prefix=%s' % buildscript.config.prefix + if buildscript.config.use_lib64: + cmd += " --libdir='${exec_prefix}/lib64'" + cmd += ' %s' % self.autogenargs + if buildscript.config.makeclean: + nextstate = self.STATE_CLEAN + else: + nextstate = self.STATE_BUILD + if buildscript.execute(cmd) == 0: + return (nextstate, None, None) + else: + return (nextstate, 'could not configure module', + [self.STATE_FORCE_CHECKOUT]) + +def parse_gdbmodule(node, config, dependencies, suggests, cvsroot): + return base.parse_cvsmodule(node, config, dependencies, + suggests, cvsroot, CVSModule=GDBModule) + +base.register_module_type('gdbmodule', parse_gdbmodule) diff --git a/build-scripts/jhbuild/jhbuild/modtypes/mesa.py b/build-scripts/jhbuild/jhbuild/modtypes/mesa.py new file mode 100644 index 0000000..2dcac0d --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/mesa.py @@ -0,0 +1,163 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# Copyright (C) 2006-2007 Eric Anholt +# +# perl.py: perl module type definitions. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type + +import os +import glob +import platform + +from jhbuild.errors import BuildStateError +from jhbuild.modtypes import \ + Package, get_dependencies, get_branch, register_module_type + +__all__ = [ 'MesaModule' ] + +class MesaModule(Package): + """Base type for building Mesa.""" + type = 'mesa' + + STATE_CHECKOUT = 'checkout' + STATE_FORCE_CHECKOUT = 'force_checkout' + STATE_BUILD = 'build' + STATE_INSTALL = 'install' + + def __init__(self, name, branch, makeargs='', + dependencies=[], after=[]): + Package.__init__(self, name, dependencies, after) + self.branch = branch + self.makeargs = makeargs + + def get_srcdir(self, buildscript): + return self.branch.srcdir + + def get_builddir(self, buildscript): + return self.get_srcdir(buildscript) + + def get_revision(self): + return self.branch.branchname + + def get_mesa_config(self): + uname = platform.uname(); + if uname[0] == 'FreeBSD': + if uname[4] == 'i386': + config = 'freebsd-dri-x86' + elif uname[4] == 'amd64': + config = 'freebsd-dri-amd64' + else: + config = 'freebsd-dri' + if uname[0] == 'Linux': + if uname[4] == 'i386': + config = 'linux-dri-x86' + elif uname[4] == 'x86_64': + config = 'linux-dri-x86_64' + else: + config = 'linux-dri' + return config + + def do_start(self, buildscript): + pass + do_start.next_state = STATE_CHECKOUT + do_start.error_states = [] + + def skip_checkout(self, buildscript, last_state): + # skip the checkout stage if the nonetwork flag is set + return buildscript.config.nonetwork + + def do_checkout(self, buildscript): + srcdir = self.get_srcdir(buildscript) + buildscript.set_action('Checking out', self) + self.branch.checkout(buildscript) + # did the checkout succeed? + if not os.path.exists(srcdir): + raise BuildStateError('source directory %s was not created' + % srcdir) + do_checkout.next_state = STATE_BUILD + do_checkout.error_states = [STATE_FORCE_CHECKOUT] + + def skip_force_checkout(self, buildscript, last_state): + return False + + def do_force_checkout(self, buildscript): + buildscript.set_action('Checking out', self) + self.branch.force_checkout(buildscript) + do_force_checkout.next_state = STATE_BUILD + do_force_checkout.error_states = [STATE_FORCE_CHECKOUT] + + def skip_build(self, buildscript, last_state): + return buildscript.config.nobuild + + def do_build(self, buildscript): + buildscript.set_action('Building', self) + builddir = self.get_builddir(buildscript) + make = os.environ.get('MAKE', 'make') + if (os.path.exists(builddir + '/configs/current')): + buildscript.execute([make], cwd=builddir) + else: + buildscript.execute([make, self.get_mesa_config()], cwd=builddir) + do_build.next_state = STATE_INSTALL + do_build.error_states = [STATE_FORCE_CHECKOUT] + + def skip_install(self, buildscript, last_state): + return buildscript.config.nobuild + + def do_install(self, buildscript): + buildscript.set_action('Installing', self) + builddir = self.get_builddir(buildscript) + prefix = buildscript.config.prefix + + buildscript.execute(['mkdir', '-p', + prefix + '/lib/dri'], + cwd=builddir) + for x in glob.glob(builddir + '/lib/libGL*'): + buildscript.execute(['cp', + x, + prefix + '/lib'], + cwd=builddir) + for x in glob.glob(builddir + '/lib/*_dri.so'): + buildscript.execute(['cp', + x, + prefix + '/lib/dri'], + cwd=builddir) + for x in glob.glob(builddir + '/include/GL/*.h'): + buildscript.execute(['cp', + x, + prefix + '/include/GL'], + cwd=builddir) + buildscript.packagedb.add(self.name, self.get_revision() or '') + do_install.next_state = Package.STATE_DONE + do_install.error_states = [] + + +def parse_mesa(node, config, repositories, default_repo): + id = node.getAttribute('id') + makeargs = '' + if node.hasAttribute('makeargs'): + makeargs = node.getAttribute('makeargs') + + # override revision tag if requested. + makeargs += ' ' + config.module_makeargs.get(id, config.makeargs) + + dependencies, after = get_dependencies(node) + branch = get_branch(node, repositories, default_repo) + + return MesaModule(id, branch, makeargs, + dependencies=dependencies, after=after) +register_module_type('mesa', parse_mesa) diff --git a/build-scripts/jhbuild/jhbuild/modtypes/mozillamodule.py b/build-scripts/jhbuild/jhbuild/modtypes/mozillamodule.py new file mode 100644 index 0000000..30cdf21 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/mozillamodule.py @@ -0,0 +1,187 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# Copyright (C) 2003-2004 Marco Pesenti Gritti +# +# mozillamodule.py: rules for building Mozilla +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type + +import os + +from jhbuild.modtypes import register_module_type, get_dependencies +from jhbuild.modtypes.autotools import AutogenModule +from jhbuild.versioncontrol import cvs +from jhbuild.errors import FatalError, BuildStateError + +class MozillaModule(AutogenModule): + def __init__(self, name, projects, revision, autogenargs='', + makeargs='', dependencies=[], after=[], repository=None): + AutogenModule.__init__(self, name, branch=None, + autogenargs=autogenargs, + makeargs=makeargs, + dependencies=dependencies, + after=after, + supports_non_srcdir_builds=False) + self.repository = repository + self.revision = revision + self.projects = projects + os.environ['MOZ_CO_PROJECT'] = projects + + def get_srcdir(self, buildscript): + return os.path.join(buildscript.config.checkoutroot, 'mozilla') + def get_revision(self): + return self.revision + + def get_mozilla_app(self): + if self.projects == 'browser': + return 'firefox' + elif self.projects == 'xulrunner': + return 'xulrunner' + else: + return 'mozilla' + + def get_mozilla_ver(self, buildscript): + if self.projects == 'browser': + filename = os.path.join(self.get_builddir(buildscript), + 'browser', 'config', 'version.txt') + else: + filename = os.path.join(self.get_builddir(buildscript), + 'config', 'milestone.txt') + fp = open(filename, 'r') + for line in fp.readlines(): + if line[0] not in ('#', '\0', '\n'): + return line.strip() + else: + raise FatalError('could not determine mozilla version') + + def checkout(self, buildscript): + buildscript.set_action('Checking out', self) + cmd = ['cvs', '-z3', '-q', '-d', self.repository.cvsroot, 'checkout'] + if self.revision: + cmd.extend(['-r', self.revision]) + else: + cmd.append('-A') + if buildscript.config.sticky_date: + cmd.extend(['-D', buildscript.config.sticky_date]) + cmd.append('mozilla/client.mk') + buildscript.execute(cmd, cwd=buildscript.config.checkoutroot) + + buildscript.execute(['make', '-f', 'client.mk', 'checkout'], + cwd=self.get_builddir(buildscript)) + + def do_checkout(self, buildscript): + checkoutdir = self.get_builddir(buildscript) + client_mk = os.path.join(checkoutdir, 'client.mk') + if not os.path.exists(client_mk) or \ + cvs.check_sticky_tag(client_mk) != self.revision: + self.checkout(buildscript) + else: + buildscript.set_action('Updating', self) + buildscript.execute(['make', '-f', 'client.mk', 'fast-update'], + cwd=checkoutdir) + + # did the checkout succeed? + if not os.path.exists(checkoutdir): + raise BuildStateError('source directory %s was not created' + % checkoutdir) + do_checkout.next_state = AutogenModule.STATE_CONFIGURE + do_checkout.error_states = [AutogenModule.STATE_FORCE_CHECKOUT] + + def do_force_checkout(self, buildscript): + self.checkout(buildscript) + do_force_checkout.next_state = AutogenModule.STATE_CONFIGURE + do_force_checkout.error_states = [AutogenModule.STATE_FORCE_CHECKOUT] + + def do_configure(self, buildscript): + checkoutdir = self.get_builddir(buildscript) + buildscript.set_action('Configuring', self) + if buildscript.config.use_lib64: + mozilla_path = '%s/lib64/%s-%s' \ + % (buildscript.config.prefix, + self.get_mozilla_app(), + self.get_mozilla_ver(buildscript)) + else: + mozilla_path = '%s/lib/%s-%s' \ + % (buildscript.config.prefix, + self.get_mozilla_app(), + self.get_mozilla_ver(buildscript)) + + cmd = './configure --prefix %s ' % buildscript.config.prefix + if buildscript.config.use_lib64: + cmd += " --libdir '${exec_prefix}/lib64'" + cmd += ' --with-default-mozilla-five-home=%s' % mozilla_path + cmd += ' %s' % self.autogenargs + + if self.projects: + cmd += ' --enable-application=%s' % self.projects + buildscript.execute(cmd, cwd=checkoutdir) + do_configure.next_state = AutogenModule.STATE_BUILD + do_configure.error_states = [AutogenModule.STATE_FORCE_CHECKOUT] + + def do_install(self, buildscript): + buildscript.set_action('Installing', self) + cmd = 'make %s %s install' % (buildscript.config.makeargs, + self.makeargs) + buildscript.execute(cmd, cwd=self.get_builddir(buildscript)) + nssdir = '%s/include/%s-%s/nss' % ( + buildscript.config.prefix, + self.get_mozilla_app(), + self.get_mozilla_ver(buildscript)) + if not os.path.exists(nssdir): + buildscript.execute(['mkdir', nssdir]) + + cmd = ['find', '%s/security/nss/lib/' % self.get_builddir(buildscript), + '-name', '*.h', '-type', 'f', '-exec', '/bin/cp', '{}', + '%s/' % nssdir, ';'] + buildscript.execute(cmd, cwd=self.get_builddir(buildscript)) + buildscript.packagedb.add(self.name, self.get_revision() or '') + do_install.next_state = AutogenModule.STATE_DONE + do_install.error_states = [] + +def parse_mozillamodule(node, config, repositories, default_repo): + name = node.getAttribute('id') + projects = node.getAttribute('projects') + revision = None + autogenargs = '' + makeargs = '' + dependencies = [] + if node.hasAttribute('revision'): + revision = node.getAttribute('revision') + if node.hasAttribute('autogenargs'): + autogenargs = node.getAttribute('autogenargs') + if node.hasAttribute('makeargs'): + makeargs = node.getAttribute('makeargs') + + # override revision tag if requested. + revision = config.branches.get(name, revision) + autogenargs += ' ' + config.module_autogenargs.get(name, + config.autogenargs) + makeargs += ' ' + config.module_makeargs.get(name, makeargs) + + dependencies, after = get_dependencies(node) + + for attrname in ['cvsroot', 'root']: + if node.hasAttribute(attrname): + repo = repositories[node.getAttribute(attrname)] + break + else: + repo = repositories.get(default_repo, None) + + return MozillaModule(name, projects, revision, autogenargs, makeargs, + dependencies, after, repo) + +register_module_type('mozillamodule', parse_mozillamodule) diff --git a/build-scripts/jhbuild/jhbuild/modtypes/perl.py b/build-scripts/jhbuild/jhbuild/modtypes/perl.py new file mode 100644 index 0000000..eda0dd0 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/perl.py @@ -0,0 +1,129 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# perl.py: perl module type definitions. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type + +import os + +from jhbuild.errors import BuildStateError +from jhbuild.modtypes import \ + Package, get_dependencies, get_branch, register_module_type + +__all__ = [ 'PerlModule' ] + +class PerlModule(Package): + """Base type for modules that are distributed with a Perl style + "Makefile.PL" Makefile.""" + type = 'perl' + + STATE_CHECKOUT = 'checkout' + STATE_FORCE_CHECKOUT = 'force_checkout' + STATE_BUILD = 'build' + STATE_INSTALL = 'install' + + def __init__(self, name, branch, makeargs='', + dependencies=[], after=[]): + Package.__init__(self, name, dependencies, after) + self.branch = branch + self.makeargs = makeargs + + def get_srcdir(self, buildscript): + return self.branch.srcdir + + def get_builddir(self, buildscript): + # does not support non-srcdir builds + return self.get_srcdir(buildscript) + + def get_revision(self): + return self.branch.branchname + + def do_start(self, buildscript): + pass + do_start.next_state = STATE_CHECKOUT + do_start.error_states = [] + + def skip_checkout(self, buildscript, last_state): + # skip the checkout stage if the nonetwork flag is set + return buildscript.config.nonetwork + + def do_checkout(self, buildscript): + srcdir = self.get_srcdir(buildscript) + buildscript.set_action('Checking out', self) + self.branch.checkout(buildscript) + # did the checkout succeed? + if not os.path.exists(srcdir): + raise BuildStateError('source directory %s was not created' + % srcdir) + do_checkout.next_state = STATE_BUILD + do_checkout.error_states = [STATE_FORCE_CHECKOUT] + + def skip_force_checkout(self, buildscript, last_state): + return False + + def do_force_checkout(self, buildscript): + buildscript.set_action('Checking out', self) + self.branch.force_checkout(buildscript) + do_force_checkout.next_state = STATE_BUILD + do_force_checkout.error_states = [STATE_FORCE_CHECKOUT] + + def skip_build(self, buildscript, last_state): + return buildscript.config.nobuild + + def do_build(self, buildscript): + buildscript.set_action('Building', self) + builddir = self.get_builddir(buildscript) + perl = os.environ.get('PERL', 'perl') + make = os.environ.get('MAKE', 'make') + buildscript.execute([perl, 'Makefile.PL', 'INSTALLDIRS=vendor'], + cwd=builddir) + buildscript.execute([make, 'LD_RUN_PATH='], cwd=builddir) + do_build.next_state = STATE_INSTALL + do_build.error_states = [STATE_FORCE_CHECKOUT] + + def skip_install(self, buildscript, last_state): + return buildscript.config.nobuild + + def do_install(self, buildscript): + buildscript.set_action('Installing', self) + builddir = self.get_builddir(buildscript) + make = os.environ.get('MAKE', 'make') + buildscript.execute([make, 'install', + 'PREFIX=%s' % buildscript.config.prefix], + cwd=builddir) + buildscript.packagedb.add(self.name, self.get_revision() or '') + do_install.next_state = Package.STATE_DONE + do_install.error_states = [] + + +def parse_perl(node, config, repositories, default_repo): + id = node.getAttribute('id') + makeargs = '' + if node.hasAttribute('makeargs'): + makeargs = node.getAttribute('makeargs') + + # override revision tag if requested. + makeargs += ' ' + config.module_makeargs.get(id, config.makeargs) + + dependencies, after = get_dependencies(node) + branch = get_branch(node, repositories, default_repo) + + return PerlModule(id, branch, makeargs, + dependencies=dependencies, after=after) +register_module_type('perl', parse_perl) + diff --git a/build-scripts/jhbuild/jhbuild/modtypes/tarball.py b/build-scripts/jhbuild/jhbuild/modtypes/tarball.py new file mode 100644 index 0000000..b5ed5d3 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/modtypes/tarball.py @@ -0,0 +1,269 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# tarball.py: rules for building tarballs +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type + +import os + +from jhbuild.errors import FatalError, CommandError, BuildStateError +from jhbuild.modtypes import Package, register_module_type, get_dependencies + +jhbuild_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), + '..', '..')) + +class Tarball(Package): + type = 'tarball' + STATE_DOWNLOAD = 'download' + STATE_UNPACK = 'unpack' + STATE_PATCH = 'patch' + STATE_CONFIGURE = 'configure' + STATE_BUILD = 'build' + STATE_INSTALL = 'install' + def __init__(self, name, version, source_url, source_size, source_md5=None, + patches=[], checkoutdir=None, autogenargs='', makeargs='', + dependencies=[], after=[], + supports_non_srcdir_builds=True): + Package.__init__(self, name, dependencies, after) + self.version = version + self.source_url = source_url + self.source_size = source_size + self.source_md5 = source_md5 + self.patches = patches + self.checkoutdir = checkoutdir + self.autogenargs = autogenargs + self.makeargs = makeargs + self.supports_non_srcdir_builds = supports_non_srcdir_builds + + def get_localfile(self, buildscript): + basename = os.path.basename(self.source_url) + if not basename: + raise FatalError('URL has no filename component: %s' + % self.source_url) + localfile = os.path.join(buildscript.config.tarballdir, basename) + return localfile + + def get_srcdir(self, buildscript): + if self.checkoutdir: + return os.path.join(buildscript.config.checkoutroot, + self.checkoutdir) + + localdir = os.path.join(buildscript.config.checkoutroot, + os.path.basename(self.source_url)) + # strip off packaging extension ... + if localdir.endswith('.tar.gz'): + localdir = localdir[:-7] + elif localdir.endswith('.tar.bz2'): + localdir = localdir[:-8] + elif localdir.endswith('.tgz'): + localdir = localdir[:-4] + return localdir + + def get_builddir(self, buildscript): + srcdir = self.get_srcdir(buildscript) + if buildscript.config.buildroot and \ + self.supports_non_srcdir_builds: + d = buildscript.config.builddir_pattern % os.path.basename(srcdir) + return os.path.join(buildscript.config.buildroot, d) + else: + return srcdir + + def get_revision(self): + return self.version + + def check_localfile(self, buildscript): + '''returns None if local copy of tarball is okay. Otherwise, + returns a string error message.''' + localfile = self.get_localfile(buildscript) + if not os.path.exists(localfile): + return 'file not downloaded' + if self.source_size: + local_size = os.stat(localfile)[6] + if local_size != self.source_size: + return 'downloaded file of incorrect size ' \ + '(expected %d, got %d)' % (self.source_size, local_size) + if self.source_md5: + import md5 + sum = md5.new() + fp = open(localfile, 'rb') + data = fp.read(4096) + while data: + sum.update(data) + data = fp.read(4096) + fp.close() + if sum.hexdigest() != self.source_md5: + return 'file MD5 sum incorrect (expected %s, got %s)' % \ + (self.source_md5, sum.hexdigest()) + + def do_start(self, buildscript): + # check if jhbuild previously built it ... + checkoutdir = self.get_builddir(buildscript) + if buildscript.packagedb.check(self.name, self.version): + return (self.STATE_DONE, None, None) + + return (self.STATE_DOWNLOAD, None, None) + + def do_download(self, buildscript): + localfile = self.get_localfile(buildscript) + if not os.path.exists(buildscript.config.tarballdir): + os.makedirs(buildscript.config.tarballdir) + if not buildscript.config.nonetwork: + if self.check_localfile(buildscript) is not None: + # don't have a local copy + buildscript.set_action('Downloading', self, action_target=self.source_url) + has_wget = not os.system('which wget > /dev/null') + if not has_wget: + has_curl = not os.system('which curl > /dev/null') + + if has_wget: + res = buildscript.execute( + ['wget', self.source_url, '-O', localfile]) + elif has_curl: + res = buildscript.execute( + ['curl', self.source_url, '-o', localfile]) + else: + raise FatalError("unable to find wget or curl") + + status = self.check_localfile(buildscript) + if status is not None: + raise BuildStateError(status) + do_download.next_state = STATE_UNPACK + do_download.error_states = [] + + def do_unpack(self, buildscript): + localfile = self.get_localfile(buildscript) + srcdir = self.get_srcdir(buildscript) + + buildscript.set_action('Unpacking', self) + if localfile.endswith('.bz2'): + buildscript.execute('bunzip2 -dc "%s" | tar xf -' % localfile, + cwd=buildscript.config.checkoutroot) + elif localfile.endswith('.gz'): + buildscript.execute('gunzip -dc "%s" | tar xf -' % localfile, + cwd=buildscript.config.checkoutroot) + else: + raise FatalError("don't know how to handle: %s" % localfile) + + if not os.path.exists(srcdir): + raise BuildStateError('could not unpack tarball') + do_unpack.next_state = STATE_PATCH + do_unpack.error_states = [] + + def do_patch(self, buildscript): + for (patch, patchstrip) in self.patches: + patchfile = os.path.join(jhbuild_directory, 'patches', patch) + buildscript.set_action('Applying Patch', self, action_target=patch) + try: + buildscript.execute('patch -p%d < "%s"' % (patchstrip, + patchfile), + cwd=self.get_srcdir(buildscript)) + except CommandError: + return (self.STATE_CONFIGURE, 'could not apply patch', []) + + if buildscript.config.nobuild: + return (self.STATE_DONE, None, None) + else: + return (self.STATE_CONFIGURE, None, None) + + def do_configure(self, buildscript): + builddir = self.get_builddir(buildscript) + if buildscript.config.buildroot and not os.path.exists(builddir): + os.makedirs(builddir) + buildscript.set_action('Configuring', self) + if buildscript.config.buildroot and self.supports_non_srcdir_builds: + cmd = self.get_srcdir(buildscript) + '/configure' + else: + cmd = './configure' + cmd += ' --prefix %s' % buildscript.config.prefix + if buildscript.config.use_lib64: + cmd += " --libdir '${exec_prefix}/lib64'" + cmd += ' %s' % self.autogenargs + buildscript.execute(cmd, cwd=builddir) + do_configure.next_state = STATE_BUILD + do_configure.error_states = [] + + def do_build(self, buildscript): + buildscript.set_action('Building', self) + cmd = '%s %s' % (os.environ.get('MAKE', 'make'), self.makeargs) + buildscript.execute(cmd, cwd=self.get_builddir(buildscript)) + do_build.next_state = STATE_INSTALL + do_build.error_states = [] + + def do_install(self, buildscript): + buildscript.set_action('Installing', self) + cmd = '%s %s install' % (os.environ.get('MAKE', 'make'), self.makeargs) + error = None + buildscript.execute(cmd, cwd=self.get_builddir(buildscript)) + buildscript.packagedb.add(self.name, self.version or '') + do_install.next_state = Package.STATE_DONE + do_install.error_states = [] + +def parse_tarball(node, config, repositories, default_repo): + name = node.getAttribute('id') + version = node.getAttribute('version') + source_url = None + source_size = None + source_md5 = None + patches = [] + checkoutdir = None + autogenargs = '' + makeargs = '' + supports_non_srcdir_builds = True + if node.hasAttribute('checkoutdir'): + checkoutdir = node.getAttribute('checkoutdir') + if node.hasAttribute('autogenargs'): + autogenargs = node.getAttribute('autogenargs') + if node.hasAttribute('makeargs'): + makeargs = node.getAttribute('makeargs') + if node.hasAttribute('supports-non-srcdir-builds'): + supports_non_srcdir_builds = \ + (node.getAttribute('supports-non-srcdir-builds') != 'no') + for childnode in node.childNodes: + if childnode.nodeType != childnode.ELEMENT_NODE: continue + if childnode.nodeName == 'source': + source_url = childnode.getAttribute('href') + if childnode.hasAttribute('size'): + source_size = int(childnode.getAttribute('size')) + if childnode.hasAttribute('md5sum'): + source_md5 = childnode.getAttribute('md5sum') + elif childnode.nodeName == 'patches': + for patch in childnode.childNodes: + if patch.nodeType != patch.ELEMENT_NODE: continue + if patch.nodeName != 'patch': continue + patchfile = patch.getAttribute('file') + if patch.hasAttribute('strip'): + patchstrip = int(patch.getAttribute('strip')) + else: + patchstrip = 0 + patches.append((patchfile, patchstrip)) + + autogenargs += ' ' + config.module_autogenargs.get(name, + config.autogenargs) + makeargs += ' ' + config.module_makeargs.get(name, makeargs) + + # for tarballs, don't ever pass --enable-maintainer-mode + autogenargs = autogenargs.replace('--enable-maintainer-mode', '') + + dependencies, after = get_dependencies(node) + + return Tarball(name, version, source_url, source_size, source_md5, + patches, checkoutdir, autogenargs, makeargs, + dependencies, after, + supports_non_srcdir_builds=supports_non_srcdir_builds) + +register_module_type('tarball', parse_tarball) diff --git a/build-scripts/jhbuild/jhbuild/moduleset.py b/build-scripts/jhbuild/jhbuild/moduleset.py new file mode 100644 index 0000000..a01b033 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/moduleset.py @@ -0,0 +1,247 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# moduleset.py: logic for running the build. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from __future__ import generators + +import os +import sys +import urlparse + +from jhbuild.errors import UsageError, FatalError + +try: + import xml.dom.minidom +except ImportError: + raise FatalError('Python xml packages are required but could not be found') + +from jhbuild import modtypes +from jhbuild.versioncontrol import get_repo_type +from jhbuild.utils import httpcache + +__all__ = [ 'load' ] + +class ModuleSet: + def __init__(self): + self.modules = {} + def add(self, module): + '''add a Module object to this set of modules''' + self.modules[module.name] = module + + # functions for handling dep expansion + def __expand_mod_list(self, modlist, skip): + '''expands a list of names to a list of Module objects. Expands + dependencies. Does not handle loops in deps''' #" + ret = [self.modules[modname] + for modname in modlist + if modname not in skip] + i = 0 + while i < len(ret): + depadd = [] + for depmod in [self.modules[modname] + for modname in ret[i].dependencies]: + if depmod not in ret[:i+1] and depmod.name not in skip: + depadd.append(depmod) + if depadd: + ret[i:i] = depadd + else: + i = i + 1 + i = 0 + while i < len(ret): + if ret[i] in ret[:i]: + del ret[i] + else: + i = i + 1 + return ret + + def get_module_list(self, seed, skip=[]): + '''gets a list of module objects (in correct dependency order) + needed to build the modules in the seed list''' #" + + if seed == 'all': seed = self.modules.keys() + try: + modules = [self.modules[mod] for mod in seed if mod not in skip] + except KeyError, e: + raise UsageError('module "%s" not found' % str(e)) + # expand dependencies + i = 0 + while i < len(modules): + depadd = [] + for modname in modules[i].dependencies: + if self.modules.has_key(modname): + depmod = self.modules[modname] + else: + raise UsageError('dependent module "%s" not found' + % modname) + if depmod not in modules[:i+1] and depmod.name not in skip: + depadd.append(depmod) + if depadd: + modules[i:i] = depadd + else: + i = i + 1 + # and now 'after' modules. + i = 0 + while i < len(modules): + depadd = [] + for modname in modules[i].dependencies + modules[i].after: + if self.modules.has_key(modname): + depmod = self.modules[modname] + else: + continue # don't care about unknown after modules + if depmod in modules and depmod not in modules[:i+1]: + depadd.append(depmod) + if depadd: + modules[i:i] = depadd + else: + i = i + 1 + # remove duplicates + ret = [] + for module in modules: + if module not in ret: + ret.append(module) + return ret + + def get_full_module_list(self, skip=[]): + return self.get_module_list(self.modules.keys(), skip=skip) + + def write_dot(self, modules=None, fp=sys.stdout): + from jhbuild.modtypes import MetaModule + from jhbuild.modtypes.autotools import AutogenModule + from jhbuild.modtypes.tarball import Tarball + + if modules is None: + modules = self.modules.keys() + inlist = {} + for module in modules: + inlist[module] = None + + fp.write('digraph "G" {\n' + ' fontsize = 8;\n' + ' ratio = auto;\n') + while modules: + modname = modules[0] + mod = self.modules[modname] + if isinstance(mod, AutogenModule): + label = mod.name + if mod.get_revision(): + label += '\\n(%s)' % mod.get_revision() + attrs = '[color="lightskyblue",style="filled",label="%s"]' % \ + label + elif isinstance(mod, MetaModule): + attrs = '[color="lightcoral",style="filled",' \ + 'label="%s"]' % mod.name + elif isinstance(mod, Tarball): + attrs = '[color="lightgoldenrod",style="filled",' \ + 'label="%s\\n%s"]' % (mod.name, mod.version) + fp.write(' "%s" %s;\n' % (modname, attrs)) + del modules[0] + + for dep in self.modules[modname].dependencies: + fp.write(' "%s" -> "%s";\n' % (modname, dep)) + if not inlist.has_key(dep): + modules.append(dep) + inlist[dep] = None + fp.write('}\n') + +def load(config, uri=None): + if uri is not None: + modulesets = [ uri ] + elif type(config.moduleset) == type([]): + modulesets = config.moduleset + else: + modulesets = [ config.moduleset ] + ms = ModuleSet() + for uri in modulesets: + if '/' not in uri: + uri = os.path.join(os.path.dirname(__file__), '..', 'modulesets', + uri + '.modules') + ms.modules.update(_parse_module_set(config, uri).modules) + return ms + +def _child_elements(parent): + for node in parent.childNodes: + if node.nodeType == node.ELEMENT_NODE: + yield node + +def _child_elements_matching(parent, names): + for node in parent.childNodes: + if node.nodeType == node.ELEMENT_NODE and node.nodeName in names: + yield node + +def _parse_module_set(config, uri): + try: + filename = httpcache.load(uri, nonetwork=config.nonetwork) + except Exception, e: + raise FatalError('could not download %s: %s' % (uri, str(e))) + document = xml.dom.minidom.parse(filename) + + assert document.documentElement.nodeName == 'moduleset' + moduleset = ModuleSet() + + # load up list of repositories + repositories = {} + default_repo = None + for node in _child_elements_matching( + document.documentElement, ['repository', 'cvsroot', 'svnroot', + 'arch-archive']): + name = node.getAttribute('name') + if node.getAttribute('default') == 'yes': + default_repo = name + if node.nodeName == 'repository': + repo_type = node.getAttribute('type') + repo = get_repo_type(repo_type) + kws = {} + for attr in repo.init_xml_attrs: + if node.hasAttribute(attr): + kws[attr.replace('-', '_')] = node.getAttribute(attr) + repo_class = get_repo_type(repo_type) + repositories[name] = repo_class(config, name, **kws) + if node.nodeName == 'cvsroot': + cvsroot = node.getAttribute('root') + if node.hasAttribute('password'): + password = node.getAttribute('password') + else: + password = None + repo_type = get_repo_type('cvs') + repositories[name] = repo_type(config, name, + cvsroot=cvsroot, password=password) + elif node.nodeName == 'svnroot': + svnroot = node.getAttribute('href') + repo_type = get_repo_type('svn') + repositories[name] = repo_type(config, name, href=svnroot) + elif node.nodeName == 'arch-archive': + archive_uri = node.getAttribute('href') + repo_type = get_repo_type('arch') + repositories[name] = repo_type(config, name, + archive=name, href=archive_uri) + + # and now module definitions + for node in _child_elements(document.documentElement): + if node.nodeName == 'include': + href = node.getAttribute('href') + inc_uri = urlparse.urljoin(uri, href) + inc_moduleset = _parse_module_set(config, inc_uri) + moduleset.modules.update(inc_moduleset.modules) + elif node.nodeName in ['repository', 'cvsroot', 'svnroot', + 'arch-archive']: + pass + else: + moduleset.add(modtypes.parse_xml_node(node, config, + repositories, default_repo)) + + return moduleset diff --git a/build-scripts/jhbuild/jhbuild/monkeypatch.py b/build-scripts/jhbuild/jhbuild/monkeypatch.py new file mode 100644 index 0000000..18d0ec9 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/monkeypatch.py @@ -0,0 +1,214 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# extras not found in old versions of Python + +from __future__ import generators + +import sys + +# Python < 2.2.1 lacks True and False constants +import __builtin__ +if not hasattr(__builtin__, 'True'): + __builtin__.True = (1 == 1) + __builtin__.False = (1 != 1) + +# Python < 2.3 lacks enumerate() builtin +if not hasattr(__builtin__, 'enumerate'): + def enumerate(iterable): + index = 0 + for item in iterable: + yield (index, item) + index += 1 + __builtin__.enumerate = enumerate + +# Python < 2.3 lacks optparse module +try: + import optparse +except ImportError: + from jhbuild.cut_n_paste import optparse + sys.modules['optparse'] = optparse + +# Python < 2.3 lacks locale.getpreferredencoding() function +import locale +if not hasattr(locale, 'getpreferredencoding'): + try: + locale.CODESET + except NameError: + # Fall back to parsing environment variables :-( + def getpreferredencoding(do_setlocale = True): + """Return the charset that the user is likely using, + by looking at environment variables.""" + return locale.getdefaultlocale()[1] + else: + def getpreferredencoding(do_setlocale = True): + """Return the charset that the user is likely using, + according to the system configuration.""" + if do_setlocale: + oldloc = locale.setlocale(locale.LC_CTYPE) + locale.setlocale(locale.LC_CTYPE, "") + result = locale.nl_langinfo(locale.CODESET) + locale.setlocale(locale.LC_CTYPE, oldloc) + return result + else: + return locale.nl_langinfo(locale.CODESET) + +# Python < 2.4 lacks reversed() builtin +if not hasattr(__builtin__, 'reversed'): + def reversed(l): + l = list(l) + l.reverse() + return iter(l) + __builtin__.reversed = reversed + +# Python < 2.4 lacks string.Template class +import string +if not hasattr(string, 'Template'): + import re as _re + + class _multimap: + """Helper class for combining multiple mappings. + + Used by .{safe_,}substitute() to combine the mapping and keyword + arguments. + """ + def __init__(self, primary, secondary): + self._primary = primary + self._secondary = secondary + + def __getitem__(self, key): + try: + return self._primary[key] + except KeyError: + return self._secondary[key] + + + class _TemplateMetaclass(type): + pattern = r""" + %(delim)s(?: + (?P<escaped>%(delim)s) | # Escape sequence of two delimiters + (?P<named>%(id)s) | # delimiter and a Python identifier + {(?P<braced>%(id)s)} | # delimiter and a braced identifier + (?P<invalid>) # Other ill-formed delimiter exprs + ) + """ + + def __init__(cls, name, bases, dct): + super(_TemplateMetaclass, cls).__init__(name, bases, dct) + if 'pattern' in dct: + pattern = cls.pattern + else: + pattern = _TemplateMetaclass.pattern % { + 'delim' : _re.escape(cls.delimiter), + 'id' : cls.idpattern, + } + cls.pattern = _re.compile(pattern, _re.IGNORECASE | _re.VERBOSE) + + + class Template: + """A string class for supporting $-substitutions.""" + __metaclass__ = _TemplateMetaclass + __module__ = 'string' + + delimiter = '$' + idpattern = r'[_a-z][_a-z0-9]*' + + def __init__(self, template): + self.template = template + + # Search for $$, $identifier, ${identifier}, and any bare $'s + + def _invalid(self, mo): + i = mo.start('invalid') + lines = self.template[:i].splitlines(True) + if not lines: + colno = 1 + lineno = 1 + else: + colno = i - len(''.join(lines[:-1])) + lineno = len(lines) + raise ValueError('Invalid placeholder in string: line %d, col %d' % + (lineno, colno)) + + def substitute(self, *args, **kws): + if len(args) > 1: + raise TypeError('Too many positional arguments') + if not args: + mapping = kws + elif kws: + mapping = _multimap(kws, args[0]) + else: + mapping = args[0] + # Helper function for .sub() + def convert(mo): + # Check the most common path first. + named = mo.group('named') or mo.group('braced') + if named is not None: + val = mapping[named] + # We use this idiom instead of str() because the latter will + # fail if val is a Unicode containing non-ASCII characters. + return '%s' % val + if mo.group('escaped') is not None: + return self.delimiter + if mo.group('invalid') is not None: + self._invalid(mo) + raise ValueError('Unrecognized named group in pattern', + self.pattern) + return self.pattern.sub(convert, self.template) + + def safe_substitute(self, *args, **kws): + if len(args) > 1: + raise TypeError('Too many positional arguments') + if not args: + mapping = kws + elif kws: + mapping = _multimap(kws, args[0]) + else: + mapping = args[0] + # Helper function for .sub() + def convert(mo): + named = mo.group('named') + if named is not None: + try: + # We use this idiom instead of str() because the latter + # will fail if val is a Unicode containing non-ASCII + return '%s' % mapping[named] + except KeyError: + return self.delimiter + named + braced = mo.group('braced') + if braced is not None: + try: + return '%s' % mapping[braced] + except KeyError: + return self.delimiter + '{' + braced + '}' + if mo.group('escaped') is not None: + return self.delimiter + if mo.group('invalid') is not None: + return self.delimiter + raise ValueError('Unrecognized named group in pattern', + self.pattern) + return self.pattern.sub(convert, self.template) + + string.Template = Template + +# Python < 2.4 lacks subprocess module +try: + import subprocess +except ImportError: + from jhbuild.cut_n_paste import subprocess + sys.modules['subprocess'] = subprocess + diff --git a/build-scripts/jhbuild/jhbuild/utils/.cvsignore b/build-scripts/jhbuild/jhbuild/utils/.cvsignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/utils/.cvsignore @@ -0,0 +1 @@ +*.pyc diff --git a/build-scripts/jhbuild/jhbuild/utils/__init__.py b/build-scripts/jhbuild/jhbuild/utils/__init__.py new file mode 100644 index 0000000..331710a --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/utils/__init__.py @@ -0,0 +1,18 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2004 James Henstridge +# +# __init__.py: module for miscelaneous utility functions +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA diff --git a/build-scripts/jhbuild/jhbuild/utils/cmds.py b/build-scripts/jhbuild/jhbuild/utils/cmds.py new file mode 100644 index 0000000..b216ff5 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/utils/cmds.py @@ -0,0 +1,201 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# cmds.py: utilities for running commands and examining their output +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +import select +import subprocess +from signal import SIGINT +from jhbuild.errors import CommandError + +def get_output(cmd, cwd=None, extra_env=None): + '''Return the output (stdout and stderr) from the command. + + If the extra_env dictionary is not empty, then it is used to + update the environment in the child process. + + Raises CommandError if the command exited abnormally or had a non-zero + error code. + ''' + kws = {} + if isinstance(cmd, (str, unicode)): + kws['shell'] = True + if cwd is not None: + kws['cwd'] = cwd + if extra_env is not None: + kws['env'] = os.environ.copy() + kws['env'].update(extra_env) + try: + p = subprocess.Popen(cmd, + close_fds=True, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + **kws) + except OSError, e: + raise CommandError(str(e)) + stdout, stderr = p.communicate() + if p.returncode != 0: + raise CommandError('Error running %s' % cmd, p.returncode) + return stdout + +class Pipeline(subprocess.Popen): + '''A class that wraps a sequence of subprocess.Popen() objects + connected together in a pipeline. + + Note that if stderr=subprocess.STDOUT, the stderr of intermediate + children is not passed to the stdin of the next child. Instead, + it is mixed in with the stdout of the final child. + ''' + def __init__(self, commands, bufsize=0, + stdin=None, stdout=None, stderr=None, + cwd=None, env=None, universal_newlines=False): + '''Commands is a list of argument lists to invoke''' + self.universal_newlines = universal_newlines + if universal_newlines: + readmode = 'rU' + else: + readmode = 'rb' + c2pwrite = None + errwrite = None + self.stdin = None + self.stdout = None + self.stderr = None + if stdout == subprocess.PIPE: + c2pread, c2pwrite = os.pipe() + stdout = c2pwrite + self.stdout = os.fdopen(c2pread, readmode, bufsize) + if stderr == subprocess.PIPE: + errread, errwrite = os.pipe() + stderr = errwrite + self.stderr = os.fdopen(errread, readmode, bufsize) + elif stderr == subprocess.STDOUT: + stderr = stdout + + self.children = [] + close_stdin = False + for index, cmd in enumerate(commands): + first_command = (index == 0) + more_commands = index + 1 < len(commands) + + if more_commands: + c2cread, c2cwrite = os.pipe() + else: + c2cwrite = stdout + + self.children.append( + subprocess.Popen(cmd, shell=isinstance(cmd, (str, unicode)), + bufsize=bufsize, close_fds=True, + cwd=cwd, env=env, + stdin=stdin, + stdout=c2cwrite, + stderr=stderr, + universal_newlines=universal_newlines) + ) + if close_stdin: + os.close(stdin) + close_stdin = False + if more_commands: + os.close(c2cwrite) + stdin = c2cread + close_stdin = True + if close_stdin: + os.close(stdin) + if c2pwrite: + os.close(c2pwrite) + if errwrite: + os.close(errwrite) + + self.stdin = self.children[0].stdin + self.returncode = None + + def poll(self): + for child in self.children: + returncode = child.poll() + if returncode is None: + break + else: + self.returncode = returncode + return self.returncode + + def wait(self): + for child in self.children: + returncode = child.wait() + self.returncode = returncode + return self.returncode + +def spawn_child(command, use_pipe=False, + cwd=None, env=None, + stdin=None, stdout=None, stderr=None): + if use_pipe: + p = Pipeline(command, cwd=cwd, env=env, + stdin=stdin, stdout=stdout, stderr=stderr) + else: + p = subprocess.Popen(command, shell=isinstance(command, (str,unicode)), + close_fds=True, cwd=cwd, env=env, + stdin=stdin, stdout=stdout, stderr=stderr) + return p + +def pprint_output(pipe, format_line): + '''Process the output of the subprocess and pass lines to the + format_line function for formatting. The first argument passed to + the format_line function is the line of text. The second argument + is True if the line was read from the stderr stream.''' + read_set = [] + if pipe.stdout: + read_set.append(pipe.stdout) + if pipe.stderr: + read_set.append(pipe.stderr) + + out_data = err_data = '' + try: + while read_set: + rlist, wlist, xlist = select.select(read_set, [], []) + + if pipe.stdout in rlist: + out_chunk = os.read(pipe.stdout.fileno(), 1024) + if out_chunk == '': + pipe.stdout.close() + read_set.remove(pipe.stdout) + out_data += out_chunk + while '\n' in out_data: + pos = out_data.find('\n') + format_line(out_data[:pos+1], False) + out_data = out_data[pos+1:] + + if pipe.stderr in rlist: + err_chunk = os.read(pipe.stderr.fileno(), 1024) + if err_chunk == '': + pipe.stderr.close() + read_set.remove(pipe.stderr) + err_data += err_chunk + while '\n' in err_data: + pos = err_data.find('\n') + format_line(err_data[:pos+1], True) + err_data = err_data[pos+1:] + + select.select([],[],[],.1) # give a little time for buffers to fill + except KeyboardInterrupt: + # interrupt received. Send SIGINT to child process. + try: + os.kill(pipe.pid, SIGINT) + except OSError: + # process might already be dead. + pass + + return pipe.wait() diff --git a/build-scripts/jhbuild/jhbuild/utils/httpcache.py b/build-scripts/jhbuild/jhbuild/utils/httpcache.py new file mode 100644 index 0000000..20c1b2d --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/utils/httpcache.py @@ -0,0 +1,230 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# httpcache.py: a simple HTTP cache +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +'''Very simple minded class that can be used to maintain a cache of files +downloaded from web servers. It is designed to reduce load on web servers, +and draws ideas from feedparser.py. Strategies include: + - If a resource has been checked in the last 6 hours, consider it current. + - support gzip transfer encoding. + - send If-Modified-Since and If-None-Match headers when validating a + resource to reduce downloads when the file has not changed. + - honour Expires headers returned by server. If no expiry time is + given, it defaults to 6 hours. +''' + +import os +import urllib2 +import urlparse +import time +import rfc822 +import StringIO +try: + import gzip +except ImportError: + gzip = None + +try: + import xml.dom.minidom +except ImportError: + raise SystemExit, 'Python xml packages are required but could not be found' + +def _parse_isotime(string): + if string[-1] != 'Z': + return time.mktime(time.strptime(string, '%Y-%m-%dT%H:%M:%S')) + tm = time.strptime(string, '%Y-%m-%dT%H:%M:%SZ') + return time.mktime(tm[:8] + (0,)) - time.timezone + +def _format_isotime(tm): + return time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(tm)) + +def _parse_date(date): + tm = rfc822.parsedate_tz(date) + if tm: + return rfc822.mktime_tz(tm) + return 0 + +class CacheEntry: + def __init__(self, uri, local, modified, etag, expires=0): + self.uri = uri + self.local = local + self.modified = modified + self.etag = etag + self.expires = expires + +class Cache: + cachedir = os.path.join(os.environ['HOME'], '.jhbuild', 'cache') + # default to a 6 hour expiry time. + default_age = 6 * 60 * 60 + + def __init__(self, cachedir=None): + if cachedir: + self.cachedir = cachedir + if not os.path.exists(self.cachedir): + os.makedirs(self.cachedir) + self.entries = {} + + def read_cache(self): + self.entries = {} + cindex = os.path.join(self.cachedir, 'index.xml') + try: + document = xml.dom.minidom.parse(cindex) + except: + return # treat like an empty cache + if document.documentElement.nodeName != 'cache': + document.unlink() + return # doesn't look like a cache + + for node in document.documentElement.childNodes: + if node.nodeType != node.ELEMENT_NODE: continue + if node.nodeName != 'entry': continue + uri = node.getAttribute('uri') + local = str(node.getAttribute('local')) + if node.hasAttribute('modified'): + modified = node.getAttribute('modified') + else: + modified = None + if node.hasAttribute('etag'): + etag = node.getAttribute('etag') + else: + etag = None + expires = _parse_isotime(node.getAttribute('expires')) + # only add to cache list if file actually exists. + if os.path.exists(os.path.join(self.cachedir, local)): + self.entries[uri] = CacheEntry(uri, local, modified, + etag, expires) + document.unlink() + + def write_cache(self): + cindex = os.path.join(self.cachedir, 'index.xml') + + + document = xml.dom.minidom.Document() + document.appendChild(document.createElement('cache')) + node = document.createTextNode('\n') + document.documentElement.appendChild(node) + for uri in self.entries.keys(): + entry = self.entries[uri] + node = document.createElement('entry') + node.setAttribute('uri', entry.uri) + node.setAttribute('local', entry.local) + if entry.modified: + node.setAttribute('modified', entry.modified) + if entry.etag: + node.setAttribute('etag', entry.etag) + node.setAttribute('expires', _format_isotime(entry.expires)) + document.documentElement.appendChild(node) + + node = document.createTextNode('\n') + document.documentElement.appendChild(node) + + document.writexml(open(cindex, 'w')) + document.unlink() + + def _make_filename(self, uri): + '''picks a unique name for a new entry in the cache. + Very simplistic.''' + # get the basename from the URI + parts = urlparse.urlparse(uri, allow_fragments=False) + base = parts[2].split('/')[-1] + if not base: base = 'index.html' + + is_unique = False + while not is_unique: + is_unique = True + for uri in self.entries.keys(): + if self.entries[uri].local == base: + is_unique = False + break + if not is_unique: + base = base + '-' + return base + + def load(self, uri, nonetwork=False): + '''Downloads the file associated with the URI, and returns a local + file name for contents.''' + # pass file URIs straight through -- no need to cache them + parts = urlparse.urlparse(uri) + if parts[0] in ('', 'file'): + return parts[2] + + now = time.time() + + # is the file cached and not expired? + self.read_cache() + entry = self.entries.get(uri) + if entry: + if (nonetwork or now <= entry.expires): + return os.path.join(self.cachedir, entry.local) + + if nonetwork: + raise RuntimeError('file not in cache, but not allowed ' + 'to check network') + + request = urllib2.Request(uri) + if gzip: + request.add_header('Accept-encoding', 'gzip') + if entry: + if entry.modified: + request.add_header('If-Modified-Since', entry.modified) + if entry.etag: + request.add_header('If-None-Match', entry.etag) + + try: + response = urllib2.urlopen(request) + + # get data, and gunzip it if it is encoded + data = response.read() + if gzip and response.headers.get('Content-Encoding', '') == 'gzip': + try: + data = gzip.GzipFile(fileobj=StringIO.StringIO(data)).read() + except: + data = '' + + expires = response.headers.get('Expires') + + # add new content to cache + entry = CacheEntry(uri, self._make_filename(uri), + response.headers.get('Last-Modified'), + response.headers.get('ETag')) + filename = os.path.join(self.cachedir, entry.local) + open(filename, 'wb').write(data) + except urllib2.HTTPError, e: + if e.code == 304: # not modified; update validated + expires = e.hdrs.get('Expires') + filename = os.path.join(self.cachedir, entry.local) + else: + raise + + # set expiry date + entry.expires = _parse_date(expires) + if entry.expires <= now: # ignore expiry times that have already passed + entry.expires = now + self.default_age + + # save cache + self.entries[uri] = entry + self.write_cache() + return filename + +_cache = None +def load(uri, nonetwork=False): + '''Downloads the file associated with the URI, and returns a local + file name for contents.''' + global _cache + if not _cache: _cache = Cache() + return _cache.load(uri, nonetwork=nonetwork) diff --git a/build-scripts/jhbuild/jhbuild/utils/packagedb.py b/build-scripts/jhbuild/jhbuild/utils/packagedb.py new file mode 100644 index 0000000..cbf4e80 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/utils/packagedb.py @@ -0,0 +1,97 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# packagedb.py - a registry of installed packages +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import time +try: + import xml.dom.minidom +except ImportError: + raise SystemExit, 'Python xml packages are required but could not be found' + +def _parse_isotime(string): + if string[-1] != 'Z': + return time.mktime(time.strptime(string, '%Y-%m-%dT%H:%M:%S')) + tm = time.strptime(string, '%Y-%m-%dT%H:%M:%SZ') + return time.mktime(tm[:8] + (0,)) - time.timezone + +def _format_isotime(tm): + return time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(tm)) + +class PackageDB: + def __init__(self, dbfile): + self.dbfile = dbfile + self._read_cache() + + def _read_cache(self): + self.entries = {} + try: + document = xml.dom.minidom.parse(self.dbfile) + except: + return # treat as empty cache + if document.documentElement.nodeName != 'packagedb': + document.unlink() + return # doesn't look like a cache + for node in document.documentElement.childNodes: + if node.nodeType != node.ELEMENT_NODE: continue + if node.nodeName != 'entry': continue + package = node.getAttribute('package') + version = node.getAttribute('version') + installed = _parse_isotime(node.getAttribute('installed')) + self.entries[package] = (version, installed) + document.unlink() + + def _write_cache(self): + document = xml.dom.minidom.Document() + document.appendChild(document.createElement('packagedb')) + node = document.createTextNode('\n') + document.documentElement.appendChild(node) + for package in self.entries: + version, installed = self.entries[package] + node = document.createElement('entry') + node.setAttribute('package', package) + node.setAttribute('version', version) + node.setAttribute('installed', _format_isotime(installed)) + document.documentElement.appendChild(node) + + node = document.createTextNode('\n') + document.documentElement.appendChild(node) + + document.writexml(open(self.dbfile, 'w')) + document.unlink() + + def add(self, package, version): + '''Add a module to the install cache.''' + now = time.time() + self.entries[package] = (version, now) + self._write_cache() + + def check(self, package, version=None): + '''Check whether a particular module is installed.''' + if not self.entries.has_key(package): return False + p_version, p_installed = self.entries[package] + if version: + if version != p_version: return False + return True + + def installdate(self, package, version=None): + '''Get the install date for a particular module.''' + if not self.entries.has_key(package): return None + p_version, p_installed = self.entries[package] + if version: + if version != p_version: return none + return p_installed diff --git a/build-scripts/jhbuild/jhbuild/utils/trayicon.py b/build-scripts/jhbuild/jhbuild/utils/trayicon.py new file mode 100644 index 0000000..d1ce142 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/utils/trayicon.py @@ -0,0 +1,70 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# trayicon.py: simple wrapper for zenity based tray icons +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import sys +import os +import subprocess + +class TrayIcon: + def __init__(self): + self._run_zenity() + def _run_zenity(self): + # run zenity with stdout and stderr directed to /dev/null + def preexec(): + null = open('/dev/null', 'w') + try: + os.dup2(null.fileno(), sys.stdout.fileno()) + os.dup2(null.fileno(), sys.stderr.fileno()) + finally: + null.close() + os.setsid() + try: + self.proc = subprocess.Popen(['zenity', '--notification', + '--listen'], + close_fds=True, + preexec_fn=preexec, + stdin=subprocess.PIPE) + except (OSError, IOError): + self.proc = None + + def close(self): + status = None + if self.proc: + self.proc.stdin.close() + status = self.proc.wait() + self.proc = None + return status + + def _send_cmd(self, cmd): + if not self.proc: return + try: + self.proc.stdin.write(cmd) + self.proc.stdin.flush() + except (IOError, OSError), err: + self.close() + def set_icon(self, icon): + self._send_cmd('icon: %s\n' % icon) + def set_tooltip(self, tooltip): + self._send_cmd('tooltip: %s\n' % tooltip) + def set_visible(self, visible): + if visible: + visible = 'true' + else: + visible = 'false' + self._send_cmd('visible: %s\n' % visible) diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/.cvsignore b/build-scripts/jhbuild/jhbuild/versioncontrol/.cvsignore new file mode 100644 index 0000000..5da7ef5 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/.cvsignore @@ -0,0 +1,3 @@ +*.pyc +*.pyo + diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/__init__.py b/build-scripts/jhbuild/jhbuild/versioncontrol/__init__.py new file mode 100644 index 0000000..4a5bc01 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/__init__.py @@ -0,0 +1,103 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# __init__.py: infrastructure for plugging in version control systems +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__all__ = [ + 'Repository', + 'Branch', + 'register_repo_type', + 'get_repo_type', + ] + +__metaclass__ = type + +from jhbuild.errors import FatalError, BuildStateError + + +class Repository: + """An abstract class representing a collection of modules.""" + + # Attributes expected on the <repository> element for this type. + # String values are passed as keyword arguments to the constructor. + init_xml_attrs = [] + + def __init__(self, config, name): + self.config = config + self.name = name + + # Attributes expected on the <branch> element for this type. + # String values are passed as keyword arguments to the branch() method. + branch_xml_attrs = [] + + def branch(self, name, **kwargs): + """Returns a Branch object based on the given arguments.""" + raise NotImplementedError + + def branch_from_xml(self, name, branchnode): + kws = {} + for attr in self.branch_xml_attrs: + if branchnode.hasAttribute(attr): + kws[attr.replace('-', '_')] = branchnode.getAttribute(attr) + return self.branch(name, **kws) + + +class Branch: + """An abstract class representing a branch in a repository.""" + + def __init__(self): + raise NotImplementedError + + def srcdir(self): + """Return the directory where this branch is checked out.""" + raise NotImplementedError + srcdir = property(srcdir) + + def branchname(self): + """Return an identifier for this branch or None.""" + raise NotImplementedError + branchname = property(branchname) + + def checkout(self, buildscript): + """Checkout or update the given source directory. + + May raise CommandError or BuildStateError if a problem occurrs. + """ + raise NotImplementedError + + def force_checkout(self, buildscript): + """A more agressive version of checkout().""" + raise BuildStateError('force_checkout not implemented') + + def tree_id(self): + """A string identifier for the state of the working tree.""" + raise NotImplementedError + + +_repo_types = {} +def register_repo_type(name, repo_class): + _repo_types[name] = repo_class + +def get_repo_type(name): + if name not in _repo_types: + try: + __import__('jhbuild.versioncontrol.%s' % name) + except ImportError: + pass + if name not in _repo_types: + raise FatalError('unknown repository type %s' % name) + return _repo_types[name] diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/arch.py b/build-scripts/jhbuild/jhbuild/versioncontrol/arch.py new file mode 100644 index 0000000..5f2b8bb --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/arch.py @@ -0,0 +1,171 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# arch.py: some code to handle various arch operations +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__metaclass__ = type +__all__ = [] + +import os, sys + +from jhbuild.errors import FatalError, BuildStateError +from jhbuild.utils.cmds import get_output +from jhbuild.versioncontrol import Repository, Branch, register_repo_type + +def is_registered(archive): + location = os.path.join(os.environ['HOME'], '.arch-params', + '=locations', archive) + return os.path.exists(location) + +def register(archive, uri): + if not is_registered(archive): + assert uri is not None, 'can not register archive without uri' + res = os.system('baz register-archive %s' % uri) + if res != 0: + raise jhbuild.errors.FatalError('could not register archive %s' + % archive) + +def get_version(directory): + '''Gets the tree version for a particular directory.''' + data = get_output(['baz', 'tree-version', '-d', directory]) + archive, version = data.strip().split('/') + return archive, version + +def split_name(version): + '''Returns an (archive, version) pair for the string passed in. If + no archive is mentioned, use the default archive name.''' + if '/' in version: + (archive, version) = version.split('/') + else: + # no archive specified -- use default. + archive = open(os.path.join(os.environ['HOME'], '.arch-params', + '=default-archive'), 'r').read().strip() + return (archive, version) + + +class ArchRepository(Repository): + """A class representing an Arch archive.""" + + init_xml_attrs = ['archive', 'href'] + + def __init__(self, config, name, archive, href=None): + Repository.__init__(self, config, name) + self.archive = archive + self.href = href + + def _ensure_registered(self): + # has the archive been registered? + location = os.path.join(os.environ['HOME'], '.arch-params', + '=locations', self.archive) + is_registered = os.path.exists(location) + if is_registered: + return + + if self.href is None: + raise BuildStateError('archive %s not registered' % self.href) + res = os.system('baz register-archive %s' % self.href) + if res != 0: + raise BuildStateError('could not register archive %s' + % self.archive) + + branch_xml_attrs = ['module', 'checkoutdir'] + + def branch(self, name, module=None, checkoutdir=None): + if name in self.config.branches: + module = self.config.branches[module] + else: + if module is None: + module = name + module = '%s/%s' % (self.archive, module) + return ArchBranch(self, module, checkoutdir) + + +class ArchBranch(Branch): + """A class representing an Arch branch""" + + def __init__(self, repository, module, checkoutdir): + self.repository = repository + self.config = repository.config + self.module = module + self.checkoutdir = checkoutdir + + def srcdir(self): + if self.checkoutdir: + return os.path.join(self.config.checkoutroot, self.checkoutdir) + else: + return os.path.join(self.config.checkoutroot, + os.path.basename(self.module)) + srcdir = property(srcdir) + + def branchname(self): + return self.module + branchname = property(branchname) + + def _checkout(self, buildscript): + # if the archive name hasn't been overridden, ensure that it + # has been registered. + archive, version = split_name(self.module) + if archive == self.repository.archive: + self.repository._ensure_registered() + + cmd = ['baz', 'get', self.module] + + if checkoutdir: + cmd.append(checkoutdir) + + if date: + raise BuildStageError('date based checkout not yet supported\n') + + buildscript.execute(cmd, 'arch', cwd=self.config.checkoutroot) + + def _update(self, buildscript): + '''Perform a "baz update" (or possibly a checkout)''' + # if the archive name hasn't been overridden, ensure that it + # has been registered. + archive, version = split_name(self.module) + if archive == self.repository.archive: + self.repository._ensure_registered() + + if date: + raise BuildStageError('date based checkout not yet supported\n') + + archive, version = split_name(self.module) + # how do you move a working copy to another branch? + wc_archive, wc_version = get_version(self.srcdir) + if (wc_archive, wc_version) != (archive, version): + cmd = ['baz', 'switch', self.module] + else: + cmd = ['baz', 'update'] + + buildscript.execute(cmd, 'arch', cwd=self.srcdir) + + def checkout(self, buildscript): + if os.path.exists(self.srcdir): + self._update(buildscript) + else: + self._checkout(buildscript) + + def force_checkout(self, buildscript): + self._checkout(buildscript) + + def tree_id(self): + data = get_output(['baz', 'tree-id', '-d', self.srcdir]) + return data.strip() + + + +register_repo_type('arch', ArchRepository) diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/bzr.py b/build-scripts/jhbuild/jhbuild/versioncontrol/bzr.py new file mode 100644 index 0000000..f049b5f --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/bzr.py @@ -0,0 +1,119 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# bzr.py: some code to handle various bazaar-ng operations +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__all__ = [] +__metaclass__ = type + +import os +import errno +import urlparse + +from jhbuild.errors import FatalError +from jhbuild.versioncontrol import Repository, Branch, register_repo_type + +# Make sure that the urlparse module considers sftp:// +# scheme to be netloc aware and set to allow relative URIs. +if 'sftp' not in urlparse.uses_netloc: + urlparse.uses_netloc.append('sftp') +if 'sftp' not in urlparse.uses_relative: + urlparse.uses_relative.append('sftp') + + +class BzrRepository(Repository): + """A class representing a Bzr repository. + + Note that this is just the parent directory for a bunch of darcs + branches, making it easy to switch to a mirror URI. + + It can be a parent of a number of Bzr repositories or branches. + """ + + init_xml_attrs = ['href'] + + def __init__(self, config, name, href): + Repository.__init__(self, config, name) + # allow user to adjust location of branch. + self.href = config.repos.get(name, href) + + branch_xml_attrs = ['module', 'checkoutdir'] + + def branch(self, name, module=None, checkoutdir=None): + if name in self.config.branches: + module = self.config.branches[module] + else: + if module is None: + module = name + module = urlparse.urljoin(self.href, module) + return BzrBranch(self, module, checkoutdir) + + +class BzrBranch(Branch): + """A class representing a Darcs branch.""" + + def __init__(self, repository, module, checkoutdir): + self.repository = repository + self.config = repository.config + self.module = module + self.checkoutdir = checkoutdir + + def srcdir(self): + if self.checkoutdir: + return os.path.join(self.config.checkoutroot, self.checkoutdir) + else: + return os.path.join(self.config.checkoutroot, + os.path.basename(self.module)) + srcdir = property(srcdir) + + def branchname(self): + return None + branchname = property(branchname) + + def _checkout(self, buildscript): + cmd = ['bzr', 'branch', self.module] + if self.checkoutdir: + cmd.append(self.checkoutdir) + + if self.config.sticky_date: + raise FatalError('date based checkout not yet supported\n') + + buildscript.execute(cmd, 'bzr', cwd=self.config.checkoutroot) + + def _update(self, buildscript, overwrite=False): + if self.config.sticky_date: + raise FatalError('date based checkout not yet supported\n') + cmd = ['bzr', 'pull'] + if overwrite: + cmd.append('--overwrite') + cmd.append(self.module) + buildscript.execute(cmd, 'bzr', cwd=self.srcdir) + + def checkout(self, buildscript): + if os.path.exists(self.srcdir): + self._update(buildscript) + else: + self._checkout(buildscript) + + def force_checkout(self, buildscript): + if os.path.exists(self.srcdir): + self._update(buildscript, overwrite=True) + else: + self._checkout(buildscript) + + +register_repo_type('bzr', BzrRepository) diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/cvs.py b/build-scripts/jhbuild/jhbuild/versioncontrol/cvs.py new file mode 100644 index 0000000..e7dbc02 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/cvs.py @@ -0,0 +1,279 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# cvs.py: some code to handle various cvs operations +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__all__ = [ + 'CVSRepository', + 'login', + 'get_sticky_tag', + ] +__metaclass__ = type + +import sys +import os +import md5 + + +from jhbuild.errors import BuildStateError +from jhbuild.versioncontrol import Repository, Branch, register_repo_type + + +# table used to scramble passwords in ~/.cvspass files +_shifts = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 114,120, 53, 79, 96,109, 72,108, 70, 64, 76, 67,116, 74, 68, 87, + 111, 52, 75,119, 49, 34, 82, 81, 95, 65,112, 86,118,110,122,105, + 41, 57, 83, 43, 46,102, 40, 89, 38,103, 45, 50, 42,123, 91, 35, + 125, 55, 54, 66,124,126, 59, 47, 92, 71,115, 78, 88,107,106, 56, + 36,121,117,104,101,100, 69, 73, 99, 63, 94, 93, 39, 37, 61, 48, + 58,113, 32, 90, 44, 98, 60, 51, 33, 97, 62, 77, 84, 80, 85,223, + 225,216,187,166,229,189,222,188,141,249,148,200,184,136,248,190, + 199,170,181,204,138,232,218,183,255,234,220,247,213,203,226,193, + 174,172,228,252,217,201,131,230,197,211,145,238,161,179,160,212, + 207,221,254,173,202,146,224,151,140,196,205,130,135,133,143,246, + 192,159,244,239,185,168,215,144,139,165,180,157,147,186,214,176, + 227,231,219,169,175,156,206,198,129,164,150,210,154,177,134,127, + 182,128,158,208,162,132,167,209,149,241,153,251,237,236,171,195, + 243,233,253,240,194,250,191,155,142,137,245,235,163,242,178,152 +] + +def scramble(password): + return 'A' + ''.join([chr(_shifts[ord(ch)]) for ch in password]) +def descramble(password): + assert password[0] == 'A', 'unknown password format' + return ''.join([chr(_shifts[ord(ch)]) for ch in password[1:]]) + +def _canonicalise_cvsroot(cvsroot): + if not cvsroot.startswith(':pserver:'): return cvsroot + parts = cvsroot.split(':') + if parts[3].startswith('/'): + parts[3] = '2401' + parts[3] + return ':'.join(parts) + +def login(cvsroot, password=None): + if not cvsroot.startswith(':pserver:'): return + cvsroot = _canonicalise_cvsroot(cvsroot) + cvspass = os.path.join(os.environ['HOME'], '.cvspass') + + # check if the password has already been entered: + try: + fp = open(cvspass, 'r') + for line in fp.readlines(): + parts = line.split() + if not parts: + continue + if parts[0] == '/1': + root = parts[1] + else: + root = _canonicalise_cvsroot(parts[0]) + if root == cvsroot: + return + break + except IOError: + pass + # if we have a password, just write it directly to the .cvspass file + if password is not None: + fp = open(cvspass, 'a') + fp.write('/1 %s %s\n' % (cvsroot, scramble(password))) + fp.close() + else: + # call cvs login .. + if os.system('cvs -d %s login' % cvsroot) != 0: + sys.stderr.write('could not log into %s\n' % cvsroot) + sys.exit(1) + +def check_sticky_tag(filename): + dirname = os.path.dirname(filename) + basename = os.path.basename(filename) + entries_file = os.path.join(dirname, 'CVS', 'Entries') + fp = open(entries_file, 'r') + line = fp.readline() + while line: + parts = line.strip().split('/') + if parts[1] == basename: + # parts[5] is the tag for this file + if parts[5] == '': + return None + else: + return parts[5][1:] + line = fp.readline() + raise RuntimeError('%s is not managed by CVS' % filename) + +def check_root(dirname): + root_file = os.path.join(dirname, 'CVS', 'Root') + return open(root_file, 'r').read().strip() + +def _process_directory(directory, prefix, write): + if not (os.path.isdir(directory) and + os.path.isdir(os.path.join(directory, 'CVS'))): + return + + fp = open(os.path.join(directory, 'CVS', 'Root'), 'rb') + root = fp.read().strip() + fp.close() + fp = open(os.path.join(directory, 'CVS', 'Repository'), 'rb') + repository = fp.read().strip() + fp.close() + + write('===\n') + write('Directory: %s\n' % prefix) + write('Root: %s\n' % root) + write('Repository: %s\n' % repository) + write('\n') + + fp = open(os.path.join(directory, 'CVS', 'Entries'), 'rb') + subdirs = [] + filenames = [] + for line in fp: + parts = line.strip().split('/') + if parts[0] == 'D' and len(parts) >= 2: + subdirs.append(parts[1]) + if parts[0] == '' and len(parts) >= 3: + filenames.append((parts[1], parts[2])) + fp.close() + filenames.sort() + for name, rev in filenames: + if prefix: + name = '%s/%s' % (prefix, name) + write('%s %s\n' % (name, rev)) + write('\n') + subdirs.sort() + for name in subdirs: + if prefix: + name_prefix = '%s/%s' % (prefix, name) + else: + name_prefix = name + _process_directory(os.path.join(directory, name), name_prefix, write) + + + +class CVSRepository(Repository): + """A class used to work with a CVS repository""" + + init_xml_attrs = ['cvsroot', 'password'] + + def __init__(self, config, name, cvsroot, password=None): + Repository.__init__(self, config, name) + # has the repository path been overridden? + if self.name in config.repos: + self.cvsroot = config.repos[name] + else: + self.cvsroot = cvsroot + login(cvsroot, password) + + branch_xml_attrs = ['module', 'checkoutdir', 'revision', + 'update-new-dirs', 'override-checkoutdir'] + + def branch(self, name, module=None, checkoutdir=None, revision=None, + update_new_dirs='yes', override_checkoutdir='yes'): + if module is None: + module = name + # allow remapping of branch for module: + revision = self.config.branches.get(name, revision) + return CVSBranch(repository=self, + module=module, + checkoutdir=checkoutdir, + revision=revision, + update_new_dirs=update_new_dirs != 'no', + override_checkoutdir=override_checkoutdir != 'no') + + +class CVSBranch(Branch): + """A class representing a CVS branch inside a CVS repository""" + + def __init__(self, repository, module, checkoutdir, revision, + update_new_dirs, override_checkoutdir): + self.repository = repository + self.config = repository.config + self.module = module + self.checkoutdir = checkoutdir + self.revision = revision + self.update_new_dirs = update_new_dirs + self.override_checkoutdir = override_checkoutdir + + def srcdir(self): + if self.checkoutdir: + return os.path.join(self.config.checkoutroot, self.checkoutdir) + else: + return os.path.join(self.config.checkoutroot, self.module) + srcdir = property(srcdir) + + def branchname(self): + return self.revision + branchname = property(branchname) + + def _checkout(self, buildscript): + cmd = ['cvs', '-z3', '-q', '-d', self.repository.cvsroot, + 'checkout', '-P'] + if self.revision: + cmd.extend(['-r', self.revision]) + if self.config.sticky_date: + cmd.extend(['-D', self.config.sticky_date]) + if not (self.revision or self.config.sticky_date): + cmd.append('-A') + if self.checkoutdir and self.override_checkoutdir: + cmd.extend(['-d', self.checkoutdir]) + cmd.append(self.module) + buildscript.execute(cmd, 'cvs', cwd=self.config.checkoutroot) + + def _update(self, buildscript): + # sanity check the existing working tree: + try: + wc_root = check_root(self.srcdir) + except IOError: + raise BuildStateError('"%s" does not appear to be a CVS working ' + 'copy' % os.path.abspath(self.srcdir)) + if wc_root != self.repository.cvsroot: + raise BuildStateError('working copy points at the wrong ' + 'repository (expected %s but got %s). ' + 'Consider using the changecvsroot.py ' + 'script to fix this.' + % (self.repository.cvsroot, wc_root)) + + # update the working tree + cmd = ['cvs', '-z3', '-q', '-d', self.repository.cvsroot, + 'update', '-P'] + if self.update_new_dirs: + cmd.append('-d') + if self.revision: + cmd.extend(['-r', self.revision]) + if self.config.sticky_date: + cmd.extend(['-D', self.config.sticky_date]) + if not (self.revision or self.config.sticky_date): + cmd.append('-A') + cmd.append('.') + buildscript.execute(cmd, 'cvs', cwd=self.srcdir) + + def checkout(self, buildscript): + if os.path.exists(self.srcdir): + self._update(buildscript) + else: + self._checkout(buildscript) + + def force_checkout(self, buildscript): + self._checkout(buildscript) + + def tree_id(self): + if not os.path.exists(self.srcdir): + return None + md5sum = md5.new() + _process_directory(self.srcdir, '', md5sum.update) + return 'jhbuild-cvs-treeid:%s' % md5sum.hexdigest() + +register_repo_type('cvs', CVSRepository) diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/darcs.py b/build-scripts/jhbuild/jhbuild/versioncontrol/darcs.py new file mode 100644 index 0000000..bf35a0a --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/darcs.py @@ -0,0 +1,111 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# darcs.py: some code to handle various darcs operations +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__all__ = [] +__metaclass__ = type + +import os +import errno +import urlparse + +from jhbuild.errors import FatalError +from jhbuild.versioncontrol import Repository, Branch, register_repo_type + +class DarcsRepository(Repository): + """A class representing a Darcs repository. + + Note that this is just the parent directory for a bunch of darcs + branches, making it easy to switch to a mirror URI. + """ + + init_xml_attrs = ['href'] + + def __init__(self, config, name, href): + Repository.__init__(self, config, name) + # allow user to adjust location of branch. + self.href = config.repos.get(name, href) + + branch_xml_attrs = ['module', 'checkoutdir'] + + def branch(self, name, module=None, checkoutdir=None): + if name in self.config.branches: + module = self.config.branches[module] + else: + if module is None: + module = name + module = urlparse.urljoin(self.href, module) + return DarcsBranch(self, module, checkoutdir) + + +class DarcsBranch(Branch): + """A class representing a Darcs branch.""" + + def __init__(self, repository, module, checkoutdir): + self.repository = repository + self.config = repository.config + self.module = module + self.checkoutdir = checkoutdir + + def srcdir(self): + if self.checkoutdir: + return os.path.join(self.config.checkoutroot, self.checkoutdir) + else: + return os.path.join(self.config.checkoutroot, + os.path.basename(self.module)) + srcdir = property(srcdir) + + def branchname(self): + return None + branchname = property(branchname) + + def _checkout(self, buildscript): + cmd = ['darcs', 'get', self.module] + if self.checkoutdir: + cmd.append(self.checkoutdir) + + if self.config.sticky_date: + raise FatalError('date based checkout not yet supported\n') + + buildscript.execute(cmd, 'darcs', cwd=self.config.checkoutroot) + + def _update(self, buildscript): + if self.config.sticky_date: + raise FatalError('date based checkout not yet supported\n') + buildscript.execute(['darcs', 'pull', '-a'], 'darcs', cwd=self.srcdir) + + def _fix_permissions(self): + # This is a hack to make the autogen.sh and/or configure + # scripts executable. This is needed because Darcs does not + # version the executable bit. + for filename in ['autogen.sh', 'configure']: + path = os.path.join(self.srcdir, filename) + try: + stat = os.stat(path) + except OSError, e: + continue + os.chmod(path, stat.st_mode | 0111) + + def checkout(self, buildscript): + if os.path.exists(self.srcdir): + self._update(buildscript) + else: + self._checkout(buildscript) + self._fix_permissions() + +register_repo_type('darcs', DarcsRepository) diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/git.py b/build-scripts/jhbuild/jhbuild/versioncontrol/git.py new file mode 100644 index 0000000..11f5980 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/git.py @@ -0,0 +1,125 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# git.py: some code to handle various GIT operations +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__all__ = [] +__metaclass__ = type + +import os +import urlparse + +from jhbuild.errors import FatalError +from jhbuild.utils.cmds import get_output +from jhbuild.versioncontrol import Repository, Branch, register_repo_type + +# Make sure that the urlparse module considers git:// and git+ssh:// +# schemes to be netloc aware and set to allow relative URIs. +if 'git' not in urlparse.uses_netloc: + urlparse.uses_netloc.append('git') +if 'git' not in urlparse.uses_relative: + urlparse.uses_relative.append('git') +if 'git+ssh' not in urlparse.uses_netloc: + urlparse.uses_netloc.append('git+ssh') +if 'git+ssh' not in urlparse.uses_relative: + urlparse.uses_relative.append('git+ssh') + + +class GitRepository(Repository): + """A class representing a GIT repository. + + Note that this is just the parent directory for a bunch of darcs + branches, making it easy to switch to a mirror URI. + """ + + init_xml_attrs = ['href'] + + def __init__(self, config, name, href): + Repository.__init__(self, config, name) + # allow user to adjust location of branch. + self.href = config.repos.get(name, href) + + branch_xml_attrs = ['module', 'subdir', 'checkoutdir'] + + def branch(self, name, module=None, subdir="", checkoutdir=None): + if name in self.config.branches: + module = self.config.branches[module] + else: + if module is None: + module = name + module = urlparse.urljoin(self.href, module) + return GitBranch(self, module, subdir, checkoutdir) + + +class GitBranch(Branch): + """A class representing a GIT branch.""" + + def __init__(self, repository, module, subdir, checkoutdir): + self.repository = repository + self.config = repository.config + self.module = module + self.subdir = subdir + self.checkoutdir = checkoutdir + + def srcdir(self): + if self.checkoutdir: + return os.path.join(self.config.checkoutroot, self.checkoutdir, self.subdir) + else: + return os.path.join(self.config.checkoutroot, + os.path.basename(self.module), self.subdir) + srcdir = property(srcdir) + + def get_checkoutdir(self): + if self.checkoutdir: + return os.path.join(self.config.checkoutroot, self.checkoutdir) + else: + return os.path.join(self.config.checkoutroot, + os.path.basename(self.module)) + + def branchname(self): + return None + branchname = property(branchname) + + def _checkout(self, buildscript): + cmd = ['git', 'clone', self.module] + if self.checkoutdir: + cmd.append(self.checkoutdir) + + if self.config.sticky_date: + raise FatalError('date based checkout not yet supported\n') + + buildscript.execute(cmd, 'git', cwd=self.config.checkoutroot) + + def _update(self, buildscript): + if self.config.sticky_date: + raise FatalError('date based checkout not yet supported\n') + buildscript.execute(['git', 'pull'], 'git', cwd=self.get_checkoutdir()) + + def checkout(self, buildscript): + if os.path.exists(self.get_checkoutdir()): + self._update(buildscript) + else: + self._checkout(buildscript) + + def tree_id(self): + if not os.path.exists(self.get_checkoutdir()): + return None + output = get_output(['git-rev-parse', 'master'], + cwd=self.get_checkoutdir()) + return output.strip() + +register_repo_type('git', GitRepository) diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/svn.py b/build-scripts/jhbuild/jhbuild/versioncontrol/svn.py new file mode 100644 index 0000000..5ffbc67 --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/svn.py @@ -0,0 +1,214 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# svn.py: some code to handle various Subversion operations +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__all__ = [] +__metaclass__ = type + +import os +import urlparse +import subprocess + +from jhbuild.errors import CommandError, BuildStateError, FatalError +from jhbuild.utils.cmds import get_output +from jhbuild.versioncontrol import Repository, Branch, register_repo_type + +# Make sure that the urlparse module considers svn:// and svn+ssh:// +# schemes to be netloc aware and set to allow relative URIs. +if 'svn' not in urlparse.uses_netloc: + urlparse.uses_netloc.append('svn') +if 'svn' not in urlparse.uses_relative: + urlparse.uses_relative.append('svn') +if 'svn+ssh' not in urlparse.uses_netloc: + urlparse.uses_netloc.append('svn+ssh') +if 'svn+ssh' not in urlparse.uses_relative: + urlparse.uses_relative.append('svn+ssh') + +def _make_uri(repo, path): + if repo[-1] != '/': + return '%s/%s' % (repo, path) + else: + return repo + path + +def get_info(filename): + # we run Subversion in the C locale, because Subversion localises + # the key names in the output. See bug #334678 for more info. + output = get_output( + ['svn', 'info', filename], + extra_env={ + 'LANGUAGE': 'C', + 'LC_ALL': 'C', + 'LANG': 'C'}) + ret = {} + for line in output.splitlines(): + if ':' not in line: continue + key, value = line.split(':', 1) + ret[key.lower().strip()] = value.strip() + return ret + +def get_uri(filename): + try: + info = get_info(filename) + except CommandError: + raise BuildStateError('could not get Subversion URI for %s' + % filename) + if 'url' not in info: + raise BuildStateError('could not parse "svn info" output for %s' + % filename) + return info['url'] + + +class SubversionRepository(Repository): + """A class used to work with a Subversion repository""" + + init_xml_attrs = ['href', 'trunk-path', 'branches-path'] + + def __init__(self, config, name, href, trunk_path='trunk', branches_path='branches'): + Repository.__init__(self, config, name) + # allow user to adjust location of branch. + self.href = config.repos.get(name, href) + self.trunk_path = trunk_path + self.branches_path = branches_path + + branch_xml_attrs = ['module', 'checkoutdir', 'revision'] + + def branch(self, name, module=None, checkoutdir=None, revision=None): + module_href = None + if name in self.config.branches: + if self.config.branches[name]: + module_href = self.config.branches[name] + else: + module = None + revision = None + + if module is None or revision is not None: + if module is None: + module = name + if not revision: + if self.trunk_path: + module += '/' + self.trunk_path + if checkoutdir is None: + checkoutdir = name + else: + if self.branches_path: + module += '/' + self.branches_path + '/' + revision + else: + module += '/' + revision + + if module_href is None: + module_href = urlparse.urljoin(self.href, module) + + if checkoutdir is None: + checkoutdir = name + + return SubversionBranch(self, module_href, checkoutdir, revision) + + +class SubversionBranch(Branch): + """A class representing a Subversion branch""" + + def __init__(self, repository, module, checkoutdir, revision): + self.repository = repository + self.config = repository.config + self.module = module + self.checkoutdir = checkoutdir + self.revision = revision + + def srcdir(self): + if self.checkoutdir: + return os.path.join(self.config.checkoutroot, self.checkoutdir) + else: + return os.path.join(self.config.checkoutroot, + os.path.basename(self.module)) + srcdir = property(srcdir) + + def branchname(self): + return self.revision + branchname = property(branchname) + + def _checkout(self, buildscript): + cmd = ['svn', 'checkout', self.module] + + if self.checkoutdir: + cmd.append(self.checkoutdir) + + if self.config.sticky_date: + cmd.extend(['-r', '{%s}' % self.config.sticky_date]) + + buildscript.execute(cmd, 'svn', cwd=self.config.checkoutroot) + + def _update(self, buildscript): + opt = [] + if self.config.sticky_date: + opt.extend(['-r', '{%s}' % self.config.sticky_date]) + + # if the URI doesn't match, use "svn switch" instead of "svn update" + if get_uri(self.srcdir) != self.module: + cmd = ['svn', 'switch'] + opt + [self.module] + else: + cmd = ['svn', 'update'] + opt + ['.'] + + buildscript.execute(cmd, 'svn', cwd=self.srcdir) + + self._check_for_conflicts() + + def _check_for_conflicts(self): + kws = {} + kws['cwd'] = self.srcdir + kws['env'] = os.environ.copy() + extra_env={ + 'LANGUAGE': 'C', + 'LC_ALL': 'C', + 'LANG': 'C'} + kws['env'].update(extra_env) + try: + output = subprocess.Popen(['svn', 'info', '-R'], + stdout = subprocess.PIPE, **kws).communicate()[0] + except OSError, e: + raise CommandError(str(e)) + if 'Conflict' in output: + raise CommandError('Error checking for conflicts') + + def checkout(self, buildscript): + if os.path.exists(self.srcdir): + self._update(buildscript) + else: + self._checkout(buildscript) + + def force_checkout(self, buildscript): + self._checkout(buildscript) + + def tree_id(self): + if not os.path.exists(self.srcdir): + return None + info = get_info(self.srcdir) + url = info['url'] + root = info['repository root'] + uuid = info['repository uuid'] + rev = info['last changed rev'] + + # get the path within the repository + assert url.startswith(root) + path = url[len(root):] + while path.startswith('/'): + path = path[1:] + + return '%s,%s,%s' % (uuid.lower(), rev, path) + + +register_repo_type('svn', SubversionRepository) diff --git a/build-scripts/jhbuild/jhbuild/versioncontrol/tarball.py b/build-scripts/jhbuild/jhbuild/versioncontrol/tarball.py new file mode 100644 index 0000000..3c53dac --- /dev/null +++ b/build-scripts/jhbuild/jhbuild/versioncontrol/tarball.py @@ -0,0 +1,203 @@ +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# tarball.py: some code to handle tarball repositories +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +__all__ = [] +__metaclass__ = type + +import os +import urlparse + +from jhbuild.errors import FatalError, BuildStateError +from jhbuild.versioncontrol import Repository, Branch, register_repo_type + +jhbuild_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), + '..', '..')) + + +class TarballRepository(Repository): + """A class representing a Tarball repository. + + A repository implementation representing a web or ftp site hosting + one or more tarballs for download. The user can override the + download location similar to how they can for other repository + implementations. + """ + + init_xml_attrs = ['href'] + + def __init__(self, config, name, href): + Repository.__init__(self, config, name) + # allow user to adjust location of branch. + self.href = config.repos.get(name, href) + + branch_xml_attrs = ['version', 'module', 'checkoutdir', + 'size', 'md5sum'] + + def branch(self, name, version, module=None, checkoutdir=None, + size=None, md5sum=None): + if name in self.config.branches: + module = self.config.branches[module] + else: + if module is None: + module = name + module = urlparse.urljoin(self.href, module) + if size is not None: + size = int(size) + return TarballBranch(self, module=module, version=version, + checkoutdir=checkoutdir, + source_size=size, source_md5=md5sum) + + def branch_from_xml(self, name, branchnode): + branch = Repository.branch_from_xml(self, name, branchnode) + # patches represented as children of the branch node + for childnode in branchnode.childNodes: + if (childnode.nodeType == childnode.ELEMENT_NODE and + childnode.nodeName == 'patch'): + patchfile = childnode.getAttribute('file') + if childnode.hasAttribute('strip'): + patchstrip = int(childnode.getAttribute('strip')) + else: + patchstrip = 0 + branch.patches.append((patchfile, patchstrip)) + return branch + + +class TarballBranch(Branch): + """A class representing a Tarball.""" + + def __init__(self, repository, module, version, checkoutdir, + source_size, source_md5): + self.repository = repository + self.config = repository.config + self.module = module + self.version = version + self.checkoutdir = checkoutdir + self.source_size = source_size + self.source_md5 = source_md5 + self.patches = [] + + def _local_tarball(self): + basename = os.path.basename(self.module) + if not basename: + raise FatalError('URL has no filename component: %s' % self.module) + localfile = os.path.join(self.config.tarballdir, basename) + return localfile + _local_tarball = property(_local_tarball) + + def srcdir(self): + if self.checkoutdir: + return os.path.join(self.config.checkoutroot, self.checkoutdir) + + localdir = os.path.join(self.config.checkoutroot, + os.path.basename(self.module)) + # strip off packaging extension ... + if localdir.endswith('.tar.gz'): + localdir = localdir[:-7] + elif localdir.endswith('.tar.bz2'): + localdir = localdir[:-8] + elif localdir.endswith('.tgz'): + localdir = localdir[:-4] + return localdir + srcdir = property(srcdir) + + def branchname(self): + return self.version + branchname = property(branchname) + + def _check_tarball(self): + """Check whether the tarball has been downloaded correctly.""" + localfile = self._local_tarball + if not os.path.exists(localfile): + raise BuildStateError('file not downloaded') + if self.source_size is not None: + local_size = os.stat(localfile).st_size + if local_size != self.source_size: + raise BuildStateError('downloaded file size is incorrect ' + '(expected %d, got %d)' + % (self.source_size, local_size)) + if self.source_md5 is not None: + import md5 + local_md5 = md5.new() + fp = open(localfile, 'rb') + data = fp.read(32768) + while data: + local_md5.update(data) + data = fp.read(32768) + fp.close() + if local_md5.hexdigest() != self.source_md5: + raise BuildStateError('file MD5 sum is incorrect ' + '(expected %s, got %s)' + % (self.source_md5, + local_md5.hexdigest())) + + def _download_and_unpack(self, buildscript): + localfile = self._local_tarball + if not os.path.exists(self.config.tarballdir): + os.makedirs(self.config.tarballdir) + try: + self._check_tarball() + except BuildStateError: + # don't have the tarball, try downloading it and check again + has_wget = not os.system('which wget > /dev/null') + if not has_wget: + has_curl = not os.system('which curl > /dev/null') + + if has_wget: + res = buildscript.execute( + ['wget', self.module, '-O', localfile]) + elif has_curl: + res = buildscript.execute( + ['curl', self.module, '-o', localfile]) + else: + raise FatalError("unable to find wget or curl") + + self._check_tarball() + + # now to unpack it + if localfile.endswith('.bz2'): + buildscript.execute('bunzip2 -dc "%s" | tar xf -' % localfile, + cwd=self.config.checkoutroot) + elif localfile.endswith('.gz') or localfile.endswith('.tgz'): + buildscript.execute('gunzip -dc "%s" | tar xf -' % localfile, + cwd=self.config.checkoutroot) + else: + raise FatalError("don't know how to handle: %s" % localfile) + + if not os.path.exists(self.srcdir): + raise BuildStateError('could not unpack tarball') + + # now patch the working tree + for (patch, patchstrip) in self.patches: + patchfile = os.path.join(jhbuild_directory, 'patches', patch) + buildscript.execute('patch -p%d < "%s"' + % (patchstrip, patchfile), + cwd=self.srcdir) + + + def checkout(self, buildscript): + if not os.path.exists(self.srcdir): + self._download_and_unpack(buildscript) + + def force_checkout(self, buildscript): + self._download_and_unpack(buildscript) + + def tree_id(self): + return self.version + +register_repo_type('tarball', TarballRepository) diff --git a/build-scripts/jhbuild/modulesets/bootstrap.modules b/build-scripts/jhbuild/modulesets/bootstrap.modules new file mode 100644 index 0000000..ea2f9c2 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/bootstrap.modules @@ -0,0 +1,87 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: nxml -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + <repository type="tarball" name="ftp.gnu.org" + href="http://ftp.gnu.org/gnu/"/> + <repository type="tarball" name="pkgconfig" + href="http://pkgconfig.freedesktop.org/releases/"/> + <repository type="tarball" name="python" + href="http://www.python.org/ftp/python/"/> + + <autotools id="gettext" autogen-sh="configure"> + <branch repo="ftp.gnu.org" + module="gettext/gettext-0.16.tar.gz" version="0.16" + size="8546162" md5sum="1560a460c2c4e05b6ff53acb12860750" /> + </autotools> + + <autotools id="autoconf" autogen-sh="configure"> + <branch repo="ftp.gnu.org" + module="autoconf/autoconf-2.60.tar.bz2" version="2.60" + size="1019170" md5sum="019609c29d0cbd9110c38480304aafc8" /> + </autotools> + + <autotools id="libtool" autogen-sh="configure"> + <branch repo="ftp.gnu.org" + module="libtool/libtool-1.5.22.tar.gz" version="1.5.22" + size="2921483" md5sum="8e0ac9797b62ba4dcc8a2fb7936412b0"> + <patch file="libtool-1.5.18-multilib.patch" strip="1" /> + </branch> + </autotools> + + <autotools id="automake-1.4" autogen-sh="configure"> + <branch repo="ftp.gnu.org" + module="automake/automake-1.4-p6.tar.gz" version="1.4-p6" + size="375060" md5sum="24872b81b95d78d05834c39af2cfcf05" /> + </autotools> + <autotools id="automake-1.7" autogen-sh="configure"> + <branch repo="ftp.gnu.org" + module="automake/automake-1.7.9.tar.bz2" version="1.7.9" + size="577705" md5sum="571fd0b0598eb2a27dcf68adcfddfacb" /> + </autotools> + <autotools id="automake-1.8" autogen-sh="configure"> + <branch repo="ftp.gnu.org" + module="automake/automake-1.8.5.tar.bz2" version="1.8.5" + size="663182" md5sum="0114aa6d7dc32112834b68105fb8d7e2" /> + </autotools> + <autotools id="automake-1.9" autogen-sh="configure"> + <branch repo="ftp.gnu.org" + module="automake/automake-1.9.6.tar.bz2" version="1.9.6" + size="765505" md5sum="c11b8100bb311492d8220378fd8bf9e0" /> + </autotools> + + <autotools id="pkg-config" autogen-sh="configure"> + <branch repo="pkgconfig" + module="pkg-config-0.20.tar.gz" version="0.20" + size="969993" md5sum="fb42402593e4198bc252ab248dd4158b" /> + </autotools> + + <autotools id="python" autogenargs="--enable-shared" autogen-sh="configure"> + <branch repo="python" + module="2.4.3/Python-2.4.3.tar.bz2" version="2.4.3" + size="8005915" md5sum="141c683447d5e76be1d2bd4829574f02" /> + </autotools> + + <repository type="tarball" name="pyrex" + href="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/"/> + <distutils id="pyrex"> + <branch repo="pyrex" + module="Pyrex-0.9.4.1.tar.gz" version="0.9.4.1" + size="181507" md5sum="425f0543c634bc7a86fe4fce02e0e882" /> + </distutils> + + <metamodule id="meta-bootstrap"> + <dependencies> + <dep package="gettext" /> + <dep package="autoconf" /> + <dep package="libtool" /> + <dep package="automake-1.4" /> + <dep package="automake-1.7" /> + <dep package="automake-1.8" /> + <dep package="automake-1.9" /> + <dep package="pkg-config" /> + <dep package="python" /> + <dep package="pyrex" /> + </dependencies> + </metamodule> + +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/freedesktop-2.18.modules b/build-scripts/jhbuild/modulesets/freedesktop-2.18.modules new file mode 100644 index 0000000..144ee5f --- /dev/null +++ b/build-scripts/jhbuild/modulesets/freedesktop-2.18.modules @@ -0,0 +1,245 @@ +<?xml version="1.0"?><!--*- mode: nxml -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + <repository type="tarball" name="cairo" + href="http://cairographics.org/releases/"/> + <repository type="tarball" name="dbus" + href="http://dbus.freedesktop.org/releases/"/> + <repository type="cvs" name="cairo.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/cairo" + password=""/> + <repository type="cvs" name="dbus.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/dbus" + password=""/> + <repository type="cvs" name="icon-theme.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/icon-theme" + password=""/> + <repository type="cvs" name="tango.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/tango" + password=""/> + <repository type="cvs" name="xorg.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/xorg" + password=""/> + <repository type="cvs" name="portland.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/portland" + password=""/> + + <repository type="git" name="git.freedesktop.org" + href="git://anongit.freedesktop.org/git/"/> + + <repository type="tarball" name="cpan" href="http://search.cpan.org/CPAN/" /> + + <tarball id="cairo" version="1.2.4"> + <source href="http://cairographics.org/releases/cairo-1.2.4.tar.gz" + md5sum="1222b2bfdf113e2c92f66b3389659f2d" size="2882781"/> + <dependencies> + <dep package="fontconfig"/> + <dep package="gtk-doc"/> + </dependencies> + <after> + <dep package="glitz"/> + </after> + </tarball> + + <autotools id="glitz"> + <branch repo="cairo.freedesktop.org"/> + </autotools> + + <tarball id="pycairo" version="1.2.2"> + <source href="http://cairographics.org/releases/pycairo-1.2.2.tar.gz" + md5sum="83a2e06d9fc3530753701d580a18087e" size="482417"/> + <dependencies> + <dep package="cairo"/> + </dependencies> + </tarball> + + <tarball id="cairomm" version="1.2.2"> + <source href="http://cairographics.org/releases/cairomm-1.2.2.tar.gz" + md5sum="fabb040a5ff2cf0529af55ff46d22d2d" size="582629"/> + <dependencies> + <dep package="cairo"/> + </dependencies> + </tarball> + + <tarball autogenargs="--disable-selinux" id="dbus" supports-non-srcdir-builds="no" version="0.92"> + <source href="http://dbus.freedesktop.org/releases/dbus-0.92.tar.gz" + md5sum="ea2be58c80a80631ba5b3c92cffd335c" size="1388345"/> + <dependencies> + <dep package="glib"/> + </dependencies> + <after> + <dep package="gtk+"/> + </after> + </tarball> + + <autotools id="dbusmm"> + <branch repo="dbus.freedesktop.org"/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + + <autotools id="dbus-qt3"> + <branch repo="git.freedesktop.org" + module="dbus/dbus-qt3" checkoutdir="dbus-qt3" /> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + + <tarball id="dbus-glib" version="0.71"> + <source href="http://dbus.freedesktop.org/releases/dbus-glib-0.71.tar.gz" + md5sum="4e1e7348b26ee8b6485452113f4221cc" size="566889"/> + <patches> + <patch file="dbus-glib-build.patch" strip="1" /> + </patches> + <dependencies> + <dep package="libxml2"/> + <dep package="dbus"/> + <dep package="glib"/> + </dependencies> + </tarball> + + <repository type="tarball" name="dbus/dbus-python" + href="http://dbus.freedesktop.org/releases/"/> + <distutils id="dbus-python"> + <branch module="dbus-python-0.71.tar.gz" version="0.71" + repo="dbus/dbus-python" + md5sum="ee893bc87b784a8c2285f5041b5e7033" size="137613"/> + <dependencies> + <dep package="dbus"/> + <dep package="dbus-glib"/> + </dependencies> + </distutils> + + <!-- PolicyKit has been removed because I can't find a tarball + download site and because we're using hal 0.5.7.1 for now anyway + <autotools id="PolicyKit"> + <branch repo="hal.freedesktop.org"/> + <dependencies> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + --> + + <tarball id="hal" version="0.5.7.1"> + <source href="http://people.freedesktop.org/~david/dist/hal-0.5.7.1.tar.gz" + md5sum="d7a7741808ba130f8aff3f5d3b5689e4" size="1503156"/> + <dependencies> + <dep package="dbus"/> + </dependencies> + <patches> + <patch file="hal-dbus_connection_close.patch" strip="0"/> + </patches> + </tarball> + + <tarball id="fontconfig" version="2.4.1"> + <source href="http://www.fontconfig.org/release/fontconfig-2.4.1.tar.gz" + md5sum="108f9a03fa9ed9dd779cc7ca236da557" size="1270946"/> + </tarball> + <tarball id="xchat" version="2.6.2"> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </tarball> + + <autotools id="icon-slicer"> + <branch repo="icon-theme.freedesktop.org"/> + </autotools> + <tarball id="icon-naming-utils" version="0.8.1"> + <source href="http://tango-project.org/releases/icon-naming-utils-0.8.1.tar.gz" + md5sum="7a7d340f59c7a6c26391e906b7afa08c" size="63132"/> + <branch repo="icon-theme.freedesktop.org"/> + </tarball> + <tarball id="hicolor-icon-theme" version="0.10" supports-non-srcdir-builds="no" > + <source href="http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.10.tar.gz" + md5sum="3534f7b8e59785c7d5bfa923e85510a7" size="33616"/> + </tarball> + <autotools id="tango-icon-theme"> + <branch repo="tango.freedesktop.org"/> + <dependencies> + <dep package="icon-naming-utils"/> + </dependencies> + </autotools> + <autotools id="tango-icon-theme-extras"> + <branch repo="tango.freedesktop.org"/> + <dependencies> + <dep package="tango-icon-theme"/> + </dependencies> + </autotools> + + <tarball id="startup-notification" version="0.8"> + <source href="http://download.gnome.org/sources/startup-notification/0.8/startup-notification-0.8.tar.bz2" + md5sum="d9b2e9fba18843314ae42334ceb4336d" size="236255"/> + <branch repo="startup-notification.freedesktop.org"/> + </tarball> + + <autotools id="RenderProto"> + <branch repo="git.freedesktop.org" + module="xorg/proto/renderproto" checkoutdir="RenderProto" /> + </autotools> + <autotools id="libXrender" supports-non-srcdir-builds="no"> + <branch repo="git.freedesktop.org" + module="xorg/lib/libXrender" checkoutdir="libXrender" /> + <dependencies> + <dep package="RenderProto"/> + </dependencies> + </autotools> + <autotools id="libXft" supports-non-srcdir-builds="no"> + <branch repo="git.freedesktop.org" + module="xorg/lib/libXft" checkoutdir="libXft" /> + <dependencies> + <dep package="fontconfig"/> + </dependencies> + </autotools> + + <tarball id="poppler" version="0.5.4"> + <source href="http://poppler.freedesktop.org/poppler-0.5.4.tar.gz" + md5sum="053fdfd70533ecce1a06353fa945f061" size="1062401"/> + <dependencies> + <dep package="cairo"/> + </dependencies> + <after> + <dep package="gtk+"/> + </after> + </tarball> + + <autotools id="portland"> + <branch repo="portland.freedesktop.org" /> + </autotools> + + <perl id="perl-net-dbus"> + <branch repo="cpan" + module="authors/id/D/DA/DANBERR/Net-DBus-0.33.2.tar.gz" version="0.33.2" + size="83279" md5sum="7e722c48c4bca7740cf28512287571b7"/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </perl> + + <tarball id="system-tools-backends" version="2.1.2"> + <source href="http://ftp.gnome.org/pub/GNOME/sources/system-tools-backends/2.1/system-tools-backends-2.1.2.tar.bz2" md5sum="da42ed197a85668bf8475ca8e3a35651" size="407313"/> + <suggests> + <dep package="perl-net-dbus"/> + </suggests> + </tarball> + + <tarball id="libdaemon" version="0.10"> + <source href="http://0pointer.de/lennart/projects/libdaemon/libdaemon-0.10.tar.gz" + md5sum="6812a5e4063b5016f25e9a0cebbd3dd9" size="345084"/> + </tarball> + + <!-- explicit disabling of qt3 and qt4 can be removed once avahi + correctly detects what is available. --> + <tarball autogenargs="--disable-qt3 --disable-qt4 --disable-mono --disable-monodoc --disable-manpages --enable-compat-howl --enable-compat-libdns_sd" id="avahi" version="0.6.13"> + <source href="http://avahi.org/download/avahi-0.6.13.tar.gz" + md5sum="d1000689979105cc95b9ca102284aae4" size="895380"/> + <dependencies> + <dep package="libdaemon"/> + <dep package="dbus-python"/> + <dep package="pygtk"/> + </dependencies> + </tarball> + +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/freedesktop.modules b/build-scripts/jhbuild/modulesets/freedesktop.modules new file mode 100644 index 0000000..fff5c8e --- /dev/null +++ b/build-scripts/jhbuild/modulesets/freedesktop.modules @@ -0,0 +1,308 @@ +<?xml version="1.0"?><!--*- mode: nxml -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + <repository type="cvs" name="cairo.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/cairo" + password=""/> + <repository type="cvs" name="dbus.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/dbus" + password=""/> + <repository type="cvs" name="hal.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/hal" + password=""/> + <repository type="cvs" name="icon-theme.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/icon-theme" + password=""/> + <repository type="cvs" name="startup-notification.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/startup-notification" + password=""/> + <repository type="cvs" name="tango.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/tango" + password=""/> + <repository type="cvs" name="xorg.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/xorg" + password=""/> + <repository type="cvs" name="poppler.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/poppler" + password=""/> + <repository type="cvs" name="system-tools-backends.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/system-tools-backends" + password=""/> + <repository type="cvs" name="portland.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/portland" + password=""/> + <repository type="cvs" name="gnome.org" + cvsroot=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" + password=""/> + + <repository type="svn" name="avahi.0pointer.de" + href="svn://svn.0pointer.de/avahi/"/> + <repository type="svn" name="libdaemon.0pointer.de" + href="svn://svn.0pointer.de/libdaemon/"/> + + <repository type="git" name="git.freedesktop.org" + href="git://anongit.freedesktop.org/git/"/> + + <repository type="tarball" name="cpan" href="http://search.cpan.org/CPAN/" /> + + <autotools id="cairo"> + <branch repo="git.freedesktop.org" module="cairo"/> + <dependencies> + <dep package="fontconfig"/> + <dep package="gtk-doc"/> + </dependencies> + <after> + <dep package="glitz"/> + <dep package="libXrender"/> + </after> + </autotools> + + <tarball id="cairo-1-0" version="1.0.4"> + <source href="http://cairographics.org/releases/cairo-1.0.4.tar.gz" + size="1475777" md5sum="9002b0e69b3f94831a22d3f2a7735ce2"/> + <dependencies> + <dep package="fontconfig"/> + <dep package="libXrender"/> + </dependencies> + <after> + <dep package="glitz"/> + </after> + </tarball> + + <autotools id="glitz"> + <branch repo="cairo.freedesktop.org"/> + </autotools> + + <autotools id="pycairo-1-0"> + <branch repo="cairo.freedesktop.org" module="pycairo" + revision="RELEASE_1_0_2" checkoutdir="pycairo-1-0"/> + <dependencies> + <dep package="cairo-1-0"/> + </dependencies> + </autotools> + + <autotools id="pycairo"> + <branch repo="cairo.freedesktop.org"/> + <dependencies> + <dep package="cairo"/> + </dependencies> + </autotools> + + <autotools id="cairomm"> + <branch repo="cairo.freedesktop.org"/> + <dependencies> + <dep package="cairo"/> + </dependencies> + </autotools> + + <autotools id="dbus" supports-non-srcdir-builds="no" autogenargs="--disable-selinux"> + <branch repo="dbus.freedesktop.org"/> + <dependencies> + <dep package="glib"/> + </dependencies> + <after> + <dep package="gtk+"/> + </after> + </autotools> + + <autotools id="dbus-0.23" supports-non-srcdir-builds="no"> + <branch repo="dbus.freedesktop.org" module="dbus" + revision="dbus-0-23" checkoutdir="dbus-0.23"/> + <dependencies> + <dep package="glib"/> + </dependencies> + <after> + <dep package="gtk+"/> + </after> + </autotools> + + <!-- Not maintained - try dbusmm instead --> + <autotools id="dbus-cpp"> + <branch repo="dbus.freedesktop.org"/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + + <autotools id="dbusmm"> + <branch repo="dbus.freedesktop.org"/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + + <autotools id="dbus-qt3"> + <branch repo="git.freedesktop.org" + module="dbus/dbus-qt3" checkoutdir="dbus-qt3" /> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + + <autotools id="dbus-glib"> + <branch repo="git.freedesktop.org" module="dbus/dbus-glib"/> + <dependencies> + <dep package="libxml2"/> + <dep package="dbus"/> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="dbus-python"> + <branch repo="git.freedesktop.org" module="dbus/dbus-python"/> + <dependencies> + <dep package="dbus"/> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + + <autotools id="PolicyKit"> + <branch repo="hal.freedesktop.org"/> + <dependencies> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + + <tarball id="hal-0-5-7" version="0.5.7.1"> + <source href="http://people.freedesktop.org/~david/dist/hal-0.5.7.1.tar.gz" + size="1503156" md5sum="d7a7741808ba130f8aff3f5d3b5689e4"/> + <dependencies> + <dep package="dbus"/> + </dependencies> + <patches> + <patch file="hal-dbus_connection_close.patch" strip="0"/> + </patches> + </tarball> + + <autotools id="hal"> + <branch repo="hal.freedesktop.org"/> + <dependencies> + <dep package="dbus"/> + <dep package="PolicyKit"/> + </dependencies> + </autotools> + + <autotools id="hal-0-4"> + <branch repo="hal.freedesktop.org" module="hal" + revision="hal-0_4-stable-branch" checkoutdir="hal-0.4"/> + <dependencies> + <dep package="dbus-0.23"/> + </dependencies> + </autotools> + + <autotools id="fontconfig"> + <branch repo="git.freedesktop.org" module="fontconfig" /> + </autotools> + + <autotools id="icon-slicer"> + <branch repo="icon-theme.freedesktop.org"/> + </autotools> + <autotools id="icon-naming-utils"> + <branch repo="icon-theme.freedesktop.org"/> + </autotools> + <tarball id="hicolor-icon-theme" version="0.9" + supports-non-srcdir-builds="no"> + <source href="http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.9.tar.gz" + size="32574" md5sum="1d0821cb80d394eac30bd8cec5b0b60c"/> + </tarball> + + <autotools id="tango-icon-theme"> + <branch repo="tango.freedesktop.org"/> + <dependencies> + <dep package="icon-naming-utils"/> + </dependencies> + </autotools> + <autotools id="tango-icon-theme-extras"> + <branch repo="tango.freedesktop.org"/> + <dependencies> + <dep package="tango-icon-theme"/> + </dependencies> + </autotools> + + <autotools id="startup-notification"> + <branch repo="startup-notification.freedesktop.org"/> + </autotools> + + <autotools id="RenderProto"> + <branch repo="git.freedesktop.org" + module="xorg/proto/renderproto" checkoutdir="RenderProto" /> + </autotools> + <autotools id="libXrender" supports-non-srcdir-builds="no"> + <branch repo="git.freedesktop.org" + module="xorg/lib/libXrender" checkoutdir="libXrender" /> + <dependencies> + <dep package="RenderProto"/> + </dependencies> + </autotools> + <autotools id="libXft" supports-non-srcdir-builds="no"> + <branch repo="git.freedesktop.org" + module="xorg/lib/libXft" checkoutdir="libXft" /> + <dependencies> + <dep package="fontconfig"/> + </dependencies> + <after> + <dep package="libXrender"/> + </after> + </autotools> + + <autotools id="poppler"> + <branch repo="poppler.freedesktop.org"/> + <dependencies> + <dep package="cairo"/> + </dependencies> + <after> + <dep package="gtk+"/> + </after> + </autotools> + + <autotools id="portland"> + <branch repo="portland.freedesktop.org" /> + </autotools> + + <autotools id="poppler-0-4"> + <branch repo="poppler.freedesktop.org" module="poppler" + revision="POPPLER_0_4_X" checkoutdir="poppler-0-4"/> + <dependencies> + <dep package="cairo-1-0"/> + </dependencies> + </autotools> + + <perl id="perl-net-dbus"> + <branch repo="cpan" + module="authors/id/D/DA/DANBERR/Net-DBus-0.33.2.tar.gz" version="0.33.2" + size="83279" md5sum="7e722c48c4bca7740cf28512287571b7"/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </perl> + + <autotools id="system-tools-backends"> + <branch repo="system-tools-backends.freedesktop.org" + revision="BEFORE_DBUS_MERGE"/> + <suggests> + <dep package="perl-net-dbus"/> + </suggests> + </autotools> + + <autotools id="system-tools-backends-1.4"> + <branch repo="system-tools-backends.freedesktop.org" + module="system-tools-backends" revision="stb-1-4" + checkoutdir="system-tools-backends-1.4"/> + </autotools> + + <autotools id="libdaemon"> + <branch repo="libdaemon.0pointer.de" module="trunk" checkoutdir="libdaemon"/> + </autotools> + + <!-- explicit disabling of qt3 and qt4 can be removed once avahi + correctly detects what is available. --> + <autotools id="avahi" autogenargs="--disable-qt3 --disable-qt4 --disable-mono --disable-monodoc --disable-manpages --enable-compat-howl --enable-compat-libdns_sd"> + <branch repo="avahi.0pointer.de" module="trunk" checkoutdir="avahi"/> + <dependencies> + <dep package="libdaemon"/> + <dep package="dbus-python"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gcj.modules b/build-scripts/jhbuild/modulesets/gcj.modules new file mode 100644 index 0000000..01b35c6 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gcj.modules @@ -0,0 +1,135 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: nxml -*--> +<!DOCTYPE moduleset SYSTEM "moduleset.dtd"> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + + <cvsroot name="gcc.gnu.org" + root=":pserver:anoncvs@gcc.gnu.org:/cvs/gcc" + password="" /> + <cvsroot name="rhug.sources.redhat.com" + root=":pserver:anoncvs@sources.redhat.com:/cvs/rhug" + password="" /> + <cvsroot name="gdb.sources.redhat.com" + root=":pserver:anoncvs@sources.redhat.com:/cvs/src" + password="anoncvs" /> + <cvsroot name="gnome.org" + root=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" + password="" /> + <cvsroot name="classpath.savannah.gnu.org" + root=":ext:anoncvs@savannah.gnu.org:/cvsroot/classpath" + password="" /> + <cvsroot name="cairo.freedesktop.org" + root=":pserver:anoncvs@cvs.freedesktop.org:/cvs/cairo" + password="" /> + + <include href="gnome-2.12.modules" /> + + <gdbmodule id="gdb" cvsroot="gdb.sources.redhat.com" /> + + <gcjmodule id="gcj" cvsroot="gcc.gnu.org"> + <dependencies> + <dep package="cairo" /> + <dep package="gtk+" /> + </dependencies> + </gcjmodule> + + <cvsmodule id="java-gcj-compat" cvsroot="rhug.sources.redhat.com"> + <dependencies> + <dep package="ecj-for-jhbuild" /> + <dep package="gjdoc" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="ecj-for-jhbuild" cvsroot="rhug.sources.redhat.com" + supports-non-srcdir-builds="no"> + <dependencies> + <dep package="gcj" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="gjdoc" cvsroot="classpath.savannah.gnu.org" > + <dependencies> + <dep package="gcj" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="jg-common" cvsroot="gnome.org"> + <suggests> + <dep package="gcj" /> + </suggests> + <dependencies> + <dep package="glib" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="cairo-java" cvsroot="cairo.freedesktop.org"> + <suggests> + <dep package="gcj" /> + </suggests> + <dependencies> + <dep package="jg-common" /> + <dep package="cairo" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="libgtk-java" cvsroot="gnome.org"> + <suggests> + <dep package="gcj" /> + </suggests> + <dependencies> + <dep package="jg-common" /> + <dep package="cairo-java" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="libgnomevfs-java" cvsroot="gnome.org"> + <suggests> + <dep package="gcj" /> + </suggests> + <dependencies> + <dep package="libgtk-java" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="libgnome-java" cvsroot="gnome.org"> + <suggests> + <dep package="gcj" /> + </suggests> + <dependencies> + <dep package="libgnome" /> + <dep package="libgnomeui" /> + <dep package="libgnomecanvas" /> + <dep package="libgtk-java" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="libglade-java" cvsroot="gnome.org"> + <suggests> + <dep package="gcj" /> + </suggests> + <dependencies> + <dep package="libgtk-java" /> + <dep package="libgnome-java" /> + </dependencies> + </cvsmodule> + + <cvsmodule id="libgconf-java" cvsroot="gnome.org"> + <suggests> + <dep package="gcj" /> + </suggests> + <dependencies> + <dep package="libgtk-java" /> + <dep package="libgnome-java" /> + </dependencies> + </cvsmodule> + + <metamodule id="java-gnome"> + <dependencies> + <dep package="libgtk-java" /> + <dep package="libgnome-java" /> + <dep package="libglade-java" /> + <dep package="libgconf-java" /> + </dependencies> + </metamodule> + +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gnome-2.10.modules b/build-scripts/jhbuild/modulesets/gnome-2.10.modules new file mode 100644 index 0000000..4d20432 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gnome-2.10.modules @@ -0,0 +1,1621 @@ +<?xml version="1.0"?><!--*- mode: nxml -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + + <repository type="cvs" name="gnome.org" default="yes" + cvsroot=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" + password=""/> + <repository type="cvs" name="cairo.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/cairo" + password=""/> + <repository type="cvs" name="mozilla.org" + cvsroot=":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot" + password="anonymous"/> + <repository type="cvs" name="gstreamer.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/gstreamer" + password=""/> + <repository type="cvs" name="menu.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/menus" + password=""/> + <repository type="cvs" name="mime.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/mime" + password=""/> + <repository type="cvs" name="xklavier.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/xklavier" + password=""/> + + <repository type="cvs" name="elysium-project.sf.net" + cvsroot=":pserver:anonymous@elysium-project.cvs.sourceforge.net:/cvsroot/elysium-project" + password=""/> + <repository type="cvs" name="gaim.sf.net" + cvsroot=":pserver:anonymous@gaim.cvs.sourceforge.net:/cvsroot/gaim" + password=""/> + <repository type="cvs" name="clearlooks.sf.net" + cvsroot=":pserver:anonymous@clearlooks.cvs.sourceforge.net:/cvsroot/clearlooks" + password=""/> + + <repository type="arch" name="rhythmbox" + archive="rhythmbox-devel@gnome.org--2004" + href="http://web.rhythmbox.org/arch/2004"/> + + <tarball id="scrollkeeper" version="0.3.14" supports-non-srcdir-builds="no"> + <source href="http://unc.dl.sourceforge.net/sourceforge/scrollkeeper/scrollkeeper-0.3.14.tar.gz" + size="679513" md5sum="161eb3f29e30e7b24f84eb93ac696155"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="intltool"/> + </dependencies> + <patches> + <patch file="scrollkeeper_clean_xml_validation_context.patch" strip="1"/> + <patch file="scrollkeeper_language_fix.patch" strip="1"/> + <patch file="scrollkeeper_rw_offset_fix.patch" strip="1"/> + </patches> + </tarball> + + <include href="freedesktop.modules"/> + <include href="gnutls.modules"/> + + <autotools id="cairo-gtk-engine"> + <branch repo="cairo.freedesktop.org"/> + <dependencies> + <dep package="gtk+"/> + <dep package="cairo"/> + </dependencies> + </autotools> + + <autotools id="shared-mime-info" supports-non-srcdir-builds="no"> + <branch repo="mime.freedesktop.org"/> + <dependencies> + <dep package="intltool"/> + </dependencies> + </autotools> + + <autotools id="desktop-file-utils"> + <branch repo="menu.freedesktop.org"/> + <dependencies> + <dep package="glib"/> + <dep package="intltool"/> + </dependencies> + </autotools> + + <autotools id="libxklavier" supports-non-srcdir-builds="no"> + <branch repo="xklavier.freedesktop.org"/> + </autotools> + + <autotools id="intltool"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-common"> + <branch revision="gnome-2-12"/> + </autotools> + <autotools id="libxml2"> + <branch module="gnome-xml" checkoutdir="libxml2"/> + </autotools> + <autotools id="libxslt"> + <branch/> + <dependencies> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtk-doc"> + <branch/> + <dependencies> + <dep package="libxslt"/> + </dependencies> + </autotools> + <autotools id="glib"> + <branch revision="glib-2-6"/> + <dependencies> + <dep package="gtk-doc"/> + </dependencies> + </autotools> + <autotools id="pango"> + <branch revision="pango-1-8"/> + <dependencies> + <dep package="glib"/> + <dep package="libXft"/> + </dependencies> + </autotools> + <autotools id="atk"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gtk+"> + <branch revision="gtk-2-6"/> + <dependencies> + <dep package="pango"/> + <dep package="atk"/> + <dep package="shared-mime-info"/> + </dependencies> + </autotools> + <autotools id="gail"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="atk"/> + <dep package="libgnomecanvas"/> + </dependencies> + </autotools> + <autotools id="gtkhtml2"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libIDL"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="ORBit2"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libIDL"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gconf"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="ORBit2"/> + <dep package="libxml2"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libbonobo"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="ORBit2"/> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-mime-data"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-icon-theme"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="hicolor-icon-theme"/> + </dependencies> + </autotools> + <tarball id="howl" version="1.0.0"> + <source href="http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz" + size="542782" md5sum="c389d3ffba0e69a179de2ec650f1fdcc"/> + <patches> + <patch file="howl-1.0.0-buildfix.patch" strip="1"/> + </patches> + </tarball> + <autotools id="gnome-vfs"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gconf"/> + <dep package="desktop-file-utils"/> + <dep package="shared-mime-info"/> + <dep package="gnome-mime-data"/> + <dep package="howl"/> + <dep package="hal-0.4"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring"> + <branch/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libart_lgpl"> + <branch/> + </autotools> + <autotools id="libgnome"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="libbonobo"/> + <dep package="gnome-vfs"/> + <dep package="gconf"/> + <dep package="esound"/> + </dependencies> + </autotools> + <autotools id="libgnomecanvas"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="libglade"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="libbonoboui"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libgnomecanvas"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgnomeui"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gnome-icon-theme"/> + <dep package="gnome-keyring"/> + </dependencies> + </autotools> + <autotools id="libglade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="pygtk" supports-non-srcdir-builds="no"> + <branch revision="pygtk-2-6"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="pyorbit"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnome-python"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="pyorbit"/> + <dep package="libgnomecanvas"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-python-extras"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-panel"/> + <dep package="gtkhtml2"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + <dep package="libwnck"/> + </dependencies> + </autotools> + <autotools id="bug-buddy"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-menus"/> + </dependencies> + </autotools> + <autotools id="libwnck"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gtk+"/> + <dep package="startup-notification"/> + </dependencies> + </autotools> + <autotools id="gnome-desktop" autogenargs="--with-gnome-distributor=JHBuild"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="startup-notification"/> + <dep package="gnome-themes"/> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <autotools id="gnome-menus"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnome-panel"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + <dep package="libwnck"/> + <dep package="evolution-data-server"/> + <dep package="gnome-menus"/> + </dependencies> + </autotools> + <autotools id="gnome-session"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + </dependencies> + </autotools> + <autotools id="gnome-applets"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gnome-panel"/> + <dep package="libgtop"/> + <dep package="gail"/> + <dep package="libxklavier"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="gucharmap"/> + <dep package="system-tools-backends"/> + </dependencies> + </autotools> + <autotools id="gnome-games"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="librsvg"/> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gob"/> + </dependencies> + </autotools> + <autotools id="libcroco" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="pango"/> + </dependencies> + </autotools> + <autotools id="librsvg" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libxml2"/> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="gnome-common"/> + <dep package="libgsf"/> + <dep package="libcroco"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="eel"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gail"/> + <dep package="gnome-menus"/> + </dependencies> + </autotools> + <autotools id="nautilus"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="esound"/> + <dep package="eel"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + </dependencies> + </autotools> + <autotools id="nautilus-cd-burner"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-media" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + </dependencies> + </autotools> + <autotools id="nautilus-vcs"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="metacity"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgtop"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-system-monitor"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="libgtop"/> + </dependencies> + </autotools> + <autotools id="gnome-control-center" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gnome-desktop"/> + <dep package="metacity"/> + <dep package="nautilus"/> + <dep package="libxklavier"/> + <dep package="gnome-menus"/> + </dependencies> + </autotools> + <autotools id="yelp"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gtkhtml2"/> + <dep package="gnome-vfs"/> + <dep package="gnome-doc-utils"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="devhelp"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="gnome-utils"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gconf-editor" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <tarball id="audiofile" version="0.2.6" supports-non-srcdir-builds="no"> + <source href="http://www.68k.org/~michael/audiofile/audiofile-0.2.6.tar.gz" + size="374688" md5sum="9c1049876cd51c0f1b12c2886cce4d42"/> + </tarball> + <autotools id="esound"> + <branch/> + <dependencies> + <dep package="audiofile"/> + </dependencies> + </autotools> + <autotools id="gnome-media"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gail"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gdm2"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="librsvg"/> + </dependencies> + </autotools> + <autotools id="vte"> + <branch/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gnome-terminal"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="startup-notification"/> + </dependencies> + </autotools> + <autotools id="gtk-engines"> + <branch revision="gtk-engines-2-6"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libgnomeprint"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="intltool"/> + <dep package="libart_lgpl"/> + <dep package="glib"/> + <dep package="gnome-common"/> + <dep package="pango"/> + <dep package="libgnomecups"/> + </dependencies> + </autotools> + <autotools id="libgnomeprintui"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeprint"/> + <dep package="gtk+"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-icon-theme"/> + </dependencies> + </autotools> + <autotools id="gedit"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="eel"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + </dependencies> + </autotools> + <autotools id="gedit-plugins"> + <branch/> + <dependencies> + <dep package="gedit"/> + <dep package="libgnomeui"/> + <dep package="eel"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="memprof"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="eog"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="eel"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gal"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="libgsf"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gnome-vfs"/> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="goffice"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgsf"/> + <dep package="libxml2"/> + <dep package="pango"/> + <dep package="libglade"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="gnumeric"> + <branch/> + <dependencies> + <dep package="goffice"/> + <dep package="libgsf"/> + <dep package="libgda"/> + <dep package="pygtk"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gimp" autogenargs="--disable-print"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="glade"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="glade2c"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sawfish"> + <branch revision="gnome-2"/> + <dependencies> + <dep package="rep-gtk"/> + </dependencies> + </autotools> + <autotools id="rep-gtk"> + <branch/> + <dependencies> + <dep package="librep"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="librep"> + <branch/> + </autotools> + <autotools id="rhythmbox"> + <branch repo="rhythmbox" module="rhythmbox--main--0.9" checkoutdir="rhythmbox"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gst-plugins"/> + </dependencies> + </autotools> + <autotools id="gstreamer" autogenargs="-- --disable-plugin-builddir --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" revision="BRANCH-GSTREAMER-0_8"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gst-plugins" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" revision="BRANCH-GSTREAMER-0_8"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gnome-vfs"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="planner"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="libgsf"/> + </dependencies> + </autotools> + <autotools id="file-roller"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="balsa"> + <branch revision="BALSA_2"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="pan"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnet"/> + </dependencies> + </autotools> + <autotools id="gcalctool" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="ggv" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="ekiga"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gucharmap" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gtksourceview"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeprint"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="glimmer"> + <branch/> + <dependencies> + <dep package="gtksourceview"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gdl"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="librsvg"/> + </dependencies> + </autotools> + <autotools id="gnome-build"> + <branch/> + <dependencies> + <dep package="gdl"/> + <dep package="gnome-vfs"/> + <dep package="gtkhtml2"/> + </dependencies> + </autotools> + <autotools id="gdl"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="scaffold"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="gdl"/> + </dependencies> + </autotools> + <autotools id="libsigc++2"> + <branch/> + </autotools> + <autotools id="glibmm"> + <branch revision="glibmm-2-6"/> + <dependencies> + <dep package="glib"/> + <dep package="libsigc++2"/> + </dependencies> + </autotools> + <autotools id="gtkmm"> + <branch revision="gtkmm-2-6"/> + <dependencies> + <dep package="glibmm"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="orbitcpp"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomemm"> + <branch/> + <dependencies> + <dep package="libgnome"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libglademm"> + <branch/> + <dependencies> + <dep package="libglade"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobomm"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gtkmm"/> + <dep package="orbitcpp"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobouimm"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="gnomemm/libbonobomm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomecanvasmm"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomecanvas"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gconfmm"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeuimm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeui"/> + <dep package="gnomemm/libgnomemm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/libgnomecanvasmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gnome-vfsmm"> + <branch/> + <dependencies> + <dep package="glibmm"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libpanelappletmm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeprintmm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeprintuimm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="gnomemm/libgnomeprintmm"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgdamm"> + <branch revision="libgda-1-2"/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgda"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gtkmm_hello"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="regexxer"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="gtkmm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/libglademm"/> + </dependencies> + </autotools> + <autotools id="gnet" autogenargs="--enable-glib2"> + <branch revision="GNET_1_1"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnomeicu"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="at-spi"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libgail-gnome"> + <branch/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="at-poke"> + <branch/> + <dependencies> + <dep package="libgail-gnome"/> + </dependencies> + </autotools> + <autotools id="gnome-mag"> + <branch/> + <dependencies> + <dep package="at-spi"/> + </dependencies> + </autotools> + <autotools id="gok"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <autotools id="gnome-speech"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="gnopernicus"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-mag"/> + </dependencies> + </autotools> + <autotools id="dasher" autogenargs="--with-a11y --with-gnome"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <metamodule id="meta-gnome-devel-platform"> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libbonoboui"/> + <dep package="libgnomeui"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-core"> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="gnome-panel"/> + <dep package="gnome-session"/> + <dep package="gnome-terminal"/> + <dep package="gnome-applets"/> + </dependencies> + </metamodule> + <metamodule id="meta-nautilus"> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-desktop"> + <dependencies> + <dep package="meta-gnome-core"/> + <dep package="gnome-control-center"/> + <dep package="meta-nautilus"/> + <dep package="yelp"/> + <dep package="bug-buddy"/> + <dep package="gedit"/> + <dep package="gtk-engines"/> + <dep package="eog"/> + <dep package="ggv"/> + <dep package="metacity"/> + <dep package="gconf-editor"/> + <dep package="gnome-utils"/> + <dep package="gnome-system-monitor"/> + <dep package="gstreamer"/> + <dep package="gnome-media"/> + <dep package="gnome-netstatus"/> + <dep package="gcalctool"/> + <dep package="gpdf"/> + <dep package="gucharmap"/> + <dep package="nautilus-cd-burner"/> + <dep package="zenity"/> + <dep package="libgail-gnome"/> + <dep package="gnopernicus"/> + <dep package="gok"/> + <dep package="epiphany"/> + <dep package="gnome-games"/> + <dep package="gnome-user-docs"/> + <dep package="file-roller"/> + <dep package="gnome-system-tools"/> + <dep package="gnome-nettool"/> + <dep package="vino"/> + <dep package="gnome-volume-manager"/> + <dep package="totem"/> + <dep package="gnome-menus"/> + <dep package="gnome-backgrounds"/> + <dep package="sound-juicer"/> + <dep package="totem"/> + <dep package="evolution"/> + <dep package="evolution-webcal"/> + <dep package="ekiga"/> + + </dependencies> + </metamodule> + <metamodule id="meta-gnome-devel-tools"> + <dependencies> + <dep package="glade"/> + <dep package="memprof"/> + <dep package="gconf-editor"/> + <dep package="devhelp"/> + <dep package="nautilus-vcs"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-python"> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-c++"> + <dependencies> + <dep package="gtkmm"/> + <dep package="gnomemm/libgnomeuimm"/> + <dep package="gnomemm/gnome-vfsmm"/> + <dep package="gnomemm/libpanelappletmm"/> + <dep package="gnomemm/libbonobouimm"/> + <dep package="gnomemm/libgnomeprintuimm"/> + <dep package="libxml++"/> + <dep package="gnomemm/libgdamm"/> + <dep package="bakery"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-accessibility"> + <dependencies> + <dep package="libgail-gnome"/> + <dep package="at-poke"/> + <dep package="dasher"/> + <dep package="gnome-mag"/> + <dep package="gok"/> + <dep package="gnome-speech"/> + <dep package="gnopernicus"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-proposed"> + <dependencies> + </dependencies> + </metamodule> + <autotools id="sodipodi"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-themes"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gtk-engines"/> + </dependencies> + </autotools> + <autotools id="clearlooks"> + <branch repo="clearlooks.sf.net"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnome"/> + </dependencies> + </autotools> + <autotools id="gob"> + <branch/> + </autotools> + <autotools id="libgnetwork"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gconf"/> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="libgircclient"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + </dependencies> + </autotools> + <autotools id="gnomechat"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + <dep package="libgircclient"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <mozillamodule id="mozilla" autogenargs="--enable-default-toolkit=gtk2 --disable-mailnews --disable-ldap --disable-debug --enable-optimize --disable-tests --enable-crypto --enable-xft --with-system-zlib --disable-freetype2" cvsroot="mozilla.org" revision="MOZILLA_1_7_BRANCH"> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </mozillamodule> + <autotools id="epiphany"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="mozilla"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="epiphany-extensions"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="epiphany"/> + </dependencies> + </autotools> + <autotools id="pyphany"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="epiphany-extensions"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="galeon"> + <branch/> + <dependencies> + <dep package="mozilla"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libsoup"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="glib"/> + <dep package="gnutls"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtkhtml"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gail"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libsoup"/> + <dep package="gal"/> + </dependencies> + </autotools> + <autotools id="evolution-data-server" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + <dep package="libsoup"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="evolution"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="gtkhtml"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="evolution-webcal"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="libsoup"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <tarball id="xchat" version="2.4.1"> + <source href="http://xchat.org/files/source/2.4/xchat-2.4.1.tar.bz2" + size="1214388" md5sum="aeb2337cc36dd4a9ac0cd6e909f67227"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </tarball> + <tarball id="camorama" version="0.17"> + <source href="http://camorama.fixedgear.org/downloads/camorama-0.17.tar.bz2" + size="312233" md5sum="2b2784af53a1ba8fa4419aa806967b35"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </tarball> + <autotools id="gtk-engines-cleanice"> + <branch repo="elysium-project.sf.net"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gaim"> + <branch repo="gaim.sf.net"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="zenity"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libgnomecanvas"/> + </dependencies> + </autotools> + <autotools id="gpdf"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnome-netstatus"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gnome-doc-utils"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libxslt"/> + </dependencies> + </autotools> + <autotools id="totem" autogenargs="--enable-gstreamer"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="nautilus-cd-burner"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + </dependencies> + </autotools> + <autotools id="gnome-themes-extras"> + <branch/> + <dependencies> + <dep package="gnome-themes"/> + </dependencies> + </autotools> + <autotools id="libgda"> + <branch module="libgda" revision="release-1-2-branch"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libgnomedb" autogenargs="--enable-gnome=yes"> + <branch/> + <dependencies> + <dep package="libgda"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="mergeant"> + <branch/> + <dependencies> + <dep package="libgnomedb"/> + </dependencies> + </autotools> + <autotools id="gtranslator"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-spell"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libgnomecups"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-cups-manager"> + <branch/> + <dependencies> + <dep package="libgnomecups"/> + <dep package="libgnomeui"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libxml++"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="glibmm"/> + </dependencies> + </autotools> + <autotools id="bakery"> + <branch/> + <dependencies> + <dep package="libxml++"/> + <dep package="gtkmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnome-hello"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-system-tools"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="system-tools-backends"/> + </dependencies> + </autotools> + <autotools id="gnome-user-docs"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <autotools id="loudmouth"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gossip"> + <branch revision="gossip-0-8"/> + <dependencies> + <dep package="loudmouth"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="conglomerate"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sound-juicer"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-media"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gnome-network"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="guile" version="1.6.7"> + <source href="ftp://ftp.gnu.org/gnu/guile/guile-1.6.7.tar.gz" + size="3039294" md5sum="c2ff2a2231f0cbb2e838dd8701a587c5"/> + </tarball> + <tarball id="autogen" version="5.6.5"> + <source href="http://internap.dl.sourceforge.net/sourceforge/autogen/autogen-5.6.5.tar.gz" + size="1144260" md5sum="54a6cb0be7e6b526af9aba4a73013885"/> + <dependencies> + <dep package="guile"/> + </dependencies> + </tarball> + <autotools id="anjuta"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + <dep package="vte"/> + <dep package="gnome-build"/> + <dep package="autogen"/> + </dependencies> + </autotools> + <autotools id="OpenApplet"> + <branch/> + <dependencies> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gtetrinet"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="glom"> + <branch/> + <dependencies> + <dep package="gnomemm/libgdamm"/> + <dep package="bakery"/> + <dep package="libgnome"/> + </dependencies> + </autotools> + <autotools id="vino"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="gconf"/> + <dep package="gnutls"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring-manager"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-keyring"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="gnome-volume-manager"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="hal-0.4"/> + </dependencies> + </autotools> + <metamodule id="meta-storage"> + <dependencies> + <dep package="storage/storage-store"/> + <dep package="storage/vfs"/> + <dep package="storage/applet"/> + </dependencies> + </metamodule> + <autotools id="storage/storage-store"> + <branch/> + <dependencies> + <dep package="dbus-0.23"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage"> + <branch/> + <dependencies> + <dep package="gnome-vfs"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-translators"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + </dependencies> + </autotools> + <autotools id="storage/vfs"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libstorage-translators"/> + </dependencies> + </autotools> + <autotools id="storage/pet"> + <branch/> + </autotools> + <autotools id="storage/libmrs"> + <branch/> + <dependencies> + <dep package="storage/pet"/> + </dependencies> + </autotools> + <autotools id="storage/libmrs-converter"> + <branch/> + <dependencies> + <dep package="storage/libmrs"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-nl"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libmrs"/> + <dep package="storage/libmrs-converter"/> + </dependencies> + </autotools> + <autotools id="storage/applet"> + <branch/> + <dependencies> + <dep package="gnome-python"/> + <dep package="storage/libstorage-nl"/> + </dependencies> + </autotools> + <autotools id="gnome-nettool"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="monkey-bubble"> + <branch/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-schedule"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="yelp"/> + </dependencies> + </autotools> + <autotools id="gnome-backgrounds"> + <branch/> + </autotools> + <autotools id="evince"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="poppler"/> + </dependencies> + </autotools> + <autotools id="nautilus-python" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </autotools> + <autotools id="gst-python" autogenargs="--" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" revision="BRANCH-GSTREAMER-0_8"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + </dependencies> + </autotools> +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gnome-2.12.modules b/build-scripts/jhbuild/modulesets/gnome-2.12.modules new file mode 100644 index 0000000..ffbd897 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gnome-2.12.modules @@ -0,0 +1,1747 @@ +<?xml version="1.0"?><!--*- mode: nxml -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + <repository type="cvs" name="gnome.org" default="yes" + cvsroot=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" + password=""/> + <repository type="cvs" name="cairo.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/cairo" + password=""/> + <repository type="cvs" name="mozilla.org" + cvsroot=":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot" + password="anonymous"/> + <repository type="cvs" name="gstreamer.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/gstreamer" + password=""/> + <repository type="cvs" name="menu.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/menus" + password=""/> + <repository type="cvs" name="mime.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/mime" + password=""/> + <repository type="cvs" name="xklavier.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/xklavier" + password=""/> + + <repository type="cvs" name="elysium-project.sf.net" + cvsroot=":pserver:anonymous@elysium-project.cvs.sourceforge.net:/cvsroot/elysium-project" + password=""/> + <repository type="cvs" name="gaim.sf.net" + cvsroot=":pserver:anonymous@gaim.cvs.sourceforge.net:/cvsroot/gaim" + password=""/> + <repository type="cvs" name="inkscape.sf.net" + cvsroot=":pserver:anonymous@inkscape.cvs.sourceforge.net:/cvsroot/inkscape" + password=""/> + <repository type="svn" name="svn.galago-project.org" + href="http://svn.galago-project.org/"/> + <repository type="svn" name="svn.debian.org" + href="svn://svn.debian.org/"/> + + <tarball id="scrollkeeper" version="0.3.14" supports-non-srcdir-builds="no"> + <source href="http://unc.dl.sourceforge.net/sourceforge/scrollkeeper/scrollkeeper-0.3.14.tar.gz" + size="679513" md5sum="161eb3f29e30e7b24f84eb93ac696155"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="intltool"/> + </dependencies> + <patches> + <patch file="scrollkeeper_clean_xml_validation_context.patch" strip="1"/> + <patch file="scrollkeeper_language_fix.patch" strip="1"/> + <patch file="scrollkeeper_rw_offset_fix.patch" strip="1"/> + </patches> + </tarball> + + <autotools id="iso-codes"> + <branch repo="svn.debian.org" module="pkg-isocodes/trunk/iso-codes" checkoutdir="iso-codes"/> + </autotools> + + <include href="freedesktop.modules"/> + <include href="gnutls.modules"/> + + <autotools id="cairo-gtk-engine"> + <branch repo="cairo.freedesktop.org"/> + <dependencies> + <dep package="gtk+"/> + <dep package="cairo-1-0"/> + </dependencies> + </autotools> + + <autotools id="shared-mime-info" supports-non-srcdir-builds="no"> + <branch repo="mime.freedesktop.org"/> + <dependencies> + <dep package="intltool"/> + </dependencies> + </autotools> + + <autotools id="desktop-file-utils"> + <branch repo="menu.freedesktop.org"/> + <dependencies> + <dep package="glib"/> + <dep package="intltool"/> + </dependencies> + </autotools> + + <autotools id="libxklavier" supports-non-srcdir-builds="no"> + <branch repo="xklavier.freedesktop.org"/> + </autotools> + <autotools id="libbtctl"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-bluetooth"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + <dep package="libbtctl"/> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="phonemgr"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + <dep package="libbtctl"/> + <dep package="gnome-bluetooth"/> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="libgnome"/> + <dep package="gconf"/> + </dependencies> + </autotools> + + <autotools id="intltool"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-common"> + <branch revision="gnome-2-12"/> + </autotools> + <autotools id="libxml2"> + <branch module="gnome-xml" checkoutdir="libxml2"/> + </autotools> + <autotools id="libxslt"> + <branch/> + <dependencies> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtk-doc"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <autotools id="glib"> + <branch revision="glib-2-8"/> + <dependencies> + <dep package="gtk-doc"/> + </dependencies> + </autotools> + <autotools id="pango"> + <branch revision="pango-1-10"/> + <dependencies> + <dep package="glib"/> + <dep package="cairo-1-0"/> + <dep package="libXft"/> + </dependencies> + </autotools> + <autotools id="atk"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gtk+"> + <branch revision="gtk-2-8"/> + <dependencies> + <dep package="cairo-1-0"/> + <dep package="pango"/> + <dep package="atk"/> + <dep package="shared-mime-info"/> + </dependencies> + </autotools> + <autotools id="gail"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="atk"/> + <dep package="libgnomecanvas"/> + </dependencies> + </autotools> + <autotools id="gtkhtml2"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libIDL"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="ORBit2"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libIDL"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gconf"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="ORBit2"/> + <dep package="libxml2"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libbonobo"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="ORBit2"/> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-mime-data"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-icon-theme"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="hicolor-icon-theme"/> + </dependencies> + </autotools> + <tarball id="howl" version="1.0.0"> + <source href="http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz" + size="542782" md5sum="c389d3ffba0e69a179de2ec650f1fdcc"/> + <patches> + <patch file="howl-1.0.0-buildfix.patch" strip="1"/> + </patches> + </tarball> + <autotools id="gnome-vfs"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gconf"/> + <dep package="desktop-file-utils"/> + <dep package="shared-mime-info"/> + <dep package="gnome-mime-data"/> + <dep package="howl"/> + <dep package="hal"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libart_lgpl"> + <branch/> + </autotools> + <autotools id="libgnome"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="libbonobo"/> + <dep package="gnome-vfs"/> + <dep package="gconf"/> + <dep package="esound"/> + </dependencies> + </autotools> + <autotools id="libgnomecanvas"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="libglade"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="libbonoboui"> + <branch revision="gnome-2-10"/> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libgnomecanvas"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgnomeui"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gnome-icon-theme"/> + <dep package="gnome-keyring"/> + </dependencies> + </autotools> + <autotools id="libglade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="pygtk"> + <branch revision="pygtk-2-8"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libglade"/> + </dependencies> + <after> + <dep package="pycairo-1-0"/> + </after> + </autotools> + <autotools id="pyorbit"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnome-python"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="pyorbit"/> + <dep package="libgnomecanvas"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-python-extras"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-panel"/> + <dep package="gtkhtml2"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + <dep package="libwnck"/> + <!-- Needs libgda 1.2, not HEAD <dep package="libgda" /> --> + <dep package="nautilus-cd-burner"/> + <dep package="libgtop"/> + <dep package="totem"/> + <dep package="gdl"/> + <dep package="gnome-media"/> + </dependencies> + </autotools> + <autotools id="bug-buddy"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-menus"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="libwnck"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gtk+"/> + <dep package="startup-notification"/> + </dependencies> + </autotools> + <autotools id="gnome-desktop" autogenargs="--with-gnome-distributor=JHBuild"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="startup-notification"/> + <dep package="gnome-themes"/> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-menus"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="glib"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="gnome-panel"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + <dep package="libwnck"/> + <dep package="evolution-data-server"/> + <dep package="gnome-menus"/> + <dep package="gnome-vfs"/> + <dep package="libglade"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-session"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + </dependencies> + </autotools> + <autotools id="gnome-applets"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gnome-panel"/> + <dep package="libgtop"/> + <dep package="gail"/> + <dep package="libxklavier"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="gucharmap"/> + <dep package="system-tools-backends"/> + </dependencies> + </autotools> + <autotools id="gnome-games"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="librsvg"/> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gob"/> + </dependencies> + </autotools> + <autotools id="libcroco" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="pango"/> + </dependencies> + </autotools> + <autotools id="librsvg" autogenargs="--enable-more-warnings=no" + supports-non-srcdir-builds="no"> + <branch revision="gnome-2-12-branch"/> + <dependencies> + <dep package="libxml2"/> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="gnome-common"/> + <dep package="libgsf"/> + <dep package="libcroco"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="eel"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gail"/> + <dep package="gnome-desktop"/> + <dep package="gnome-menus"/> + </dependencies> + </autotools> + <autotools id="nautilus"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="esound"/> + <dep package="eel"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + </dependencies> + </autotools> + <autotools id="nautilus-cd-burner"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-open-terminal"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-media" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + </dependencies> + </autotools> + <autotools id="nautilus-vcs"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="metacity"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgtop"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-system-monitor"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="libgtop"/> + </dependencies> + </autotools> + <autotools id="gnome-control-center" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gnome-desktop"/> + <dep package="metacity"/> + <dep package="nautilus"/> + <dep package="libxklavier"/> + <dep package="gnome-menus"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="yelp"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="gnome-doc-utils"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="devhelp"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="gnome-utils"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gconf-editor" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <tarball id="audiofile" version="0.2.6" supports-non-srcdir-builds="no"> + <source href="http://www.68k.org/~michael/audiofile/audiofile-0.2.6.tar.gz" + size="374688" md5sum="9c1049876cd51c0f1b12c2886cce4d42"/> + </tarball> + <autotools id="esound"> + <branch/> + <dependencies> + <dep package="audiofile"/> + </dependencies> + </autotools> + <autotools id="gnome-media"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gail"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gdm2"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="librsvg"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="vte"> + <branch/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gnome-terminal"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="startup-notification"/> + </dependencies> + </autotools> + <autotools id="gtk-engines"> + <branch revision="gtk-engines-2-6"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libgnomeprint"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="libart_lgpl"/> + <dep package="glib"/> + <dep package="gnome-common"/> + <dep package="pango"/> + <dep package="libgnomecups"/> + </dependencies> + </autotools> + <autotools id="libgnomeprintui"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeprint"/> + <dep package="gtk+"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-icon-theme"/> + </dependencies> + </autotools> + <autotools id="gedit"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="eel"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + </dependencies> + </autotools> + <autotools id="gedit-plugins"> + <branch/> + <dependencies> + <dep package="gedit"/> + <dep package="libgnomeui"/> + <dep package="eel"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="memprof"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="eog"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="libgsf"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gnome-vfs"/> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="goffice"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgsf"/> + <dep package="libxml2"/> + <dep package="pango"/> + <dep package="libglade"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="gnumeric"> + <branch/> + <dependencies> + <dep package="goffice"/> + <dep package="libgsf"/> + <!-- Needs libgda 1.2, not HEAD <dep package="libgda" /> --> + <dep package="pygtk"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gimp" autogenargs="--disable-print"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="glade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="glade2c"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sawfish"> + <branch revision="gnome-2"/> + <dependencies> + <dep package="rep-gtk"/> + </dependencies> + </autotools> + <autotools id="rep-gtk"> + <branch/> + <dependencies> + <dep package="librep"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="librep"> + <branch/> + </autotools> + <autotools id="rhythmbox"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gst-plugins"/> + <dep package="nautilus-cd-burner"/> + <dep package="totem"/> + </dependencies> + </autotools> + <autotools id="gstreamer" autogenargs="-- --disable-plugin-builddir --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" revision="BRANCH-GSTREAMER-0_8"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gst-plugins" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" revision="BRANCH-GSTREAMER-0_8"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gnome-vfs"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="planner"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="libgsf"/> + </dependencies> + </autotools> + <autotools id="file-roller"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="balsa"> + <branch revision="BALSA_2"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="pan"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnet"/> + </dependencies> + </autotools> + <autotools id="gcalctool" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="ggv" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="ekiga"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gucharmap" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gtksourceview" autogenargs="--enable-compile-warnings=maximum"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeprint"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="glimmer"> + <branch/> + <dependencies> + <dep package="gtksourceview"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gdl"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="librsvg"/> + </dependencies> + </autotools> + <autotools id="gnome-build"> + <branch/> + <dependencies> + <dep package="gdl"/> + <dep package="gnome-vfs"/> + <dep package="gtkhtml2"/> + </dependencies> + </autotools> + <autotools id="scaffold"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="gdl"/> + </dependencies> + </autotools> + <autotools id="libsigc++2"> + <branch revision="libsigc-2-0"/> + </autotools> + <autotools id="glibmm"> + <branch revision="glibmm-2-8"/> + <dependencies> + <dep package="glib"/> + <dep package="libsigc++2"/> + </dependencies> + </autotools> + <autotools id="gtkmm"> + <branch revision="gtkmm-2-8"/> + <dependencies> + <dep package="glibmm"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="orbitcpp"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomemm"> + <branch/> + <dependencies> + <dep package="libgnome"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libglademm"> + <branch/> + <dependencies> + <dep package="libglade"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobomm"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gtkmm"/> + <dep package="orbitcpp"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobouimm"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="gnomemm/libbonobomm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomecanvasmm"> + <branch/> + <dependencies> + <dep package="libgnomecanvas"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gconfmm"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeuimm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeui"/> + <dep package="gnomemm/libgnomemm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/libgnomecanvasmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gnome-vfsmm"> + <branch/> + <dependencies> + <dep package="glibmm"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libpanelappletmm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeprintmm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeprintuimm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="gnomemm/libgnomeprintmm"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgdamm"> + <branch revision="libgda-1-2"/> + <dependencies> + <dep package="gtkmm"/> + <!-- needs libgda 1.2, not HEAD <dep package="libgda" /> --> + </dependencies> + </autotools> + <autotools id="gnomemm/gtkmm_hello"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="regexxer"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="gtkmm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/libglademm"/> + </dependencies> + </autotools> + <autotools id="gnet" autogenargs="--enable-glib2"> + <branch revision="GNET_1_1"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnomeicu"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="at-spi"> + <branch revision="AT_SPI_1_6_6"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libgail-gnome"> + <branch/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="at-poke"> + <branch/> + <dependencies> + <dep package="libgail-gnome"/> + </dependencies> + </autotools> + <autotools id="gnome-mag"> + <branch/> + <dependencies> + <dep package="at-spi"/> + </dependencies> + </autotools> + <autotools id="gok"> + <branch/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <autotools id="gnome-speech"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="gnopernicus"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-mag"/> + </dependencies> + </autotools> + <autotools id="dasher" autogenargs="--with-a11y --with-gnome"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnome-screensaver"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="gtk+"/> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="gnome-power-manager"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="hal"/> + <dep package="libwnck"/> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + <dep package="libnotify"/> + </dependencies> + </autotools> + <autotools id="gthumb"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="libglade"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="fast-user-switch-applet"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libglade"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="libnotify"> + <branch repo="svn.galago-project.org" module="trunk/libnotify"/> + <dependencies> + <dep package="gtk+"/> + <dep package="dbus"/> + </dependencies> + </autotools> + + <metamodule id="meta-gnome-devel-platform"> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libbonoboui"/> + <dep package="libgnomeui"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-core"> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="gnome-panel"/> + <dep package="gnome-session"/> + <dep package="gnome-terminal"/> + <dep package="gnome-applets"/> + </dependencies> + </metamodule> + <metamodule id="meta-nautilus"> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-desktop"> + <dependencies> + <dep package="meta-gnome-core"/> + <dep package="gnome-control-center"/> + <dep package="meta-nautilus"/> + <dep package="yelp"/> + <dep package="bug-buddy"/> + <dep package="gedit"/> + <dep package="gtk-engines"/> + <dep package="eog"/> + <dep package="metacity"/> + <dep package="gconf-editor"/> + <dep package="gnome-utils"/> + <dep package="gnome-system-monitor"/> + <dep package="gstreamer"/> + <dep package="gnome-media"/> + <dep package="gnome-netstatus"/> + <dep package="gcalctool"/> + <dep package="gucharmap"/> + <dep package="nautilus-cd-burner"/> + <dep package="zenity"/> + <dep package="libgail-gnome"/> + <dep package="gnopernicus"/> + <dep package="gok"/> + <dep package="epiphany"/> + <dep package="gnome-games"/> + <dep package="gnome-user-docs"/> + <dep package="file-roller"/> + <dep package="gnome-system-tools"/> + <dep package="gnome-nettool"/> + <dep package="vino"/> + <dep package="gnome-volume-manager"/> + <dep package="totem"/> + <dep package="gnome-menus"/> + <dep package="gnome-backgrounds"/> + <dep package="sound-juicer"/> + <dep package="evolution"/> + <dep package="evolution-webcal"/> + <dep package="evolution-exchange"/> + <dep package="ekiga"/> + <dep package="evince"/> + <dep package="dasher"/> + <dep package="gnome-keyring-manager"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-devel-tools"> + <dependencies> + <dep package="glade"/> + <dep package="memprof"/> + <dep package="gconf-editor"/> + <dep package="devhelp"/> + <dep package="nautilus-vcs"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-python"> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + <after> + <dep package="gnome-python-extras"/> + </after> + </metamodule> + <metamodule id="meta-gnome-c++"> + <dependencies> + <dep package="gtkmm"/> + <dep package="gnomemm/libgnomeuimm"/> + <dep package="gnomemm/gnome-vfsmm"/> + <dep package="gnomemm/libpanelappletmm"/> + <dep package="gnomemm/libbonobouimm"/> + <dep package="gnomemm/libgnomeprintuimm"/> + <dep package="libxml++"/> + <dep package="gnomemm/libgdamm"/> + <dep package="bakery"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-accessibility"> + <dependencies> + <dep package="libgail-gnome"/> + <dep package="at-poke"/> + <dep package="dasher"/> + <dep package="gnome-mag"/> + <dep package="gok"/> + <dep package="gnome-speech"/> + <dep package="gnopernicus"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-proposed"> + <dependencies> + </dependencies> + </metamodule> + <autotools id="sodipodi"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-themes"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gtk-engines"/> + </dependencies> + </autotools> + <autotools id="gob"> + <branch/> + </autotools> + <autotools id="libgnetwork"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gconf"/> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="libgircclient"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + </dependencies> + </autotools> + <autotools id="gnomechat"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + <dep package="libgircclient"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <mozillamodule id="mozilla" autogenargs="--enable-default-toolkit=gtk2 --disable-mailnews --disable-ldap --disable-debug --enable-optimize --disable-tests --enable-crypto --enable-xft --with-system-zlib --disable-freetype2 --enable-application=browser" cvsroot="mozilla.org" revision="MOZILLA_1_7_BRANCH"> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </mozillamodule> + <autotools id="epiphany"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="iso-codes"/> + <dep package="libgnomeui"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeprintui"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="epiphany-extensions"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="epiphany"/> + </dependencies> + </autotools> + <autotools id="galeon"> + <branch/> + <dependencies> + <dep package="mozilla"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libsoup"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="glib"/> + <dep package="gnutls"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtkhtml"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gail"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libsoup"/> + </dependencies> + </autotools> + <autotools id="evolution-data-server" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + <dep package="libsoup"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="evolution"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="gtkhtml"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="evolution-webcal"> + <branch/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="libsoup"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="evolution-exchange"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="evolution"/> + <dep package="libsoup"/> + </dependencies> + </autotools> + <tarball id="xchat" version="2.4.5"> + <source href="http://xchat.org/files/source/2.4/xchat-2.4.5.tar.bz2" + size="1324626" md5sum="9107a92693e6c62ff2008030e698b92b"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </tarball> + <tarball id="camorama" version="0.17"> + <source href="http://camorama.fixedgear.org/downloads/camorama-0.17.tar.bz2" + size="312233" md5sum="2b2784af53a1ba8fa4419aa806967b35"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </tarball> + <autotools id="gtk-engines-cleanice"> + <branch repo="elysium-project.sf.net"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gaim"> + <branch repo="gaim.sf.net"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="zenity"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gpdf"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnome-netstatus"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-doc-utils"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libxslt"/> + <dep package="intltool"/> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="libmusicbrainz" version="2.1.1"> + <source href="ftp://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-2.1.1.tar.gz" + size="528162" md5sum="4f753d93a85cf413e00f1394b8cbd269"/> + </tarball> + <autotools id="totem" autogenargs="--enable-gstreamer"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="nautilus-cd-burner"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="libmusicbrainz"/> + <dep package="iso-codes"/> + </dependencies> + </autotools> + <autotools id="gnome-themes-extras"> + <branch/> + <dependencies> + <dep package="gnome-themes"/> + </dependencies> + </autotools> + <autotools id="libgda"> + <branch module="libgda"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libgnomedb" autogenargs="--enable-gnome=yes"> + <branch/> + <dependencies> + <dep package="libgda"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="mergeant"> + <branch/> + <dependencies> + <dep package="libgnomedb"/> + </dependencies> + </autotools> + <autotools id="gtranslator"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-spell"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libgnomecups"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-cups-manager"> + <branch/> + <dependencies> + <dep package="libgnomecups"/> + <dep package="libgnomeui"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libxml++"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libxml2"/> + <dep package="glibmm"/> + </dependencies> + </autotools> + <autotools id="bakery"> + <branch/> + <dependencies> + <dep package="libxml++"/> + <dep package="gtkmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnome-hello"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-system-tools"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="nautilus"/> + <dep package="system-tools-backends"/> + </dependencies> + </autotools> + <autotools id="gnome-user-docs"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <autotools id="loudmouth"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gossip"> + <branch revision="gossip-0-8"/> + <dependencies> + <dep package="loudmouth"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="conglomerate"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sound-juicer"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeui"/> + <dep package="gnome-media"/> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gnome-network"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="guile" version="1.6.7"> + <source href="ftp://ftp.gnu.org/gnu/guile/guile-1.6.7.tar.gz" + size="3039294" md5sum="c2ff2a2231f0cbb2e838dd8701a587c5"/> + </tarball> + <tarball id="autogen" version="5.6.5"> + <source href="http://internap.dl.sourceforge.net/sourceforge/autogen/autogen-5.6.5.tar.gz" + size="1144260" md5sum="54a6cb0be7e6b526af9aba4a73013885"/> + <dependencies> + <dep package="guile"/> + </dependencies> + </tarball> + <autotools id="anjuta"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + <dep package="vte"/> + <dep package="gnome-build"/> + <dep package="autogen"/> + </dependencies> + </autotools> + <autotools id="OpenApplet"> + <branch/> + <dependencies> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gtetrinet"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="glom"> + <branch/> + <dependencies> + <dep package="gnomemm/libgdamm"/> + <dep package="bakery"/> + <dep package="gnomemm/libgnomecanvasmm"/> + <dep package="libgnome"/> + <dep package="iso-codes"/> + <dep package="pygtk"/> + <dep package="gnome-python-extras"/> + </dependencies> + </autotools> + <autotools id="vino"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="gconf"/> + <dep package="gnutls"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring-manager" autogenargs="--disable-more-warnings"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-keyring"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="gnome-volume-manager"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="hal"/> + </dependencies> + </autotools> + <metamodule id="meta-storage"> + <dependencies> + <dep package="storage/storage-store"/> + <dep package="storage/vfs"/> + <dep package="storage/applet"/> + </dependencies> + </metamodule> + <autotools id="storage/storage-store"> + <branch/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage"> + <branch/> + <dependencies> + <dep package="gnome-vfs"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-translators"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + </dependencies> + </autotools> + <autotools id="storage/vfs"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libstorage-translators"/> + </dependencies> + </autotools> + <autotools id="storage/pet"> + <branch/> + </autotools> + <autotools id="storage/libmrs"> + <branch/> + <dependencies> + <dep package="storage/pet"/> + </dependencies> + </autotools> + <autotools id="storage/libmrs-converter"> + <branch/> + <dependencies> + <dep package="storage/libmrs"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-nl"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libmrs"/> + <dep package="storage/libmrs-converter"/> + </dependencies> + </autotools> + <autotools id="storage/applet"> + <branch/> + <dependencies> + <dep package="gnome-python"/> + <dep package="storage/libstorage-nl"/> + </dependencies> + </autotools> + <autotools id="gnome-nettool"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="monkey-bubble"> + <branch/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-schedule"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="yelp"/> + </dependencies> + </autotools> + <autotools id="gnome-backgrounds"> + <branch/> + </autotools> + <autotools id="evince"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="poppler-0-4"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="nautilus-python" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </autotools> + <autotools id="gst-python" autogenargs="--" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" revision="BRANCH-GSTREAMER-0_8"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins"/> + </dependencies> + </autotools> + <autotools id="inkscape"> + <branch repo="inkscape.sf.net"/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libxslt"/> + </dependencies> + </autotools> +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gnome-2.14.modules b/build-scripts/jhbuild/modulesets/gnome-2.14.modules new file mode 100644 index 0000000..8a885ec --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gnome-2.14.modules @@ -0,0 +1,2014 @@ +<?xml version="1.0"?><!--*- mode: nxml -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + <repository type="cvs" name="gnome.org" default="yes" + cvsroot=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" + password=""/> + <repository type="cvs" name="cairo.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/cairo" + password=""/> + <repository type="cvs" name="mozilla.org" + cvsroot=":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot" + password="anonymous"/> + <repository type="cvs" name="liboil.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/liboil" + password=""/> + <repository type="cvs" name="gstreamer.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/gstreamer" + password=""/> + <repository type="cvs" name="menu.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/menus" + password=""/> + <repository type="cvs" name="mime.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/mime" + password=""/> + <repository type="cvs" name="xklavier.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/xklavier" + password=""/> + + <repository type="cvs" name="elysium-project.sf.net" + cvsroot=":pserver:anonymous@elysium-project.cvs.sourceforge.net:/cvsroot/elysium-project" + password=""/> + <repository type="cvs" name="gaim.sf.net" + cvsroot=":pserver:anonymous@gaim.cvs.sourceforge.net:/cvsroot/gaim" + password=""/> + <repository type="cvs" name="inkscape.sf.net" + cvsroot=":pserver:anonymous@inkscape.cvs.sourceforge.net:/cvsroot/inkscape" + password=""/> + <repository type="svn" name="svn.galago-project.org" + href="http://svn.galago-project.org/"/> + <repository type="svn" name="osiris.chipx86.com" + href="http://osiris.chipx86.com/svn/osiris-misc/"/> + <repository type="svn" name="svn.debian.org" + href="svn://svn.debian.org/"/> + <repository type="cvs" name="openh323.sf.net" + cvsroot=":pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323" + password="" /> + + <tarball id="scrollkeeper" version="0.3.14" supports-non-srcdir-builds="no"> + <source href="http://easynews.dl.sourceforge.net/sourceforge/scrollkeeper/scrollkeeper-0.3.14.tar.gz" + size="679513" md5sum="161eb3f29e30e7b24f84eb93ac696155"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="intltool"/> + </dependencies> + <patches> + <patch file="scrollkeeper_clean_xml_validation_context.patch" strip="1"/> + <patch file="scrollkeeper_language_fix.patch" strip="1"/> + <patch file="scrollkeeper_rw_offset_fix.patch" strip="1"/> + </patches> + </tarball> + + <autotools id="iso-codes"> + <branch repo="svn.debian.org" module="pkg-isocodes/trunk/iso-codes" checkoutdir="iso-codes"/> + </autotools> + + <include href="freedesktop.modules"/> + <include href="gnutls.modules"/> + + <autotools id="cairo-gtk-engine"> + <branch repo="cairo.freedesktop.org"/> + <dependencies> + <dep package="gtk+"/> + <dep package="cairo-1-0"/> + </dependencies> + </autotools> + + <autotools id="shared-mime-info" supports-non-srcdir-builds="no"> + <branch repo="mime.freedesktop.org"/> + <dependencies> + <dep package="intltool"/> + <dep package="libxml2"/> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="desktop-file-utils"> + <branch repo="menu.freedesktop.org"/> + <dependencies> + <dep package="glib"/> + <dep package="intltool"/> + </dependencies> + </autotools> + + <autotools id="libxklavier" supports-non-srcdir-builds="no"> + <branch repo="xklavier.freedesktop.org" revision="v_2_x"/> + <dependencies> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="libbtctl"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-bluetooth"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + <dep package="libbtctl"/> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="phonemgr"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + <dep package="libbtctl"/> + <dep package="gnome-bluetooth"/> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="libgnome"/> + <dep package="gconf"/> + </dependencies> + </autotools> + + <autotools id="intltool"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-common"> + <branch/> + </autotools> + <autotools id="libxml2"> + <branch module="gnome-xml" checkoutdir="libxml2"/> + </autotools> + <autotools id="libxslt"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="libgcrypt"/> + </dependencies> + </autotools> + <autotools id="gtk-doc"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <autotools id="gamin"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="glib"> + <branch revision="glib-2-10"/> + <dependencies> + <dep package="gtk-doc"/> + </dependencies> + </autotools> + <autotools id="pango"> + <branch revision="pango-1-12"/> + <dependencies> + <dep package="glib"/> + <dep package="cairo-1-0"/> + <dep package="libXft"/> + </dependencies> + </autotools> + <autotools id="atk"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gtk+"> + <branch revision="gtk-2-8"/> + <dependencies> + <dep package="cairo-1-0"/> + <dep package="pango"/> + <dep package="atk"/> + <dep package="shared-mime-info"/> + </dependencies> + </autotools> + <autotools id="gail"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk+"/> + <dep package="atk"/> + <dep package="libgnomecanvas"/> + </dependencies> + </autotools> + <autotools id="gtkhtml2"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libIDL"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="ORBit2"> + <branch/> + <dependencies> + <dep package="libIDL"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gconf"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + <dep package="libxml2"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libbonobo"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="ORBit2"/> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-mime-data"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-icon-theme"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="hicolor-icon-theme"/> + </dependencies> + </autotools> + <tarball id="howl" version="1.0.0"> + <source href="http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz" + size="542782" md5sum="c389d3ffba0e69a179de2ec650f1fdcc"/> + <patches> + <patch file="howl-1.0.0-buildfix.patch" strip="1"/> + </patches> + </tarball> + <autotools id="gnome-vfs"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gconf"/> + <dep package="desktop-file-utils"/> + <dep package="shared-mime-info"/> + <dep package="gnome-mime-data"/> + <dep package="howl"/> + <dep package="hal"/> + <dep package="gamin"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libart_lgpl"> + <branch/> + </autotools> + <autotools id="libgnome"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="libbonobo"/> + <dep package="gnome-vfs"/> + <dep package="gconf"/> + <dep package="esound"/> + </dependencies> + </autotools> + <autotools id="libgnomecanvas"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="libglade"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="libbonoboui"> + <branch/> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libgnomecanvas"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgnomeui"> + <branch revision="libgnomeui-2-14"/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gnome-icon-theme"/> + <dep package="gnome-keyring"/> + </dependencies> + </autotools> + <autotools id="libglade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="pygobject"> + <branch revision="pygobject-2-10"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="pygtk"> + <branch revision="pygtk-2-8"/> + <dependencies> + <dep package="pygobject"/> + <dep package="gtk+"/> + <dep package="pycairo-1-0"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="pyorbit"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnome-python"> + <branch revision="gnome-python-2-12"/> + <dependencies> + <dep package="pygtk"/> + <dep package="pyorbit"/> + <dep package="libgnomecanvas"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-python-desktop"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gnome-python"/> + <dep package="gnome-panel"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + <dep package="libwnck"/> + <dep package="totem"/> + <dep package="libgtop"/> + <dep package="nautilus-cd-burner"/> + <dep package="gnome-media"/> + <dep package="metacity"/> + </dependencies> + </autotools> + <autotools id="gnome-python-extras"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gtkhtml2"/> + <dep package="gdl"/> + </dependencies> + </autotools> + <autotools id="bug-buddy"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-menus"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="libwnck"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk+"/> + <dep package="startup-notification"/> + </dependencies> + </autotools> + <autotools id="gnome-desktop" autogenargs="--with-gnome-distributor=JHBuild"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="startup-notification"/> + <dep package="gnome-themes"/> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-menus"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="glib"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="gnome-panel"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + <dep package="libwnck"/> + <dep package="evolution-data-server"/> + <dep package="gnome-menus"/> + <dep package="gnome-vfs"/> + <dep package="libglade"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-session"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + </dependencies> + </autotools> + <autotools id="gnome-applets" autogenargs="--enable-gstreamer=0.10"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gnome-panel"/> + <dep package="libgtop"/> + <dep package="gail"/> + <dep package="libxklavier"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gucharmap"/> + <dep package="system-tools-backends-1.4"/> + </dependencies> + </autotools> + <autotools id="gnome-games"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="librsvg"/> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gob"/> + </dependencies> + </autotools> + <autotools id="libcroco" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="pango"/> + </dependencies> + </autotools> + <autotools id="librsvg" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libxml2"/> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="gnome-common"/> + <dep package="libgsf"/> + <dep package="libcroco"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="eel"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gail"/> + <dep package="gnome-desktop"/> + <dep package="gnome-menus"/> + </dependencies> + </autotools> + <autotools id="nautilus"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="esound"/> + <dep package="eel"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + </dependencies> + </autotools> + <autotools id="nautilus-actions"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-cd-burner"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-open-terminal"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-media" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + </dependencies> + </autotools> + <autotools id="nautilus-vcs"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="metacity"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgtop"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-system-monitor"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="libgtop"/> + </dependencies> + </autotools> + <autotools id="gnome-control-center" autogenargs="--enable-gstreamer=0.10" + supports-non-srcdir-builds="no"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gnome-desktop"/> + <dep package="metacity"/> + <dep package="nautilus"/> + <dep package="libxklavier"/> + <dep package="gnome-menus"/> + <dep package="gnome-doc-utils"/> + <dep package="gstreamer"/> + </dependencies> + </autotools> + <autotools id="yelp"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="gnome-doc-utils"/> + <dep package="startup-notification"/> + <dep package="libgnomeprintui"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="devhelp"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="gnome-utils"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gconf-editor" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-14" /> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <tarball id="audiofile" version="0.2.6" supports-non-srcdir-builds="no"> + <source href="http://www.68k.org/~michael/audiofile/audiofile-0.2.6.tar.gz" + size="374688" md5sum="9c1049876cd51c0f1b12c2886cce4d42"/> + </tarball> + <autotools id="esound"> + <branch/> + <dependencies> + <dep package="audiofile"/> + </dependencies> + </autotools> + <autotools id="gnome-media"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gail"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gdm2"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="librsvg"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="vte"> + <branch revision="vte-0-12"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gnome-terminal"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="startup-notification"/> + </dependencies> + </autotools> + <autotools id="gtk-engines"> + <branch revision="gtk-engines-2-6"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libgnomeprint"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="libart_lgpl"/> + <dep package="glib"/> + <dep package="gnome-common"/> + <dep package="pango"/> + <dep package="libgnomecups"/> + </dependencies> + </autotools> + <autotools id="libgnomeprintui"> + <branch/> + <dependencies> + <dep package="libgnomeprint"/> + <dep package="gtk+"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-icon-theme"/> + </dependencies> + </autotools> + <autotools id="gedit"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + <dep package="gnome-python-desktop"/> + </dependencies> + </autotools> + <autotools id="memprof"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="eog"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="libgsf"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gnome-vfs"/> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="goffice"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgsf"/> + <dep package="libxml2"/> + <dep package="pango"/> + <dep package="libglade"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="gnumeric"> + <branch/> + <dependencies> + <dep package="goffice"/> + <dep package="libgsf"/> + <dep package="pygtk"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gimp" autogenargs="--disable-print"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="glade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="glade2c"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sawfish"> + <branch revision="gnome-2"/> + <dependencies> + <dep package="rep-gtk"/> + </dependencies> + </autotools> + <autotools id="rep-gtk"> + <branch/> + <dependencies> + <dep package="librep"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="librep"> + <branch/> + </autotools> + <autotools id="rhythmbox"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gst-plugins-base"/> + <dep package="nautilus-cd-burner"/> + <dep package="totem"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gstreamer-0-8" autogenargs="-- --disable-plugin-builddir --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gstreamer" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gstreamer-0-8"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-0-8" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gst-plugins-0-8"/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gnome-vfs"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + + <autotools id="gst-python-0-8" autogenargs="--" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-python" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gst-python-0-8"/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + </dependencies> + </autotools> + + <autotools id="gstreamer" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gstreamer"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + + <autotools id="liboil"> + <branch repo="liboil.freedesktop.org" revision="liboil_0_3_6"/> + </autotools> + + <autotools id="gst-plugins-base" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-base"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gnome-vfs"/> + <dep package="gtk+"/> + <dep package="liboil"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-good" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-good"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-ugly" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-ugly"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-bad" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-bad"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-ffmpeg" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-ffmpeg"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-python" autogenargs="--" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-python"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="planner"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="libgsf"/> + </dependencies> + </autotools> + <autotools id="file-roller"> + <branch revision="gnome-2-14" /> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="balsa"> + <branch revision="BALSA_2"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="pan"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnet"/> + </dependencies> + </autotools> + <autotools id="pyspi"> + <branch/> + <dependencies> + <dep package="at-spi"/> + </dependencies> + </autotools> + <autotools id="dogtail"> + <branch/> + <dependencies> + <dep package="pyspi"/> + </dependencies> + <after> + <dep package="gnome-python-desktop"/> + </after> + </autotools> + <autotools id="gcalctool" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="ggv" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="ekiga" autogenargs="--with-pwlib-dir=`ptlib-config --prefix` --with-opal-dir=`ptlib-config --prefix`"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="evolution-data-server"/> + <dep package="opal" /> + <dep package="avahi" /> + </dependencies> + </autotools> + <autotools id="pwlib" autogen-sh="configure"> + <branch repo="openh323.sf.net" module="ptlib_unix" checkoutdir="pwlib" + override-checkoutdir="no" update-new-dirs="no" /> + </autotools> + <autotools id="opal" autogen-sh="configure"> + <branch repo="openh323.sf.net"/> + <dependencies> + <dep package="pwlib"/> + </dependencies> + </autotools> + <autotools id="gucharmap" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gtksourceview" autogenargs="--enable-compile-warnings=maximum"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeprint"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="glimmer"> + <branch/> + <dependencies> + <dep package="gtksourceview"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gdl"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="librsvg"/> + </dependencies> + </autotools> + <autotools id="gnome-build"> + <branch/> + <dependencies> + <dep package="gdl"/> + <dep package="gnome-vfs"/> + <dep package="gtkhtml2"/> + </dependencies> + </autotools> + <autotools id="scaffold"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="gdl"/> + </dependencies> + </autotools> + <autotools id="libsigc++2"> + <branch revision="libsigc-2-0"/> + </autotools> + <autotools id="glibmm"> + <branch revision="glibmm-2-8"/> + <dependencies> + <dep package="glib"/> + <dep package="libsigc++2"/> + </dependencies> + </autotools> + <autotools id="gtkmm"> + <branch revision="gtkmm-2-8"/> + <dependencies> + <dep package="glibmm"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="orbitcpp"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomemm"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnome"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libglademm"> + <branch/> + <dependencies> + <dep package="libglade"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobomm"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gtkmm"/> + <dep package="orbitcpp"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobouimm"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="gnomemm/libbonobomm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomecanvasmm"> + <branch/> + <dependencies> + <dep package="libgnomecanvas"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gconfmm"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeuimm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeui"/> + <dep package="gnomemm/libgnomemm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/libgnomecanvasmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gnome-vfsmm"> + <branch/> + <dependencies> + <dep package="glibmm"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libpanelappletmm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeprintmm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeprintuimm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="gnomemm/libgnomeprintmm"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgdamm"> + <branch revision="libgda-1-2"/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgda-1-2"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gtkmm_hello"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="regexxer"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="gtkmm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/libglademm"/> + </dependencies> + </autotools> + <autotools id="gnet" autogenargs="--enable-glib2"> + <branch revision="GNET_1_1"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnomeicu"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="at-spi"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libgail-gnome"> + <branch/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="at-poke"> + <branch/> + <dependencies> + <dep package="libgail-gnome"/> + </dependencies> + </autotools> + <autotools id="gnome-mag"> + <branch/> + <dependencies> + <dep package="at-spi"/> + </dependencies> + </autotools> + <autotools id="gok"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + <dep package="scrollkeeper"/> + <dep package="gnome-speech"/> + </dependencies> + </autotools> + <autotools id="gnome-speech"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="gnopernicus"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-mag"/> + </dependencies> + </autotools> + <autotools id="dasher" autogenargs="--with-a11y --with-gnome"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnome-screensaver"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gconf"/> + <dep package="gtk+"/> + <dep package="dbus"/> + <dep package="gnome-menus"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-power-manager"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="hal"/> + <dep package="libwnck"/> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + <dep package="libnotify"/> + </dependencies> + </autotools> + <autotools id="gthumb"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="libglade"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="fast-user-switch-applet"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libglade"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gnome-mount" autogenargs="--enable-nautilus-extension"> + <branch/> + <dependencies> + <dep package="gnome-keyring"/> + <dep package="libgnomeui"/> + <dep package="dbus"/> + <dep package="hal"/> + <dep package="gtk+"/> + <dep package="intltool"/> + <dep package="libglade"/> + <dep package="eel"/> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="libnotify"> + <branch repo="svn.galago-project.org" module="trunk/libnotify"/> + <dependencies> + <dep package="gtk+"/> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="libsexy"> + <branch repo="osiris.chipx86.com" module="trunk/libsexy"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="iso-codes"/> + </dependencies> + </autotools> + <autotools id="notification-daemon"> + <branch repo="svn.galago-project.org" module="trunk/notification-daemon"/> + <dependencies> + <dep package="gtk+"/> + <dep package="dbus"/> + <dep package="libsexy"/> + </dependencies> + </autotools> + + <metamodule id="meta-gnome-devel-platform"> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libbonoboui"/> + <dep package="libgnomeui"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-core"> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="gnome-panel"/> + <dep package="gnome-session"/> + <dep package="gnome-terminal"/> + <dep package="gnome-applets"/> + </dependencies> + </metamodule> + <metamodule id="meta-nautilus"> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-desktop"> + <dependencies> + <dep package="meta-gnome-core"/> + <dep package="gnome-control-center"/> + <dep package="meta-nautilus"/> + <dep package="yelp"/> + <dep package="bug-buddy"/> + <dep package="gedit"/> + <dep package="gtk-engines"/> + <dep package="eog"/> + <dep package="metacity"/> + <dep package="gconf-editor"/> + <dep package="gnome-utils"/> + <dep package="gnome-system-monitor"/> + <dep package="gstreamer"/> + <dep package="gnome-media"/> + <dep package="gnome-netstatus"/> + <dep package="gcalctool"/> + <dep package="gucharmap"/> + <dep package="nautilus-cd-burner"/> + <dep package="zenity"/> + <dep package="libgail-gnome"/> + <dep package="gnopernicus"/> + <dep package="gok"/> + <dep package="epiphany"/> + <dep package="gnome-games"/> + <dep package="gnome-user-docs"/> + <dep package="file-roller"/> + <dep package="gnome-system-tools"/> + <dep package="gnome-nettool"/> + <dep package="vino"/> + <dep package="gnome-volume-manager"/> + <dep package="totem"/> + <dep package="gnome-menus"/> + <dep package="gnome-backgrounds"/> + <dep package="sound-juicer"/> + <dep package="evolution"/> + <dep package="evolution-webcal"/> + <dep package="evolution-exchange"/> + <dep package="ekiga"/> + <dep package="evince"/> + <dep package="dasher"/> + <dep package="gnome-keyring-manager"/> + <dep package="deskbar-applet"/> + <dep package="fast-user-switch-applet"/> + <dep package="gnome-screensaver"/> + <dep package="meta-gnome-admin"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-admin"> + <dependencies> + <dep package="pessulus"/> + <dep package="sabayon"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-devel-tools"> + <dependencies> + <dep package="glade"/> + <dep package="memprof"/> + <dep package="gconf-editor"/> + <dep package="devhelp"/> + <dep package="nautilus-vcs"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-python"> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-python-desktop"/> + </dependencies> + <after> + <dep package="gnome-python-extras"/> + </after> + </metamodule> + <metamodule id="meta-gnome-c++"> + <dependencies> + <dep package="gtkmm"/> + <dep package="gnomemm/libgnomeuimm"/> + <dep package="gnomemm/gnome-vfsmm"/> + <dep package="gnomemm/libpanelappletmm"/> + <dep package="gnomemm/libbonobouimm"/> + <dep package="gnomemm/libgnomeprintuimm"/> + <dep package="libxml++"/> + <dep package="gnomemm/libgdamm"/> + <dep package="bakery"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-accessibility"> + <dependencies> + <dep package="libgail-gnome"/> + <dep package="at-poke"/> + <dep package="dasher"/> + <dep package="gnome-mag"/> + <dep package="gok"/> + <dep package="gnome-speech"/> + <dep package="gnopernicus"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-proposed"> + <dependencies> + <dep package="libnotify"/> + <dep package="notification-daemon"/> + <dep package="gnome-power-manager"/> + </dependencies> + </metamodule> + <autotools id="sodipodi"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-themes"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk-engines"/> + </dependencies> + </autotools> + <autotools id="gob"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libgnetwork"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gconf"/> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="libgircclient"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + </dependencies> + </autotools> + <autotools id="gnomechat"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + <dep package="libgircclient"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <mozillamodule id="mozilla" autogenargs="--enable-default-toolkit=gtk2 --disable-mailnews --disable-ldap --disable-debug --enable-optimize --disable-tests --enable-crypto --enable-xft --with-system-zlib --disable-freetype2 --enable-application=browser" cvsroot="mozilla.org" revision="MOZILLA_1_7_BRANCH"> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </mozillamodule> + <autotools id="epiphany"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="iso-codes"/> + <dep package="libgnomeui"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeprintui"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="epiphany-extensions"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="epiphany"/> + </dependencies> + </autotools> + <autotools id="galeon"> + <branch/> + <dependencies> + <dep package="mozilla"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libsoup"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gnutls"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtkhtml"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gail"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libsoup"/> + </dependencies> + </autotools> + <autotools id="evolution-data-server" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + <dep package="libsoup"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="evolution"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="gtkhtml"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + <after> + <dep package="libnotify"/> + </after> + </autotools> + <autotools id="evolution-webcal"> + <branch/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="libsoup"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="evolution-exchange"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="evolution"/> + <dep package="libsoup"/> + </dependencies> + </autotools> + <tarball id="xchat" version="2.4.5"> + <source href="http://xchat.org/files/source/2.4/xchat-2.4.5.tar.bz2" + size="1324626" md5sum="9107a92693e6c62ff2008030e698b92b"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </tarball> + <tarball id="camorama" version="0.17"> + <source href="http://camorama.fixedgear.org/downloads/camorama-0.17.tar.bz2" + size="312233" md5sum="2b2784af53a1ba8fa4419aa806967b35"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </tarball> + <autotools id="gtk-engines-cleanice"> + <branch repo="elysium-project.sf.net"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gaim"> + <branch repo="gaim.sf.net"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="zenity"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gpdf"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnome-netstatus"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-doc-utils"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libxslt"/> + <dep package="intltool"/> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="libmusicbrainz" version="2.1.2"> + <source href="ftp://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-2.1.2.tar.gz" + size="504432" md5sum="88d35af903665fecbdee77eb6d5e6cdd"/> + </tarball> + <autotools id="totem" autogenargs="--enable-gstreamer=0.10"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="nautilus-cd-burner"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="libmusicbrainz"/> + <dep package="iso-codes"/> + </dependencies> + </autotools> + <autotools id="gnome-themes-extras"> + <branch/> + <dependencies> + <dep package="gnome-themes"/> + </dependencies> + </autotools> + + <autotools id="libgda"> + <branch module="libgda"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libgda-1-2"> + <branch module="libgda" revision="release-1-2-branch" + checkoutdir="libgda-1-2"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="libgnomedb" autogenargs="--enable-gnome=yes"> + <branch/> + <dependencies> + <dep package="libgda"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="mergeant"> + <branch/> + <dependencies> + <dep package="libgnomedb"/> + </dependencies> + </autotools> + <autotools id="gtranslator"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-spell"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libgnomecups"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-cups-manager"> + <branch/> + <dependencies> + <dep package="libgnomecups"/> + <dep package="libgnomeui"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libxml++"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="glibmm"/> + </dependencies> + </autotools> + <autotools id="bakery"> + <branch/> + <dependencies> + <dep package="libxml++"/> + <dep package="gtkmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnome-hello"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-system-tools"> + <branch revision="gnome-2-14" /> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="nautilus"/> + <dep package="system-tools-backends-1.4"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-user-docs"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="loudmouth"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gossip"> + <branch/> + <dependencies> + <dep package="loudmouth"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="conglomerate"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sound-juicer"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeui"/> + <dep package="gnome-media"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gnome-network"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="guile" version="1.6.7"> + <source href="ftp://ftp.gnu.org/gnu/guile/guile-1.6.7.tar.gz" + size="3039294" md5sum="c2ff2a2231f0cbb2e838dd8701a587c5"/> + </tarball> + <tarball id="autogen" version="5.6.5"> + <source href="http://internap.dl.sourceforge.net/sourceforge/autogen/autogen-5.6.5.tar.gz" + size="1144260" md5sum="54a6cb0be7e6b526af9aba4a73013885"/> + <dependencies> + <dep package="guile"/> + </dependencies> + </tarball> + <autotools id="anjuta"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + <dep package="vte"/> + <dep package="gnome-build"/> + <dep package="autogen"/> + </dependencies> + </autotools> + <autotools id="OpenApplet"> + <branch/> + <dependencies> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gtetrinet"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="glom"> + <branch/> + <dependencies> + <dep package="gnomemm/libgdamm"/> + <dep package="bakery"/> + <dep package="gnomemm/libgnomecanvasmm"/> + <dep package="libgnome"/> + <dep package="iso-codes"/> + <dep package="pygtk"/> + <dep package="gnome-python-extras"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="vino"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="gconf"/> + <dep package="gnutls"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring-manager" autogenargs="--disable-more-warnings"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-keyring"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="gnome-volume-manager"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="hal"/> + </dependencies> + </autotools> + <metamodule id="meta-storage"> + <dependencies> + <dep package="storage/storage-store"/> + <dep package="storage/vfs"/> + <dep package="storage/applet"/> + </dependencies> + </metamodule> + <autotools id="storage/storage-store"> + <branch/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage"> + <branch/> + <dependencies> + <dep package="gnome-vfs"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-translators"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + </dependencies> + </autotools> + <autotools id="storage/vfs"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libstorage-translators"/> + </dependencies> + </autotools> + <autotools id="storage/pet"> + <branch/> + </autotools> + <autotools id="storage/libmrs"> + <branch/> + <dependencies> + <dep package="storage/pet"/> + </dependencies> + </autotools> + <autotools id="storage/libmrs-converter"> + <branch/> + <dependencies> + <dep package="storage/libmrs"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-nl"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libmrs"/> + <dep package="storage/libmrs-converter"/> + </dependencies> + </autotools> + <autotools id="storage/applet"> + <branch/> + <dependencies> + <dep package="gnome-python"/> + <dep package="storage/libstorage-nl"/> + </dependencies> + </autotools> + <autotools id="gnome-nettool"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="monkey-bubble"> + <branch/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-schedule"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="yelp"/> + </dependencies> + </autotools> + <autotools id="gnome-backgrounds"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="evince"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="poppler"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="nautilus-python" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </autotools> + <autotools id="inkscape"> + <branch repo="inkscape.sf.net"/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libxslt"/> + </dependencies> + </autotools> + <autotools id="NetworkManager"> + <branch repo="gnome.org"/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="atomix"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + <dep package="libxml2"/> + <dep package="libgnomecanvas"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="deskbar-applet"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gnome-desktop"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-python-desktop"/> + </dependencies> + </autotools> + <autotools id="pessulus"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </autotools> + <autotools id="sabayon"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="muine"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gstreamer"/> + </dependencies> + </autotools> + <autotools id="gnonlin"> + <branch repo="gstreamer.freedesktop.org" module="gnonlin"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + <autotools id="pitivi"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gstreamer"/> + <dep package="gst-python"/> + <dep package="gnonlin"/> + </dependencies> + </autotools> +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gnome-2.16.modules b/build-scripts/jhbuild/modulesets/gnome-2.16.modules new file mode 100644 index 0000000..bf9c7e3 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gnome-2.16.modules @@ -0,0 +1,2175 @@ +<?xml version="1.0"?><!--*- mode: nxml; indent-tabs-mode: nil -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<!-- vim:set ts=2 expandtab: --> +<moduleset> + <repository type="svn" name="svn.gnome.org" default="yes" + href="http://svn.gnome.org/svn/"/> + <repository type="cvs" name="cairo.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/cairo" + password=""/> + <repository type="cvs" name="mozilla.org" + cvsroot=":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot" + password="anonymous"/> + <repository type="cvs" name="liboil.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/liboil" + password=""/> + <repository type="cvs" name="gstreamer.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/gstreamer" + password=""/> + <repository type="cvs" name="menu.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/menus" + password=""/> + <repository type="cvs" name="mime.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/mime" + password=""/> + <repository type="cvs" name="xklavier.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/xklavier" + password=""/> + <repository type="cvs" name="elysium-project.sf.net" + cvsroot=":pserver:anonymous@elysium-project.cvs.sourceforge.net:/cvsroot/elysium-project" + password=""/> + <repository type="svn" name="gaim.sf.net" + href="https://svn.sourceforge.net/svnroot/gaim/"/> + <repository type="svn" name="inkscape.sf.net" + href="https://svn.sourceforge.net/svnroot/inkscape/"/> + <repository type="svn" name="svn.galago-project.org" + href="http://svn.galago-project.org/"/> + <repository type="svn" name="osiris.chipx86.com" + href="http://osiris.chipx86.com/svn/osiris-misc/"/> + <repository type="svn" name="svn.debian.org" + href="svn://svn.debian.org/"/> + <repository type="cvs" name="openh323.sf.net" + cvsroot=":pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323" + password="" /> + <repository type="svn" name="svn.navi.cx" + href="http://svn.navi.cx/" /> + <repository type="cvs" name="anoncvs.abisource.com" + cvsroot=":pserver:anoncvs@anoncvs.abisource.com:/cvsroot" + password="anoncvs" /> + + + <tarball id="scrollkeeper" version="0.3.14" supports-non-srcdir-builds="no"> + <source href="http://easynews.dl.sourceforge.net/sourceforge/scrollkeeper/scrollkeeper-0.3.14.tar.gz" + size="679513" md5sum="161eb3f29e30e7b24f84eb93ac696155"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="intltool"/> + </dependencies> + <patches> + <patch file="scrollkeeper_clean_xml_validation_context.patch" strip="1"/> + <patch file="scrollkeeper_language_fix.patch" strip="1"/> + <patch file="scrollkeeper_rw_offset_fix.patch" strip="1"/> + <patch file="scrollkeeper_empty_url_string.patch" strip="1"/> + </patches> + </tarball> + + <tarball id="iso-codes" version="0.53" > + <source href="ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/iso-codes-0.53.tar.bz2" + size="4411143" md5sum="652887a62d8024e4ab6933061a92c233"/> + </tarball> + + <include href="freedesktop.modules"/> + <include href="gnutls.modules"/> + + <autotools id="cairo-gtk-engine"> + <branch repo="cairo.freedesktop.org"/> + <dependencies> + <dep package="gtk+"/> + <dep package="cairo-1-0"/> + </dependencies> + </autotools> + + <autotools id="shared-mime-info" supports-non-srcdir-builds="no"> + <branch repo="mime.freedesktop.org"/> + <dependencies> + <dep package="intltool"/> + <dep package="libxml2"/> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="desktop-file-utils"> + <branch repo="menu.freedesktop.org"/> + <dependencies> + <dep package="glib"/> + <dep package="intltool"/> + </dependencies> + </autotools> + + <autotools id="libxklavier" supports-non-srcdir-builds="no"> + <branch repo="xklavier.freedesktop.org"/> + <dependencies> + <dep package="libxml2"/> + <dep package="gtk-doc"/> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libbtctl"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-bluetooth"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + <dep package="libbtctl"/> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="phonemgr"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + <dep package="libbtctl"/> + <dep package="gnome-bluetooth"/> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="libgnome"/> + <dep package="gconf"/> + </dependencies> + </autotools> + + <autotools id="intltool"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-common"> + <branch/> + </autotools> + <autotools id="libxml2"> + <branch/> + </autotools> + <autotools id="libxslt"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="libgcrypt"/> + </dependencies> + </autotools> + <autotools id="gtk-doc"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <autotools id="gamin"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="glib"> + <branch revision="glib-2-12"/> + <dependencies> + <dep package="gtk-doc"/> + </dependencies> + </autotools> + <autotools id="pango"> + <branch revision="pango-1-14"/> + <dependencies> + <dep package="gnome-common"/> + <dep package="glib"/> + <dep package="cairo"/> + <dep package="libXft"/> + </dependencies> + </autotools> + <autotools id="atk"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gtk+"> + <branch revision="gtk-2-10"/> + <dependencies> + <dep package="cairo"/> + <dep package="pango"/> + <dep package="atk"/> + <dep package="shared-mime-info"/> + </dependencies> + </autotools> + <autotools id="gail"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="atk"/> + <dep package="libgnomecanvas"/> + </dependencies> + </autotools> + <autotools id="gtkhtml2"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libIDL"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="ORBit2"> + <branch/> + <dependencies> + <dep package="libIDL"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gconf"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + <dep package="libxml2"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libbonobo"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-mime-data"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-icon-theme"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="hicolor-icon-theme"/> + <dep package="icon-naming-utils"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-vfs"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gconf"/> + <dep package="desktop-file-utils"/> + <dep package="shared-mime-info"/> + <dep package="gnome-mime-data"/> + <dep package="avahi"/> + <dep package="hal-0-5-7"/> + <dep package="gamin"/> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + <autotools id="gnome-vfs-monikers"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libart_lgpl"> + <branch/> + </autotools> + <autotools id="libgnome"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="libbonobo"/> + <dep package="gnome-vfs"/> + <dep package="gconf"/> + <dep package="esound"/> + </dependencies> + </autotools> + <autotools id="libgnomecanvas"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="libglade"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="libbonoboui"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libgnomecanvas"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgnomeui"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gnome-icon-theme"/> + <dep package="gnome-keyring"/> + </dependencies> + </autotools> + <autotools id="libglade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="pygobject"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="pygtk"> + <branch/> + <dependencies> + <dep package="pygobject"/> + <dep package="gtk+"/> + <dep package="pycairo"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="pyorbit"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnome-python"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="pyorbit"/> + <dep package="libgnomecanvas"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-python-desktop"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gnome-python"/> + <dep package="gnome-panel"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + <dep package="libwnck"/> + <dep package="totem"/> + <dep package="libgtop"/> + <dep package="nautilus-cd-burner"/> + <dep package="gnome-media"/> + <dep package="metacity"/> + </dependencies> + </autotools> + <autotools id="gnome-python-extras"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gtkhtml2"/> + <dep package="gdl"/> + </dependencies> + </autotools> + <autotools id="bug-buddy"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-menus"/> + <dep package="gnome-doc-utils"/> + <dep package="evolution-data-server"/> + <dep package="libsoup"/> + </dependencies> + <suggests> + <dep package="NetworkManager"/> + </suggests> + </autotools> + <autotools id="libwnck"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk+"/> + <dep package="startup-notification"/> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="gnome-desktop" autogenargs="--with-gnome-distributor=JHBuild"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="startup-notification"/> + <dep package="gnome-themes"/> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-menus"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="glib"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="gnome-panel"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + <dep package="libwnck"/> + <dep package="evolution-data-server"/> + <dep package="gnome-menus"/> + <dep package="gnome-vfs"/> + <dep package="libglade"/> + <dep package="gnome-doc-utils"/> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + <autotools id="gnome-session"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + <dep package="gnome-control-center"/> + <dep package="gnome-keyring"/> + </dependencies> + </autotools> + <autotools id="gnome-applets" autogenargs="--enable-gstreamer=0.10"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gnome-panel"/> + <dep package="libgtop"/> + <dep package="gail"/> + <dep package="libxklavier"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gucharmap"/> + <dep package="system-tools-backends-1.4"/> + <dep package="pygtk"/> + </dependencies> + <after> + <dep package="gnome-control-center"/> + <dep package="gnome-python-desktop"/> + </after> + </autotools> + <autotools id="gnome-games"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="librsvg"/> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gob"/> + </dependencies> + </autotools> + <autotools id="libcroco" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="pango"/> + </dependencies> + </autotools> + <autotools id="librsvg" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="gnome-common"/> + <dep package="libgsf"/> + <dep package="libcroco"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="eel"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gail"/> + <dep package="gnome-desktop"/> + <dep package="gnome-menus"/> + </dependencies> + </autotools> + <autotools id="nautilus"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="esound"/> + <dep package="eel"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + </dependencies> + </autotools> + <autotools id="nautilus-actions"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-cd-burner"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-open-terminal"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-sendto"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + <suggests> + <dep package="gnome-bluetooth"/> + </suggests> + </autotools> + <autotools id="nautilus-media" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + </dependencies> + </autotools> + <autotools id="nautilus-vcs"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="metacity"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgtop"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-system-monitor"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="libgtop"/> + </dependencies> + </autotools> + <autotools id="gnome-control-center" autogenargs="--enable-gstreamer=0.10" + supports-non-srcdir-builds="no"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gnome-desktop"/> + <dep package="metacity"/> + <dep package="nautilus"/> + <dep package="libxklavier"/> + <dep package="gnome-menus"/> + <dep package="gnome-doc-utils"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + <autotools id="yelp"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="gnome-doc-utils"/> + <dep package="startup-notification"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="devhelp"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="gnome-utils"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gconf-editor" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <tarball id="audiofile" version="0.2.6" supports-non-srcdir-builds="no"> + <source href="http://www.68k.org/~michael/audiofile/audiofile-0.2.6.tar.gz" + size="374688" md5sum="9c1049876cd51c0f1b12c2886cce4d42"/> + </tarball> + <autotools id="esound"> + <branch/> + <dependencies> + <dep package="audiofile"/> + </dependencies> + </autotools> + <autotools id="gnome-media"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gail"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gdm2"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="librsvg"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="vte"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gnome-terminal"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="startup-notification"/> + </dependencies> + </autotools> + <autotools id="gtk-engines"> + <branch revision="gtk-engines-2-8"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libgnomeprint"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="intltool"/> + <dep package="libart_lgpl"/> + <dep package="glib"/> + <dep package="gnome-common"/> + <dep package="pango"/> + <dep package="libgnomecups"/> + </dependencies> + </autotools> + <autotools id="libgnomeprintui"> + <branch revision="gnome-2-12"/> + <dependencies> + <dep package="libgnomeprint"/> + <dep package="gtk+"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-icon-theme"/> + </dependencies> + </autotools> + <autotools id="gedit"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + <dep package="gnome-python-desktop"/> + </dependencies> + </autotools> + <autotools id="gedit-plugins"> + <branch/> + <dependencies> + <dep package="gedit"/> + </dependencies> + </autotools> + <autotools id="memprof"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="eog"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprint"/> + <dep package="gnome-desktop"/> + </dependencies> + </autotools> + <autotools id="libgsf"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gnome-vfs"/> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="goffice"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgsf"/> + <dep package="libxml2"/> + <dep package="pango"/> + <dep package="libglade"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="gnumeric"> + <branch/> + <dependencies> + <dep package="goffice"/> + <dep package="libgsf"/> + <dep package="pygtk"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gimp" autogenargs="--disable-print"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="glade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="glade2c"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="glade3"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep packege="libbonoboui"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sawfish"> + <branch revision="gnome-2"/> + <dependencies> + <dep package="rep-gtk"/> + </dependencies> + </autotools> + <autotools id="rep-gtk"> + <branch/> + <dependencies> + <dep package="librep"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="librep"> + <branch/> + </autotools> + <autotools id="rhythmbox"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gst-plugins-base"/> + <dep package="nautilus-cd-burner"/> + <dep package="totem"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gstreamer-0-8" autogenargs="-- --disable-plugin-builddir --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gstreamer" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gstreamer-0-8"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-0-8" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gst-plugins-0-8"/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gnome-vfs"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + + <autotools id="gst-python-0-8" autogenargs="--" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-python" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gst-python-0-8"/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + </dependencies> + </autotools> + + <autotools id="gstreamer" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gstreamer"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + + <tarball id="liboil" version="0.3.10"> + <source href="http://liboil.freedesktop.org/download/liboil-0.3.10.tar.gz" md5sum="770f656bca8166dab33b322d5886a4bf" size="860303"/> + <branch repo="liboil.freedesktop.org" revision="liboil_0_3_6"/> + </tarball> + + <autotools id="gst-plugins-base" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-base"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gnome-vfs"/> + <dep package="gtk+"/> + <dep package="liboil"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-good" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-good"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-ugly" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-ugly"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-bad" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-bad"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-ffmpeg" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-ffmpeg"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-python" autogenargs="--" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-python"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="planner"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="libgsf"/> + </dependencies> + </autotools> + <autotools id="file-roller"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="balsa"> + <branch revision="BALSA_2"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="pan"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnet"/> + </dependencies> + </autotools> + <distutils id="pyspi"> + <branch/> + <dependencies> + <dep package="at-spi"/> + </dependencies> + </distutils> + <distutils id="dogtail"> + <branch/> + <dependencies> + <dep package="pyspi"/> + </dependencies> + <after> + <dep package="gnome-python-desktop"/> + </after> + </distutils> + <autotools id="gcalctool" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="ggv" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="ekiga" autogenargs="--with-pwlib-dir=`ptlib-config --prefix` --with-opal-dir=`ptlib-config --prefix`"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="evolution-data-server"/> + <dep package="opal" /> + </dependencies> + </autotools> + <autotools id="pwlib" autogen-sh="configure"> + <branch repo="openh323.sf.net" module="ptlib_unix" checkoutdir="pwlib" + override-checkoutdir="no" update-new-dirs="no" revision="v1_10_2"/> + </autotools> + <autotools id="opal" autogen-sh="configure"> + <branch repo="openh323.sf.net" revision="v2_2_3"/> + <dependencies> + <dep package="pwlib"/> + </dependencies> + </autotools> + <autotools id="gucharmap"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gtksourceview" autogenargs="--enable-compile-warnings=maximum"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeprint"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="glimmer"> + <branch/> + <dependencies> + <dep package="gtksourceview"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gdl"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="librsvg"/> + </dependencies> + </autotools> + <autotools id="gnome-build"> + <branch/> + <dependencies> + <dep package="gdl"/> + <dep package="gnome-vfs"/> + <dep package="gtkhtml2"/> + </dependencies> + </autotools> + <autotools id="scaffold"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="gdl"/> + </dependencies> + </autotools> + <autotools id="libsigc++2"> + <branch revision="libsigc-2-0"/> + </autotools> + <autotools id="glibmm"> + <branch revision="glibmm-2-12"/> + <dependencies> + <dep package="glib"/> + <dep package="libsigc++2"/> + </dependencies> + </autotools> + <autotools id="gtkmm"> + <branch/> + <dependencies> + <dep package="glibmm"/> + <dep package="cairomm"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="orbitcpp"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomemm"> + <branch/> + <dependencies> + <dep package="libgnome"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libglademm"> + <branch/> + <dependencies> + <dep package="libglade"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobomm"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gtkmm"/> + <dep package="orbitcpp"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobouimm"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="gnomemm/libbonobomm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomecanvasmm"> + <branch/> + <dependencies> + <dep package="libgnomecanvas"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gconfmm"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeuimm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeui"/> + <dep package="gnomemm/libgnomemm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/libgnomecanvasmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gnome-vfsmm"> + <branch/> + <dependencies> + <dep package="glibmm"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libpanelappletmm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeprintmm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgnomeprintuimm"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + <dep package="gnomemm/libgnomeprintmm"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libgdamm"> + <branch revision="libgda-1-2"/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgda-1-2"/> + </dependencies> + </autotools> + <autotools id="gnomemm/gtkmm_hello"> + <branch/> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="regexxer"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="gtkmm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/libglademm"/> + </dependencies> + </autotools> + <autotools id="gnet" autogenargs="--enable-glib2"> + <branch revision="GNET_1_1"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnomeicu"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="at-spi"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libgail-gnome"> + <branch/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="at-poke"> + <branch/> + <dependencies> + <dep package="libgail-gnome"/> + </dependencies> + </autotools> + <autotools id="gnome-mag"> + <branch/> + <dependencies> + <dep package="at-spi"/> + </dependencies> + </autotools> + <autotools id="gok"> + <branch/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + <dep package="scrollkeeper"/> + <dep package="gnome-speech"/> + </dependencies> + </autotools> + <autotools id="gnome-speech"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="gnopernicus"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-mag"/> + </dependencies> + </autotools> + <autotools id="orca"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gnome-python"/> + <dep package="libgail-gnome"/> + <dep package="gnome-mag"/> + <dep package="gnome-speech"/> + <dep package="eel"/> + </dependencies> + </autotools> + <autotools id="dasher" autogenargs="--with-a11y --with-gnome"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-vfs"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-screensaver"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gconf"/> + <dep package="gtk+"/> + <dep package="dbus"/> + <dep package="gnome-menus"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-power-manager"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="hal-0-5-7"/> + <dep package="libwnck"/> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + <dep package="gnome-doc-utils"/> + </dependencies> + <suggests> + <dep package="libnotify"/> + </suggests> + </autotools> + <autotools id="gthumb"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="libglade"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="fast-user-switch-applet"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libglade"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gnome-mount" autogenargs="--enable-nautilus-extension"> + <branch/> + <dependencies> + <dep package="gnome-keyring"/> + <dep package="libgnomeui"/> + <dep package="dbus"/> + <dep package="hal-0-5-7"/> + <dep package="gtk+"/> + <dep package="intltool"/> + <dep package="libglade"/> + <dep package="eel"/> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="libnotify"> + <branch repo="svn.galago-project.org" module="trunk/libnotify"/> + <dependencies> + <dep package="gtk+"/> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="libsexy"> + <branch repo="osiris.chipx86.com" module="trunk/libsexy"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="iso-codes"/> + </dependencies> + </autotools> + <autotools id="notification-daemon"> + <branch repo="svn.galago-project.org" module="trunk/notification-daemon"/> + <dependencies> + <dep package="gtk+"/> + <dep package="dbus"/> + <dep package="libsexy"/> + </dependencies> + </autotools> + <autotools id="alacarte"> + <branch/> + <dependencies> + <dep package="gnome-menus"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + + <metamodule id="meta-gnome-devel-platform"> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libbonoboui"/> + <dep package="libgnomeui"/> + <dep package="gnome-vfs-monikers"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-core"> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="gnome-panel"/> + <dep package="gnome-session"/> + <dep package="gnome-terminal"/> + <dep package="gnome-applets"/> + </dependencies> + </metamodule> + <metamodule id="meta-nautilus"> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-desktop"> + <dependencies> + <dep package="meta-gnome-core"/> + <dep package="gnome-control-center"/> + <dep package="meta-nautilus"/> + <dep package="yelp"/> + <dep package="bug-buddy"/> + <dep package="gedit"/> + <dep package="gtk-engines"/> + <dep package="eog"/> + <dep package="metacity"/> + <dep package="gconf-editor"/> + <dep package="gnome-utils"/> + <dep package="gnome-system-monitor"/> + <dep package="gstreamer"/> + <dep package="gnome-media"/> + <dep package="gnome-netstatus"/> + <dep package="gcalctool"/> + <dep package="gucharmap"/> + <dep package="nautilus-cd-burner"/> + <dep package="zenity"/> + <dep package="libgail-gnome"/> + <dep package="gok"/> + <dep package="epiphany"/> + <dep package="gnome-games"/> + <dep package="gnome-user-docs"/> + <dep package="file-roller"/> + <dep package="gnome-system-tools"/> + <dep package="gnome-nettool"/> + <dep package="vino"/> + <dep package="gnome-volume-manager"/> + <dep package="totem"/> + <dep package="gnome-menus"/> + <dep package="gnome-backgrounds"/> + <dep package="sound-juicer"/> + <dep package="evolution"/> + <dep package="evolution-webcal"/> + <dep package="evolution-exchange"/> + <dep package="ekiga"/> + <dep package="evince"/> + <dep package="dasher"/> + <dep package="gnome-keyring-manager"/> + <dep package="deskbar-applet"/> + <dep package="fast-user-switch-applet"/> + <dep package="gnome-screensaver"/> + <dep package="alacarte"/> + <dep package="gnome-power-manager"/> + <dep package="orca"/> + <dep package="meta-gnome-admin"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-admin"> + <dependencies> + <dep package="pessulus"/> + <dep package="sabayon"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-devel-tools"> + <dependencies> + <dep package="glade"/> + <dep package="memprof"/> + <dep package="gconf-editor"/> + <dep package="devhelp"/> + <dep package="nautilus-vcs"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-python"> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-python-desktop"/> + </dependencies> + <after> + <dep package="gnome-python-extras"/> + </after> + </metamodule> + <metamodule id="meta-gnome-c++"> + <dependencies> + <dep package="gtkmm"/> + <dep package="gnomemm/libgnomeuimm"/> + <dep package="gnomemm/gnome-vfsmm"/> + <dep package="gnomemm/libpanelappletmm"/> + <dep package="gnomemm/libbonobouimm"/> + <dep package="gnomemm/libgnomeprintuimm"/> + <dep package="libxml++"/> + <dep package="gnomemm/libgdamm"/> + <dep package="bakery"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-accessibility"> + <dependencies> + <dep package="libgail-gnome"/> + <dep package="at-poke"/> + <dep package="dasher"/> + <dep package="gnome-mag"/> + <dep package="gok"/> + <dep package="gnome-speech"/> + <dep package="gnopernicus"/> + <dep package="orca"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-proposed"> + <dependencies> + </dependencies> + </metamodule> + <autotools id="sodipodi"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-themes"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk-engines"/> + <dep package="icon-naming-utils"/> + </dependencies> + </autotools> + <autotools id="gob"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libgnetwork"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gconf"/> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="libgircclient"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + </dependencies> + </autotools> + <autotools id="gnomechat"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + <dep package="libgircclient"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <mozillamodule id="mozilla" autogenargs="--enable-default-toolkit=gtk2 --disable-mailnews --disable-ldap --disable-debug --enable-optimize --disable-tests --enable-crypto --enable-xft --with-system-zlib --disable-freetype2 --enable-application=xulrunner --disable-javaxpcom --enable-extensions=default,cookie,permissions,spellcheck" cvsroot="mozilla.org" revision="MOZILLA_1_8_BRANCH" projects="xulrunner"> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </mozillamodule> + <autotools id="enchant"> + <branch repo="anoncvs.abisource.com"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="epiphany"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="iso-codes"/> + <dep package="libgnomeui"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-doc-utils"/> + </dependencies> + <suggests> + <dep package="enchant"/> + </suggests> + </autotools> + <autotools id="epiphany-extensions"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="epiphany"/> + </dependencies> + </autotools> + <autotools id="galeon"> + <branch/> + <dependencies> + <dep package="mozilla"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libsoup"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gnutls"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtkhtml"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gail"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libsoup"/> + </dependencies> + </autotools> + <autotools id="evolution-data-server" supports-non-srcdir-builds="no"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libbonobo"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + <dep package="libsoup"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="evolution"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="gtkhtml"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + <after> + <dep package="libnotify"/> + </after> + </autotools> + <autotools id="evolution-webcal"> + <branch/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="libsoup"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="evolution-exchange"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="evolution"/> + <dep package="libsoup"/> + </dependencies> + </autotools> + <tarball id="xchat" version="2.6.2"> + <source href="http://xchat.org/files/source/2.6/xchat-2.6.2.tar.bz2" + size="1046910" md5sum="6b534baf9a4df6bf23d7d16f7e4eb379"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </tarball> + <tarball id="camorama" version="0.17"> + <source href="http://camorama.fixedgear.org/downloads/camorama-0.17.tar.bz2" + size="312233" md5sum="2b2784af53a1ba8fa4419aa806967b35"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </tarball> + <autotools id="gtk-engines-cleanice"> + <branch repo="elysium-project.sf.net"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gaim"> + <branch repo="gaim.sf.net" module="trunk" checkoutdir="gaim"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="zenity"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gpdf"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnome-netstatus"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-doc-utils"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libxslt"/> + <dep package="intltool"/> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="libmusicbrainz" version="2.1.2"> + <source href="http://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-2.1.2.tar.gz" + size="504432" md5sum="88d35af903665fecbdee77eb6d5e6cdd"/> + </tarball> + <autotools id="totem" autogenargs="--enable-gstreamer"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="nautilus-cd-burner"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="libmusicbrainz"/> + <dep package="iso-codes"/> + </dependencies> + </autotools> + <autotools id="gnome-themes-extras"> + <branch/> + <dependencies> + <dep package="gnome-themes"/> + </dependencies> + </autotools> + + <autotools id="libgda"> + <branch module="libgda"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libgda-1-2"> + <branch module="libgda" revision="release-1-2-branch" + checkoutdir="libgda-1-2"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="libgnomedb" autogenargs="--enable-gnome=yes"> + <branch/> + <dependencies> + <dep package="libgda"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="mergeant"> + <branch/> + <dependencies> + <dep package="libgnomedb"/> + </dependencies> + </autotools> + <autotools id="gtranslator"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-spell"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libgnomecups"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-cups-manager"> + <branch/> + <dependencies> + <dep package="libgnomecups"/> + <dep package="libgnomeui"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libxml++"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="glibmm"/> + </dependencies> + </autotools> + <autotools id="bakery"> + <branch/> + <dependencies> + <dep package="libxml++"/> + <dep package="gtkmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gconfmm"/> + <dep package="gnomemm/gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnome-hello"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="liboobs"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="glib"/> + <dep package="dbus"/> + <dep package="gtk-doc"/> + <dep package="system-tools-backends"/> + </dependencies> + </autotools> + <autotools id="gnome-system-tools"> + <branch revision="gnome-2-14"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="nautilus"/> + <dep package="system-tools-backends"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-user-docs"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="loudmouth"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gossip"> + <branch/> + <dependencies> + <dep package="loudmouth"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="conglomerate"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sound-juicer"> + <branch/> + <dependencies> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeui"/> + <dep package="gnome-media"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gnome-network"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="guile" version="1.8.0"> + <source href="ftp://ftp.gnu.org/gnu/guile/guile-1.8.0.tar.gz" + size="3691677" md5sum="3f47443602f93e94bf43218d9b86099d"/> + </tarball> + <tarball id="autogen" version="5.8.4"> + <source href="http://internap.dl.sourceforge.net/sourceforge/autogen/autogen-5.8.4.tar.bz2" + size="931015" md5sum="b65d4b9e3ddbcfd5418b708858c05b66"/> + <dependencies> + <dep package="guile"/> + </dependencies> + </tarball> + <autotools id="anjuta"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + <dep package="vte"/> + <dep package="gnome-build"/> + <dep package="autogen"/> + <dep package="devhelp"/> + </dependencies> + </autotools> + <autotools id="OpenApplet"> + <branch/> + <dependencies> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gtetrinet"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="glom"> + <branch/> + <dependencies> + <dep package="gnomemm/libgdamm"/> + <dep package="bakery"/> + <dep package="gnomemm/libgnomecanvasmm"/> + <dep package="libgnome"/> + <dep package="iso-codes"/> + <dep package="pygtk"/> + <dep package="gnome-python-extras"/> + </dependencies> + </autotools> + <autotools id="vino"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="gconf"/> + <dep package="gnutls"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring-manager" autogenargs="--disable-more-warnings"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-keyring"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="gnome-volume-manager"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="hal-0-5-7"/> + </dependencies> + </autotools> + <metamodule id="meta-storage"> + <dependencies> + <dep package="storage/storage-store"/> + <dep package="storage/vfs"/> + <dep package="storage/applet"/> + </dependencies> + </metamodule> + <autotools id="storage/storage-store"> + <branch/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage"> + <branch/> + <dependencies> + <dep package="gnome-vfs"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-translators"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + </dependencies> + </autotools> + <autotools id="storage/vfs"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libstorage-translators"/> + </dependencies> + </autotools> + <autotools id="storage/pet"> + <branch/> + </autotools> + <autotools id="storage/libmrs"> + <branch/> + <dependencies> + <dep package="storage/pet"/> + </dependencies> + </autotools> + <autotools id="storage/libmrs-converter"> + <branch/> + <dependencies> + <dep package="storage/libmrs"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-nl"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libmrs"/> + <dep package="storage/libmrs-converter"/> + </dependencies> + </autotools> + <autotools id="storage/applet"> + <branch/> + <dependencies> + <dep package="gnome-python"/> + <dep package="storage/libstorage-nl"/> + </dependencies> + </autotools> + <autotools id="gnome-nettool"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libglade"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="monkey-bubble"> + <branch/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-schedule"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="yelp"/> + </dependencies> + </autotools> + <autotools id="gnome-backgrounds"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="evince"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="poppler"/> + <dep package="gnome-doc-utils"/> + </dependencies> + <after> + <dep package="nautilus"/> + </after> + </autotools> + <autotools id="nautilus-python" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </autotools> + <autotools id="inkscape"> + <branch repo="inkscape.sf.net" module="inkscape/trunk" checkoutdir="inkscape"/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libxslt"/> + </dependencies> + </autotools> + <autotools id="NetworkManager"> + <branch/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="atomix"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + <dep package="libxml2"/> + <dep package="libgnomecanvas"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="deskbar-applet"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="gtk+"/> + <dep package="gnome-desktop"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-python-desktop"/> + </dependencies> + </autotools> + <autotools id="pessulus"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </autotools> + <autotools id="sabayon"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="muine"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gstreamer"/> + </dependencies> + </autotools> + <autotools id="gnonlin"> + <branch repo="gstreamer.freedesktop.org" module="gnonlin"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + <autotools id="pitivi"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gstreamer"/> + <dep package="gst-python"/> + <dep package="gnonlin"/> + </dependencies> + </autotools> + <autotools id="libcm"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="Xcomposite"/> + <dep package="Xdamage"/> + </dependencies> + </autotools> + <autotools id="xchat-gnome"> + <branch repo="svn.navi.cx" module="misc/trunk/xchat-gnome"/> + <dependencies> + <dep package="gtk+" /> + <dep package="gconf" /> + <dep package="libgnomeui" /> + <dep package="libglade" /> + <dep package="gnome-vfs" /> + <dep package="libsexy" /> + </dependencies> + </autotools> + + <autotools id="gmime"> + <branch/> + <dependencies> + <dep package="gtk-doc"/> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="tracker"> + <branch/> + <dependecies> + <dep package="gmime"/> + <dep package="dbus-glib"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + <dep package="libglade"/> + <dep package="gnome-vfs"/> + <dep package="poppler"/> + <dep package="libgsf"/> + <dep package="gstreamer"/> + </dependecies> + </autotools> + + <autotools id="brasero"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="nautilus-burn"/> + <dep package="gstreamer-plugins-base"/> + </dependencies> + <suggests> + <dep package="libnotify"/> + <dep package="totem"/> + </suggests> + </autotools> + + <autotools id="libipoddevice"> + <branch/> + <dependencies> + <dep package="dbus-glib"/> + <dep package="hal"/> + <dep package="libgtop"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gnome-2.18.modules b/build-scripts/jhbuild/modulesets/gnome-2.18.modules new file mode 100644 index 0000000..85b0cc1 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gnome-2.18.modules @@ -0,0 +1,2226 @@ +<?xml version="1.0"?><!--*- mode: nxml; indent-tabs-mode: nil -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<!-- vim:set ts=2 expandtab: --> +<moduleset> + <repository type="svn" name="svn.gnome.org" default="yes" + href="http://svn.gnome.org/svn/"/> + <repository type="svn" name="svn.gnomemm" + href="http://svn.gnome.org/svn/gnomemm/"/> + <repository type="cvs" name="cairo.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/cairo" + password=""/> + <repository type="cvs" name="mozilla.org" + cvsroot=":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot" + password="anonymous"/> + <repository type="cvs" name="gstreamer.freedesktop.org" + cvsroot=":pserver:anoncvs@anoncvs.freedesktop.org:/cvs/gstreamer" + password=""/> + <repository type="cvs" name="elysium-project.sf.net" + cvsroot=":pserver:anonymous@elysium-project.cvs.sourceforge.net:/cvsroot/elysium-project" + password=""/> + <repository type="svn" name="gaim.sf.net" + href="https://svn.sourceforge.net/svnroot/gaim/"/> + <repository type="svn" name="inkscape.sf.net" + href="https://svn.sourceforge.net/svnroot/inkscape/"/> + <repository type="svn" name="svn.galago-project.org" + href="http://svn.galago-project.org/"/> + <repository type="svn" name="osiris.chipx86.com" + href="http://osiris.chipx86.com/svn/osiris-misc/"/> + <repository type="svn" name="svn.debian.org" + href="svn://svn.debian.org/"/> + <repository type="svn" name="svn.navi.cx" + href="http://svn.navi.cx/" /> + <repository type="cvs" name="anoncvs.abisource.com" + cvsroot=":pserver:anoncvs@anoncvs.abisource.com:/cvsroot" + password="anoncvs" /> + <repository type="svn" name="svn.gtksourceviewmm" + href="svn://svn.gna.org/svn/gtksourceviewmm/"/> + <repository type="svn" name="svn.nemiver" + href="svn://svn.gna.org/svn/nemiver/"/> + + <tarball id="scrollkeeper" version="0.3.14" supports-non-srcdir-builds="no"> + <source href="http://easynews.dl.sourceforge.net/sourceforge/scrollkeeper/scrollkeeper-0.3.14.tar.gz" + size="679513" md5sum="161eb3f29e30e7b24f84eb93ac696155"/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="intltool"/> + </dependencies> + <patches> + <patch file="scrollkeeper_clean_xml_validation_context.patch" strip="1"/> + <patch file="scrollkeeper_language_fix.patch" strip="1"/> + <patch file="scrollkeeper_rw_offset_fix.patch" strip="1"/> + <patch file="scrollkeeper_empty_url_string.patch" strip="1"/> + </patches> + </tarball> + + <tarball id="iso-codes" version="0.53"> + <source href="ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/iso-codes-0.53.tar.bz2" + md5sum="652887a62d8024e4ab6933061a92c233" size="4411143"/> + </tarball> + + <include href="freedesktop-2.18.modules"/> + <include href="gnutls.modules"/> + + <autotools id="cairo-gtk-engine"> + <branch repo="cairo.freedesktop.org"/> + <dependencies> + <dep package="gtk+"/> + <dep package="cairo-1-0"/> + </dependencies> + </autotools> + + <tarball id="shared-mime-info" supports-non-srcdir-builds="no" version="0.19"> + <source href="http://freedesktop.org/~hadess/shared-mime-info-0.19.tar.gz" + md5sum="056a86a8245aecfd9c80740380c5265a" size="595168"/> + <dependencies> + <dep package="intltool"/> + <dep package="libxml2"/> + <dep package="glib"/> + </dependencies> + </tarball> + + <tarball id="desktop-file-utils" version="0.10"> + <source href="http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.10.tar.gz" + md5sum="8b930e9ad08ac6b8205dd00a1d694b0c" size="341508"/> + <dependencies> + <dep package="glib"/> + <dep package="intltool"/> + </dependencies> + </tarball> + + <tarball id="libxklavier" supports-non-srcdir-builds="no" version="3.0"> + <source href="http://xlibs.freedesktop.org/xkbdesc/libxklavier-3.0.tar.gz" + md5sum="7457dc72cfcb57498882ea652cb79eeb" size="460992"/> + <dependencies> + <dep package="libxml2"/> + <dep package="gtk-doc"/> + <dep package="glib"/> + </dependencies> + </tarball> + <autotools id="libbtctl"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-bluetooth"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + <dep package="libbtctl"/> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="phonemgr"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="glib"/> + <dep package="libbtctl"/> + <dep package="gnome-bluetooth"/> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="libgnome"/> + <dep package="gconf"/> + </dependencies> + </autotools> + + <autotools id="intltool"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-common"> + <branch/> + </autotools> + <autotools id="libxml2"> + <branch/> + </autotools> + <autotools id="libxslt"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="libgcrypt"/> + </dependencies> + </autotools> + <autotools id="gtk-doc"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="scrollkeeper"/> + </dependencies> + </autotools> + <tarball id="gamin" version="0.1.7"> + <source href="http://www.gnome.org/~veillard/gamin/sources/gamin-0.1.7.tar.gz" + md5sum="1a1991ffa749b7dc2cc0573d6a2867b8" size="542061"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </tarball> + <autotools id="glib"> + <branch revision="glib-2-12"/> + <dependencies> + <dep package="gtk-doc"/> + </dependencies> + </autotools> + <autotools id="pango"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + <dep package="glib"/> + <dep package="cairo"/> + </dependencies> + <after> + <dep package="libXft"/> + </after> + </autotools> + <autotools id="atk"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gtk+"> + <branch revision="gtk-2-10"/> + <dependencies> + <dep package="cairo"/> + <dep package="pango"/> + <dep package="atk"/> + <dep package="shared-mime-info"/> + </dependencies> + </autotools> + <autotools id="gail"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="atk"/> + <dep package="libgnomecanvas"/> + </dependencies> + </autotools> + <autotools id="gtkhtml2"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libIDL"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="ORBit2"> + <branch/> + <dependencies> + <dep package="libIDL"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gconf"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + <dep package="libxml2"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libbonobo"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-mime-data"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-icon-theme"> + <branch/> + <dependencies> + <dep package="hicolor-icon-theme"/> + <dep package="icon-naming-utils"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="gnome-vfs"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="desktop-file-utils"/> + <dep package="shared-mime-info"/> + <dep package="gnome-mime-data"/> + <dep package="avahi"/> + <dep package="hal"/> + <dep package="gamin"/> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + <autotools id="gnome-vfs-monikers"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring"> + <branch/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libart_lgpl"> + <branch/> + </autotools> + <autotools id="libgnome"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="libxslt"/> + <dep package="libbonobo"/> + <dep package="gnome-vfs"/> + <dep package="gconf"/> + <dep package="esound"/> + </dependencies> + </autotools> + <autotools id="libgnomecanvas"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="libglade"/> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="libbonoboui"> + <branch/> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libgnomecanvas"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgnomeui"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gnome-icon-theme"/> + <dep package="gnome-keyring"/> + </dependencies> + </autotools> + <autotools id="libglade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="libgnomekbd"> + <branch/> + <dependencies> + <dep package="dbus-glib" /> + <dep package="gtk+" /> + <dep package="libglade" /> + <dep package="libgnome" /> + <dep package="libgnomeui" /> + <dep package="libxklavier" /> + </dependencies> + </autotools> + + <autotools id="pygobject"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="pygtk"> + <branch/> + <dependencies> + <dep package="pygobject"/> + <dep package="gtk+"/> + <dep package="pycairo"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="pyorbit"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="gnome-python"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="pyorbit"/> + <dep package="libgnomecanvas"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-python-desktop"> + <branch/> + <dependencies> + <dep package="gnome-python"/> + <dep package="gnome-panel"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + <dep package="libwnck"/> + <dep package="totem"/> + <dep package="libgtop"/> + <dep package="nautilus-cd-burner"/> + <dep package="gnome-media"/> + <dep package="metacity"/> + </dependencies> + </autotools> + <autotools id="gnome-python-extras"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gtkhtml2"/> + <dep package="gdl"/> + </dependencies> + </autotools> + <autotools id="bug-buddy"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-menus"/> + <dep package="gnome-doc-utils"/> + <dep package="evolution-data-server"/> + <dep package="libsoup"/> + </dependencies> + <suggests> + <dep package="NetworkManager"/> + </suggests> + </autotools> + <autotools id="libwnck"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="startup-notification"/> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="gnome-desktop" autogenargs="--with-gnome-distributor=JHBuild"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="startup-notification"/> + <dep package="gnome-themes"/> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-menus"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="gnome-common"/> + <dep package="glib"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="gnome-panel"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + <dep package="libwnck"/> + <dep package="evolution-data-server"/> + <dep package="gnome-menus"/> + <dep package="gnome-vfs"/> + <dep package="libglade"/> + <dep package="gnome-doc-utils"/> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + <autotools id="gnome-session"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + <dep package="gnome-control-center"/> + <dep package="gnome-keyring"/> + </dependencies> + </autotools> + <autotools id="gnome-applets" autogenargs="--enable-gstreamer=0.10"> + <branch/> + <dependencies> + <dep package="gnome-panel"/> + <dep package="libgtop"/> + <dep package="gail"/> + <dep package="libgnomekbd"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gucharmap"/> + <dep package="system-tools-backends"/> + <dep package="pygtk"/> + </dependencies> + <after> + <dep package="gnome-control-center"/> + <dep package="gnome-python-desktop"/> + </after> + </autotools> + <autotools id="gnome-games"> + <branch/> + <dependencies> + <dep package="librsvg"/> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <tarball id="libcroco" supports-non-srcdir-builds="no" version="0.6.1"> + <source href="http://download.gnome.org/sources/libcroco/0.6/libcroco-0.6.1.tar.bz2" + md5sum="b0975bd01eb11964f1b3f254f267a43d" size="381188"/> + <dependencies> + <dep package="libxml2"/> + <dep package="pango"/> + </dependencies> + </tarball> + <autotools id="librsvg" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + <dep package="gnome-common"/> + <dep package="libgsf"/> + <dep package="libcroco"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="eel"> + <branch/> + <dependencies> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gail"/> + <dep package="gnome-desktop"/> + <dep package="gnome-menus"/> + </dependencies> + </autotools> + <autotools id="nautilus"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="esound"/> + <dep package="eel"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + </dependencies> + </autotools> + <autotools id="nautilus-actions"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-cd-burner"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-open-terminal"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="nautilus-sendto"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + <suggests> + <dep package="gnome-bluetooth"/> + </suggests> + </autotools> + <autotools id="nautilus-media" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + </dependencies> + </autotools> + <autotools id="nautilus-vcs"> + <branch/> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="metacity"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libgtop"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-system-monitor"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="libgtop"/> + </dependencies> + </autotools> + <autotools id="gnome-control-center" autogenargs="--enable-gstreamer=0.10" + supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gnome-desktop"/> + <dep package="metacity"/> + <dep package="nautilus"/> + <dep package="libgnomekbd"/> + <dep package="gnome-menus"/> + <dep package="gnome-doc-utils"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + <autotools id="yelp"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="gnome-doc-utils"/> + <dep package="startup-notification"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="devhelp"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="gnome-utils"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gconf-editor" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <tarball id="audiofile" version="0.2.6" supports-non-srcdir-builds="no"> + <source href="http://www.68k.org/~michael/audiofile/audiofile-0.2.6.tar.gz" + size="374688" md5sum="9c1049876cd51c0f1b12c2886cce4d42"/> + </tarball> + <autotools id="esound"> + <branch/> + <dependencies> + <dep package="audiofile"/> + </dependencies> + </autotools> + <autotools id="gnome-media"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="esound"/> + <dep package="gail"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gdm2"> + <branch/> + <dependencies> + <dep package="librsvg"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="vte"> + <branch/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gnome-terminal"> + <branch/> + <dependencies> + <dep package="libglade"/> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="startup-notification"/> + </dependencies> + </autotools> + <autotools id="gtk-engines"> + <branch/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="libgnomeprint"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="libart_lgpl"/> + <dep package="glib"/> + <dep package="gnome-common"/> + <dep package="pango"/> + <dep package="libgnomecups"/> + </dependencies> + </autotools> + <autotools id="libgnomeprintui"> + <branch/> + <dependencies> + <dep package="libgnomeprint"/> + <dep package="gtk+"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-icon-theme"/> + </dependencies> + </autotools> + <autotools id="gedit"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeprintui"/> + <dep package="gtksourceview"/> + <dep package="gnome-python-desktop"/> + <dep package="iso-codes"/> + <dep package="enchant"/> + </dependencies> + </autotools> + <autotools id="gedit-plugins"> + <branch/> + <dependencies> + <dep package="gedit"/> + </dependencies> + </autotools> + <autotools id="memprof"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="eog"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + </dependencies> + </autotools> + <tarball id="libgsf" version="1.14.2"> + <source href="http://download.gnome.org/sources/libgsf/1.14/libgsf-1.14.2.tar.bz2" + md5sum="aea16a8408b65f95c308b0db3e3d3d47" size="543516"/> + <dependencies> + <dep package="glib"/> + <dep package="gnome-vfs"/> + <dep package="libbonobo"/> + </dependencies> + </tarball> + <autotools id="goffice"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgsf"/> + <dep package="libxml2"/> + <dep package="pango"/> + <dep package="libglade"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="gnumeric"> + <branch/> + <dependencies> + <dep package="goffice"/> + <dep package="libgsf"/> + <dep package="pygtk"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gimp" autogenargs="--disable-print"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libart_lgpl"/> + </dependencies> + </autotools> + <autotools id="glade"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="glade2c"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="glade3"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep packege="libbonoboui"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sawfish"> + <branch revision="gnome-2"/> + <dependencies> + <dep package="rep-gtk"/> + </dependencies> + </autotools> + <autotools id="rep-gtk"> + <branch/> + <dependencies> + <dep package="librep"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="librep"> + <branch/> + </autotools> + <autotools id="rhythmbox"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gst-plugins-base"/> + <dep package="nautilus-cd-burner"/> + <dep package="totem"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gstreamer-0-8" autogenargs="-- --disable-plugin-builddir --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gstreamer" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gstreamer-0-8"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-0-8" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gst-plugins-0-8"/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gnome-vfs"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + + <autotools id="gst-python-0-8" autogenargs="--" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-python" + revision="BRANCH-GSTREAMER-0_8" checkoutdir="gst-python-0-8"/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + </dependencies> + </autotools> + + <autotools id="gstreamer" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gstreamer"/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + + <tarball id="liboil" version="0.3.8"> + <source href="http://liboil.freedesktop.org/download/liboil-0.3.8.tar.gz" + md5sum="a402c4af2603c8fb69b365af0b8ec775" size="834167"/> + </tarball> + + <autotools id="gst-plugins-base" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-base"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gnome-vfs"/> + <dep package="gtk+"/> + <dep package="liboil"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-good" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-good"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-ugly" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-ugly"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-plugins-bad" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-plugins-bad"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-ffmpeg" autogenargs="-- --disable-tests" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-ffmpeg"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="gst-python" autogenargs="--" supports-non-srcdir-builds="no"> + <branch repo="gstreamer.freedesktop.org" module="gst-python"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + + <autotools id="planner"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="libgsf"/> + </dependencies> + </autotools> + <autotools id="file-roller"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="balsa"> + <branch revision="BALSA_2"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="pan"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnet"/> + </dependencies> + </autotools> + <distutils id="pyspi"> + <branch/> + <dependencies> + <dep package="at-spi"/> + </dependencies> + </distutils> + <distutils id="dogtail"> + <branch/> + <dependencies> + <dep package="pyspi"/> + </dependencies> + <after> + <dep package="gnome-python-desktop"/> + </after> + </distutils> + <autotools id="gcalctool" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="ggv" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="ekiga" autogenargs="--with-pwlib-dir=`ptlib-config --prefix` --with-opal-dir=`ptlib-config --prefix`"> + <branch module="ekiga/tags/v2_0_3" checkoutdir="ekiga"/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="evolution-data-server"/> + <dep package="opal" /> + </dependencies> + </autotools> + <tarball autogen-sh="configure" id="pwlib" version="1.10.2"> + <source href="http://seconix.com/misc/ekiga-2.0.3/pwlib-1.10.2.tar.gz" + md5sum="05ad5b279ed2053eb7ef0befff9166d0" size="1485529"/> + </tarball> + <tarball autogen-sh="configure" id="opal" version="2.2.3"> + <source href="http://seconix.com/misc/ekiga-2.0.3/opal-2.2.3.tar.gz" + md5sum="fc1fedd3406e2e74472cc4312cbbfd6a" size="4114610"/> + <dependencies> + <dep package="pwlib"/> + </dependencies> + </tarball> + <autotools id="gucharmap"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gtksourceview" autogenargs="--enable-compile-warnings=maximum"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="libgnomeprint"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="glimmer"> + <branch/> + <dependencies> + <dep package="gtksourceview"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="gdl"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="librsvg"/> + </dependencies> + </autotools> + <autotools id="gnome-build"> + <branch/> + <dependencies> + <dep package="gdl"/> + <dep package="gnome-vfs"/> + <dep package="gtkhtml2"/> + </dependencies> + </autotools> + <autotools id="scaffold"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="vte"/> + <dep package="gdl"/> + </dependencies> + </autotools> + <autotools id="libsigc++2"> + <branch revision="libsigc-2-0"/> + </autotools> + <autotools id="glibmm"> + <branch revision="glibmm-2-12"/> + <dependencies> + <dep package="glib"/> + <dep package="libsigc++2"/> + </dependencies> + </autotools> + <autotools id="gtkmm"> + <branch/> + <dependencies> + <dep package="glibmm"/> + <dep package="cairomm"/> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="orbitcpp"> + <branch/> + <dependencies> + <dep package="ORBit2"/> + </dependencies> + </autotools> + <autotools id="libgnomemm"> + <branch repo="svn.gnomemm"/> + <dependencies> + <dep package="libgnome"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="libglademm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="libglade"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + + <!-- Unmaintained now: + <autotools id="gnomemm/libbonobomm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="libbonobo"/> + <dep package="gtkmm"/> + <dep package="orbitcpp"/> + </dependencies> + </autotools> + <autotools id="gnomemm/libbonobouimm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libbonobomm"/> + </dependencies> + </autotools> + --> + + <autotools id="libgnomecanvasmm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="libgnomecanvas"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gconfmm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="gconf"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="libgnomeuimm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeui"/> + <dep package="libgnomemm"/> + <dep package="gconfmm"/> + <dep package="libgnomecanvasmm"/> + <dep package="libglademm"/> + <dep package="gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnome-vfsmm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="glibmm"/> + <dep package="gnome-vfs"/> + </dependencies> + </autotools> + <autotools id="libpanelappletmm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="libgnomeprintmm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeprint"/> + </dependencies> + </autotools> + <autotools id="libgnomeprintuimm"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeprintmm"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="libgdamm"> + <branch repo="svn.gnomemm" revision="libgda-1-2" /> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgda-1-2"/> + </dependencies> + </autotools> + <autotools id="gtkmm_hello"> + <branch repo="svn.gnomemm" /> + <dependencies> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="gtksourceviewmm"> + <branch repo="svn.gtksourceviewmm" module="trunk" checkoutdir="gtksourceviewmm"/> + <dependencies> + <dep package="gtksourceview"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + <autotools id="regexxer"> + <branch/> + <dependencies> + <dep package="intltool"/> + <dep package="gtkmm"/> + <dep package="gconfmm"/> + <dep package="libglademm"/> + </dependencies> + </autotools> + <autotools id="gnet" autogenargs="--enable-glib2"> + <branch revision="GNET_1_1"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnomeicu"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="at-spi"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="gail"/> + </dependencies> + </autotools> + <autotools id="libgail-gnome"> + <branch/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="at-poke"> + <branch/> + <dependencies> + <dep package="libgail-gnome"/> + </dependencies> + </autotools> + <autotools id="gnome-mag"> + <branch/> + <dependencies> + <dep package="at-spi"/> + </dependencies> + </autotools> + <autotools id="gok"> + <branch/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="libwnck"/> + <dep package="esound"/> + <dep package="scrollkeeper"/> + <dep package="gnome-speech"/> + </dependencies> + </autotools> + <autotools id="gnome-speech"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + </dependencies> + </autotools> + <autotools id="gnopernicus"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-mag"/> + </dependencies> + </autotools> + <autotools id="orca"> + <branch/> + <dependencies> + <dep package="gnome-python"/> + <dep package="libgail-gnome"/> + <dep package="gnome-mag"/> + <dep package="gnome-speech"/> + <dep package="eel"/> + </dependencies> + </autotools> + <autotools id="dasher" autogenargs="--with-a11y --with-gnome"> + <branch revision="gnome-2-16"/> + <dependencies> + <dep package="at-spi"/> + <dep package="libgnomeui"/> + <dep package="gnome-speech"/> + <dep package="gnome-vfs"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-screensaver"> + <branch/> + <dependencies> + <dep package="gconf"/> + <dep package="gtk+"/> + <dep package="dbus"/> + <dep package="gnome-menus"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-power-manager"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="hal"/> + <dep package="libwnck"/> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="intltool"/> + <dep package="libglade"/> + <dep package="gnome-doc-utils"/> + </dependencies> + <suggests> + <dep package="libnotify"/> + </suggests> + </autotools> + <autotools id="gthumb"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-vfs"/> + <dep package="libglade"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="fast-user-switch-applet"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libglade"/> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gnome-mount" autogenargs="--enable-nautilus-extension"> + <branch/> + <dependencies> + <dep package="gnome-keyring"/> + <dep package="libgnomeui"/> + <dep package="dbus"/> + <dep package="hal"/> + <dep package="gtk+"/> + <dep package="intltool"/> + <dep package="libglade"/> + <dep package="eel"/> + <dep package="nautilus"/> + </dependencies> + </autotools> + <autotools id="libnotify"> + <branch repo="svn.galago-project.org" module="trunk/libnotify"/> + <dependencies> + <dep package="gtk+"/> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="libsexy"> + <branch repo="osiris.chipx86.com" module="trunk/libsexy"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + <dep package="iso-codes"/> + </dependencies> + </autotools> + <autotools id="notification-daemon"> + <branch repo="svn.galago-project.org" module="trunk/notification-daemon"/> + <dependencies> + <dep package="gtk+"/> + <dep package="dbus"/> + <dep package="libsexy"/> + </dependencies> + </autotools> + <autotools id="alacarte"> + <branch/> + <dependencies> + <dep package="gnome-menus"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + + <metamodule id="meta-gnome-devel-platform"> + <dependencies> + <dep package="libgnome"/> + <dep package="libbonobo"/> + <dep package="libbonoboui"/> + <dep package="libgnomeui"/> + <dep package="gnome-vfs-monikers"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-core"> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="gnome-panel"/> + <dep package="gnome-session"/> + <dep package="gnome-terminal"/> + <dep package="gnome-applets"/> + </dependencies> + </metamodule> + <metamodule id="meta-nautilus"> + <dependencies> + <dep package="nautilus"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-desktop"> + <dependencies> + <dep package="meta-gnome-core"/> + <dep package="gnome-control-center"/> + <dep package="meta-nautilus"/> + <dep package="yelp"/> + <dep package="bug-buddy"/> + <dep package="gedit"/> + <dep package="gtk-engines"/> + <dep package="eog"/> + <dep package="metacity"/> + <dep package="gconf-editor"/> + <dep package="gnome-utils"/> + <dep package="gnome-system-monitor"/> + <dep package="gstreamer"/> + <dep package="gnome-media"/> + <dep package="gnome-netstatus"/> + <dep package="gcalctool"/> + <dep package="gucharmap"/> + <dep package="nautilus-cd-burner"/> + <dep package="zenity"/> + <dep package="libgail-gnome"/> + <dep package="gok"/> + <dep package="epiphany"/> + <dep package="gnome-games"/> + <dep package="gnome-user-docs"/> + <dep package="file-roller"/> + <dep package="gnome-system-tools"/> + <dep package="gnome-nettool"/> + <dep package="vino"/> + <dep package="gnome-volume-manager"/> + <dep package="totem"/> + <dep package="gnome-menus"/> + <dep package="gnome-backgrounds"/> + <dep package="sound-juicer"/> + <dep package="evolution"/> + <dep package="evolution-webcal"/> + <dep package="evolution-exchange"/> + <dep package="ekiga"/> + <dep package="evince"/> + <dep package="dasher"/> + <dep package="gnome-keyring-manager"/> + <dep package="deskbar-applet"/> + <dep package="fast-user-switch-applet"/> + <dep package="gnome-screensaver"/> + <dep package="alacarte"/> + <dep package="gnome-power-manager"/> + <dep package="orca"/> + <dep package="meta-gnome-admin"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-admin"> + <dependencies> + <dep package="pessulus"/> + <dep package="sabayon"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-devel-tools"> + <dependencies> + <dep package="glade"/> + <dep package="memprof"/> + <dep package="gconf-editor"/> + <dep package="devhelp"/> + <dep package="nautilus-vcs"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-python"> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-python-desktop"/> + </dependencies> + <after> + <dep package="gnome-python-extras"/> + </after> + </metamodule> + <metamodule id="meta-gnome-c++"> + <dependencies> + <dep package="gtkmm"/> + <dep package="libgnomeuimm"/> + <dep package="gnome-vfsmm"/> + <dep package="libpanelappletmm"/> + <dep package="libgnomeprintuimm"/> + <dep package="libxml++"/> + <dep package="libgdamm"/> + <dep package="bakery"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-accessibility"> + <dependencies> + <dep package="libgail-gnome"/> + <dep package="at-poke"/> + <dep package="dasher"/> + <dep package="gnome-mag"/> + <dep package="gok"/> + <dep package="gnome-speech"/> + <dep package="gnopernicus"/> + <dep package="orca"/> + </dependencies> + </metamodule> + <metamodule id="meta-gnome-proposed"> + <dependencies> + </dependencies> + </metamodule> + <autotools id="sodipodi"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeprintui"/> + <dep package="libart_lgpl"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gnome-themes"> + <branch/> + <dependencies> + <dep package="gtk-engines"/> + <dep package="icon-naming-utils"/> + </dependencies> + </autotools> + <autotools id="gob"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libgnetwork"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gconf"/> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="libgircclient"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + </dependencies> + </autotools> + <autotools id="gnomechat"> + <branch/> + <dependencies> + <dep package="libgnetwork"/> + <dep package="libgircclient"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <mozillamodule id="mozilla" autogenargs="--enable-default-toolkit=gtk2 --disable-mailnews --disable-ldap --disable-debug --enable-optimize --disable-tests --enable-crypto --enable-xft --with-system-zlib --disable-freetype2 --enable-application=xulrunner --disable-javaxpcom --enable-extensions=default,cookie,permissions,spellcheck" cvsroot="mozilla.org" revision="MOZILLA_1_8_BRANCH" projects="xulrunner"> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </mozillamodule> + <autotools id="enchant"> + <branch repo="anoncvs.abisource.com"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-gecko-embed"> + <branch/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="epiphany"> + <branch/> + <dependencies> + <dep package="iso-codes"/> + <dep package="libgnomeui"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-doc-utils"/> + <dep package="gnome-desktop"/> + </dependencies> + <suggests> + <dep package="enchant"/> + </suggests> + </autotools> + <autotools id="epiphany-extensions"> + <branch/> + <dependencies> + <dep package="epiphany"/> + </dependencies> + </autotools> + <autotools id="galeon"> + <branch/> + <dependencies> + <dep package="mozilla"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libsoup"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="gnutls"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtkhtml"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="gail"/> + <dep package="libgnomeprint"/> + <dep package="libgnomeprintui"/> + <dep package="libsoup"/> + </dependencies> + </autotools> + <autotools id="evolution-data-server" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="libbonobo"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + <dep package="libsoup"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="gnome-vfs"/> + <dep package="mozilla"/> + </dependencies> + </autotools> + <autotools id="evolution"> + <branch/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="gtkhtml"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + <after> + <dep package="libnotify"/> + </after> + </autotools> + <autotools id="evolution-webcal"> + <branch/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="libsoup"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="evolution-exchange"> + <branch/> + <dependencies> + <dep package="evolution-data-server"/> + <dep package="evolution"/> + <dep package="libsoup"/> + </dependencies> + </autotools> + <tarball id="xchat" version="2.6.2"> + <source href="http://xchat.org/files/source/2.6/xchat-2.6.2.tar.bz2" + size="1046910" md5sum="6b534baf9a4df6bf23d7d16f7e4eb379"/> + <dependencies> + <dep package="gtk+"/> + <dep package="libxml2"/> + </dependencies> + </tarball> + <tarball id="camorama" version="0.17"> + <source href="http://camorama.fixedgear.org/downloads/camorama-0.17.tar.bz2" + size="312233" md5sum="2b2784af53a1ba8fa4419aa806967b35"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </tarball> + <autotools id="gtk-engines-cleanice"> + <branch repo="elysium-project.sf.net"/> + <dependencies> + <dep package="gtk+"/> + </dependencies> + </autotools> + <autotools id="gaim"> + <branch repo="gaim.sf.net" module="trunk" checkoutdir="gaim"/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="zenity"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libgnomecanvas"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gpdf"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + </dependencies> + </autotools> + <autotools id="gnome-netstatus"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-panel"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-doc-utils"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="intltool"/> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="libmusicbrainz" version="2.1.2"> + <source href="http://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-2.1.2.tar.gz" + size="504432" md5sum="88d35af903665fecbdee77eb6d5e6cdd"/> + </tarball> + <autotools id="totem" autogenargs="--enable-gstreamer"> + <branch/> + <dependencies> + <dep package="gnome-desktop"/> + <dep package="nautilus-cd-burner"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="libmusicbrainz"/> + <dep package="iso-codes"/> + </dependencies> + </autotools> + <autotools id="gnome-themes-extras"> + <branch/> + <dependencies> + <dep package="gnome-themes"/> + </dependencies> + </autotools> + + <autotools id="libgda"> + <branch module="libgda"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="libgda-1-2"> + <branch module="libgda" revision="release-1-2-branch" + checkoutdir="libgda-1-2"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="libgnomedb" autogenargs="--enable-gnome=yes"> + <branch/> + <dependencies> + <dep package="libgda"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="mergeant"> + <branch/> + <dependencies> + <dep package="libgnomedb"/> + </dependencies> + </autotools> + <autotools id="gtranslator"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-spell"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="libgnomecups"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gnome-cups-manager"> + <branch/> + <dependencies> + <dep package="libgnomecups"/> + <dep package="libgnomeui"/> + <dep package="libglade"/> + </dependencies> + </autotools> + <autotools id="libxml++"> + <branch/> + <dependencies> + <dep package="libxml2"/> + <dep package="glibmm"/> + </dependencies> + </autotools> + <autotools id="bakery"> + <branch/> + <dependencies> + <dep package="libxml++"/> + <dep package="gtkmm"/> + <dep package="libglademm"/> + <dep package="gconfmm"/> + <dep package="gnome-vfsmm"/> + </dependencies> + </autotools> + <autotools id="gnome-hello"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="liboobs"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="dbus"/> + <dep package="gtk-doc"/> + <dep package="system-tools-backends"/> + </dependencies> + </autotools> + <autotools id="gnome-system-tools"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + <dep package="libbonoboui"/> + <dep package="libglade"/> + <dep package="nautilus"/> + <dep package="liboobs"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="gnome-user-docs"> + <branch/> + <dependencies> + <dep package="scrollkeeper"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="loudmouth"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gossip"> + <branch/> + <dependencies> + <dep package="loudmouth"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="conglomerate"> + <branch/> + <dependencies> + <dep package="libxslt"/> + <dep package="gconf"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="sound-juicer"> + <branch/> + <dependencies> + <dep package="gnome-doc-utils"/> + <dep package="libgnomeui"/> + <dep package="gnome-media"/> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="gst-plugins-good"/> + <dep package="nautilus-cd-burner"/> + </dependencies> + </autotools> + <autotools id="gnome-network"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <tarball id="guile" version="1.8.0"> + <source href="ftp://ftp.gnu.org/gnu/guile/guile-1.8.0.tar.gz" + size="3691677" md5sum="3f47443602f93e94bf43218d9b86099d"/> + </tarball> + <tarball id="autogen" version="5.8.4"> + <source href="http://internap.dl.sourceforge.net/sourceforge/autogen/autogen-5.8.4.tar.bz2" + size="931015" md5sum="b65d4b9e3ddbcfd5418b708858c05b66"/> + <dependencies> + <dep package="guile"/> + </dependencies> + </tarball> + <autotools id="anjuta"> + <branch/> + <dependencies> + <dep package="libbonoboui"/> + <dep package="libgnomeprintui"/> + <dep package="vte"/> + <dep package="gnome-build"/> + <dep package="autogen"/> + <dep package="devhelp"/> + </dependencies> + </autotools> + <autotools id="OpenApplet"> + <branch/> + <dependencies> + <dep package="gnome-panel"/> + </dependencies> + </autotools> + <autotools id="gtetrinet"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="glom"> + <branch/> + <dependencies> + <dep package="libgdamm"/> + <dep package="bakery"/> + <dep package="libgnomecanvasmm"/> + <dep package="libgnome"/> + <dep package="iso-codes"/> + <dep package="pygtk"/> + <dep package="gnome-python-extras"/> + <dep package="gtksourceviewmm"/> + </dependencies> + </autotools> + <autotools id="vino"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="gconf"/> + <dep package="gnutls"/> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + <autotools id="gnome-keyring-manager" autogenargs="--disable-more-warnings"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="gnome-keyring"/> + <dep package="gconf"/> + </dependencies> + </autotools> + <autotools id="gnome-volume-manager"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libglade"/> + <dep package="hal"/> + </dependencies> + </autotools> + <metamodule id="meta-storage"> + <dependencies> + <dep package="storage/storage-store"/> + <dep package="storage/vfs"/> + <dep package="storage/applet"/> + </dependencies> + </metamodule> + <autotools id="storage/storage-store"> + <branch/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage"> + <branch/> + <dependencies> + <dep package="gnome-vfs"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-translators"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + </dependencies> + </autotools> + <autotools id="storage/vfs"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libstorage-translators"/> + </dependencies> + </autotools> + <autotools id="storage/pet"> + <branch/> + </autotools> + <autotools id="storage/libmrs"> + <branch/> + <dependencies> + <dep package="storage/pet"/> + </dependencies> + </autotools> + <autotools id="storage/libmrs-converter"> + <branch/> + <dependencies> + <dep package="storage/libmrs"/> + </dependencies> + </autotools> + <autotools id="storage/libstorage-nl"> + <branch/> + <dependencies> + <dep package="storage/libstorage"/> + <dep package="storage/libmrs"/> + <dep package="storage/libmrs-converter"/> + </dependencies> + </autotools> + <autotools id="storage/applet"> + <branch/> + <dependencies> + <dep package="gnome-python"/> + <dep package="storage/libstorage-nl"/> + </dependencies> + </autotools> + <autotools id="gnome-nettool"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gconf"/> + <dep package="libglade"/> + <dep package="gnome-doc-utils"/> + </dependencies> + </autotools> + <autotools id="monkey-bubble"> + <branch/> + <dependencies> + <dep package="gstreamer-0-8"/> + <dep package="gst-plugins-0-8"/> + <dep package="libxml2"/> + <dep package="gconf"/> + <dep package="librsvg"/> + <dep package="libgnomeui"/> + </dependencies> + </autotools> + <autotools id="gnome-schedule"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="yelp"/> + </dependencies> + </autotools> + <autotools id="gnome-backgrounds"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="evince"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="libgnomeprintui"/> + <dep package="poppler"/> + <dep package="gnome-doc-utils"/> + </dependencies> + <after> + <dep package="nautilus"/> + </after> + </autotools> + <autotools id="nautilus-python" supports-non-srcdir-builds="no"> + <branch/> + <dependencies> + <dep package="nautilus"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </autotools> + <autotools id="inkscape"> + <branch repo="inkscape.sf.net" module="inkscape/trunk" checkoutdir="inkscape"/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libxslt"/> + </dependencies> + </autotools> + <autotools id="NetworkManager"> + <branch/> + <dependencies> + <dep package="dbus"/> + </dependencies> + </autotools> + <autotools id="atomix"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="libgnome"/> + <dep package="libgnomeui"/> + <dep package="libxml2"/> + <dep package="libgnomecanvas"/> + <dep package="libbonoboui"/> + </dependencies> + </autotools> + <autotools id="deskbar-applet"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gnome-desktop"/> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gnome-python-desktop"/> + </dependencies> + </autotools> + <autotools id="pessulus"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + </dependencies> + </autotools> + <autotools id="sabayon"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="pygtk"/> + </dependencies> + </autotools> + <autotools id="muine"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="gstreamer"/> + </dependencies> + </autotools> + <autotools id="gnonlin"> + <branch repo="gstreamer.freedesktop.org" module="gnonlin"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + </dependencies> + </autotools> + <autotools id="pitivi"> + <branch/> + <dependencies> + <dep package="pygtk"/> + <dep package="gnome-python"/> + <dep package="gstreamer"/> + <dep package="gst-python"/> + <dep package="gnonlin"/> + </dependencies> + </autotools> + <autotools id="libcm"> + <branch/> + <dependencies> + <dep package="glib"/> + <dep package="Xcomposite"/> + <dep package="Xdamage"/> + </dependencies> + </autotools> + <autotools id="xchat-gnome"> + <branch repo="svn.navi.cx" module="misc/trunk/xchat-gnome"/> + <dependencies> + <dep package="gtk+" /> + <dep package="gconf" /> + <dep package="libgnomeui" /> + <dep package="libglade" /> + <dep package="gnome-vfs" /> + <dep package="libsexy" /> + </dependencies> + </autotools> + + <autotools id="gmime"> + <branch/> + <dependencies> + <dep package="gtk-doc"/> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="tracker"> + <branch/> + <dependecies> + <dep package="gmime"/> + <dep package="dbus-glib"/> + <dep package="libgnomeui"/> + <dep package="gnome-desktop"/> + <dep package="libglade"/> + <dep package="gnome-vfs"/> + <dep package="poppler"/> + <dep package="libgsf"/> + <dep package="gstreamer"/> + </dependecies> + </autotools> + + <autotools id="nemiver"> + <branch repo="svn.nemiver" module="trunk" checkoutdir="nemiver"/> + <dependencies> + <dep package="gtkmm"/> + <dep package="libglademm"/> + <dep package="gtksourceviewmm"/> + <dep package="libgtop"/> + <dep package="vte"/> + <dep package="gconf"/> + <dep package="gnome-vfs" /> + </dependencies> + </autotools> + + <autotools id="brasero"> + <branch/> + <dependencies> + <dep package="libgnomeui"/> + <dep package="nautilus-burn"/> + <dep package="gstreamer-plugins-base"/> + </dependencies> + <suggests> + <dep package="libnotify"/> + <dep package="totem"/> + </suggests> + </autotools> + + <autotools id="gtkunique"> + <branch/> + <dependencies> + <dep package="gtk+"/> + <dep package="dbus-glib"/> + </dependencies> + </autotools> + + <autotools id="libipoddevice"> + <branch/> + <dependencies> + <dep package="dbus-glib"/> + <dep package="hal"/> + <dep package="libgtop"/> + <dep package="libxml2"/> + </dependencies> + </autotools> + +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gnutls.modules b/build-scripts/jhbuild/modulesets/gnutls.modules new file mode 100644 index 0000000..42a31e7 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gnutls.modules @@ -0,0 +1,36 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: nxml -*--> +<!DOCTYPE moduleset SYSTEM "moduleset.dtd"> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + <tarball id="libgpg-error" version="1.3"> + <source href="http://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.3.tar.bz2" + size="452266" md5sum="d978065d62cde48e79497b63f80ba8fc" /> + </tarball> + <tarball id="libgcrypt" version="1.2.2"> + <source href="http://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.2.2.tar.bz2" + size="780315" md5sum="4a8a9a7572892ae3803a5aa558e52e02" /> + <dependencies> + <dep package="libgpg-error" /> + </dependencies> + </tarball> + <tarball id="libtasn1" version="0.3.4" supports-non-srcdir-builds="no"> + <source href="http://ftp.gnupg.org/gcrypt/alpha/gnutls/libtasn1/libtasn1-0.3.4.tar.gz" + size="1246545" md5sum="1dbfce0e1fbd6aebc1a4506814c23d35" /> + </tarball> + <tarball id="opencdk" version="0.5.8" supports-non-srcdir-builds="no"> + <source href="http://ftp.gnupg.org/gcrypt/alpha/gnutls/opencdk/opencdk-0.5.8.tar.gz" + size="497122" md5sum="900c4dee7712845c19d7b2d2a93ea546" /> + <dependencies> + <dep package="libgcrypt" /> + </dependencies> + </tarball> + <tarball id="gnutls" version="1.4.0"> + <source href="http://ftp.gnupg.org/gcrypt/gnutls/gnutls-1.4.0.tar.bz2" + size="3281324" md5sum="9e1e1b07e971c604923ec394f6922301" /> + <dependencies> + <dep package="libgcrypt" /> + <dep package="libtasn1" /> + <dep package="opencdk" /> + </dependencies> + </tarball> +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gtk.modules b/build-scripts/jhbuild/modulesets/gtk.modules new file mode 100644 index 0000000..66b4948 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gtk.modules @@ -0,0 +1,77 @@ +<?xml version="1.0"?><!--*- mode: nxml -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + <repository type="cvs" name="cvs.gnome.org" + cvsroot=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" + password=""/> + <repository type="svn" name="svn.gnome.org" default="yes" + developer-href-example="svn+ssh://USER@svn.gnome.org/svn/" + href="http://svn.gnome.org/svn/" + /> + <repository type="cvs" name="mime.freedesktop.org" + cvsroot=":pserver:anoncvs@cvs.freedesktop.org:/cvs/mime" + password=""/> + + <include href="freedesktop.modules"/> + + <autotools id="gnome-common"> + <branch module="gnome-common/trunk" checkoutdir="gnome-common" /> + </autotools> + <autotools id="intltool"> + <branch module="intltool/trunk" checkoutdir="intltool" /> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="shared-mime-info" supports-non-srcdir-builds="no"> + <branch repo="mime.freedesktop.org"/> + <dependencies> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="libxml2"> + <branch module="libxml2/trunk" checkoutdir="libxml2"/> + </autotools> + <autotools id="libxslt"> + <branch module="libxslt/trunk" checkoutdir="libxslt"/> + <dependencies> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtk-doc"> + <branch module="gtk-doc/trunk" checkoutdir="gtk-doc"/> + <dependencies> + <dep package="libxslt"/> + </dependencies> + </autotools> + <autotools id="glib"> + <branch module="glib/trunk" checkoutdir="glib"/> + <dependencies> + <dep package="gtk-doc"/> + </dependencies> + </autotools> + <autotools id="pango"> + <branch module="pango/trunk" checkoutdir="pango"/> + <dependencies> + <dep package="gnome-common"/> + <dep package="glib"/> + <dep package="cairo"/> + <dep package="libXft"/> + </dependencies> + </autotools> + <autotools id="atk"> + <branch module="atk/trunk" checkoutdir="atk"/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gtk+"> + <branch module="gtk+/trunk" checkoutdir="gtk+"/> + <dependencies> + <dep package="cairo"/> + <dep package="atk"/> + <dep package="pango"/> + <dep package="shared-mime-info"/> + </dependencies> + </autotools> +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/gtk28.modules b/build-scripts/jhbuild/modulesets/gtk28.modules new file mode 100644 index 0000000..5fe56ea --- /dev/null +++ b/build-scripts/jhbuild/modulesets/gtk28.modules @@ -0,0 +1,72 @@ +<?xml version="1.0"?><!--*- mode: nxml -*--> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + <repository type="cvs" name="gnome.org" default="yes" + cvsroot=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" + password=""/> + <repository type="cvs" name="mime.freedesktop.org" + cvsroot=":pserver:anoncvs@cvs.freedesktop.org:/cvs/mime" + password=""/> + + <include href="freedesktop.modules"/> + + <autotools id="gnome-common"> + <branch/> + </autotools> + <autotools id="intltool"> + <branch/> + <dependencies> + <dep package="gnome-common"/> + </dependencies> + </autotools> + <autotools id="shared-mime-info" supports-non-srcdir-builds="no"> + <branch repo="mime.freedesktop.org"/> + <dependencies> + <dep package="intltool"/> + </dependencies> + </autotools> + <autotools id="libxml2"> + <branch module="gnome-xml" checkoutdir="libxml2"/> + </autotools> + <autotools id="libxslt"> + <branch/> + <dependencies> + <dep package="libxml2"/> + </dependencies> + </autotools> + <autotools id="gtk-doc"> + <branch/> + <dependencies> + <dep package="libxslt"/> + </dependencies> + </autotools> + <autotools id="glib"> + <branch revision="glib-2-8"/> + <dependencies> + <dep package="gtk-doc"/> + </dependencies> + </autotools> + <autotools id="pango"> + <branch revision="pango-1-10"/> + <dependencies> + <dep package="glib"/> + <dep package="cairo"/> + <dep package="libXft"/> + </dependencies> + </autotools> + <autotools id="atk"> + <branch/> + <dependencies> + <dep package="glib"/> + </dependencies> + </autotools> + <autotools id="gtk+"> + <branch revision="gtk-2-8"/> + <dependencies> + <dep package="cairo"/> + <dep package="atk"/> + <dep package="pango"/> + <dep package="shared-mime-info"/> + </dependencies> + </autotools> +</moduleset> diff --git a/build-scripts/jhbuild/modulesets/moduleset.dtd b/build-scripts/jhbuild/modulesets/moduleset.dtd new file mode 100644 index 0000000..bee7c8c --- /dev/null +++ b/build-scripts/jhbuild/modulesets/moduleset.dtd @@ -0,0 +1,115 @@ +<!ELEMENT moduleset ((cvsroot|svnroot|arch-archive|darcs-archive)*, + (include|cvsmodule|svnmodule|archmodule|darcsmodule| + metamodule|tarball|mozillamodule)*) > + +<!ELEMENT cvsroot EMPTY > +<!ATTLIST cvsroot + name CDATA #REQUIRED + root CDATA #REQUIRED + password CDATA #IMPLIED + default (yes|no) 'no' > + +<!ELEMENT svnroot EMPTY > +<!ATTLIST svnroot + name CDATA #REQUIRED + href CDATA #REQUIRED + default (yes|no) 'no' > + +<!ELEMENT arch-archive EMPTY > +<!ATTLIST arch-archive + name CDATA #REQUIRED + href CDATA #REQUIRED + default (yes|no) 'no' > + +<!ELEMENT darcs-archive EMPTY > +<!ATTLIST darcs-archive + name CDATA #REQUIRED + href CDATA #REQUIRED + default (yes|no) 'no' > + +<!ELEMENT include EMPTY > +<!ATTLIST include + href CDATA #REQUIRED > + +<!ELEMENT cvsmodule (dependencies?,suggests?) > +<!ATTLIST cvsmodule + id CDATA #REQUIRED + module CDATA #IMPLIED + revision CDATA #IMPLIED + checkoutdir CDATA #IMPLIED + autogenargs CDATA #IMPLIED + makeargs CDATA #IMPLIED + cvsroot CDATA #IMPLIED + supports-non-srcdir-builds (yes|no) 'yes' > + +<!ELEMENT svnmodule (dependencies?,suggests?) > +<!ATTLIST svnmodule + id CDATA #REQUIRED + module CDATA #IMPLIED + checkoutdir CDATA #IMPLIED + autogenargs CDATA #IMPLIED + makeargs CDATA #IMPLIED + root CDATA #IMPLIED + supports-non-srcdir-builds (yes|no) 'yes' > + +<!ELEMENT archmodule (dependencies?,suggests?) > +<!ATTLIST archmodule + id CDATA #REQUIRED + version CDATA #IMPLIED + checkoutdir CDATA #IMPLIED + autogenargs CDATA #IMPLIED + makeargs CDATA #IMPLIED + root CDATA #IMPLIED + supports-non-srcdir-builds (yes|no) 'yes' > + +<!ELEMENT darcsmodule (dependencies?,suggests?) > +<!ATTLIST darcsmodule + id CDATA #REQUIRED + checkoutdir CDATA #IMPLIED + autogenargs CDATA #IMPLIED + makeargs CDATA #IMPLIED + root CDATA #IMPLIED + supports-non-srcdir-builds (yes|no) 'yes' > + +<!ELEMENT metamodule (dependencies) > +<!ATTLIST metamodule + id CDATA #REQUIRED > + +<!ELEMENT tarball + (source,patches?,dependencies?,suggests?) > +<!ATTLIST tarball + id CDATA #REQUIRED + version CDATA #REQUIRED + checkoutdir CDATA #IMPLIED + autogenargs CDATA #IMPLIED + makeargs CDATA #IMPLIED + supports-non-srcdir-builds (yes|no) 'yes' > + +<!ELEMENT mozillamodule (dependencies?,suggests?) > +<!ATTLIST mozillamodule + id CDATA #REQUIRED + module CDATA #IMPLIED + revision CDATA #IMPLIED + checkoutdir CDATA #IMPLIED + autogenargs CDATA #IMPLIED + makeargs CDATA #IMPLIED + cvsroot CDATA #IMPLIED > + +<!-- Tarball sub-elements --> +<!ELEMENT source EMPTY > +<!ATTLIST source + href CDATA #REQUIRED + size CDATA #IMPLIED + md5sum CDATA #IMPLIED > +<!ELEMENT patches (patch)* > +<!ELEMENT patch EMPTY > +<!ATTLIST patch + file CDATA #REQUIRED + strip CDATA '0' > + +<!-- common sub-elements --> +<!ELEMENT dependencies (dep*) > +<!ELEMENT suggests (dep*) > +<!ELEMENT dep EMPTY > +<!ATTLIST dep + package CDATA #REQUIRED > diff --git a/build-scripts/jhbuild/modulesets/moduleset.rnc b/build-scripts/jhbuild/modulesets/moduleset.rnc new file mode 100644 index 0000000..b461221 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/moduleset.rnc @@ -0,0 +1,131 @@ +default namespace = "" + +start = moduleset + +boolean = "yes" | "no" + +moduleset = element moduleset { repository*, + (\include|package)* } + +repository_cvs = attribute type { "cvs" }, + attribute cvsroot { text }, + attribute password { text }? +repository_svn = attribute type { "svn" }, + attribute href { xsd:anyURI } +repository_arch = attribute type { "arch" }, + attribute archive { text }, + attribute href { xsd:anyURI }? +repository_darcs = attribute type { "darcs" }, + attribute href { xsd:anyURI } +repository_git = attribute type { "git" }, + attribute href { xsd:anyURI } +repository_tarball = attribute type { "tarball" }, + attribute href { xsd:anyURI } + +repository = element repository { + attribute name { text }, + attribute default { boolean }?, + (repository_cvs|repository_svn|repository_arch| + repository_darcs|repository_git|repository_tarball) +} + +\include = element include { + attribute href { xsd:anyURI } +} + +package = autotools | + metamodule | + distutils | + perl | + tarball | + mozillamodule + +dep = element dep { + attribute package { text } +} +dependencies = element dependencies { dep* } +after = element after { dep* } | element suggests { dep* } + +common = attribute id { text } & dependencies* & after* + +branch_cvs = attribute module { text }?, + attribute checkoutdir { text }?, + attribute revision { text}?, + attribute override-checkoutdir { boolean }?, + attribute update-new-dirs { boolean }? +branch_svn = attribute module { xsd:anyURI }?, + attribute checkoutdir { text }? +branch_arch = attribute module { xsd:anyURI }?, + attribute checkoutdir { text }? +branch_darcs = attribute module { xsd:anyURI }?, + attribute checkoutdir { text }? +branch_git = attribute module { xsd:anyURI }?, + attribute checkoutdir { text }? +branch_tarball = attribute module { xsd:anyURI }, + attribute version { text }, + attribute size { text }?, + attribute md5sum { text }?, + element patch { + attribute file { text }, + attribute strip { text }? + }* + + +branch = element branch { + attribute repo { text }?, + (branch_cvs|branch_svn|branch_arch|branch_darcs|branch_git|branch_tarball) +} + +autotools = element autotools { + branch & + attribute autogen-sh { text }? & + attribute autogenargs { text }? & + attribute makeargs { text }? & + attribute supports-non-srcdir-builds { boolean }? & + common +} + +metamodule = element metamodule { common } + +distutils = element distutils { + branch & + attribute supports-non-srcdir-builds { boolean }? & + common +} + +perl = element perl { + branch & + attribute makeargs { text }? & + common +} + +tarball = element tarball { + attribute version { text }, + attribute checkoutdir { text }?, + attribute autogenargs { text }?, + attribute makeargs { text }?, + attribute supports-non-srcdir-builds { boolean }?, + + (element source { + attribute href { text }, + attribute size { text }?, + attribute md5sum { text }? } & + element patches { + element patch { + attribute file { text }, + attribute strip { text }? + }+ }? & + common) +} + +mozillamodule = element mozillamodule { + attribute module { text }?, + attribute revision { text }?, + attribute checkoutdir { text }?, + attribute autogenargs { text }?, + attribute makeargs { text }?, + attribute cvsroot { text }?, + attribute root { text }?, + common +} + diff --git a/build-scripts/jhbuild/modulesets/moduleset.xsl b/build-scripts/jhbuild/modulesets/moduleset.xsl new file mode 100644 index 0000000..a057bfa --- /dev/null +++ b/build-scripts/jhbuild/modulesets/moduleset.xsl @@ -0,0 +1,283 @@ +<?xml version='1.0'?> <!--*- mode: nxml -*--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + + <xsl:output method="html" encoding="ISO-8859-1" indent="yes" /> + <xsl:key name="module-id" match="moduleset/*" use="@id" /> + + <xsl:template match="/"> + <html> + <head> + <title>Module Set</title> + <style type="text/css"> + <xsl:text> + div.cvsmodule, div.mozillamodule { + padding: 0.5em; + margin: 0.5em; + background: #87CEFA; + } + div.svnmodule { + padding: 0.5em; + margin: 0.5em; + background: #67AEDA; + } + div.metamodule { + padding: 0.5em; + margin: 0.5em; + background: #F08080; + } + div.tarball { + padding: 0.5em; + margin: 0.5em; + background: #EEDD82; + } + </xsl:text> + </style> + </head> + <body> + <xsl:apply-templates /> + </body> + </html> + </xsl:template> + + <xsl:template match="moduleset"> + <h1>Module Set</h1> + <xsl:apply-templates /> + </xsl:template> + + <xsl:template match="dependencies"> + <xsl:variable name="deps" select="dep/@package" /> + <xsl:for-each select="$deps"> + <a href="#{generate-id(key('module-id', .))}"> + <xsl:value-of select="." /> + </a> + <xsl:if test="not($deps[last()] = .)"> + <xsl:text>, </xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:template> + + <xsl:template match="cvsmodule"> + <div class="{name(.)}"> + <h2> + <xsl:value-of select="@id" /> + <a name="{generate-id(.)}" /> + </h2> + <table> + <tr> + <th align="left">Module:</th> + <td> + <xsl:choose> + <xsl:when test="@module"> + <xsl:value-of select="@module" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@id" /> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="@revision"> + <xsl:text> rv:</xsl:text> + <xsl:value-of select="@revision" /> + </xsl:if> + </td> + </tr> + <xsl:if test="@checkoutdir"> + <tr> + <th align="left">Checkout directory:</th> + <td><xsl:value-of select="@checkoutdir" /></td> + </tr> + </xsl:if> + <xsl:if test="@autogenargs"> + <tr> + <th align="left">Autogen args:</th> + <td><xsl:value-of select="@autogenargs" /></td> + </tr> + </xsl:if> + <xsl:if test="@cvsroot"> + <tr> + <th align="left">CVS Root:</th> + <td><xsl:value-of select="@cvsroot" /></td> + </tr> + </xsl:if> + <xsl:if test="dependencies"> + <tr> + <th align="left" valign="top">Dependencies:</th> + <td><xsl:apply-templates select="dependencies" /></td> + </tr> + </xsl:if> + </table> + </div> + </xsl:template> + + <xsl:template match="svnmodule"> + <div class="{name(.)}"> + <h2> + <xsl:value-of select="@id" /> + <a name="{generate-id(.)}" /> + </h2> + <table> + <tr> + <th align="left">Module:</th> + <td> + <xsl:choose> + <xsl:when test="@module"> + <xsl:value-of select="@module" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@id" /> + </xsl:otherwise> + </xsl:choose> + </td> + </tr> + <xsl:if test="@checkoutdir"> + <tr> + <th align="left">Checkout directory:</th> + <td><xsl:value-of select="@checkoutdir" /></td> + </tr> + </xsl:if> + <xsl:if test="@autogenargs"> + <tr> + <th align="left">Autogen args:</th> + <td><xsl:value-of select="@autogenargs" /></td> + </tr> + </xsl:if> + <xsl:if test="@svnroot"> + <tr> + <th align="left">SVN Repository:</th> + <td><xsl:value-of select="@svnroot" /><xsl:if test="@path"><xsl:value-of select="@path" /></xsl:if></td> + </tr> + </xsl:if> + <xsl:if test="dependencies"> + <tr> + <th align="left" valign="top">Dependencies:</th> + <td><xsl:apply-templates select="dependencies" /></td> + </tr> + </xsl:if> + </table> + </div> + </xsl:template> + + <xsl:template match="metamodule"> + <div class="{name(.)}"> + <h2> + <xsl:value-of select="@id" /> + <a name="{generate-id(.)}" /> + </h2> + <table> + <xsl:if test="dependencies"> + <tr> + <th align="left" valign="top">Dependencies:</th> + <td><xsl:apply-templates select="dependencies" /></td> + </tr> + </xsl:if> + </table> + </div> + </xsl:template> + + <xsl:template match="patches"> + <ul> + <xsl:for-each select="patch"> + <li><xsl:value-of select="." /></li> + </xsl:for-each> + </ul> + </xsl:template> + + <xsl:template match="tarball"> + <div class="{name(.)}"> + <h2> + <xsl:value-of select="@id" /> + <a name="{generate-id(.)}" /> + </h2> + <table> + <tr> + <th align="left">Version:</th> + <td><xsl:value-of select="@version" /></td> + </tr> + <xsl:if test="@versioncheck"> + <tr> + <th align="left">Version check:</th> + <td><xsl:value-of select="@versioncheck" /></td> + </tr> + </xsl:if> + <tr> + <th align="left">Source:</th> + <td> + <a href="{source/@href}"> + <xsl:value-of select="source/@href" /> + </a> + <xsl:if test="source/@size"> + <xsl:text> (</xsl:text> + <xsl:value-of select="source/@size" /> + <xsl:text> bytes)</xsl:text> + </xsl:if> + </td> + </tr> + <xsl:if test="patches"> + <tr> + <th align="left" valign="top">Patches:</th> + <td><xsl:apply-templates select="patches" /></td> + </tr> + </xsl:if> + <xsl:if test="dependencies"> + <tr> + <th align="left" valign="top">Dependencies:</th> + <td><xsl:apply-templates select="dependencies" /></td> + </tr> + </xsl:if> + </table> + </div> + </xsl:template> + + <xsl:template match="mozillamodule"> + <div class="{name(.)}"> + <h2> + <xsl:value-of select="@id" /> + <a name="{generate-id(.)}" /> + </h2> + <table> + <tr> + <th align="left">Module:</th> + <td> + <xsl:choose> + <xsl:when test="@module"> + <xsl:value-of select="@module" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@id" /> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="@revision"> + <xsl:text> rv:</xsl:text> + <xsl:value-of select="@revision" /> + </xsl:if> + </td> + </tr> + <xsl:if test="@checkoutdir"> + <tr> + <th align="left">Checkout directory:</th> + <td><xsl:value-of select="@checkoutdir" /></td> + </tr> + </xsl:if> + <xsl:if test="@autogenargs"> + <tr> + <th align="left">Autogen args:</th> + <td><xsl:value-of select="@autogenargs" /></td> + </tr> + </xsl:if> + <xsl:if test="@cvsroot"> + <tr> + <th align="left">CVS Root:</th> + <td><xsl:value-of select="@cvsroot" /></td> + </tr> + </xsl:if> + <xsl:if test="dependencies"> + <tr> + <th align="left" valign="top">Dependencies:</th> + <td><xsl:apply-templates select="dependencies" /></td> + </tr> + </xsl:if> + </table> + </div> + </xsl:template> + +</xsl:stylesheet> diff --git a/build-scripts/jhbuild/modulesets/pulseaudio.modules b/build-scripts/jhbuild/modulesets/pulseaudio.modules new file mode 100644 index 0000000..81adc4b --- /dev/null +++ b/build-scripts/jhbuild/modulesets/pulseaudio.modules @@ -0,0 +1,99 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: nxml -*--> +<!DOCTYPE moduleset SYSTEM "moduleset.dtd"> +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> +<moduleset> + + <repository type="svn" name="0pointer.de" + href="svn://0pointer.de/"/> + + <tarball id="libsamplerate" version="0.1.2" supports-non-srcdir-builds="no"> + <source href="http://www.mega-nerd.com/SRC/libsamplerate-0.1.2.tar.gz" + size="707867" md5sum="06861c2c6b8e5273c9b80cf736b9fd0e"/> + </tarball> + + <tarball id="libsndfile" version="1.0.16" supports-non-srcdir-builds="no"> + <source href="http://www.mega-nerd.com/libsndfile/libsndfile-1.0.16.tar.gz" + size="857117" md5sum="773b6639672d39b6342030c7fd1e9719"/> + </tarball> + + <autotools id="pulseaudio"> + <branch repo="0pointer.de" module="pulseaudio/trunk" checkoutdir="pulseaudio"/> + <dependencies> + <dep package="libsamplerate"/> + <dep package="libsndfile"/> + <dep package="liboil"/> + <dep package="avahi"/> + <dep package="glib"/> + </dependencies> + </autotools> + + <autotools id="pavucontrol"> + <branch repo="0pointer.de" module="pavucontrol/trunk" checkoutdir="pavucontrol"/> + <dependencies> + <dep package="pulseaudio"/> + <dep package="gtkmm"/> + <dep package="gnomemm/libglademm"/> + </dependencies> + </autotools> + + <autotools id="pavumeter"> + <branch repo="0pointer.de" module="pavumeter/trunk" checkoutdir="pavumeter"/> + <dependencies> + <dep package="pulseaudio"/> + <dep package="gtkmm"/> + </dependencies> + </autotools> + + <autotools id="paman"> + <branch repo="0pointer.de" module="paman/trunk" checkoutdir="paman"/> + <dependencies> + <dep package="pulseaudio"/> + <dep package="gtkmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="pavumeter"/> + </dependencies> + </autotools> + + <autotools id="padevchooser"> + <branch repo="0pointer.de" module="padevchooser/trunk" checkoutdir="padevchooser"/> + <dependencies> + <dep package="pulseaudio"/> + <dep package="gtk+"/> + <dep package="libnotify"/> + <dep package="gconf"/> + </dependencies> + </autotools> + + <autotools id="paprefs"> + <branch repo="0pointer.de" module="paprefs/trunk" checkoutdir="paprefs"/> + <dependencies> + <dep package="pulseaudio"/> + <dep package="gtk+"/> + <dep package="gtkmm"/> + <dep package="gnomemm/libglademm"/> + <dep package="gnomemm/gconfmm"/> + </dependencies> + </autotools> + + <autotools id="gst-pulse"> + <branch repo="0pointer.de" module="gst-pulse/trunk" checkoutdir="gst-pulse"/> + <dependencies> + <dep package="gstreamer"/> + <dep package="gst-plugins-base"/> + <dep package="pulseaudio"/> + </dependencies> + </autotools> + + <metamodule id="meta-pulseaudio"> + <dependencies> + <dep package="pulseaudio"/> + <dep package="gst-pulse"/> + <dep package="pavucontrol"/> + <dep package="pavumeter"/> + <dep package="paprefs"/> + <dep package="paman"/> + <dep package="padevchooser"/> + </dependencies> + </metamodule> + +</moduleset>
\ No newline at end of file diff --git a/build-scripts/jhbuild/modulesets/schemas.xml b/build-scripts/jhbuild/modulesets/schemas.xml new file mode 100644 index 0000000..94675e4 --- /dev/null +++ b/build-scripts/jhbuild/modulesets/schemas.xml @@ -0,0 +1,4 @@ +<?xml version="1.0"?> +<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0"> + <documentElement localName="moduleset" uri="moduleset.rnc" /> +</locatingRules> diff --git a/build-scripts/jhbuild/patches/dbus-glib-build.patch b/build-scripts/jhbuild/patches/dbus-glib-build.patch new file mode 100644 index 0000000..839a29e --- /dev/null +++ b/build-scripts/jhbuild/patches/dbus-glib-build.patch @@ -0,0 +1,78 @@ +diff -Npru dbus-glib-0.71-orig/tools/dbus-bus-introspect.xml dbus-glib-0.71/tools/dbus-bus-introspect.xml +--- dbus-glib-0.71-orig/tools/dbus-bus-introspect.xml 1969-12-31 17:00:00.000000000 -0700 ++++ dbus-glib-0.71/tools/dbus-bus-introspect.xml 2006-07-24 14:32:01.000000000 -0600 +@@ -0,0 +1,74 @@ ++ <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" ++"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> ++<node> ++ <interface name="org.freedesktop.DBus.Introspectable"> ++ <method name="Introspect"> ++ <arg name="data" direction="out" type="s"/> ++ </method> ++ </interface> ++ <interface name="org.freedesktop.DBus"> ++ <method name="RequestName"> ++ <arg direction="in" type="s"/> ++ <arg direction="in" type="u"/> ++ <arg direction="out" type="u"/> ++ </method> ++ <method name="ReleaseName"> ++ <arg direction="in" type="s"/> ++ <arg direction="out" type="u"/> ++ </method> ++ <method name="StartServiceByName"> ++ <arg direction="in" type="s"/> ++ <arg direction="in" type="u"/> ++ <arg direction="out" type="u"/> ++ </method> ++ <method name="Hello"> ++ <arg direction="out" type="s"/> ++ </method> ++ <method name="NameHasOwner"> ++ <arg direction="in" type="s"/> ++ <arg direction="out" type="b"/> ++ </method> ++ <method name="ListNames"> ++ <arg direction="out" type="as"/> ++ </method> ++ <method name="AddMatch"> ++ <arg direction="in" type="s"/> ++ </method> ++ <method name="RemoveMatch"> ++ <arg direction="in" type="s"/> ++ </method> ++ <method name="GetNameOwner"> ++ <arg direction="in" type="s"/> ++ <arg direction="out" type="s"/> ++ </method> ++ <method name="ListQueuedOwners"> ++ <arg direction="in" type="s"/> ++ <arg direction="out" type="as"/> ++ </method> ++ <method name="GetConnectionUnixUser"> ++ <arg direction="in" type="s"/> ++ <arg direction="out" type="u"/> ++ </method> ++ <method name="GetConnectionUnixProcessID"> ++ <arg direction="in" type="s"/> ++ <arg direction="out" type="u"/> ++ </method> ++ <method name="GetConnectionSELinuxSecurityContext"> ++ <arg direction="in" type="s"/> ++ <arg direction="out" type="ay"/> ++ </method> ++ <method name="ReloadConfig"> ++ </method> ++ <signal name="NameOwnerChanged"> ++ <arg type="s"/> ++ <arg type="s"/> ++ <arg type="s"/> ++ </signal> ++ <signal name="NameLost"> ++ <arg type="s"/> ++ </signal> ++ <signal name="NameAcquired"> ++ <arg type="s"/> ++ </signal> ++ </interface> ++</node> diff --git a/build-scripts/jhbuild/patches/gettext-changelog.patch b/build-scripts/jhbuild/patches/gettext-changelog.patch new file mode 100644 index 0000000..465e1f4 --- /dev/null +++ b/build-scripts/jhbuild/patches/gettext-changelog.patch @@ -0,0 +1,462 @@ + This patch prevents gettextize from screwing up any of the ChangeLogs + or the makefiles or the configure files. The 0.11.x releases are + even worse than the 0.10.x releases :( + +--- gettext-0.11.5/misc/gettextize.in.old 2002-08-05 19:51:35.000000000 +0800 ++++ gettext-0.11.5/misc/gettextize.in 2002-12-17 23:10:29.000000000 +0800 +@@ -262,44 +262,12 @@ + # manage the ChangeLog file, relative to $srcdir. + func_ChangeLog_init () + { +- modified_ChangeLog= + } + func_ChangeLog_add_entry () + { +- if $doit; then +- if test -z "$modified_ChangeLog"; then +- echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/ChangeLog.tmp" +- echo >> "$srcdir/ChangeLog.tmp" +- modified_ChangeLog=yes +- fi +- echo "$1" >> "$srcdir/ChangeLog.tmp" +- else +- modified_ChangeLog=yes +- fi + } + func_ChangeLog_finish () + { +- if test -n "$modified_ChangeLog"; then +- if $doit; then +- echo >> "$srcdir/ChangeLog.tmp" +- if test -f "$srcdir/ChangeLog"; then +- echo "Adding an entry to ChangeLog (backup is in ChangeLog~)" +- cat "$srcdir/ChangeLog" >> "$srcdir/ChangeLog.tmp" +- rm -f "$srcdir/ChangeLog~" +- cp -p "$srcdir/ChangeLog" "$srcdir/ChangeLog~" +- else +- echo "Creating ChangeLog" +- fi +- cp "$srcdir/ChangeLog.tmp" "$srcdir/ChangeLog" +- rm -f "$srcdir/ChangeLog.tmp" +- else +- if test -f "$srcdir/ChangeLog"; then +- echo "Add an entry to ChangeLog" +- else +- echo "Create ChangeLog" +- fi +- fi +- fi + } + + # func_poChangeLog_init +@@ -308,44 +276,12 @@ + # manage the po/ChangeLog file, relative to $srcdir. + func_poChangeLog_init () + { +- modified_poChangeLog= + } + func_poChangeLog_add_entry () + { +- if $doit; then +- if test -z "$modified_poChangeLog"; then +- echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/po/ChangeLog.tmp" +- echo >> "$srcdir/po/ChangeLog.tmp" +- modified_poChangeLog=yes +- fi +- echo "$1" >> "$srcdir/po/ChangeLog.tmp" +- else +- modified_poChangeLog=yes +- fi + } + func_poChangeLog_finish () + { +- if test -n "$modified_poChangeLog"; then +- if $doit; then +- echo >> "$srcdir/po/ChangeLog.tmp" +- if test -f "$srcdir/po/ChangeLog"; then +- echo "Adding an entry to po/ChangeLog (backup is in po/ChangeLog~)" +- cat "$srcdir/po/ChangeLog" >> "$srcdir/po/ChangeLog.tmp" +- rm -f "$srcdir/po/ChangeLog~" +- cp -p "$srcdir/po/ChangeLog" "$srcdir/po/ChangeLog~" +- else +- echo "Creating po/ChangeLog" +- fi +- cp "$srcdir/po/ChangeLog.tmp" "$srcdir/po/ChangeLog" +- rm -f "$srcdir/po/ChangeLog.tmp" +- else +- if test -f "$srcdir/po/ChangeLog"; then +- echo "Add an entry to po/ChangeLog" +- else +- echo "Create po/ChangeLog" +- fi +- fi +- fi + } + + # func_m4ChangeLog_init +@@ -354,44 +290,12 @@ + # manage the $m4dir/ChangeLog file, relative to $srcdir. + func_m4ChangeLog_init () + { +- modified_m4ChangeLog= + } + func_m4ChangeLog_add_entry () + { +- if $doit; then +- if test -z "$modified_m4ChangeLog"; then +- echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/$m4dir/ChangeLog.tmp" +- echo >> "$srcdir/$m4dir/ChangeLog.tmp" +- modified_m4ChangeLog=yes +- fi +- echo "$1" >> "$srcdir/$m4dir/ChangeLog.tmp" +- else +- modified_m4ChangeLog=yes +- fi + } + func_m4ChangeLog_finish () + { +- if test -n "$modified_m4ChangeLog"; then +- if $doit; then +- echo >> "$srcdir/$m4dir/ChangeLog.tmp" +- if test -f "$srcdir/$m4dir/ChangeLog"; then +- echo "Adding an entry to $m4dir/ChangeLog (backup is in $m4dir/ChangeLog~)" +- cat "$srcdir/$m4dir/ChangeLog" >> "$srcdir/$m4dir/ChangeLog.tmp" +- rm -f "$srcdir/$m4dir/ChangeLog~" +- cp -p "$srcdir/$m4dir/ChangeLog" "$srcdir/$m4dir/ChangeLog~" +- else +- echo "Creating $m4dir/ChangeLog" +- fi +- cp "$srcdir/$m4dir/ChangeLog.tmp" "$srcdir/$m4dir/ChangeLog" +- rm -f "$srcdir/$m4dir/ChangeLog.tmp" +- else +- if test -f "$srcdir/$m4dir/ChangeLog"; then +- echo "Add an entry to $m4dir/ChangeLog" +- else +- echo "Create $m4dir/ChangeLog" +- fi +- fi +- fi + } + + if test ! -f "$srcdir/intl/Makefile.in" && test -n "$intldir"; then +@@ -559,320 +463,6 @@ + fi + $do_changelog && func_poChangeLog_finish + +-m4filelist=' codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 +- inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 +- lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4' +-# We cannot omit codeset.m4, glibc21.m4, intdiv0.m4, inttypes.m4, +-# inttypes_h.m4, isc-posix.m4, lcmessage.m4, stdint_h.m4, uintmax_t.m4 +-# if test -z "$intldir", otherwise "aclocal -I m4" might give an error. +-# (aclocal doesn't know which macros are really needed, it looks which macros +-# are potentially needed.) +- +-# All sorts of bugs could occur if the configure file was remade with the wrong +-# version of gettext.m4 et al. (because then the configure and the po/Makefile.in.in +-# don't fit together). It is therefore important that the package carries the +-# right versions of gettext.m4 et al. with it. +-if test -f "$srcdir/Makefile.am"; then +- # A package using automake. +- +- # Extract the macro directory name from Makefile.am. +- aclocal_amflags=`grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" | sed -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/'` +- m4dir=m4 +- m4dir_is_next= +- for arg in $aclocal_amflags; do +- if test -n "$m4dir_is_next"; then +- m4dir="$arg" +- break +- else +- if test "X$arg" = "X-I"; then +- m4dir_is_next=yes +- else +- m4dir_is_next= +- fi +- fi +- done +- +- # Update the *.m4 files and the corresponding Makefile.am. +- $do_changelog && func_m4ChangeLog_init +- added_m4files= +- if test -d "$srcdir/$m4dir"; then +- : +- else +- if $doit; then +- echo "Creating directory $m4dir" +- mkdir "$srcdir/$m4dir" +- else +- echo "Create directory $m4dir" +- fi +- added_directories="$added_directories $m4dir" +- fi +- for file in $m4filelist; do +- same=no +- if test -f "$srcdir/$m4dir/$file"; then +- if cmp -s "@datadir@/aclocal/$file" "$srcdir/$m4dir/$file"; then +- same=yes +- fi +- else +- added_m4files="$added_m4files $file" +- fi +- if $do_changelog && test $same = no; then +- if test -f "$srcdir/$m4dir/$file"; then +- func_m4ChangeLog_add_entry " * $file: Upgrade to gettext-${version}." +- else +- func_m4ChangeLog_add_entry " * $file: New file, from gettext-${version}." +- fi +- fi +- func_backup "$m4dir/$file" +- func_linkorcopy "@datadir@/aclocal/$file" "@datadir@/aclocal/$file" "$m4dir/$file" +- done +- if test -n "$added_m4files"; then +- if test -f "$srcdir/$m4dir/Makefile.am"; then +- if $doit; then +- echo "Updating EXTRA_DIST in $m4dir/Makefile.am (backup is in $m4dir/Makefile.am~)" +- func_backup "$m4dir/Makefile.am" +- rm -f "$srcdir/$m4dir/Makefile.am" +- if grep '^EXTRA_DIST[ ]*=' "$srcdir/$m4dir/Makefile.am~" > /dev/null; then +- sed -e "s%^\(EXTRA_DIST[ ]*=\)%\\1$added_m4files %" < "$srcdir/$m4dir/Makefile.am~" > "$srcdir/$m4dir/Makefile.am" +- $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST): Add the new files." +- else +- (cat "$srcdir/$m4dir/Makefile.am~"; echo; echo "EXTRA_DIST =$added_m4files") > "$srcdir/$m4dir/Makefile.am" +- $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST): New variable." +- fi +- else +- echo "Update EXTRA_DIST in $m4dir/Makefile.am" +- $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST)." +- fi +- else +- if $doit; then +- echo "Creating $m4dir/Makefile.am" +- echo "EXTRA_DIST =$added_m4files" > "$srcdir/$m4dir/Makefile.am" +- else +- echo "Create $m4dir/Makefile.am" +- fi +- $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am: New file." +- added_acoutput="$added_acoutput $m4dir/Makefile" +- fi +- fi +- $do_changelog && func_m4ChangeLog_finish +- # Also create $m4dir/Makefile.in from $m4dir/Makefile.am, because automake +- # doesn't do it by itself. +- if $doit; then +- case "$added_acoutput" in +- *" $m4dir/Makefile") +- (cd "$srcdir" && automake "$m4dir/Makefile") 2>/dev/null || +- please="$please +-Please run 'automake $m4dir/Makefile' to create $m4dir/Makefile.in +-" +- ;; +- esac +- fi +- +- # Update the top-level Makefile.am. +- modified_Makefile_am= +- # func_modify_Makefile_am changelog_comment +- # assumes a modified copy of $srcdir/Makefile.am in $srcdir/Makefile.am.tmp +- # and replaces the original Makefile.am file with the modified one if +- # the two files differ. Then it removes the modified copy. +- func_modify_Makefile_am () +- { +- if cmp -s "$srcdir/Makefile.am" "$srcdir/Makefile.am.tmp"; then +- : +- else +- if test -z "$modified_Makefile_am"; then +- if $doit; then +- echo "Updating Makefile.am (backup is in Makefile.am~)" +- func_backup Makefile.am +- else +- echo "Update Makefile.am" +- fi +- fi +- if $doit; then +- rm -f "$srcdir/Makefile.am" +- cp "$srcdir/Makefile.am.tmp" "$srcdir/Makefile.am" +- fi +- if $do_changelog; then +- if test -z "$modified_Makefile_am"; then +- func_ChangeLog_add_entry " * Makefile.am $1" +- else +- func_ChangeLog_add_entry " $1" +- fi +- fi +- modified_Makefile_am=yes +- fi +- rm -f "$srcdir/Makefile.am.tmp" +- } +- +- if test -n "$added_directories"; then +- if grep '^SUBDIRS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then +- sed -e "s%^\(SUBDIRS[ ]*=\)%\\1$added_directories %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" +- func_modify_Makefile_am "(SUBDIRS): Add "`echo $added_directories | sed -e 's/ /, /g'`'.' +- else +- (cat "$srcdir/Makefile.am"; echo; echo "SUBDIRS =$added_directories") > "$srcdir/Makefile.am.tmp" +- func_modify_Makefile_am "(SUBDIRS): New variable." +- fi +- fi +- if test -n "$removed_directory"; then +- sed -e '/^SUBDIRS[ ]*=/ { +- :a +- s%\([ ]\)'"$removed_directory"'[ ]%\1% +- s%[ ]'"$removed_directory"'$%% +- tb +- :b +- s%\\$%\\% +- tc +- bd +- :c +- n +- ba +- :d +- }' < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" +- func_modify_Makefile_am "(SUBDIRS): Remove $removed_directory." +- fi +- if test -z "$m4dir_is_next"; then +- if grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then +- sed -e "s%^\(ACLOCAL_AMFLAGS[ ]*=\)%\\1 -I $m4dir %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" +- func_modify_Makefile_am "(ACLOCAL_AMFLAGS): Add -I $m4dir." +- else +- (cat "$srcdir/Makefile.am"; echo; echo "ACLOCAL_AMFLAGS = -I $m4dir") > "$srcdir/Makefile.am.tmp" +- func_modify_Makefile_am "(ACLOCAL_AMFLAGS): New variable." +- fi +- # Also update Makefile.in and, if existent, Makefile. Otherwise they +- # would take into account the new flags only after a few rounds of +- # "./configure", "make", "touch configure.in", "make distclean". +- if $doit; then +- for file in Makefile.in Makefile; do +- if test -f "$srcdir/$file"; then +- func_backup $file +- rm -f "$srcdir/$file" +- sed -e "s%(ACLOCAL)%(ACLOCAL) -I $m4dir%" < "$srcdir/$file~" > "$srcdir/$file" +- fi +- done +- fi +- fi +- if test -n "$added_extradist"; then +- if grep '^EXTRA_DIST[ ]*=' "$srcdir/Makefile.am" > /dev/null; then +- sed -e "s%^\(EXTRA_DIST[ ]*=\)%\\1$added_extradist %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" +- func_modify_Makefile_am "(EXTRA_DIST): Add$added_extradist." +- else +- (cat "$srcdir/Makefile.am"; echo; echo "EXTRA_DIST =$added_extradist") > "$srcdir/Makefile.am.tmp" +- func_modify_Makefile_am "(EXTRA_DIST): New variable." +- fi +- fi +- please="$please +-Please run 'aclocal -I $m4dir' to regenerate the aclocal.m4 file. +-You need aclocal from GNU automake 1.5 (or newer) to do this. +-Then run 'autoconf' to regenerate the configure file. +-" +-else +- please="$please +-Please add the files +-$m4filelist +-from the @datadir@/aclocal directory to your aclocal.m4 file. +-" +-fi +- +-modified_configure_in= +-# func_modify_configure_in changelog_comment +-# assumes a modified copy of $srcdir/$configure_in in $srcdir/$configure_in.tmp +-# and replaces the original configure.in/ac file with the modified one if +-# the two files differ. Then it removes the modified copy. +-func_modify_configure_in () +-{ +- if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then +- : +- else +- if test -z "$modified_configure_in"; then +- if $doit; then +- echo "Updating $configure_in (backup is in $configure_in~)" +- func_backup $configure_in +- else +- echo "Update $configure_in" +- fi +- fi +- if $doit; then +- rm -f "$srcdir/$configure_in" +- cp "$srcdir/$configure_in.tmp" "$srcdir/$configure_in" +- fi +- if $do_changelog; then +- if test -z "$modified_configure_in"; then +- func_ChangeLog_add_entry " * $configure_in $1" +- else +- func_ChangeLog_add_entry " $1" +- fi +- fi +- modified_configure_in=yes +- fi +- rm -f "$srcdir/$configure_in.tmp" +-} +- +-if test -n "$added_acoutput"; then +- if grep '^AC_CONFIG_FILES(' "$srcdir/$configure_in" > /dev/null; then +- sed -e "s%^\\(AC_CONFIG_FILES([^])\\,]*\\)%\\1$added_acoutput %" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +- func_modify_configure_in "(AC_CONFIG_FILES): Add "`echo $added_acoutput | sed -e 's/ /, /g'`'.' +- else +- if grep '^AC_OUTPUT(' "$srcdir/$configure_in" > /dev/null; then +- sed -e "s%^\\(AC_OUTPUT([^])\\,]*\\)%\\1$added_acoutput %" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +- func_modify_configure_in "(AC_OUTPUT): Add "`echo $added_acoutput | sed -e 's/ /, /g'`'.' +- else +- please="$please +-Please add$added_acoutput to the AC_OUTPUT or AC_CONFIG_FILES invocation in the $configure_in file. +-" +- fi +- fi +-fi +-if test -n "$removed_acoutput"; then +- for file in $removed_acoutput; do +- tag= +- sedprog='{ +- s%\([[ ]\)'"$file"'[ ]%\1% +- s%\([[ ]\)'"$file"'\([]),]\)%\1\2% +- s%[[ ]'"$file"'$%% +- :a +- tb +- :b +- s%\\$%\\% +- tc +- bd +- :c +- n +- s%\([ ]\)'"$file"'[ ]%\1% +- s%\([ ]\)'"$file"'\([]),]\)%\1\2% +- s%[ ]'"$file"'$%% +- ba +- :d +- }' +- sed -e '/^AC_CONFIG_FILES(/'"$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +- if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then +- sed -e '/^AC_OUTPUT(/'"$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +- if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then +- : +- else +- tag=AC_OUTPUT +- fi +- else +- tag=AC_CONFIG_FILES +- fi +- if test -n "$tag"; then +- func_modify_configure_in "($tag): Remove $file." +- else +- rm -f "$srcdir/$configure_in.tmp" +- if test "$file" != intl/intlh.inst; then +- please="$please +-Please remove $file from the AC_OUTPUT or AC_CONFIG_FILES invocation +-in the $configure_in file. +-" +- fi +- fi +- done +-fi +-sed -e 's%sed -e "/POTFILES =/r po/POTFILES" po/Makefile\.in > po/Makefile *;* *%%' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +-func_modify_configure_in "(AC_OUTPUT): Remove command that created po/Makefile." +-sed -e '/^\(dnl \|\)AC_LINK_FILES(\$nls_cv_header_libgt, \$nls_cv_header_intl)$/d' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +-func_modify_configure_in "(AC_LINK_FILES): Remove invocation." +-sed -e 's/^AM_GNU_GETTEXT_VERSION([^()]*)/AM_GNU_GETTEXT_VERSION('"$version"'/' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +-func_modify_configure_in "(AM_GNU_GETTEXT_VERSION): Bump to $version." +-$do_changelog && func_ChangeLog_finish +- + # Recommend replacement for deprecated Makefile variables. + use_libtool=`cat "$srcdir/$configure_in" | grep '^A[CM]_PROG_LIBTOOL'` + for file in `(cd "$srcdir"; find . -name Makefile.am -print; find . -name Makefile.in -print) | sed -e 's,^\./,,'`; do diff --git a/build-scripts/jhbuild/patches/hal-dbus_connection_close.patch b/build-scripts/jhbuild/patches/hal-dbus_connection_close.patch new file mode 100644 index 0000000..88a5a6a --- /dev/null +++ b/build-scripts/jhbuild/patches/hal-dbus_connection_close.patch @@ -0,0 +1,32 @@ +Index: tools/hal-device.c +=================================================================== +RCS file: /cvs/hal/hal/tools/hal-device.c,v +retrieving revision 1.4 +diff -u -p -r1.4 hal-device.c +--- tools/hal-device.c 2 Nov 2005 15:38:14 -0000 1.4 ++++ tools/hal-device.c 20 Aug 2006 00:51:46 -0000 +@@ -155,7 +155,7 @@ int main(int argc, char **argv) + + libhal_ctx_shutdown(hal_ctx, &error); + libhal_ctx_free(hal_ctx); +- dbus_connection_disconnect(conn); ++ dbus_connection_close(conn); + dbus_connection_unref(conn); + dbus_error_free(&error); + +Index: tools/lshal.c +=================================================================== +RCS file: /cvs/hal/hal/tools/lshal.c,v +retrieving revision 1.19 +diff -u -p -r1.19 lshal.c +--- tools/lshal.c 13 Feb 2006 14:35:31 -0000 1.19 ++++ tools/lshal.c 20 Aug 2006 00:51:47 -0000 +@@ -701,7 +701,7 @@ main (int argc, char *argv[]) + libhal_ctx_shutdown (hal_ctx, &error); + libhal_ctx_free (hal_ctx); + +- dbus_connection_disconnect (conn); ++ dbus_connection_close (conn); + dbus_connection_unref (conn); + + if (show_device) diff --git a/build-scripts/jhbuild/patches/howl-1.0.0-buildfix.patch b/build-scripts/jhbuild/patches/howl-1.0.0-buildfix.patch new file mode 100644 index 0000000..6d7da77 --- /dev/null +++ b/build-scripts/jhbuild/patches/howl-1.0.0-buildfix.patch @@ -0,0 +1,24 @@ + Fix build bustage for --disable-static builds. + +--- howl-1.0.0/configure.ac.orig 2005-06-20 15:12:10.625724368 +0800 ++++ howl-1.0.0/configure.ac 2005-06-20 15:12:47.330144448 +0800 +@@ -25,7 +25,7 @@ + HOWL_LIB_OBJECTS='posix_salt.lo posix_socket.lo posix_time.lo posix_signal.lo posix_interface.lo notosx_mdns_stub.lo' + MDNSRESPONDER_LIB_SUBDIRS="Posix" + MDNSRESPONDER_LIB_OBJECTS='posix_mdns.lo' +- AUTOIPD_EXTRA_OBJECTS='$(top_builddir)/src/autoipd/linux_autoip.lo $(top_builddir)/src/autoipd/posix_main.lo' ++ AUTOIPD_EXTRA_OBJECTS='$(top_builddir)/src/autoipd/linux_autoip.o $(top_builddir)/src/autoipd/posix_main.o' + PLATFORM_LIBS=-lpthread + HOWL_MAN_PAGES='mDNSResponder.8 autoipd.8 nifd.8' + ;; +--- howl-1.0.0/configure.orig 2005-06-20 15:12:15.443991880 +0800 ++++ howl-1.0.0/configure 2005-06-20 15:17:30.803050016 +0800 +@@ -8523,7 +8523,7 @@ + HOWL_LIB_OBJECTS='posix_salt.lo posix_socket.lo posix_time.lo posix_signal.lo posix_interface.lo notosx_mdns_stub.lo' + MDNSRESPONDER_LIB_SUBDIRS="Posix" + MDNSRESPONDER_LIB_OBJECTS='posix_mdns.lo' +- AUTOIPD_EXTRA_OBJECTS='$(top_builddir)/src/autoipd/linux_autoip.lo $(top_builddir)/src/autoipd/posix_main.lo' ++ AUTOIPD_EXTRA_OBJECTS='$(top_builddir)/src/autoipd/linux_autoip.o $(top_builddir)/src/autoipd/posix_main.o' + PLATFORM_LIBS=-lpthread + HOWL_MAN_PAGES='mDNSResponder.8 autoipd.8 nifd.8' + ;; diff --git a/build-scripts/jhbuild/patches/libtool-1.4.2-expsym.patch b/build-scripts/jhbuild/patches/libtool-1.4.2-expsym.patch new file mode 100644 index 0000000..6f8bd77 --- /dev/null +++ b/build-scripts/jhbuild/patches/libtool-1.4.2-expsym.patch @@ -0,0 +1,54 @@ + This patch makes -export-symbols and -export-symbols-regex work with + GNU ld. It creates a version script rather than using -retain-symbols-file, + which just selectively strips the library. + +--- libtool-1.4.2/libtool.m4.expsym Mon May 27 12:33:14 2002 ++++ libtool-1.4.2/libtool.m4 Thu Jul 18 19:30:07 2002 +@@ -1367,11 +1367,14 @@ + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ ++cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++$echo "local: *; };" >> $output_objdir/$libname.ver~ ++$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then +@@ -1386,11 +1389,14 @@ + *** used, and then restart. + + EOF + elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ ++cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++$echo "local: *; };" >> $output_objdir/$libname.ver~ ++$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + else + ld_shlibs=no + fi + ;; + +@@ -1402,11 +1408,14 @@ + ;; + + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ ++cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++$echo "local: *; };" >> $output_objdir/$libname.ver~ ++$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${w}l$output_objdir/$libname.ver -o $lib' + else + ld_shlibs=no + fi + ;; + esac diff --git a/build-scripts/jhbuild/patches/libtool-1.5.18-multilib.patch b/build-scripts/jhbuild/patches/libtool-1.5.18-multilib.patch new file mode 100644 index 0000000..8fedbd7 --- /dev/null +++ b/build-scripts/jhbuild/patches/libtool-1.5.18-multilib.patch @@ -0,0 +1,31 @@ +--- libtool-1.5.14/libtool.m4.multilib 2005-02-12 12:18:34.000000000 +0000 ++++ libtool-1.5.14/libtool.m4 2005-02-15 08:48:42.189498479 +0000 +@@ -1456,10 +1456,27 @@ + # before this can be enabled. + hardcode_into_libs=yes + ++ # find out which ABI we are using ++ libsuff= ++ case "$host_cpu" in ++ x86_64*|s390x*|powerpc64*) ++ echo '[#]line __oline__ "configure"' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *64-bit*) ++ libsuff=64 ++ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ esac ++ + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` +- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" ++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on diff --git a/build-scripts/jhbuild/patches/scrollkeeper_clean_xml_validation_context.patch b/build-scripts/jhbuild/patches/scrollkeeper_clean_xml_validation_context.patch new file mode 100644 index 0000000..5138b83 --- /dev/null +++ b/build-scripts/jhbuild/patches/scrollkeeper_clean_xml_validation_context.patch @@ -0,0 +1,10 @@ +--- scrollkeeper-0.3.14/libs/install.c.mitr 2004-01-02 23:20:46.000000000 +0100 ++++ scrollkeeper-0.3.14/libs/install.c 2004-01-02 23:21:04.000000000 +0100 +@@ -187,6 +187,7 @@ + return 0; + } else { + xmlValidCtxt cvp; ++ memset (&cvp, 0, sizeof (cvp)); + cvp.userData = (char *) &outputprefs; + cvp.error = (xmlValidityErrorFunc) sk_dtd_validation_message; + cvp.warning = (xmlValidityWarningFunc) sk_dtd_validation_message; diff --git a/build-scripts/jhbuild/patches/scrollkeeper_empty_url_string.patch b/build-scripts/jhbuild/patches/scrollkeeper_empty_url_string.patch new file mode 100644 index 0000000..98f5a26 --- /dev/null +++ b/build-scripts/jhbuild/patches/scrollkeeper_empty_url_string.patch @@ -0,0 +1,11 @@ +--- scrollkeeper-0.3.14/libs/install.c.old 2006-08-27 15:16:42.000000000 -0600 ++++ scrollkeeper-0.3.14/libs/install.c 2006-08-27 15:00:23.000000000 -0600 +@@ -255,7 +255,7 @@ + } + + docpath = get_doc_property(node, "identifier", "url"); +- if (docpath == NULL) ++ if (docpath == NULL || *docpath == '\0') + continue; + + /* add to scrollkeeper_docs */ diff --git a/build-scripts/jhbuild/patches/scrollkeeper_language_fix.patch b/build-scripts/jhbuild/patches/scrollkeeper_language_fix.patch new file mode 100644 index 0000000..946cef5 --- /dev/null +++ b/build-scripts/jhbuild/patches/scrollkeeper_language_fix.patch @@ -0,0 +1,12 @@ +diff -Nur scrollkeeper-0.3.14.orig/libs/i18n.c scrollkeeper-0.3.14/libs/i18n.c +--- scrollkeeper-0.3.14.orig/libs/i18n.c 2003-11-10 00:05:36.000000000 +0100 ++++ scrollkeeper-0.3.14/libs/i18n.c 2005-08-26 22:55:13.000000000 +0200 +@@ -206,7 +206,7 @@ + count++; + } + +- tab = (char ***)malloc(sizeof(char **) * count); ++ tab = (char ***)malloc(sizeof(char **) * (count + 1)); + + str = strdup(lang); + check_ptr(str, ""); diff --git a/build-scripts/jhbuild/patches/scrollkeeper_rw_offset_fix.patch b/build-scripts/jhbuild/patches/scrollkeeper_rw_offset_fix.patch new file mode 100644 index 0000000..707fd25 --- /dev/null +++ b/build-scripts/jhbuild/patches/scrollkeeper_rw_offset_fix.patch @@ -0,0 +1,12 @@ +diff -Nur scrollkeeper-0.3.14/libs/i18n.c scrollkeeper-0.3.14.new/libs/i18n.c +--- scrollkeeper-0.3.14/libs/i18n.c 2006-01-28 16:05:17.000000000 +0100 ++++ scrollkeeper-0.3.14.new/libs/i18n.c 2006-01-28 16:05:40.000000000 +0100 +@@ -118,7 +118,7 @@ + if ((i & ~mask) == 0) { + int length = strlen(language) + strlen(territory) + + strlen(codeset) + strlen(modifier); +- char *var = (char *) malloc(sizeof(char) * length); ++ char *var = (char *) malloc(sizeof(char) * (length+1)); + check_ptr(var, ""); + + strcpy(var, language); diff --git a/build-scripts/jhbuild/sample.jhbuildrc b/build-scripts/jhbuild/sample.jhbuildrc new file mode 100644 index 0000000..a8cb465 --- /dev/null +++ b/build-scripts/jhbuild/sample.jhbuildrc @@ -0,0 +1,38 @@ +# -*- mode: python -*- + +# edit this file to match your settings and copy it to ~/.jhbuildrc + +# if you have a GNOME svn account, uncomment this line +#repos['svn.gnome.org'] = 'svn+ssh://user@svn.gnome.org/svn/' + + +# what module set should be used. The default at the moment is 'gnome28', +# but it can be any of the files in the modulesets directory, or even +# the URL of a module set file on a web server. +# moduleset = 'gnome-2.18' + +# A list of the modules to build. Defaults to the Gnome Desktop and +# developer platform. +# modules = [ 'meta-gnome-desktop' ] + +# what directory should the source be checked out to? +checkoutroot = os.path.expanduser('~/cvs/gnome2') + +# the prefix to configure/install modules to (must have write access) +prefix = '/opt/gnome2' + +# extra arguments to pass to all autogen.sh scripts +# to speed up builds of gnome2, try '--disable-static --disable-gtk-doc' +#autogenargs='' + +# set CFLAGS: +#os.environ['CFLAGS'] = '-g -O2' + +# On SMP systems you may use something like this to improve compilation time: +# be aware that not all modules compile correctly with make -j2 +#os.environ['MAKE'] = 'make -j2' + +# a alternative install program to use. +# The included install-check program won't update timestamps if the +# header hasn't changed +os.environ['INSTALL'] = os.path.expanduser('~/bin/install-check') diff --git a/build-scripts/jhbuild/scripts/branch-violations/README b/build-scripts/jhbuild/scripts/branch-violations/README new file mode 100644 index 0000000..4e040bb --- /dev/null +++ b/build-scripts/jhbuild/scripts/branch-violations/README @@ -0,0 +1,33 @@ +These are a bunch of scripts that can be used to find modules +in a module set that lack the proper revision tag. To use, run: + + ./find-branch-violations X.Y + +where X.Y is the major.minor version of the GNOME release you want to check. +What it does is: + + * It fetches the jhbuild moduleset for that version of GNOME from + CVS HEAD, using viewcvs. Note that it does not use your checked-out + version. + + * It fetches a list of all modules in GNOME CVS that have a branch + named gnome-X-Y. It's actually more than just top-level CVS modules. + They way it works is, it gets a list of all files named ChangeLog, + with a branch tag of gnome-X-Y, using Bonsai. + + * It outputs those modules from the first list above, that don't have + a revision gnome-X-Y tag, but are listed in the second list above. + + +That's basically it. Bonsai takes a while to run the query, so take your +time... You need wget and xmllint to be in PATH for these to work. + +Known problems: + + Bonsai is known to be broken and not report certain directories, or + lag behind too long... + + +Enjoy, +Behdad Esfahbod +Feb 04, 2006 diff --git a/build-scripts/jhbuild/scripts/branch-violations/find-branch-modules b/build-scripts/jhbuild/scripts/branch-violations/find-branch-modules new file mode 100755 index 0000000..026083d --- /dev/null +++ b/build-scripts/jhbuild/scripts/branch-violations/find-branch-modules @@ -0,0 +1,25 @@ +#!/bin/bash + +if test -z "$1"; then + echo Usage: find-branch-modules branch-name + exit 1 +fi + +branch=$1 + +echo "$branch" | +grep -q '\.' && +branch="gnome-${branch//./-}" + +url1='http://cvs.gnome.org/bonsai/cvsquery.cgi?treeid=default&module=all&branch='"$branch"'&branchtype=match&dir=&file=ChangeLog&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=all&mindate=&maxdate=&cvsroot=%2Fcvs%2Fgnome' +branch=$branch-branch +url2='http://cvs.gnome.org/bonsai/cvsquery.cgi?treeid=default&module=all&branch='"$branch"'&branchtype=match&dir=&file=ChangeLog&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=all&mindate=&maxdate=&cvsroot=%2Fcvs%2Fgnome' + +{ +wget --output-document - "$url1" 2>/dev/null +wget --output-document - "$url2" 2>/dev/null +} | +grep "^[^< /]\+/" | +sed 's,/ ,/,g' | +sed 's,/ChangeLog.*,,' | +sort -u diff --git a/build-scripts/jhbuild/scripts/branch-violations/find-branch-moduleset b/build-scripts/jhbuild/scripts/branch-violations/find-branch-moduleset new file mode 100755 index 0000000..edd3501 --- /dev/null +++ b/build-scripts/jhbuild/scripts/branch-violations/find-branch-moduleset @@ -0,0 +1,22 @@ +#!/bin/bash + +if test -z "$1"; then + echo Usage: find-branch-moduleset branch-name + exit 1 +fi + +branch=$1 + +echo "$branch" | +grep -q '\.' && +branch="gnome-${branch//./-}" + +echo "$branch" | +grep -q '[0-9][0-9]' && +branch="${branch//-/.}" && +branch="${branch/./-}" || +branch="${branch//-/}" + +url='http://cvs.gnome.org/viewcvs/*checkout*/jhbuild/modulesets/'"$branch"'.modules' + +wget --output-document - "$url" 2>/dev/null | xmllint - diff --git a/build-scripts/jhbuild/scripts/branch-violations/find-branch-violations b/build-scripts/jhbuild/scripts/branch-violations/find-branch-violations new file mode 100755 index 0000000..f711ffc --- /dev/null +++ b/build-scripts/jhbuild/scripts/branch-violations/find-branch-violations @@ -0,0 +1,24 @@ +#!/bin/bash + +if test -z "$1"; then + echo Usage: find-branch-violations branch + exit 1 +fi + +branch=$1 + +echo "$branch" | +grep -q '\.' && +branch="gnome-${branch//./-}" + +join \ + <( # list of modules defined in jhbuild without branch tag + "`dirname "$0"`/find-branch-moduleset" "$branch" | + grep "<cvsmodule" | + grep -v "$branch" | + sed 's/.*cvsmodule.*id="\([^"]*\)".*/\1/' | + sort + ) \ + <( # list of modules in CVS with branch tag + "`dirname "$0"`/find-branch-modules" "$branch" + ) diff --git a/build-scripts/jhbuild/scripts/changecvsroot.py b/build-scripts/jhbuild/scripts/changecvsroot.py new file mode 100755 index 0000000..7284b8b --- /dev/null +++ b/build-scripts/jhbuild/scripts/changecvsroot.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# jhbuild - a build script for GNOME 1.x and 2.x +# Copyright (C) 2001-2006 James Henstridge +# +# changecvsroot.py: script to alter the CVS root of a working copy +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os + +def changecvsroot(oldroot, newroot, *dirs): + def handle((oldroot, newroot), dirname, fnames): + if os.path.basename(dirname) == 'CVS' and 'Root' in fnames: + r = open(os.path.join(dirname, 'Root'), 'r').read().strip() + if r == oldroot: + fp = open(os.path.join(dirname, 'Root'), 'w') + fp.write('%s\n' % newroot) + fp.close() + for dir in dirs: + os.path.walk(dir, handle, (oldroot, newroot)) + +if __name__ == '__main__': + import sys + if len(sys.argv) < 4: + sys.stderr.write('usage: changecvsroot.py oldroot newroot dirs ...\n') + sys.exit(1) + changecvsroot(sys.argv[1], sys.argv[2], *sys.argv[2:]) diff --git a/build-scripts/jhbuild/scripts/gnome-2.6.deps b/build-scripts/jhbuild/scripts/gnome-2.6.deps new file mode 100644 index 0000000..c15c8d7 --- /dev/null +++ b/build-scripts/jhbuild/scripts/gnome-2.6.deps @@ -0,0 +1,85 @@ +atk: glib +at-spi: libbonobo gail +audiofile: +bug-buddy: libgnomeui +control-center: libgnomeui esound gnome-desktop metacity nautilus libxklavier +dasher: at-spi libgnomeui gnome-speech gnome-vfs +eel: librsvg libgnomeui gail +eog: eel libgnomeui libgnomeprint +epiphany: libgnomeui +esound: audiofile +file-roller: scrollkeeper nautilus +gail: gtk+ atk libgnomecanvas +gcalctool: scrollkeeper libgnomeui +GConf: ORBit2 libxml2 gtk+ +gconf-editor: GConf +gdm: libgnomeui librsvg libxml2 libart_lgpl scrollkeeper +gedit: scrollkeeper libgnomeui eel libgnomeprintui gtksourceview +ggv: scrollkeeper libgnomeui +glib: +gnome2-user-docs: glib +gnome-applets: gnome-panel libgtop gail libxklavier +gnome-desktop: libgnomeui startup-notification gnome-themes +gnome-games: scrollkeeper libgnomeui librsvg +gnome-icon-theme: hicolor-icon-theme +gnome-keyring: gtk+ +gnome-mag: at-spi +gnome-media: scrollkeeper libgnomeui esound gail gstreamer gst-plugins +gnomemeeting: libgnomeui +gnome-mime-data: +gnome-netstatus: libgnomeui gnome-panel +gnome-panel: scrollkeeper libgnomeui gnome-desktop libwnck +gnome-session: libgnomeui libwnck esound +gnome-speech: libbonobo +gnome-system-monitor: libgnomeui libwnck libgtop +gnome-terminal: libglade libgnomeui vte startup-notification +gnome-themes: gtk-engines +gnome-utils: libgnomeui gnome-panel +gnome-vfs: libbonobo GConf gnome-mime-data shared-mime-info +gnopernicus: GConf libgnomeui gnome-speech gnome-mag +gok: at-spi libgnomeui libwnck esound scrollkeeper +gpdf: libgnomeui libbonoboui +gst-plugins: gstreamer gnome-vfs gtk+ +gstreamer: glib libxml2 +gtk+: pango atk shared-mime-info +gtk-doc: +gtk-engines: gtk+ +gtksourceview: gtk+ libxml2 libgnomeprint +gucharmap: libgnomeui +hicolor-icon-theme: +intltool: +libart_lgpl: +libbonobo: ORBit2 libxml2 +libbonoboui: libgnome libbonobo libgnomecanvas libglade +libcroco: libxml2 pango +libgail-gnome: at-spi libgnomeui gnome-panel +libglade: gtk+ libxml2 +libgnome: libxml2 libxslt libbonobo gnome-vfs GConf esound +libgnomecanvas: gtk+ libart_lgpl libglade +libgnomeprint: libart_lgpl glib pango +libgnomeprintui: libgnomeprint gtk+ libgnomecanvas +libgnomeui: libbonoboui libglade gnome-icon-theme gnome-keyring +libgsf: glib gnome-vfs libbonobo +libgtkhtml: gtk+ libxml2 gail +libgtop: glib +libIDL: glib +librsvg: libxml2 gtk+ libart_lgpl libgsf libcroco +libwnck: gtk+ startup-notification +libxklavier: +libxml2: +libxslt: libxml2 +metacity: gtk+ GConf libglade +nautilus: scrollkeeper esound eel librsvg libgnomeui gnome-desktop +nautilus-cd-burner: libgnome gtk+ gnome-vfs libglade eel +nautilus-media: nautilus gstreamer gst-plugins +ORBit2: libIDL +pango: glib +pkgconfig: +scrollkeeper: +shared-mime-info: +startup-notification: +vte: gtk+ +yelp: scrollkeeper libgnomeui libgtkhtml gnome-vfs +zenity: gtk+ GConf libgnomecanvas +meta-gnome-core: gnome-desktop gnome-panel gnome-session gnome-terminal gnome-applets +meta-gnome-desktop: meta-gnome-core control-center nautilus yelp bug-buddy gedit gtk-engines eog ggv metacity gconf-editor gnome-utils gnome-system-monitor gstreamer gnome-media nautilus-media gnome-netstatus gcalctool gpdf gucharmap nautilus-cd-burner zenity gnopernicus gok epiphany gnome-games gnome2-user-docs gnomemeeting file-roller diff --git a/build-scripts/jhbuild/scripts/gnome-2.6.exceptions b/build-scripts/jhbuild/scripts/gnome-2.6.exceptions new file mode 100644 index 0000000..2a2a225 --- /dev/null +++ b/build-scripts/jhbuild/scripts/gnome-2.6.exceptions @@ -0,0 +1,23 @@ +[shared-mime-info] +version=0.14 +href=http://freedesktop.org/Software/shared-mime-info/shared-mime-info-0.14.tar.gz +size=355379 +md5sum=c5fc523a8c2b3464c7aa521b6014e5c8 + +[hicolor-icon-theme] +version=0.5 +href="http://freedesktop.org/Software/icon-theme/releases/hicolor-icon-theme-0.5.tar.gz +size=31611 +md5sum=947c7f6eb68fd95c7b86e87f853ceaa0 + +[libgsf] +version=1.9 +href=http://ftp.gnome.org/pub/GNOME/sources/libgsf/1.9/libgsf-1.9.1.tar.bz2 +size=391068 +md5sum=620290f8976ff1d83fa858002f006409 + +[libcroco] +version=0.5 +href=http://ftp.gnome.org/pub/GNOME/sources/libcroco/0.5/libcroco-0.5.1.tar.bz2 +size=286747 +md5sum=19e016a5533449a769662a116df7237c diff --git a/build-scripts/jhbuild/scripts/mk-tarball-moduleset.py b/build-scripts/jhbuild/scripts/mk-tarball-moduleset.py new file mode 100755 index 0000000..47553b3 --- /dev/null +++ b/build-scripts/jhbuild/scripts/mk-tarball-moduleset.py @@ -0,0 +1,164 @@ +#!/usr/bin/python + +import sys +import os +import stat +import re +import md5 +import getopt +import urlparse +import ConfigParser +import xml.dom.minidom + +usage = 'mk-tarball-moduleset -d DEPS -u URI -s DIR' +help = \ +'''Build a module set from a list of dependencies, a directory of tarballs +and a URI base. + +Options: + -d, --dependencies=FILE The list of dependencies + -u, --uri=URI The base URI for the tarballs + -s, --source=DIR Location of tarballs + -x, --exceptions=FILE A file including exceptions for sources''' + +def read_deps(filename): + deps = [] + deps_dict = {} + fp = open(filename) + line = fp.readline() + while line: + pkg, dep_pkgs = line.split(':', 1) + assert not deps_dict.has_key(pkg), '%s repeated' % pkg + dep_pkgs = [ dep.strip() for dep in dep_pkgs.split() ] + deps.append((pkg, dep_pkgs)) + deps_dict[pkg] = dep_pkgs + line = fp.readline() + # verify that all dependencies are listed + for pkg in deps_dict.keys(): + for dep in deps_dict[pkg]: + assert deps_dict.has_key(dep), 'dependency %s not found' % dep + return deps + +class SourceRepo: + def __init__(self, sourcedir, uribase, exceptions): + self.sourcedir = sourcedir + self.uribase = uribase + self.exceptions = exceptions + + def _find_tarball(self, pkg): + '''Find the first file in sourcedir that looks like a tarball for + the given package. Bzip2 compressed tarballs are preferred.''' + files = os.listdir(self.sourcedir) + pat = re.compile(r'%s-([0-9].*)\.tar\.bz2' % pkg.replace('+', '\\+')) + for filename in files: + match = pat.match(filename) + if match: + return filename, match.group(1) + pat = re.compile(r'%s-([0-9].*)\.tar\.gz' % pkg.replace('+', '\\+')) + for filename in files: + match = pat.match(filename) + if match: + return filename, match.group(1) + raise RuntimeError('no file found for package %s' % pkg) + + def create_tarball_node(self, document, pkg): + tarball = document.createElement('tarball') + tarball.setAttribute('id', pkg) + tarball.appendChild(document.createTextNode('\n')) + source_node = document.createElement('source') + tarball.appendChild(source_node) + tarball.appendChild(document.createTextNode('\n')) + + if self.exceptions.has_section(pkg): + tarball.setAttribute('version', + self.exceptions.get(pkg, 'version')) + + source_node.setAttribute('href', + self.exceptions.get(pkg, 'href')) + source_node.setAttribute('size', + self.exceptions.get(pkg, 'size')) + source_node.setAttribute('md5sum', + self.exceptions.get(pkg, 'md5sum')) + else: + filename, version = self._find_tarball(pkg) + tarball.setAttribute('version', version) + + source_node.setAttribute('href', + urlparse.urljoin(self.uribase, filename)) + info = os.stat(os.path.join(self.sourcedir, filename)) + size = info[stat.ST_SIZE] + source_node.setAttribute('size', str(info[stat.ST_SIZE])) + + sum = md5.new() + fp = open(os.path.join(self.sourcedir, filename), 'rb') + data = fp.read(4096) + while data: + sum.update(data) + data = fp.read(4096) + fp.close() + source_node.setAttribute('md5sum', sum.hexdigest()) + return tarball + +def main(args): + try: + opts, args = getopt.getopt(args, 'd:u:s:x:h', + ['dependencies=', 'uri=', 'source=', + 'exceptions=', 'help']) + except getopt.error, exc: + sys.stderr.write('mk-tarball-moduleset: %s\n' % str(exc)) + sys.stderr.write(usage + '\n') + sys.exit(1) + + dependencies = None + uri = None + source = None + exceptions = ConfigParser.ConfigParser() + for opt, arg in opts: + if opt in ('-h', '--help'): + print usage + print help + sys.exit(0) + elif opt in ('-d', '--dependencies'): + dependencies = arg + elif opt in ('-u', '--uri'): + uri = arg + elif opt in ('-s', '--source'): + source = arg + elif opt in ('-x', '--exceptions'): + exceptions.read(arg) + if not dependencies or not uri or not source: + sys.stderr.write(usage + '\n') + sys.exit(1) + + repo = SourceRepo(source, uri, exceptions) + deps = read_deps(dependencies) + + document = xml.dom.minidom.Document() + document.appendChild(document.createElement('moduleset')) + document.documentElement.appendChild(document.createTextNode('\n')) + for (pkg, dep_pkgs) in deps: + if pkg.startswith('meta-'): + pkg_node = document.createElement('metamodule') + pkg_node.setAttribute('id', pkg) + pkg_node.appendChild(document.createTextNode('\n')) + else: + pkg_node = repo.create_tarball_node(document, pkg) + if dep_pkgs: + deps = document.createElement('dependencies') + deps.appendChild(document.createTextNode('\n')) + for dep_pkg in dep_pkgs: + node = document.createElement('dep') + node.setAttribute('package', dep_pkg) + deps.appendChild(node) + deps.appendChild(document.createTextNode('\n')) + pkg_node.appendChild(deps) + pkg_node.appendChild(document.createTextNode('\n')) + + document.documentElement.appendChild(pkg_node) + document.documentElement.appendChild(document.createTextNode('\n')) + + document.writexml(sys.stdout) + document.unlink() + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/build-scripts/jhbuild/scripts/upgrade-module-set.xsl b/build-scripts/jhbuild/scripts/upgrade-module-set.xsl new file mode 100644 index 0000000..ff50ba8 --- /dev/null +++ b/build-scripts/jhbuild/scripts/upgrade-module-set.xsl @@ -0,0 +1,134 @@ +<?xml version="1.0"?><!--*- mode: nxml -*--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + + <xsl:template match="cvsroot"> + <repository type="cvs" name="{@name}" cvsroot="{@root}"> + <xsl:if test="@password"><xsl:copy-of select="@password" /></xsl:if> + <xsl:if test="@default"><xsl:copy-of select="@default" /></xsl:if> + </repository> + </xsl:template> + + <xsl:template match="svnroot"> + <repository type="svn" name="{@name}" href="{@href}"> + <xsl:if test="@default"><xsl:copy-of select="@default" /></xsl:if> + </repository> + </xsl:template> + + <xsl:template match="arch-archive"> + <repository type="arch" name="{@name}" href="{@href}"> + <xsl:if test="@default"><xsl:copy-of select="@default" /></xsl:if> + </repository> + </xsl:template> + + <xsl:template match="cvsmodule"> + <autotools> + <xsl:attribute name="id"> + <xsl:choose> + <xsl:when test="@id"> + <xsl:value-of select="@id"/> + </xsl:when> + <xsl:when test="@checkoutdir"> + <xsl:value-of select="@id"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@module"/> + </xsl:otherwise> + </xsl:choose> + </xsl:attribute> + <xsl:if test="@autogenargs"> + <xsl:copy-of select="@autogenargs" /> + </xsl:if> + <xsl:if test="@makeargs"> + <xsl:copy-of select="@makeargs" /> + </xsl:if> + <xsl:if test="@supports-non-srcdir-builds"> + <xsl:copy-of select="@supports-non-srcdir-builds" /> + </xsl:if> + <xsl:text>
 </xsl:text> + <branch> + <xsl:if test="@cvsroot"> + <xsl:attribute name="repo"> + <xsl:value-of select="@cvsroot"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@root"> + <xsl:attribute name="repo"> + <xsl:value-of select="@root"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@module"><xsl:copy-of select="@module" /></xsl:if> + <xsl:if test="@revision"><xsl:copy-of select="@revision" /></xsl:if> + <xsl:if test="@checkoutdir"><xsl:copy-of select="@checkoutdir" /></xsl:if> + </branch> + <xsl:apply-templates select="node()"/> + </autotools> + </xsl:template> + + <xsl:template match="svnmodule"> + <autotools id="{@id}"> + <xsl:if test="@autogenargs"> + <xsl:copy-of select="@autogenargs" /> + </xsl:if> + <xsl:if test="@makeargs"> + <xsl:copy-of select="@makeargs" /> + </xsl:if> + <xsl:if test="@supports-non-srcdir-builds"> + <xsl:copy-of select="@supports-non-srcdir-builds" /> + </xsl:if> + <xsl:text>
 </xsl:text> + <branch> + <xsl:if test="@root"> + <xsl:attribute name="repo"> + <xsl:value-of select="@root"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@module"><xsl:copy-of select="@module" /></xsl:if> + <xsl:if test="@checkoutdir"><xsl:copy-of select="@checkoutdir" /></xsl:if> + </branch> + <xsl:apply-templates select="node()"/> + </autotools> + </xsl:template> + + <xsl:template match="archmodule"> + <autotools id="{@id}"> + <xsl:if test="@autogenargs"> + <xsl:copy-of select="@autogenargs" /> + </xsl:if> + <xsl:if test="@makeargs"> + <xsl:copy-of select="@makeargs" /> + </xsl:if> + <xsl:if test="@supports-non-srcdir-builds"> + <xsl:copy-of select="@supports-non-srcdir-builds" /> + </xsl:if> + <xsl:text>
 </xsl:text> + <branch> + <xsl:if test="@root"> + <xsl:attribute name="repo"> + <xsl:value-of select="@root"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@version"> + <xsl:attribute name="module"> + <xsl:value-of select="@version"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@checkoutdir"><xsl:copy-of select="@checkoutdir" /></xsl:if> + </branch> + <xsl:apply-templates select="node()"/> + </autotools> + </xsl:template> + + <xsl:template match="suggests"> + <after> + <xsl:apply-templates select="node()"/> + </after> + </xsl:template> + + <xsl:template match="node()" priority="-1"> + <xsl:copy> + <xsl:copy-of select="@*" /> + <xsl:apply-templates select="node()"/> + </xsl:copy> + </xsl:template> + +</xsl:stylesheet> diff --git a/sugar-jhbuild b/sugar-jhbuild index f7da027..e4bfed2 100755 --- a/sugar-jhbuild +++ b/sugar-jhbuild @@ -6,11 +6,6 @@ import sys base_dir = os.path.abspath(os.path.dirname(__file__)) sys.path.append(os.path.join(base_dir, 'build-scripts', 'jhbuild')) -from updater import Updater - -updater = Updater(base_dir) -updater.update() - import jhbuild.commands import bundlemodule diff --git a/updater.py b/updater.py deleted file mode 100644 index a83073b..0000000 --- a/updater.py +++ /dev/null @@ -1,13 +0,0 @@ -import os - -class Updater(object): - def __init__(self, base_dir): - self._base_dir = base_dir - - def update(self): - os.chdir(os.path.join(self._base_dir, 'build-scripts')) - - cmd = ['svn', 'co', 'svn://svn.gnome.org/svn/jhbuild/trunk', 'jhbuild'] - os.spawnvp(os.P_WAIT, 'svn', cmd) - - os.chdir(self._base_dir) |