< git-pbuilder | Russ Allbery > Software > Scripts |
Make output of the exact pdebuild command dependent on setting the GIT_PBUILDER_DEBUG environment variable so that it's easier to configure silent output. Patch from Guido Günther.
Lines changed: +14 -7
Stop removing *_source.changes after completion of the build. pbuilder 0.228 and later no longer creates a bogus file with invalid hashes, so there's no need to remove it, and deleting it breaks some workflows and may remove the wrong *_source.changes files.
Lines changed: +1 -8
Check $OPTIONS passed from gpb buildpackage for --basepath as well. Previously only the explicit arguments were checked for --basepath. This resulted in --basepath being ignored and overridden by the default when passed in --git-pbuilder-options (either via command arguments or from the configuration file). Since this is required when invoking gbp-buildpackage (because args are passed to --debbuildopts), it's a significant use case. This commit fixes the issue by searching both args and $OPTIONS.
Patch from Kevin Locke.
Lines changed: +2 -2
Better approach to logging the pdebuild command that doesn't discard the exit status from pdebuild. Patch from Guido Günther.
Lines changed: +5 -6
Use set -x to log the exact command used to run pdebuild. Patch from Guido Günther.
Lines changed: +5 -1
Run non-building commands with set -x for easier debugging and better understanding of what commands are run. Patch from Guido Günther.
Lines changed: +7 -2
Stop using old backports location for oldstable-backports, since oldstable is now wheezy and uses backports from the main archive. Keep the special case for squeeze, just in case someone needs it.
Lines changed: +4 -5
Add GIT_PBUILDER_PDEBUILDOPTIONS to pass arguments directly to pdebuild if needed. Based on work by Rafał Długołęcki.
Lines changed: +17 -8
If --basepath was already provided by the caller, just use it as-is rather than adding another --basepath (which causes cowbuilder to fail). Based on a patch from Simon Fowler.
Use consistent spacing (none) before the semicolon at the end of the condition of "if" statements.
Lines changed: +39 -27
Change all references to git-buildpackage to gbp buildpackage, since that's now the official way to invoke it. Patch from Guido Günther.
Lines changed: +9 -9
Update the documentation for --git-pbuilder, which means that one no longer has to configure things in gbp.conf and there are command-line flags to use instead of environment variables. Also fix one typo. Thanks, Ken Dreyer.
Lines changed: +11 -14
Warn if git-pbuilder is run with an action and sudo is not installed. Unfortunately, we can't catch sudo not being configured, but we can do something about it not being installed. Also document the need for sudo installation and configuration in the man page.
Lines changed: +17 -1
Use correct variable when testing for the qemubuilder configuration. Patch from James Clarke.
Lines changed: +2 -2
Support --update, --create, and --login as actions in addition to update, create, and login, matching the syntax of pbuilder and cowbuilder. Thanks, Osamu Aoki.
Lines changed: +26 -15
Support creation of chroots for LTS. This supports developing for Debian's LTS releases. Patch from Guido Günther.
Lines changed: +20 -2
Fix the sense of the test for whether to remove the *_source.changes file.
Lines changed: +2 -2
Do not delete the *_sources.changes file if built with the -S flag. Normally, this file is an extraneous artifact of the pbuilder process and will contain incorrect checksums, but with -S builds it is the expected build product. Based on a patch by Guido Günther.
Lines changed: +7 -2
Pass --distribution instead of --dist to pbuilder and cowbuilder. This is the documented option, and --dist seems to have stopped working for at least some people.
Lines changed: +4 -3
Use the correct URL for the backports archive for wheezy and later. Patch from Guido Günther. Also update my email address.
Lines changed: +22 -10
Change the script to bash and use arrays to handle lists of arguments so that arguments intended for pbuilder or debbuild can have spaces or other special characters in them. There was previously no way to accomplish this, since git-pbuilder only knows how to split the pbuilder-options environment variable on $IFS, without any sort of lexing (in its defense, sh/bash makes it a pain). Based on a patch by paul cannon.
Lines changed: +40 -19
Make the build result directory configurable. Add a new environment variable GIT_PBUILDER_OUTPUT_DIR which can be set to override the default of ../ (the parent directory). This is ignored if GIT_PBUILDER_AUTOCONF is set to no. Based on a patch by Guido Günther.
Lines changed: +12 -5
Read the user's .pbuilderrc properly when invoking the builder with an action. sudo changes the environment, including HOME, so the program normally tries to read /root/.pbuilderrc, which is not so useful. Work around this by adding an explicit --configfile option pointing to $HOME/.pbuilderrc if it exists. Reported by Rafał Długołęcki.
Lines changed: +17 -3
Add support for adding the backports repository to --othermirror when creating build chroots. If DIST ends in -backports, the create (and update and similar) actions get a distribution without the -backports but with debian-backports added to the --othermirror setting.
Based on a patch by Guido Günther.
Lines changed: +41 -15
Add support for setting GIT_PBUILDER_AUTOCONF=no to disable all the logic for choosing options to the builder and instead just pass through the flags we're given.
Lines changed: +124 -95
Fix several bugs in the previous commit with deriving defaults from the program invocation name.
Lines changed: +5 -5
Clean up handling of defaults derived from the program invocation name, and add support for pbuilder.
Previously, defaults from the program name would only take effect if neither BUILDER nor DIST were set in the environment, and if neither were set BUILDER would be forced to be cowbuilder. Fix this by using the program name to get defaults for BUILDER, DIST, and ARCH and then let existing environment variable settings always override.
Add support for pbuilder as a builder, based on a patch by Clint Adams. However, pbuilder will never be selected based on the program name (due to backward compatibility issues); BUILDER must be explicitly set to pbuilder to use it.
Use more succinct syntax to set the default values of variables.
Lines changed: +129 -64
Use COWBUILDER_BASE from the environment, if set, as the root for cowbuilder base directories. Remove an extra level of quoting around $BASE in the options which confuses the shell (thanks, Guido Günther).
Lines changed: +8 -3
Fix unterminated B<> tag in the previous version.
Lines changed: +2 -2
Add support for qemubuilder and configuring the builder via either the name under which git-pbuilder is invoked or the BUILDER environment variable. qemubuilder has different defaults and points to a configuration file rather than to a base path.
Always print out what we're doing at the start of the run, listing the builder and the distribution and the architecture if set.
Preserve the exit status of pdebuild and exit with the same status.
Better-document ARCH and GIT_PBUILDER_OPTIONS.
Lines changed: +170 -86
Take the environment variable GIT_PBUILDER_OPTIONS as the default options to pass to cowbuilder and add other options on to it.
Document the default base paths used when ARCH is set in the environment.
Lines changed: +22 -5
Passing -i and -I flags with specific exclusion patterns for Git has the benefit of being specific to Git and not accidentally excluding files from other revision control systems, but it has the drawback of overriding the default exclusion patterns. Those now include other things and are under active development, which git-pbuilder was suppressing.
Given that there are many other, superior ways of overriding the default exclusion patterns where necessary, such as via files in debian/source, drop the -i and -I overrides and use the default behavior with source format 3.0.
Source format 1.0 doesn't ignore version control files by default and doesn't have as many ways of customizing the flags, so for 1.0 packages, continue doing what we were doing before and ignore only Git files.
Based on a patch by Guido Günther.
Lines changed: +16 -3
Warn if git-pbuilder is run without arguments by something other than git-buildpackage, since it doesn't know how to do all the extra work that git-buildpackage does (like move the results of the build to the expected output directory).
Lines changed: +6 -1
Add support for multiple architectures. git-pbuilder now looks at the ARCH environment variable, if set, and uses it to determine the architecture. If an architecture is set, it is appended to the cowbuilder base name and also passed to cowbuilder via --architecture.
Also move the check for cowbuilder to the top of the script, rather than after the option parsing.
Lines changed: +31 -21
Pass any additional arguments to git-pbuilder when called with the update, create, or login commands along to cowbuilder. Patch from Svend Sorensen.
Lines changed: +7 -3
Produce better output saying which distribution we're building for and only print out that line if $DIST is set. Add an error message if /usr/sbin/cowbuilder is not found, telling the user to install the cowbuilder package. Based on patches from Guido Günther.
Lines changed: +11 -2
Allow the base image to be missing when asked to create it
If the first argument is create, we're creating the base image and should therefore not fail if the image doesn't already exist. Patch from Guido Günther.
Lines changed: +2 -2
Support taking the distribution on which to operate from the name by which the script was invoked.
Lines changed: +22 -4
Add support for the additional cowbuilder actions update, create, and login and document how to call them. Change the license to an MIT-style license instead of the same terms as Perl since this script isn't written in Perl.
Lines changed: +33 -12
Update the file exclusion regex to match the Git-relevant regex from the default exclusion in dpkg-source. Since we know we're using Git, at least for the time being, do that instead of just using the default exclusion regex, although that may change later.
Lines changed: +5 -6
Further escape the backslash in the \.git regex passed in as a debuild option. It needs an additional level of escaping to survive going from cowbuilder to dpkg-buildpackage, and then a third level to protect it from the shell. Thanks, Allard Hoeve.
Lines changed: +5 -2
Fix a syntax error introduced in the previous commit and change the name of the etch backports repository to ebo instead of ebp, matching the convention I use elsewhere.
Lines changed: +3 -3
Only remove the source package changes file if it exists. Change some double quoting without interpolation to single quoting.
Lines changed: +6 -4
Add documentation, better error handling, a check for the existence of the intended base path, and handling of both base.cow and base-sid.cow. Some of this work was based on an updated script by Tim Skirvin.
Lines changed: +134 -14
Add --debian-etch-workaround to the pdebuild invocation.
Lines changed: +3 -2
Allow specification of other distributions than sid by setting DIST.
Lines changed: +16 -3
Remove the right sources.changes file.
Lines changed: +2 -2
Remove the *_source.changes file.
Lines changed: +4 -2
Initial version based on the git-buildpackage manual.
< git-pbuilder | Russ Allbery > Software > Scripts |