[jhbuild] Update README and manual. Remove out-of-date infomation. (GNOME bug 615413)
- From: Frederic Peters <fpeters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [jhbuild] Update README and manual. Remove out-of-date infomation. (GNOME bug 615413)
- Date: Wed, 28 Apr 2010 11:23:19 +0000 (UTC)
commit 8d0d11b6898d9defbff212a9f8707a032570f9d5
Author: Craig Keogh <cskeogh adam com au>
Date: Sun Apr 11 11:44:25 2010 +0930
Update README and manual. Remove out-of-date infomation. (GNOME bug 615413)
README | 269 +++++++++++++++++++++--------------------------------
doc/C/jhbuild.xml | 30 ++----
2 files changed, 115 insertions(+), 184 deletions(-)
---
diff --git a/README b/README
index 000bf53..3b95f0a 100644
--- a/README
+++ b/README
@@ -1,215 +1,158 @@
-Yet Another Gnome 2 Build Script
+JHBuild README
================================
-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.
+JHBuild is a tool designed to ease building collections of source
+packages, called â??modulesâ??.
-They don't enforce any particular checkout, build or install
-directories for your gnome2 setup (this is deduced from the config
-file).
+JHBuild was originally written for building GNOME, but has since been
+extended to be usable with other projects.
-You must have python >= 2.3 installed for jhbuild to run.
+JHBuild requires Python >= 2.3
-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:
+Installing JHBuild
+-----------
- * use a jhbuild module set comprised of tarball releases:
- http://blogs.gnome.org/view/newren/2005/10/04/0
+Refer to the 'Getting Started' section of the JHBuild manual:
- * use GARNOME: a GAR configuration for building Gnome from tarballs:
- http://www.gnome.org/projects/garnome/
+ gnome-help ghelp:/jhbuild-source-dir/doc/C/jhbuild.xml
+where 'jhbuild-source-dir' is the full path to the JHBuild source
+directory.
-Why use jhbuild?
-----------------
+Or refer to the on-line JHBuild manual at:
-I wrote jhbuild because there were a few features missing from
-vicious-build-scripts that I wanted. The main one is dependency
-handling.
+ http://library.gnome.org/devel/jhbuild/stable/getting-started.html.en
-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.
+Using JHBuild
+-------------
-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.
+JHBuild uses a command line syntax similar to tools like CVS:
-If you wish to run a non interactive build, you can pass the
---no-interact option.
+ jhbuild [global-options] command [command-arguments]
+The global JHBuild options are:
-Configuring
------------
+ -f, --file config
+ Use an alternative configuration file instead of the default ~/.jhbuildrc.
-To install the scripts run "make -f Makefile.plain 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
--------------
+ -m, --moduleset moduleset
+ Use a module set other than the module set listed in the
+ configuration file. This option can be a relative path if the module
+ set is located in the JHBuild moduleset folder, or an absolute path
+ if located elsewhere.
-To build everything, just type 'jhbuild build', or just 'jhbuild'.
-Some useful options that this command takes include:
+ --no-interact
+ Do not prompt the user for any input. This option is useful if
+ leaving a build unattended, in order to ensure the build is not
+ interrupted.
- --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
+Refer to the JHBuild manual for a complete list of JHBuild commands
+and options. The common ones are:
-If you just want to checkout the latest versions of everything, run:
- jhbuild update
+jhbuild bootstrap
-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
+ The bootstrap command installs a set of build utilities required to
+ build most modules (e.g. autoconf, automake, etc).
-(this command takes the same options as 'jhbuild build').
+jhbuild build [--autogen] [--clean] [--dist] [--distcheck]
+ [--ignore-suggests] [--no-network] [--skip=module...]
+ [--start-at=module] [--tags=tags] [-D date] [--no-xvfb]
+ [--try-checkout] [--no-poison] [--force] [--build-optional-modules]
+ [--min-age=time] [module...]
-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
+ The build command builds one or more packages, including their
+ dependencies.
-For example, to start a shell in the build environment:
- jhbuild run bash
+ If no module names are provided on the command line, the modules
+ list from the configuration file will be used.
-To build a single module with no dependencies, use the following
-command:
- jhbuild buildone modulename
+ -a, --autogen
+ Always run autogen.sh before building modules. By default,
+ autogen.sh will only be called if the top-level makefile is
+ missing. Otherwise, JHBuild relies on the package's makefiles to
+ detect if configure needs to be rebuilt or rerun.
-(this command takes the same extra options as 'jhbuild build').
+ -c, --clean
+ Run make clean before building modules.
-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
+ -d, --dist
+ Run make dist after building modules.
-(this command takes the same extra options as 'jhbuild build').
+ --distcheck
+ Run make distcheck after building modules.
-For details of all jbhuild's command line options:
- jhbuild --help
+ --ignore-suggests
+ Do not build soft dependencies.
+ -n, --no-network
+ 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, the module build will fail.
-Error handling
---------------
+ -s, --skip=module,...
+ Do not build the listed modules. Used to skip the building of
+ specified dependencies.
-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).
+ --tags=tag,...
+ Ignore modules that do not match tag. Modules are automatically
+ attributed a tag matching the name of the module's module set.
-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.
+ -t, --start-at=module
+ Start at the named module rather than at the beginning of the
+ list. This option is useful if the build was interrupted.
+ -D date
+ If supported by the underlying version control system, update the
+ source tree to the specified date before building. An ISO date
+ format is required, e.g. "2009-09-18 02:32Z".
-Module info
------------
+ -x, --no-xvfb
+ Run graphical tests on the actual X server rather than in a
+ simulated Xvfb.
-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).
+ -C, --try-checkout
+ If the build fails, and if supported by the version control system,
+ force a checkout and run autogen.sh before retrying the build.
+ -N, --no-poison
+ If one or more of a module's dependencies failed, this option forces
+ JHBuild to try to build the module anyway.
-Running Gnome
---------------
+ -f, --force
+ Build the modules even if policy states it is not required.
-Once you have built Gnome with jhbuild you need a way to start it:
+ --build-optional-modules
+ Modules listed as optional dependencies, may not be required to
+ build the module. This option forces JHBuild to build optional
+ dependencies.
-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:
+ --min-time=time
+ Skip modules installed more recently than the specified relative
+ time. The time string format is a number followed by a unit. The
+ following units are supported: seconds (s), minutes (m), hours (h)
+ and days (d). For example, --min-time=2h will skip modules built
+ less than two hours ago.
-[Desktop Entry]
-Encoding=UTF-8
-Name=Gnome-cvs
-Comment=This session logs you into Gnome-cvs
-Exec=jhbuild run gnome-session
-Type=Application
+jhbuild buildone [--autogen] [--clean] [--distcheck] [--no-network]
+ [-D date] [--no-xvfb] [--force] [--min-age=time] module...
-In order to have the name & comment show up in your native language, you will
-have to add lines similar to the following:
+ The buildone command is similar to build, but it does not build the
+ dependent modules. It is useful for rebuilding one or more modules.
-Name[es]=Gnome-cvs
-Comment[es]=Con esta sesi�³n accede a gnome-cvs
+jhbuild sanitycheck
-If you use startx to run gnome just add 'exec jhbuild run gnome-session'
-to your ~/.xinitrc
+ The sanitycheck command performs a number of checks to verify the
+ build environment is okay.
+For details of all jbhuild's command line options:
+ jhbuild --help
Reporting Bugs
--------------
-If you find any bugs in jhbuild, or have feature requests (or
+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.
+This will ensure your request is not lost.
diff --git a/doc/C/jhbuild.xml b/doc/C/jhbuild.xml
index dffb993..4106f8f 100644
--- a/doc/C/jhbuild.xml
+++ b/doc/C/jhbuild.xml
@@ -94,27 +94,15 @@
<section id="getting-started-install">
<title>Installing JHBuild</title>
- <para>Before downloading JHBuild, verify a copy of Python
- >= 2.0 is installed. It is essential that the Expat XML
- parser extension is installed. Expat XML is supplied with Python
- >= 2.3. To verify Expat XML is installed run the following
- commands:</para>
-
- <screen><prompt>#</prompt> <userinput>python</userinput>
-Python 2.6.2+ (release26-maint, Sep 13 2009, 21:26:06)
-[GCC 4.4.1] on linux2
-Type "help", "copyright", "credits" or "license" for more information.
-<prompt>>>></prompt> <userinput>import xml.parsers.expat</userinput>
-<prompt>>>></prompt></screen>
-
- <para>If the above completes without an exception, then Expat
- XML is installed correctly.</para>
-
- <para>The only way to download JHBuild is via the version control
- system, <command>git</command>. This can be achieved with the
- following command. It is recommended to run the command from a
- new directory where all source code will be installed, for
- example, <filename>~/checkout/gnome2</filename>.</para>
+ <para>JHBuild requires a Python runtime. Verify Python >= 2.3
+ is installed.</para>
+
+ <para>The recommended way to download JHBuild is via the version
+ control system, <command>git</command>. This can be achieved
+ with the following command. It is recommended to run the
+ command from a new directory where all source code will be
+ installed, for example,
+ <filename>~/checkout/gnome2</filename>.</para>
<screen><prompt>$</prompt> <userinput>git clone git://git.gnome.org/jhbuild</userinput>
<computeroutput>...</computeroutput>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]