./PaxHeaders.4860/sbuild-0.67.00000644000000000000000000000013212637513730012633 xustar0030 mtime=1451136984.265760116 30 atime=1451136984.349760227 30 ctime=1451136984.265760116 sbuild-0.67.0/0000755000175000017500000000000012637513730013373 5ustar00joschjosch00000000000000sbuild-0.67.0/PaxHeaders.4860/man0000644000000000000000000000013212637513730013251 xustar0030 mtime=1451136984.233760074 30 atime=1451136984.349760227 30 ctime=1451136984.233760074 sbuild-0.67.0/man/0000755000175000017500000000000012637513730014146 5ustar00joschjosch00000000000000sbuild-0.67.0/man/PaxHeaders.4860/sbuild-adduser.8.in0000644000000000000000000000013212627410514016726 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.225760063 sbuild-0.67.0/man/sbuild-adduser.8.in0000644000175000017500000000432012627410514017545 0ustar00joschjosch00000000000000.\" Copyright © 2005-2008 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD\-ADDUSER 8 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-adduser \- add an sbuild user .SH SYNOPSIS .B sbuild\-adduser .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .BR USER1 " [" USER2 " [" USER\f[BI]n\fP... ]] .SH DESCRIPTION \fBsbuild\-adduser\fR adds the specified users to the \fIsbuild\fP group, granting them the privelege to build packages with .BR sbuild (1). The .BR schroot (1) configuration must permit the user to obtain root permissions in the chroot via the \f[CI]root\-users\fP and \f[CI]root\-groups\fP options in \fIschroot.conf\fP, because this is required to install and remove build-dependencies inside the chroot. This is normally done using the \fIsbuild\fP group, but additional users or groups may be added in order to grant finer-grained permissions, for example to restrict individual users to particular chroots. .SH OPTIONS .SS Actions .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .SS User selection .TP .B USER The user to be granted sbuild access. .SH EXAMPLES To allow user \fIrleigh\fP sbuild access: .PP \f[CR]% \f[CB]sudo sbuild\-adduser rleigh\fP\fP .br .SH AUTHORS .nf Roger Leigh. .fi .SH COPYRIGHT .nf Copyright \[co] 2006\[en]2008 Roger Leigh . .fi .SH "SEE ALSO" .BR sbuild (1), .BR sbuild\-setup (7), .BR schroot.conf (5). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild-apt.1.in0000644000000000000000000000013212565554441016065 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.225760063 sbuild-0.67.0/man/sbuild-apt.1.in0000644000175000017500000000446712565554441016720 0ustar00joschjosch00000000000000.\" Copyright © 2005-2008 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD\-APT 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-apt \- run apt-get or apt-cache in an sbuild chroot .SH SYNOPSIS .BR sbuild\-apt .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .B CHROOT .RB ( apt\-get \[or] apt\-cache ) .RB "[" ARG1 " [" ARG2 " [" "ARG\f[BI]n\fP..." ]]] .SH DESCRIPTION \fBsbuild\-apt\fR runs .BR apt\-get (1) or .BR apt\-cache (1) inside the specified chroot, along with any additional arguments. .SH OPTIONS .SS Actions .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .SS Chroot selection .TP .B CHROOT The chroot to run the command in. Note that \[oq]o\[cq], \[oq]s\[cq], \[oq]t\[cq], \[oq]u\[cq] and \[oq]e\[cq] may be used as abbreviations for \[oq]oldstable\[cq], \[oq]stable\[cq], \[oq]testing\[cq], \[oq]unstable\[cq] and \[oq]experimental\[cq], respectively. .SS APT options .TP .B apt\-get Run apt\-get. .TP .B apt\-cache Run apt\-cache. .TP .B ARG Additional arguments to pass to apt\-get or apt\-cache. .SH EXAMPLES To update the APT package lists in the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-apt unstable apt-get update\fP\fP .PP Note that .BR sbuild-update (1) is a more convenient method for doing the above. .SH AUTHORS .nf Roger Leigh. .fi .SH COPYRIGHT .nf Copyright \[co] 2006\[en]2008 Roger Leigh . .fi .SH SEE ALSO .BR apt\-cache (1), .BR apt\-get (1), .BR sbuild (1), .BR sbuild\-update (1), .BR sbuild\-upgrade (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild-setup.7.in0000644000000000000000000000013212637466265016455 xustar0030 mtime=1451125941.424606942 30 atime=1451125941.428606954 30 ctime=1451136984.229760068 sbuild-0.67.0/man/sbuild-setup.7.in0000644000175000017500000002243112637466265017277 0ustar00joschjosch00000000000000.\" t .\" .\" Copyright © 2005-2008 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD-SETUP 7 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild-setup \- sbuild setup procedure .SH DESCRIPTION \fBsbuild\fP uses chroots to build packages within, to provide a minimal and consistent build environment. This man page describes the procedure to create a chroot by hand using debootstrap. These are only guidelines; depending upon the setup required, several of the steps may be omitted entirely. .SH QUICK START Simply running .B sbuild-createchroot will perform all the setup steps described in detail below. See the section \[lq]\fIsbuild-createchroot\fP\[rq] below, as well as .BR sbuild\-createchroot (8). .SH CHROOT SETUP This guide sets up a lenny chroot on a powerpc machine. Adjust the names for other suites and architectures. .SS 1. Run debootstrap to create the chroot \f[CR]# \f[CB]mkdir \-p /srv/chroot/lenny\fP\fP .br .PP The author has each chroot as a separate LVM logical volume (LV). Create and mount an LV here if required: .PP \f[CR]# \f[CB]lvcreate \-L 4G \-n lenny_chroot \-Z y volume-group\fP\fP .br .PP Add to /etc/fstab and mount (see next section for full fstab example). Finally, run debootstrap to create the chroot: .PP \f[CR]# \f[CB]debootstrap \-\-variant=buildd lenny /srv/chroot/lenny http://httpredir.debian.org/debian/\fP\fP .br .SS 2. Set up additional mounts An example \fI/etc/fstab\fP: .PP .TS lfCR s s s s s. /dev/volume-group/lenny_chroot \[rs] .T& lfCR lfCR lfCR lfCR lfCR lfCR. /srv/chroot/lenny ext3 defaults 0 2 /dev/pts /srv/chroot/lenny/dev/pts none rw,bind 0 0 tmpfs /srv/chroot/lenny/dev/shm tmpfs defaults 0 0 proc /srv/chroot/lenny/proc proc defaults 0 0 .T& lfCR s s s s s. /dev/volume-group/home \[rs] .T& lfCR lfCR lfCR lfCR lfCR lfCR. /srv/chroot/lenny/home ext3 quota 0 0 /tmp /srv/chroot/lenny/tmp none rw,bind 0 0 /etc/passwd /srv/chroot/lenny/etc/passwd none ro,bind 0 0 /etc/shadow /srv/chroot/lenny/etc/shadow none ro,bind 0 0 /etc/group /srv/chroot/lenny/etc/group none ro,bind 0 0 /etc/gshadow /srv/chroot/lenny/etc/gshadow none ro,bind 0 0 .T& lfCR s s s s s. /etc/resolv.conf \[rs] .T& lfCR lfCR s s s s. /srv/chroot/lenny/etc/resolv.conf \[rs] .T& lfCR lfCR lfCR lfCR lfCR lfCR. none ro,bind 0 0 .TE .PP If the bind mountpoints don't exist in the chroot, touch them: .PP \f[CR]# \f[CB]touch /srv/chroot/lenny/etc/resolv.conf\fP\fP .PP Next, mount them all. .PP Depending on your kernel version and security considerations, you may wish to do this part slightly differently. With a Linux kernel, at least version 2.6 is required for bind mounts, and devpts (CONFIG_UNIX98_PTYS) for \fI/dev/pts\fP. Other guides recommend copying the files, but this method keeps them up-to-date at no cost. .PP If using sbuild with schroot, \fIpasswd\fP, \fIshadow\fP, \fIgroup\fP, \fIgshadow\fP and \fIresolv.conf\fP can be updated automatically at the start of each build, so no action is required here. schroot can also automatically mount all of the extra filesystems, so all the other mounts may be omitted. .PP To disable networking, don't bind mount \fI/etc/resolv.conf\fP. This will prevent APT from working inside the chroot, but prevents package building from having working network access (no nameservers). .SS 3. Edit \f[BI]sources.list\fP Create or edit \fI/srv/chroot/lenny/etc/apt/sources.list\fP, and add all the APT sources required to obtain binary and source packages for your chosen distribution: .PP \f[CR]deb http://security.debian.org/ lenny/updates main\fP .br \f[CR]deb\-src http://security.debian.org/ lenny/updates main\fP .br \f[CR]\fP .br \f[CR]deb http://httpredir.debian.org/debian/ lenny main\fP .br \f[CR]deb\-src http://httpredir.debian.org/debian/ lenny main\fP .br .SS 4. Configure dchroot or schroot This is entirely optional, but will make the chroot environment easier to access and administer. .PP For dchroot, add the following line to \fI/etc/dchroot.conf\fP: .PP \f[CR]lenny /srv/chroot/lenny\fP .br .PP For schroot, add a group to \fI/etc/schroot/schroot.conf\fP (or a new file \fI/etc/schroot/chroot.d/lenny\fP), for example: .PP \f[CR][lenny]\fP .br \f[CR]type=directory\fP .br \f[CR]description=Debian lenny (stable)\fP .br \f[CR]location=/srv/chroot/lenny\fP .br \f[CR]priority=2\fP .br \f[CR]groups=root,sbuild\fP .br \f[CR]root\-groups=sbuild\fP .br \f[CR]aliases=stable\fP .br \f[CR]run\-setup\-scripts=true\fP .br \f[CR]run\-session\-scripts=true\fP .br .PP For sudo, add a symbolic link to the directory \fI/etc/sbuild/chroot\fP, for example: .PP \f[CR]# \f[CB]mkdir \-p /etc/sbuild/chroot\fP\fP .br \f[CR]# \f[CB]ln \-s /srv/chroot/lenny /etc/sbuild/chroot/lenny\fP\fP .br .SS 5. Log into chroot \f[CR]# \f[CB]dchroot \-c lenny\fP\fP .br .PP or .PP \f[CR]$ \f[CB]schroot \-c lenny \-u root\fP\fP .br .SS 6. Set up packages for sbuild While running as root inside the chroot: .PP \f[CR]# \f[CB]apt\-get update\fP\fP .br \f[CR]# \f[CB]apt\-get dist\-upgrade\fP\fP .br \f[CR]# \f[CB]apt\-get install debconf\fP\fP .br \f[CR]# \f[CB]dpkg\-reconfigure \-plow debconf\fP\fP .br .PP Answer the debconf questions as follows: .IP \fBinterface\fP choose \fI6/Noninteractive\fP .IP \fBpriority\fP choose \fI1/Critical\fP .PP You only need to run dpkg-reconfigure if you weren't asked the questions during the debconf install. Next, install the packages required for building packages: .PP \f[CR]# \f[CB]apt\-get install debfoster fakeroot build\-essential\fP\fP .br \f[CR]# \f[CB]apt\-get install makedev\fP\fP .br \f[CR]# \f[CB]cd /dev/\fP\fP .br \f[CR]# \f[CB]/sbin/MAKEDEV generic\fP\fP .br \f[CR]# \f[CB]touch /etc/mtab\fP\fP .br .PP For some security, we don't bind mount /dev, so it can't access e.g. USB devices .SS 7. sbuild setup While running as root inside the chroot: .PP \f[CR]# \f[CB]mkdir /build\fP\fP .br \f[CR]# \f[CB]chown root:sbuild /build\fP\fP .br \f[CR]# \f[CB]chmod 02775 /build\fP\fP .br \f[CR]# \f[CB]mkdir \-p /var/lib/sbuild/srcdep\-lock\fP\fP .br \f[CR]# \f[CB]chown \-R root:sbuild /var/lib/sbuild\fP\fP .br \f[CR]# \f[CB]chmod \-R 02775 /var/lib/sbuild\fP\fP .br .PP Note that when using sbuild with schroot, this setup is done at the start of each build, so is not required here. .SS 8. Finished Congratulations! You should now have a fully configured and operational chroot. .SH SBUILD-CREATECHROOT This script will automatically perform a number of the steps described above, including: .IP \[bu] Running debootstrap. .IP \[bu] Setting up APT sources in \fI/etc/apt/sources.list\fP. .IP \[bu] Setting up a minimal \fI/etc/passwd\fP .IP \[bu] Setting up /build and /var/lib/sbuild with appropriate ownership and permissions. .PP After it has done this, you do still need to do some manual setup, completing the steps it missed out above, for example. .SH USER SETUP .SS 1. Group membership As root, run: .PP \f[CR]# \f[CB]sbuild-adduser \f[CBI]user\fP\fP\fP .br .PP Alternatively, add the user to the \fIsbuild\fP group by hand: .PP \f[CR]# \f[CB]adduser \f[CBI]user\fP sbuild\fP\fP .SS 2. \f[BI]~/.sbuildrc\fP .br Configure the user's \fI~/.sbuildrc\fP: .PP \f[CR]$ \f[CB]cp /usr/share/doc/sbuild/examples/example.sbuildrc ~\f[CBI]user\fP/.sbuildrc\fP\fP .br .PP Edit to set the correct mail address to send log files to, and the correct maintainer name and/or uploader name. .PP .SS 3. Build directories Create directories to contain packages and log files. (.sbuildrc may have configured different locations; the default build directory is the current directory, and the default $log_dir is ~/logs): .PP \f[CR]$ \f[CB]mkdir ~/logs\fP\fP .br .SS 4. sudo setup This step not required if schroot is used (which is the default, set in \fIsbuild.conf\fP). If using sbuild with sudo (chroot_mode \[lq]split\[rq]), sudo needs configuring to give the user permission to install and remove packages in the chroot, which requires root privileges. Add the following lines to \fI/etc/sudoers\fP: .PP \f[CR]\f[CI]username\fP ALL=NOPASSWD: ALL\fP .br \f[CR]Defaults:\f[CI]username\fP env_keep+="APT_CONFIG DEBIAN_FRONTEND SHELL"\fP .br .PP where \fIusername\fP is the name of the user who will run sbuild. .SS 5. Finished The user should now be able to run sbuild. .PP \f[CR]$ \f[CB]sbuild ...\fP\fP .br .SH AUTHORS Roger Leigh. .SH COPYRIGHT Copyright \(co 2005-2008 Roger Leigh .PP 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. .SH SEE ALSO .BR debootstrap (1), .BR sbuild (1), .BR sbuild\-adduser (8), .BR sbuild\-createchroot (8). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/buildd.1.in0000644000000000000000000000013212565554441015264 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.213760047 sbuild-0.67.0/man/buildd.1.in0000644000175000017500000000526012565554441016107 0ustar00joschjosch00000000000000.\" Copyright © 2009 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH BUILDD 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME buildd \- package autobuilder daemon .SH SYNOPSIS .B buildd .SH VERSION This man page documents the packaged version of buildd. This version is maintained by the \fBbuildd-tools\fP project developers on Alioth (\f[CR]https://alioth.debian.org/projects/buildd\-tools/\fP). .SH DESCRIPTION \fBbuildd\fR is a daemon used to automatically build Debian packages from source. wanna\-build is used to find and claim packages for building, while sbuild is used to build the packages. The helper programs buildd\-mail, buildd\-uploader and buildd\-watcher are used to perform various housekeeping tasks to keep the system running. .SH FILES .TP .I /etc/buildd/buildd.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I ~/.builddrc User-specific configuration. .SH AUTHORS Roman Hodek . .PP \fBsbuild\fR is based on debbuild, written by James Troup and has been modified by .nf Ben Collins , Ryan Murray , Francesco Paolo Lovergine , Michael Banck , and Roger Leigh .fi .SH COPYRIGHT .nf Copyright \[co] 1998-2000 Roman Hodek Copyright \[co] 1998-1999 James Troup Copyright \[co] 2003-2006 Ryan Murray Copyright \[co] 2001-2003 Rick Younie Copyright \[co] 2003-2004 Francesco Paolo Lovergine Copyright \[co] 2005 Michael Banck Copyright \[co] 2005-2008 Roger Leigh .fi .SH "SEE ALSO" .BR buildd.conf (5), .BR buildd\-mail (1), .BR buildd\-uploader (1), .BR buildd\-watcher (1), .BR buildd\-mail (1), .BR wanna\-build (1), .BR sbuild (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/buildd-watcher.1.in0000644000000000000000000000013212565554441016717 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.217760052 sbuild-0.67.0/man/buildd-watcher.1.in0000644000175000017500000000526012565554441017542 0ustar00joschjosch00000000000000.\" Copyright © 2009 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH BUILDD\-WATCHER 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME buildd\-watcher \- watch buildd activity .SH SYNOPSIS .B buildd\-watcher .SH VERSION This man page documents the packaged version of buildd\-watcher. This version is maintained by the \fBbuildd-tools\fP project developers on Alioth (\f[CR]https://alioth.debian.org/projects/buildd\-tools/\fP). .PP There is also a version maintained by Ryan Murray which is adapted to build daemon needs, with similar functionality. This version should be equally capable of working in a buildd setup, but has a number of enhancements aimed at making it suitable for use by end-users. .SH DESCRIPTION \fBbuildd\-watcher\fR monitors the activity of the buildd daemon and restarts it if required. It additionally cleans up old files, and rotates and archives log files. .SH FILES .TP .I /etc/buildd/buildd.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I ~/.builddrc User-specific configuration. .SH AUTHORS Roman Hodek . .PP \fBsbuild\fR is based on debbuild, written by James Troup and has been modified by .nf Ben Collins , Ryan Murray , Francesco Paolo Lovergine , Michael Banck , and Roger Leigh .fi .SH COPYRIGHT .nf Copyright \[co] 1998-2000 Roman Hodek Copyright \[co] 1998-1999 James Troup Copyright \[co] 2003-2006 Ryan Murray Copyright \[co] 2001-2003 Rick Younie Copyright \[co] 2003-2004 Francesco Paolo Lovergine Copyright \[co] 2005 Michael Banck Copyright \[co] 2005-2008 Roger Leigh .fi .SH "SEE ALSO" .BR buildd (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/buildd-vlog.1.in0000644000000000000000000000013212565554441016231 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.217760052 sbuild-0.67.0/man/buildd-vlog.1.in0000644000175000017500000000521112565554441017050 0ustar00joschjosch00000000000000.\" Copyright © 2009 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH BUILDD\-VLOG 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME buildd\-vlog \- view current build log .SH SYNOPSIS .B buildd\-vlog .SH VERSION This man page documents the packaged version of buildd\-vlog. This version is maintained by the \fBbuildd-tools\fP project developers on Alioth (\f[CR]https://alioth.debian.org/projects/buildd\-tools/\fP). .PP There is also a version maintained by Ryan Murray which is adapted to build daemon needs, with similar functionality. This version should be equally capable of working in a buildd setup, but has a number of enhancements aimed at making it suitable for use by end-users. .SH DESCRIPTION \fBbuildd\-vlog\fR monitors the build currently in progress and outputs the log file during the build in a manner similar to .BR tail (1) . .SH FILES .TP .I /etc/buildd/buildd.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I ~/.builddrc User-specific configuration. .SH AUTHORS Roman Hodek . .PP \fBsbuild\fR is based on debbuild, written by James Troup and has been modified by .nf Ben Collins , Ryan Murray , Francesco Paolo Lovergine , Michael Banck , and Roger Leigh .fi .SH COPYRIGHT .nf Copyright \[co] 1998-2000 Roman Hodek Copyright \[co] 1998-1999 James Troup Copyright \[co] 2003-2006 Ryan Murray Copyright \[co] 2001-2003 Rick Younie Copyright \[co] 2003-2004 Francesco Paolo Lovergine Copyright \[co] 2005 Michael Banck Copyright \[co] 2005-2008 Roger Leigh .fi .SH "SEE ALSO" .BR buildd (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild-hold.1.in0000644000000000000000000000013212565554441016227 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.229760068 sbuild-0.67.0/man/sbuild-hold.1.in0000644000175000017500000000424112565554441017050 0ustar00joschjosch00000000000000.\" Copyright © 2005-2008 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD\-HOLD 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-hold \- hold packages in an sbuild chroot .SH SYNOPSIS .BR sbuild\-hold .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .B CHROOT .RB "[" PACKAGE1 " [" PACKAGE2 " [" PACKAGE\f[BI]n\fP ]]] .br .BR sbuild\-unhold .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .B CHROOT .RB "[" PACKAGE1 " [" PACKAGE2 " [" PACKAGE\f[BI]n\fP ]]] .SH DESCRIPTION \fBsbuild\-hold\fR and \fBsbuild\-unhold\fR set and unset the dpkg hold status for the specified packages, respectively. .SH OPTIONS .SS Actions .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .SS Chroot and package selection .TP .B CHROOT The chroot to use. Note that \[oq]o\[cq], \[oq]s\[cq], \[oq]t\[cq], \[oq]u\[cq] and \[oq]e\[cq] may be used as abbreviations for \[oq]oldstable\[cq], \[oq]stable\[cq], \[oq]testing\[cq], \[oq]unstable\[cq] and \[oq]experimental\[cq], respectively. .TP .B PACKAGE The packages for which the hold status is to be changed. .SH EXAMPLES To hold the libc6 package in the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-hold unstable libc6\fP\fP .br .SH AUTHORS .nf Roger Leigh. .fi .SH COPYRIGHT .nf Copyright \[co] 2006\[en]2007 Roger Leigh . .fi .SH "SEE ALSO" .BR sbuild (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild.conf.5.in0000644000000000000000000000013212565554441016233 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.221760058 sbuild-0.67.0/man/sbuild.conf.5.in0000644000175000017500000000566312565554441017065 0ustar00joschjosch00000000000000.\" Copyright © 2011 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD.CONF 5 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild.conf \- configuration file for sbuild .SH DESCRIPTION \fBsbuild.conf\fR is a Perl script which is sourced by sbuild to permit configuration. It is run in a sandbox and restricted to setting a small number of variables, detailed below, which may be set to configure the behaviour of sbuild. Each variable has an internal name, shown in all caps, and a perl variable showing the default setting. Note that the internal name is not accessible within sbuild.conf; only the variable may be assigned. Also note that some of the defaults are set to be unique for each build, and so some of the defaults shown here are unique to the user and system used to build sbuild, and will be different for your system. .PP While sbuild permits many aspects of its behaviour to be configured, this should not normally be required. The defaults should be adequate for most uses, and should only be changed if you are doing something more advanced, or have specialist requirements. .SH CONFIGURATION .so sbuild.conf.man .SH FILES .TP .I /etc/sbuild/sbuild.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I ~/.sbuildrc User-specific configuration. .SH AUTHORS Roman Hodek . .PP \fBsbuild\fR is based on debbuild, written by James Troup and has been modified by .nf Ben Collins , Ryan Murray , Francesco Paolo Lovergine , Michael Banck , and Roger Leigh .fi .SH COPYRIGHT .nf Copyright \[co] 1998-2000 Roman Hodek Copyright \[co] 1998-1999 James Troup Copyright \[co] 2003-2006 Ryan Murray Copyright \[co] 2001-2003 Rick Younie Copyright \[co] 2003-2004 Francesco Paolo Lovergine Copyright \[co] 2005 Michael Banck Copyright \[co] 2005-2009 Roger Leigh .fi .SH "SEE ALSO" .BR sbuild (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665015402 xustar0030 mtime=1451136949.525714283 30 atime=1451136977.913751718 30 ctime=1451136984.209760042 sbuild-0.67.0/man/Makefile.in0000644000175000017500000005644712637513665016242 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(srcdir)/defs.man.in subdir = man ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = defs.man CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \ "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)" man5dir = $(mandir)/man5 man7dir = $(mandir)/man7 man8dir = $(mandir)/man8 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) man_MANS = \ buildd.1 \ buildd.conf.5 \ buildd-mail.1 \ buildd-uploader.1 \ buildd-vlog.1 \ buildd-watcher.1 \ sbuild.1 \ sbuild.conf.5 \ sbuild-abort.1 \ sbuild-adduser.8 \ sbuild-apt.1 \ sbuild-checkpackages.1 \ sbuild-createchroot.8 \ sbuild-hold.1 \ sbuild-setup.7 \ sbuild-shell.1 \ sbuild-update.1 CLEANFILES = \ sbuild.conf.man \ buildd.conf.man EXTRA_DIST = \ defs.man.in \ $(addsuffix .in, $(man_MANS)) \ sbuild-debuild.1.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu man/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): defs.man: $(top_builddir)/config.status $(srcdir)/defs.man.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-man5: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man5dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.5[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ done; } uninstall-man5: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man5dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.5[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) install-man7: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man7dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man7dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man7dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.7[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^7][0-9a-z]*$$,7,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man7dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man7dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man7dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man7dir)" || exit $$?; }; \ done; } uninstall-man7: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man7dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.7[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^7][0-9a-z]*$$,7,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man7dir)'; $(am__uninstall_files_from_dir) install-man8: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man8dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.8[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ done; } uninstall-man8: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man8dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.8[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-man5 install-man7 install-man8 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook uninstall-man: uninstall-man1 uninstall-man5 uninstall-man7 \ uninstall-man8 .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-hook install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-man5 install-man7 install-man8 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-hook \ uninstall-man uninstall-man1 uninstall-man5 uninstall-man7 \ uninstall-man8 sbuild.conf.man: $(abs_top_srcdir)/tools/sbuild-dumpconfig PERL5LIB=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib \ $< sbuild man > $@ buildd.conf.man: $(abs_top_srcdir)/tools/sbuild-dumpconfig PERL5LIB=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib \ $< buildd man > $@ sbuild.conf.5: sbuild.conf.5.in defs.man sbuild.conf.man soelim $< > $@ buildd.conf.5: buildd.conf.5.in defs.man buildd.conf.man soelim $< > $@ %.1: %.1.in defs.man soelim $< > $@ %.5: %.5.in defs.man soelim $< > $@ %.7: %.7.in defs.man soelim $< > $@ %.8: %.8.in defs.man soelim $< > $@ install-data-hook: ln -sf sbuild-hold.1 $(DESTDIR)$(man1dir)/sbuild-unhold.1 ln -sf sbuild-update.1 $(DESTDIR)$(man1dir)/sbuild-upgrade.1 ln -sf sbuild-update.1 $(DESTDIR)$(man1dir)/sbuild-distupgrade.1 ln -sf sbuild-update.1 $(DESTDIR)$(man1dir)/sbuild-clean.1 ln -sf buildd-mail.1 $(DESTDIR)$(man1dir)/buildd-mail-wrapper.1 ln -sf sbuild-abort.1 $(DESTDIR)$(man1dir)/buildd-abort.1 ln -sf sbuild-update.1 $(DESTDIR)$(man1dir)/buildd-update-chroots.1 ln -sf sbuild-createchroot.8 $(DESTDIR)$(man8dir)/buildd-make-chroot.8 uninstall-hook: $(RM) $(DESTDIR)$(man1dir)/sbuild-unhold.1 $(RM) $(DESTDIR)$(man1dir)/sbuild-upgrade.1 $(RM) $(DESTDIR)$(man1dir)/sbuild-distupgrade.1 $(RM) $(DESTDIR)$(man1dir)/sbuild-clean.1 $(RM) $(DESTDIR)$(man1dir)/buildd-mail-wrapper.1 $(RM) $(DESTDIR)$(man1dir)/buildd-abort.1 $(RM) $(DESTDIR)$(man1dir)/buildd-update-chroots.1 $(RM) $(DESTDIR)$(man8dir)/buildd-make-chroot.8 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/man/PaxHeaders.4860/Makefile.am0000644000000000000000000000013212627410514015355 xustar0030 mtime=1449005388.463402744 30 atime=1451136876.925619248 30 ctime=1451136984.209760042 sbuild-0.67.0/man/Makefile.am0000644000175000017500000000542012627410514016176 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk man_MANS = \ buildd.1 \ buildd.conf.5 \ buildd-mail.1 \ buildd-uploader.1 \ buildd-vlog.1 \ buildd-watcher.1 \ sbuild.1 \ sbuild.conf.5 \ sbuild-abort.1 \ sbuild-adduser.8 \ sbuild-apt.1 \ sbuild-checkpackages.1 \ sbuild-createchroot.8 \ sbuild-hold.1 \ sbuild-setup.7 \ sbuild-shell.1 \ sbuild-update.1 sbuild.conf.man: $(abs_top_srcdir)/tools/sbuild-dumpconfig PERL5LIB=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib \ $< sbuild man > $@ buildd.conf.man: $(abs_top_srcdir)/tools/sbuild-dumpconfig PERL5LIB=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib \ $< buildd man > $@ sbuild.conf.5: sbuild.conf.5.in defs.man sbuild.conf.man soelim $< > $@ buildd.conf.5: buildd.conf.5.in defs.man buildd.conf.man soelim $< > $@ %.1: %.1.in defs.man soelim $< > $@ %.5: %.5.in defs.man soelim $< > $@ %.7: %.7.in defs.man soelim $< > $@ %.8: %.8.in defs.man soelim $< > $@ CLEANFILES = \ sbuild.conf.man \ buildd.conf.man EXTRA_DIST = \ defs.man.in \ $(addsuffix .in, $(man_MANS)) \ sbuild-debuild.1.in install-data-hook: ln -sf sbuild-hold.1 $(DESTDIR)$(man1dir)/sbuild-unhold.1 ln -sf sbuild-update.1 $(DESTDIR)$(man1dir)/sbuild-upgrade.1 ln -sf sbuild-update.1 $(DESTDIR)$(man1dir)/sbuild-distupgrade.1 ln -sf sbuild-update.1 $(DESTDIR)$(man1dir)/sbuild-clean.1 ln -sf buildd-mail.1 $(DESTDIR)$(man1dir)/buildd-mail-wrapper.1 ln -sf sbuild-abort.1 $(DESTDIR)$(man1dir)/buildd-abort.1 ln -sf sbuild-update.1 $(DESTDIR)$(man1dir)/buildd-update-chroots.1 ln -sf sbuild-createchroot.8 $(DESTDIR)$(man8dir)/buildd-make-chroot.8 uninstall-hook: $(RM) $(DESTDIR)$(man1dir)/sbuild-unhold.1 $(RM) $(DESTDIR)$(man1dir)/sbuild-upgrade.1 $(RM) $(DESTDIR)$(man1dir)/sbuild-distupgrade.1 $(RM) $(DESTDIR)$(man1dir)/sbuild-clean.1 $(RM) $(DESTDIR)$(man1dir)/buildd-mail-wrapper.1 $(RM) $(DESTDIR)$(man1dir)/buildd-abort.1 $(RM) $(DESTDIR)$(man1dir)/buildd-update-chroots.1 $(RM) $(DESTDIR)$(man8dir)/buildd-make-chroot.8 sbuild-0.67.0/man/PaxHeaders.4860/buildd-uploader.1.in0000644000000000000000000000013212565554441017075 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.217760052 sbuild-0.67.0/man/buildd-uploader.1.in0000644000175000017500000000510612565554441017717 0ustar00joschjosch00000000000000.\" Copyright © 2009 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH BUILDD\-UPLOADER 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME buildd\-uploader \- upload built packages for buildd .SH SYNOPSIS .B buildd\-uploader .SH VERSION This man page documents the packaged version of buildd\-uploader. This version is maintained by the \fBbuildd-tools\fP project developers on Alioth (\f[CR]https://alioth.debian.org/projects/buildd\-tools/\fP). .PP There is also a version maintained by Ryan Murray which is adapted to build daemon needs, with similar functionality. This version should be equally capable of working in a buildd setup, but has a number of enhancements aimed at making it suitable for use by end-users. .SH DESCRIPTION \fBbuildd\-uploader\fR uploads built packages. .SH FILES .TP .I /etc/buildd/buildd.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I ~/.builddrc User-specific configuration. .SH AUTHORS Roman Hodek . .PP \fBsbuild\fR is based on debbuild, written by James Troup and has been modified by .nf Ben Collins , Ryan Murray , Francesco Paolo Lovergine , Michael Banck , and Roger Leigh .fi .SH COPYRIGHT .nf Copyright \[co] 1998-2000 Roman Hodek Copyright \[co] 1998-1999 James Troup Copyright \[co] 2003-2006 Ryan Murray Copyright \[co] 2001-2003 Rick Younie Copyright \[co] 2003-2004 Francesco Paolo Lovergine Copyright \[co] 2005 Michael Banck Copyright \[co] 2005-2008 Roger Leigh .fi .SH "SEE ALSO" .BR buildd (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild.1.in0000644000000000000000000000013212637466265015311 xustar0030 mtime=1451125941.604607503 30 atime=1451125941.608607516 30 ctime=1451136984.221760058 sbuild-0.67.0/man/sbuild.1.in0000644000175000017500000010471312637466265016137 0ustar00joschjosch00000000000000.\" Copyright © 1998 James Troup .\" Copyright © 2005-2009 Roger Leigh .\" Copyright © 2008 Simon McVittie .\" .\" 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, see .\" . .so defs.man .TH SBUILD 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild \- build debian packages from source .SH SYNOPSIS .B sbuild .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .RB [ \-v \[or] \-\-verbose " \[or] " \-q \[or] \-\-quiet ] .RB [ \-D \[or] \-\-debug ] .RB [ \-A \[or] \-\-arch\-all ] .RB [ \-\-archive=\fIarchive\fP ] .RB [ \-d \[or] \-\-dist=\fIdistribution\fP ] .RB [ \-c \[or] \-\-chroot=\fIchroot\fP ] .RB [ \-\-arch=\fIarchitecture\fP ] .RB [ \-\-arch\-any " \[or] " \-\-no\-arch\-any ] .RB [ \-\-arch\-all\-only ] .RB [ \-\-build=\fIarchitecture\fP ] .RB [ \-\-host=\fIarchitecture\fP ] .RB [ \-\-profiles=\fIprofile[,...]\fP ] .RB [ \-s \[or] \-\-source ] .RB [ \-\-force\-orig\-source ] .RB [ \-\-make\-binNMU=\fIchangelog-entry\fP ] .RB [ \-\-binNMU=\fINMU-version\fP ] .RB [ \-\-append\-to\-version=\fIstring\fP ] .RB [ \-\-add-depends=\fIdependency\fP ] .RB [ \-\-add-conflicts=\fIdependency\fP ] .RB [ \-\-add-depends\-arch=\fIdependency\fP ] .RB [ \-\-add-conflicts\-arch=\fIdependency\fP ] .RB [ \-\-add-depends\-indep=\fIdependency\fP ] .RB [ \-\-add-conflicts\-indep=\fIdependency\fP ] .RB [ \-m \[or] \-\-maintainer=\fImaintainer\fP ] .RB [ \-e \[or] \-\-uploader=\fIuploader\fP ] .RB [ \-k \[or] \-\-keyid=\fIkey-id\fP ] .RB [ \-j \[or] \-\-jobs=\fIn\fP ] .RB [ \-\-debbuildopt=\fIoption\fP ] .RB [ \-\-debbuildopts=\fIoptions\fP ] .RB [ \-\-dpkg-source-opt=\fIoptions\fP ] .RB [ \-\-dpkg-source-opts=\fIoptions\fP ] .RB [ \-p \[or] \-\-purge=\fPpurge-mode\fP ] .RB [ \-\-purge\-build=\fPpurge-mode\fP ] .RB [ \-\-purge\-deps=\fPpurge-mode\fP ] .RB [ \-\-purge\-session=\fPpurge-mode\fP ] .RB [ \-b \[or] \-\-batch] .RB [ \-n \[or] \-\-nolog ] .RB [ \-\-clean\-source ] .RB [ \-\-no\-clean\-source ] .RB [ \-\-run\-lintian ] .RB [ \-\-no\-run\-lintian ] .RB [ \-\-lintian\-opt=\fIoptions\fP ] .RB [ \-\-lintian\-opts=\fIoptions\fP ] .RB [ \-\-run\-piuparts ] .RB [ \-\-no\-run\-piuparts ] .RB [ \-\-piuparts\-opt=\fIoptions\fP ] .RB [ \-\-piuparts\-opts=\fIoptions\fP ] .RB [ \-\-piuparts\-root\-arg=\fIoptions\fP ] .RB [ \-\-piuparts\-root\-args=\fIoptions\fP ] .RB [ \-\-pre\-build\-commands=\fIstring\fP ] .RB [ \-\-chroot\-setup\-commands=\fIstring\fP ] .RB [ \-\-build\-deps\-failed\-commands=\fIstring\fP ] .RB [ \-\-starting\-build\-commands=\fIstring\fP ] .RB [ \-\-finished\-build\-commands=\fIstring\fP ] .RB [ \-\-build\-failed\-commands=\fIstring\fP ] .RB [ \-\-chroot\-cleanup\-commands=\fIstring\fP ] .RB [ \-\-post\-build\-commands=\fIstring\fP ] .RB [ \-\-anything\-failed\-commands=\fIstring\fP ] .RB [ \-\-log\-external\-command\-output ] .RB [ \-\-log\-external\-command\-error ] .RB [ \-\-setup\-hook=\fIhook-script\fP ] .RB [ \-\-build\-dep\-resolver=\fIresolver\fP ] .RB [ \-\-resolve\-alternatives \[or] \-\-no\-resolve\-alternatives ] .RB [ \-\-extra\-package=\fIpackage.deb\fP ] .RB [ \-\-extra\-repository=\fIspec\fP ] .RB [ \-\-extra\-repository\-key=\fIfile.asc\fP ] .RB [ \-\-build\-path=\fIstring\fP ] .RB [ PACKAGE [ .dsc ]] .SH DESCRIPTION \fBsbuild\fR rebuilds Debian binary packages from the corresponding Debian source, installing any missing source dependencies. The build takes place in a dedicated clean build environment (chroot), rather than on the host system. .PP \fBsbuild\fR can fetch the Debian source over a network, or it can use locally available sources. .PP sbuild is given a packages to process as the argument \fBPACKAGE[.dsc]\fR. This argument is in the form of either a debianized package source directory, a source package name along with a version in the form \fIpackage_version\fP, or a .dsc file. If no arguments are given, the current working directory is passed as an argument. .PP For arguments given as source directories, dpkg-source is first run to produce a source .dsc file. Then, the package is built using the .dsc produced. For arguments in the form \fIpackage_version\fP, apt is used to download the source package. For arguments given as a .dsc file, sbuild builds the source packages directly. For .dsc files in remote locations, the source packages are downloaded first, then built. .PP It is also possible to run external commands with sbuild. See the section \fBEXTERNAL COMMANDS\fR for more on this. .PP \fBsbuild\fR mails the build logs to a user. It is configured by the configuration files \fI/etc/sbuild/sbuild.conf\fP and \fI~/.sbuildrc\fP. An example sbuildrc is available in \fI/usr/share/doc/sbuild/examples/example.sbuildrc\fP. A custom path to a configuration file can also be specified through setting the \fBSBUILD_CONFIG\fP environment variable to the path of an additional configuration file. .PP You can build either using a local package with its .dsc file or a remote one by specifying an explicit dpkg version. .PP Note: When using schroot (recommended), the chroot having the name (or alias) of the specified distribution will be used; schroot uses a chroot named \fI$distribution\-$arch-sbuild\fP, \fI$distribution\-sbuild\fP, \fI$distribution\-$arch\fP or \fI$distribution\fP, in that order of preference. The \-c or \-\-chroot option may be used to override the chroot to be used. When configured to use sudo (deprecated), sbuild will look for a symlink to a chroot with the same name as the distribution specified. sbuild will use a symlink to the chroot located in \fI/etc/sbuild/chroot/$distribution\fP, or must be run in a directory containing a \fIchroot\-$distribution\fP symlink to the chroot (not recommended, but done for backward compatibility). .SH OPTIONS .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .TP .BR "\-\-add\-depends=\fIdependency\fP" .TP .BR "\-\-add\-conflicts=\fIdependency\fP" .TP .BR "\-\-add\-depends\-arch=\fIdependency\fP" .TP .BR "\-\-add\-conflicts\-arch=\fIdependency\fP" .TP .BR "\-\-add\-depends\-indep=\fIdependency\fP" .TP .BR "\-\-add\-conflicts\-indep=\fIdependency\fP" These options add a build dependencies to the source package being built, in addition to the build dependency information specified in debian/control. These dependencies will be concatenated directly to the Build-Depends, Build-Conflicts, Build-Depends-Arch, Build-Conflicts-Arch, Build-Depends-Indep and Build-Conflicts-Indep dependencies, respectively. The options may be used any number of times to add multiple dependencies. The format is identical to the format used in debian/control. .TP .BR "\-\-arch=\fIarchitecture\fP" Build using the architecture specified. A chroot named \fI$distribution\-$arch-sbuild\fP or \fI$distribution\-arch\fP is searched for, in that order of preference. The chroot must be installed and configured appropriately to build as that architecture, e.g. using \fIpersonality=linux32\fP to build i386 packages on an amd64 system. Note that this option is equivalent to "\-\-host=architecture \-\-build=architecture". .TP .BR "\-\-host=\fIarchitecture\fP" Build using the host architecture specified. If $host and $build don't match, a chroot named \fI$distribution\-$build\-$host\-sbuild\fP or \fI$distribution\-$build\-$host\fP is searched for, falling back to \fI$distribution\-$build\-sbuild\fP or \fI$distribution\-$build\fP, in that order of preference. This option is only useful for cross-building when used together with \-\-build. .TP .BR "\-\-build=\fIarchitecture\fP" Build using the build architecture specified. This option is only useful for cross-building when used together with \-\-host. If \-\-build is not specified, the default system architecture is assumed. .TP .BR \-A ", " "\-\-arch\-all" Also build Architecture: all packages, i.e. use dpkg\-buildpackage \-b instead of \-B. .TP .BR "\-\-no\-arch\-all" Do not build Architecture: all packages, i.e. use dpkg\-buildpackage \-B instead of \-b. This option is the opposite of \-\-arch\-all. .TP .BR "\-\-arch\-any" Build Architecture: any packages. This is the default behavior. .TP .BR "\-\-no\-arch\-any" Do not build Architecture: any packages. This option is the opposite of \-\-arch\-any and only useful when used together with \-\-arch\-all or \-\-source. .TP .BR "\-\-arch\-all\-only" Only build Architecture:all packages, i.e. use dpkg-buildpackage \-A instead of \-B. The \-\-arch=\fIarchitecture\fP option can still be used to specify the architecture used to build the package. .TP .BR \-b ", " "\-\-batch" Operate in batchmode, i.e. write a build-progress file during execution and files on shutdown to facilitate a clean restart. .TP .BR \-c ", " "\-\-chroot=\fIchroot\fP" Use the specified chroot. If not specified, the default is the first of \fI$distribution\-$arch\-sbuild\fP, \fI$distribution\-sbuild\fP, \fI$distribution\-$arch\fP or \fI$distribution\fP that exists. .TP .BR \-d ", " "\-\-dist=\fIdistribution\fP" Explicitly set the distribution for the package build. This will be selecting the correct chroot to use and also sets the value of the Distribution field in the created .changes file. Setting this option is necessary when giving sbuild a .dsc file or a plain source package name to build. In the latter case it specifies the distribution the source package is fetched from. .TP .BR \-\-archive=\fIarchive\fP Communicate with specified archive. .TP .BR \-D ", " "\-\-debug" Enable debug output. .TP .BR "\-\-apt\-clean" .TQ .BR "\-\-no\-apt\-clean" Run (or do not run) apt-get clean in the chroot before executing the build, overriding the default setting. .TP .BR "\-\-apt\-update" .TQ .BR "\-\-no\-apt\-update" Run (or do not run) apt-get update in the chroot before executing the build, overriding the default setting. .TP .BR "\-\-apt\-upgrade" .TQ .BR "\-\-no\-apt\-upgrade" Run (or do not run) apt-get upgrade in the chroot before executing the build, overriding the default setting. .TP .BR "\-\-apt\-distupgrade" .TQ .BR "\-\-no\-apt\-distupgrade" Run (or do not run) apt-get distupgrade in the chroot before executing the build, overriding the default setting. .TP .BR \-m ", " "\-\-maintainer=\fImaintainer\fP" Specify the identity to use for GPG signing packages, and also used as the maintainer for binary NMUs. This does not normally require setting (it defaults to the uploader). .TP .BR \-e ", " "\-\-uploader=\fIuploader\fP" Passed to dpkg\-genchanges and is used to set the Changed\-by: field in the .changes file(s). .TP .BR \-k ", " "\-\-keyid=\fIkey-id\fP" Passed to dpkg\-genchanges and is used to set the key to sign the .changes file(s). Default is not using any key. .TP .BR \-j ", " "\-\-jobs=\fIn\fP" Number of jobs to run simultaneously. Passed through to dpkg\-buildpackage. .TP .BR \-\-debbuildopt=\fIoption\fP Pass the specified option directly to dpkg\-buildpackage. .TP .BR \-\-debbuildopts=\fIoptions\fP Pass the specified options directly to dpkg\-buildpackage. The options should be separated by spaces. If any options contain spaces, use \-\-debbuildopt instead. .TP .BR \-\-dpkg\-source\-opt=\fIoptions\fP Pass the specified options directly to dpkg-source. This is only used when creating a source package from a Debianized source directory. .br \fBNOTE:\fR The '\fI-b\fP' option will always be passed to dpkg-source. .TP .BR \-\-dpkg\-source\-opts=\fIoptions\fP Extra options to be appended to existing options passed to dpkg-source. .TP .BR "\-\-mail\-log\-to=\fIemail-address\fP" Send the build log to the specified email address. This overrides the \fI$mailto\fP configuration option. .TP .BR "\-\-mailfrom=\fIemail-address\fP" Email address used as the sender address for build logs. This overrides the \fI$mailfrom\fP configuration option. .TP .BR \-n ", " "\-\-nolog" Do not create a package log file in the \fI$log_dir\fP directory and no build log file, but print everything to stdout. Also do not send any log mails. .TP .BR \-p ", " "\-\-purge=\fIpurge-mode\fP" Convenience option to set \fIpurge-mode\fR for build directory, build dependencies and session. .TP .BR \-\-profiles=\fIprofile[,...]\fP" Specify the profile(s) we build, as a comma-separated list. Defaults to the space separated list of profiles in the \fBDEB_BUILD_PROFILES\fP environment variable. .TP .BR "\-\-purge\-build=\fIpurge-mode\fP" \fIpurge-mode\fR determines if the build directory will be deleted after a build. Possible values are \fBalways\fR (default), \fBnever\fR, and \fBsuccessful\fR. .TP .BR "\-\-purge\-deps=\fIpurge-mode\fP" \fIpurge-mode\fR determines if the build dependencies will be removed after a build. Possible values are \fBalways\fR (default), \fBnever\fR, and \fBsuccessful\fR. .TP .BR "\-\-purge\-session=\fIpurge-mode\fP" Purge the schroot session following a build. This is useful in conjunction with the \fI\-\-purge\-build\fP and \fI\-\-purge\-deps\fP options when using snapshot chroots, since by default the snapshot will be deleted. Possible values are \fBalways\fR (default), \fBnever\fR, and \fBsuccessful\fR. .TP .BR \-s ", " "\-\-source" Also build source package, i.e. use dpkg\-buildpackage without \-B. .TP .BR "\-\-no-source" Don't build source package, i.e. use dpkg\-buildpackage with \-B. This option is the opposite of \-\-source. .TP .BR "\-\-force\-orig\-source" When used with in conjunction with \-s, this option forces the inclusion of the orig.tar.gz file in the generated .changes file, even in cases where it would not normally be included, i.e. use dpkg\-buildpackage \-sa. .TP .BR "\-\-use\-snapshot" Installs the latest snapshot gcc compiler from the \fIgcc-snapshot\fP package, and alters the build environment to use the snapshot compiler for the build. .TP .BR \-v ", " "\-\-verbose" Be verbose, i.e. all information goes to stdout as well as to the log files. .TP .BR \-q ", " "\-\-quiet" Be quiet. This is the opposite of \-\-verbose. .TP .BR "\-\-make\-binNMU=\fIchangelog-entry\fP" With this option, \fBsbuild\fR will create a new changelog entry in debian/changelog of every package built. The version number will be in the format for binary-only NMUs (see \-\-binNMU); the maintainer is set to the maintainer name configured for \fBsbuild\fR. \fIchangelog-entry\fR will be used as the changelog entry following \[lq]Binary-only non-maintainer upload for ARCH -- no source changes\[rq]. Please note that the versions in the \fIPACKAGE_VERSION[.dsc]\fR arguments still have to be the unmodified (non-NMU ones) so that the sources can be found. The version number in log files and mails will be modified by \fBsbuild\fR automatically. .TP .BR "\-\-binNMU=\fINMU-version\fP" The version number of the binary NMU. This should be used in conjunction with \-\-make\-binNMU. \fIversion\fP is a single number for the (+b\fIn\fR) format used for binary NMUs. .TP .BR "\-\-append\-to\-version=\fIstring\fP" This option is similar to \-\-make\-binNMU except that it allows the user to specify an arbitrary string to be appended to the version number (immediately before the '+' in the Debian revision if \-\-make\-binNMU is also provided). .TP .BR \-\-clean\-source When executing sbuild from within an unpacked source tree, execute the debian/rules clean target. This is the default and might require some of the build dependencies installed on the host. .TP .BR \-\-no\-clean\-source When executing sbuild from within an unpacked source tree, do not run the debian/rules clean target before building the source package. Only set this if you start from a clean checkout and you know what you are doing. .TP .BR \-\-run\-lintian Run lintian after a successful build. .TP .BR \-\-no\-run\-lintian Don't run lintian after a successful build. If sbuild is configured to run lintian by default, this option will prevent lintian being run. .TP .BR \-\-lintian\-opt=\fIoptions\fP Run lintian with the specified options. .TP .BR \-\-lintian\-opts=\fIoptions\fP Append extra options to existing options passed to lintian. .TP .BR \-\-run\-piuparts Run piuparts after a successful build. .TP .BR \-\-no\-run\-piuparts Don't run piuparts after a successful build. If sbuild is configured to run piuparts by default, this option will prevent piuparts being run. .TP .BR \-\-piuparts\-opt=\fIoptions\fP Run piuparts with the specified options. .TP .BR \-\-piuparts\-opts=\fIoptions\fP Append extra options to existing options passed to piuparts. .TP .BR \-\-piuparts\-root\-arg=\fIoptions\fP Add an argument that is used to launch piuparts as root. If no arguments are specified, piuparts will be launched via sudo. .TP .BR \-\-piuparts\-root\-args=\fIoptions\fP Add arguments that are used to launch piuparts as root. If no arguments are specified, piuparts will be launched via sudo. .TP .BR \-\-pre\-build\-commands=\fIstring\fP This is the earliest external command which is run right after the chroot session has been initialized and before anything else is done (like installing the build dependencies). The command is run as root outside of the chroot. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-chroot\-setup\-commands=\fIstring\fP Run these commands after the chroot and variables have been setup but before dependencies are installed. The command is run as root inside of the chroot. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-build\-deps\-failed\-commands=\fIstring\fP These commands are run if installing the build dependencies has failed directly after the failed attempt. The environment is intact, and the failure can be investigated. Especially %SBUILD_SHELL is useful here. The command is run as root inside the chroot. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-starting\-build\-commands=\fIstring\fP Run these commands after dependencies are installed, just before the package build with dpkg-buildpackage starts. The command is run as the (non-root) user running sbuild inside the chroot. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-finished\-build\-commands=\fIstring\fP Run these commands immediately after the timed package build finishes. The command is run as the (non-root) user running sbuild inside the chroot. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-build\-failed\-commands=\fIstring\fP These commands are run if dpkg-buildpackage has failed directly after the failed attempt. The environment is intact, and the failure can be investigated. Especially %SBUILD_SHELL is useful here. The command is run as the (non-root) user running %sbuild inside the chroot. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-chroot\-cleanup\-commands=\fIstring\fP Run these commands when a chroot is cleaned up, before build directory is purged. The command is run as root inside the chroot. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-post\-build\-commands=\fIstring\fP Run this command after a successful build. The command is run as root outside of the chroot. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-anything\-failed\-commands=\fIstring\fP Run these commands for all the \fI\-\-xxx\-failed\-commands\fP options. Especially %SBUILD_SHELL is useful here. This option can be used multiple times to add multiple commands. See the section .BR "EXTERNAL COMMANDS" for more information. .TP .BR \-\-log\-external\-command\-output Write output from external commands to the build log. .TP .BR \-\-log\-external\-command\-error Write error output from external commands to the build log. .TP .BR "\-\-setup\-hook=\fIhook-script\fP" " " \fBDEPRECATED\fP This option is deprecated. Use of this option will add \fIhook-script\fP to the external commands to run via \fIchroot-setup-commands\fP. .TP .BR "\-\-build\-dep\-resolver=\fIresolver\fP" Use the specified resolver to handle selecting the build dependencies. Supported resolvers are \fIapt\fP (the default), \fIaptitude\fP, \fIaspcud\fP and \fIxapt\fP. The apt resolver is the most appropriate resolver for most users, for building for unstable, stable and other distributions. If alternative build dependencies are used (excluding architecture restrictions), only the first alternative will be used; the others will be ignored. The aptitude resolver is very similar, but smarter and slower, and it will consider all alternatives by default; it is suited to more complex situations, such as building packages for the experimental distribution, where packages need installing from multiple suites (\fIunstable\fP and \fIexperimental\fP). Due to performance and other issues (bug #139615), aptitude is not recommended for use by default. If the dependency situation is so complex that neither apt nor aptitude are able to find a solution, then you can use the aspcud resolver. This resolver uses apt-cudf to ask aspcud, a real SAT solver, for a solution to the installation problem. Since aspcud is a real SAT solver it will always find a solution if one exists. The xapt resolver is intended only for cross-building, and is a temporary transitional feature which will be removed following the complete introduction of multi-arch support. .TP .BR \-\-resolve\-alternatives Allow the use of alternatives in Build-Depends, Build-Depends-Arch and Build-Depends-Indep. This is the default for the aptitude dependency resolver. .TP .BR \-\-no\-resolve\-alternatives Do not allow the use of alternatives in Build-Depends, Build-Depends-Arch and Build-Depends-Indep. Note that alternatives for the same package (e.g. different versions) are still allowed. This is the default for the apt and xapt dependency resolvers. .TP .BR \-\-extra\-package=\fIpackage.deb\fP Make \fIpackage.deb\fP available for build-dependency resolution, by adding it to a temporary archive created by sbuild. This makes it easier to build packages against locally-built build depenencies, without waiting for those packages to enter the main archive, or going through the hassle of maintaining a local archive and making it accessible inside the chroot. \fIpackage.deb\fP is copied into the chroot, so it can refer to any path on the host system. .TP .BR \-\-extra\-repository=\fIspec\fP Add a repository to the list of apt sources during the package build. The repository specification is a line suitable for an apt .BR sources.list (5) file. For instance, you might use .nh .B \-\-extra\-repository="deb http://httpredir.debian.org/debian experimental main" .hy to allow packages in the experimental distribution to fulfill build-dependencies. Note that the build chroot must already trust the key of this repository or a key must be given with the .nh .B \-\-extra\-repository-key .hy flag. (see .BR apt-secure (8)) .TP .BR \-\-extra\-repository-key=\fIfile.asc\fP Add \fIfile.asc\fP to the list of trusted keys inside the chroot. The key is read from the filename given, and added to the trusted keys. For more information, see .BR apt-secure (8). This flag is particularly useful if the target in .nh .B --extra-repository .hy is not signed with a key that's trusted by the base chroot. .TP .BR \-\-build\-path=\fIstring\fP By default the package is built in a path of the following format /build/packagename-XXXXXX/packagename-version/ where XXXXXX is a random ascii string. This option allows one to specify a custom path where the package is built inside the chroot. Notice that the sbuild user in the chroot must have permissions to create the path. Common writable locations are subdirectories of /tmp or /build. The buildpath must be an empty directory because the last component of the path will be removed after the build is finished. If you are running multiple sbuild instances with the same build path in parallel for the same package, make sure that your build path is not in a directory commonly mounted by all sbuild instances (like /tmp or /home). In that case, use for example /build instead. Otherwise, your builds will probably fail or contain wrong content. .TP .BR \-\-sbuild-mode=\fImode\fP Behaviour changes for use in a buildd environment. This overrides the \fI$sbuild_mode\fP configuration option. .SH EXTERNAL COMMANDS Support to run external commands during an sbuild run is provided. A set of external commands can be run at various stages of a build. Providing commands to run is done through the appropriate options given on the command line and through the use of the configuration files. In the configuration file, the list of commands to run are placed in a hash of arrays of arrays of strings corresponding to the commands to run. .PP There are several sets of commands. The \fIpre/post\-build\-\fP commands are run external to the chroot. The \fIchroot\-setup/cleanup\-\fP commands and \fIStarting/Finished\-Build\-\fP commands are run inside the chroot. They are all run as root except the \fIStarting/Finishing\-build-\fP commands, which are run as the current sbuild user. \fIbuild\-deps\-failed\fP runs similarly to \fIchroot\-setup\fP: in the chroot as root. \fIbuild\-failed\fP runs similarly to \fIfinished\-build\fP: in the chroot as the user. .PP Here is a summary of the ordering, user, internal/external to chroot for each command hook .PP The following table shows each command hook in the context of the tasks sbuild performs. The column \fIroot\fP shows whether the command is run as root (yes) or not (no). The column \fIchroot\fP shows whether the command is run inside our outside the chroot. The remaining columns show the percent escapes that are defined in each command. Percent escapes that are available in all commands (\fB%%\fR, \fB%d\fR, \fB%a\fR, \fB%b\fR, \fB%p\fR, \fB%s\fR) are omitted. .PP .if t \{\ .ft CW \} .TS l l l l l. command/action root chroot %c %r _ Initialise chroot session \f[CB]\-\-pre\-build\-commands\fP yes outside no yes Setup the chroot and variables \f[CB]\-\-chroot\-setup\-commands\fP yes inside no no Update and upgrade packages Install Dependencies \f[CB]\-\-build\-deps\-failed\-commands\fP yes inside no no \f[CB]\-\-starting\-build\-commands\fP no inside no no Run dpkg-buildpackage \f[CB]\-\-build\-failed\-commands\fP no inside no no \f[CB]\-\-finished\-build\-commands\fP no inside no no Run lintian (if configured) Cleanup build files and dependencies \f[CB]\-\-chroot\-cleanup\-commands\fP yes inside yes no Close schroot session Run piuparts (if configured) \f[CB]\-\-post\-build\-commands\fP yes outside yes yes .TE .if t \{\ .in .ft P \} .PP The commands can be given in the configuration files. They can be given as strings or as a list of arguments. For example, to run "foo" and "bar" with arguments before a build starts, specifying the "foo" command as a list and "bar" as a string, one could do this: .PP \f[CB]$external_commands = {\fP .br \f[CB] "pre-build-commands" => [\fP .br \f[CB] ['foo', 'arg1', 'arg2'],\fP .br \f[CB] 'bar arg1 arg2 arg3',\fP .br \f[CB] ], .br \f[CB]};\fP .PP Hash keys for commands to run at other stages have the same name as their corresponding command-line option name without the preceding '--'. .PP Here's an example of how to do the same with the previous example, except using the \fI\-\-pre\-build\-commands\fP option. .PP \f[CB]$ sbuild \\\fP .br \f[CB] \-\-pre\-build\-commands='foo arg1 arg2' \\\fP .br \f[CB] \-\-pre\-build\-commands='bar arg1 arg2 arg3'\fP .PP Note that all these commands are executed through the shell in "/bin/sh". If specifying the command as a list in the config file, very few shell facilities are supported: no redirection, no command concatenation with ; and so on. When passing a string (in the config file or on the commandline), the string is passed as-is to the shell. So all shell facilities are available, given that you escape everything properly, as you would in an interactive shell. .PP Besides running external commands, sbuild can also detect the use of certain percent escapes given as arguments. These are used to allow for a command to be supplied with a certain argument depending on the escape given. For example, it could be possible to have an external command be given the path to a .changes file. .PP Here is a listing of keywords and a description of what it's converted to. .TP \fB%%\fR Used to escape a '\fI%\fP'. .TP \fB%d\fR, \fB%SBUILD_DSC\fR These escapes are converted to the absolute path to a package's .dsc file. .TP \fB%c\fR, \fB%SBUILD_CHANGES\fR These escapes are converted to the absolute path to a package's source .changes file. This variable is only set after the build is finished, i.e in \f[CB]\-\-chroot\-cleanup\-commands\fP and \f[CB]\-\-post\-build\-commands\fP. .TP \fB%a\fR, \fB%SBUILD_HOST_ARCH\fR These escapes are converted to the debian name of the architecture the build is being built for (e.g amd64, armhf). .TP \fB%r\fR, \fB%SBUILD_CHROOT_DIR\fR These escapes are converted to the absolute path on the host to the root directory of the chroot. This variable is not set if the external command is run inside the chroot. Thus this escape is only available for \f[CB]\-\-pre\-build\-commands\fP and \f[CB]\-\-post\-build\-commands\fP. .TP \fB%b\fR, \fB%SBUILD_BUILD_DIR\fR These escapes are converted to the absolute path to the build directory inside the chroot. .TP \fB%p\fR, \fB%SBUILD_PKGBUILD_DIR\fR These escapes are converted to the absolute path to the package build directory inside the chroot. .TP \fB%s\fR, \fB%SBUILD_SHELL\fR This is converted to a command to spawn an interactive "bash" shell .PP Percent escapes are only substituted when an appropriate value is defined for them. At other times, it is left unchanged. In practice this means that there are only two escapes that are not available in all external commands: \fB%c\fR and \fB%r\fR. For example, a .changes file is only defined at the end of a build, so using \fI%c\fR will only be substituted for post-build-commands. .PP Here's an example of using an escape to run a program foo on a .changes file after a build is done. .PP \f[CB]$ sbuild \-\-post\-build\-commands \\\fP .br \f[CB] 'foo %SBUILD_CHANGES'\fP .PP And here's an example that will spawn an interactive shell to investigate the problem whenever the build failed: .PP \f[CB]$ sbuild \-\-build\-failed\-commands '%s'\fP .PP One final note, external commands are processed in the order they are given. Also, the commands given in a configuration file are processed first, then the commands given through the command line options. .SH LOCAL ARCHIVE The apt and aptitude resolvers create a local archive for installing build dependencies. This is an internal implementation detail of the build dependency resolver, which is not user configurable, and is intended to be entirely transparent to the user. The local archive exists only transiently during the package build. It does not persist across builds, and it is only used to store the dummy dependency packages created for a single build. .PP The dependency resolvers do the following: .IP \[bu] Create a dummy dependency package. This contains the Build-Depends (and optionally Build-Depends-Arch and Build-Depends-Indep) as Depends, and Build-Conflicts (and optionally Build-Conflicts-Arch and Build-Conflicts-Indep) as Conflicts. .IP \[bu] Install the dummy dependency package into the local archive, .IP \[bu] Generate the \fIPackages\fP, \fISources\fP and \fIRelease\fP files. .IP \[bu] Write a \fIsources.list\fP file for the local archive into \fI/etc/apt/sources.list.d\fP. .IP \[bu] Inject the lists directly into \fI/var/lib/apt/lists\fP. This step is to save running updating all apt sources which is undesirable during a build; apt and aptitude do not support updating a single source at present. .IP \[bu] Regenerate the apt caches to ensure everything is in sync. .IP \[bu] Install the dummy dependency package with apt or aptitude; the dummy package is pulled from the local apt archive, while all its dependencies are pulled from the regular configured apt sources. .PP At the end of the build, the local archive is removed, along with the rest of the build tree. .SH ENVIRONMENT VARIABLES The following environment variables are used by \fBsbuild\fR: .IP "HOME" The home directory of the user. .IP "LOGNAME" Used in lockfiles. .IP "SBUILD_CONFIG" Path to an additional configuration file on top of the system wide and user specific ones. .SH FILES .TP .I /etc/sbuild/sbuild.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I /etc/sbuild/chroot Directory containing symbolic links to chroots. This is only used for sudo chroot access; schroot access uses the schroot chroot configuration. .TP .I ~/.sbuildrc User-specific configuration. .TP .I /var/lib/sbuild Build trees, archive signing keys, build statistics and lock files. .SH AUTHORS Roman Hodek . .PP \fBsbuild\fR is based on debbuild, written by James Troup and has been modified by .nf Ben Collins , Ryan Murray , Francesco Paolo Lovergine , Michael Banck , and Roger Leigh .fi .SH COPYRIGHT .nf Copyright \[co] 1998-2000 Roman Hodek Copyright \[co] 1998-1999 James Troup Copyright \[co] 2003-2006 Ryan Murray Copyright \[co] 2001-2003 Rick Younie Copyright \[co] 2003-2004 Francesco Paolo Lovergine Copyright \[co] 2005 Michael Banck Copyright \[co] 2005-2009 Roger Leigh .fi .SH "SEE ALSO" .BR sbuild.conf (5), .BR sbuild\-abort (1), .BR sbuild\-adduser (8), .BR sbuild\-apt (1), .BR sbuild\-checkpackages (1), .BR sbuild\-createchroot (8), .BR sbuild\-distupgrade (1), .BR sbuild\-hold (1), .BR sbuild\-setup (7). .BR sbuild\-shell (1), .BR sbuild\-unhold (1), .BR sbuild\-update (1), .BR sbuild\-upgrade (1), .BR schroot (1), .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild-checkpackages.1.in0000644000000000000000000000013212627410514020044 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.225760063 sbuild-0.67.0/man/sbuild-checkpackages.1.in0000644000175000017500000000541212627410514020666 0ustar00joschjosch00000000000000.\" Copyright © 2005-2008 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD\-CHECKPACKAGES 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-checkpackages \- check the package list in a sbuild chroot against a reference list .SH SYNOPSIS .BR sbuild\-checkpackages .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version .RB " \[or] " \-l \[or] \-\-list " \[or] " \-s \[or] \-\-set ] .B CHROOT .SH DESCRIPTION \fBsbuild\-checkpackages\fR compares the package list in an sbuild chroot (dpkg status file) against a reference list of packages. The differences between the two lists are displayed, showing the changes to remove and install in order to return the chroot to match the reference list. .PP The reference list may be set from the dpkg status file; this must be done initially in order to have a baseline reference for comparison. The chroot should only include \fBessential\fP and \fBbuild-essential\fP packages, plus the extra packages that sbuild needs such as \fBfakeroot\fP. .SH OPTIONS .SS Actions .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .TP .BR \-l ", " \-\-list List the differences between the installed packages and the reference file. .TP .BR \-s ", " \-\-set Set the reference file from the currently installed package list. .SS Chroot selection .TP .B CHROOT The chroot to use. Note that \[oq]o\[cq], \[oq]s\[cq], \[oq]t\[cq], \[oq]u\[cq] and \[oq]e\[cq] may be used as abbreviations for \[oq]oldstable\[cq], \[oq]stable\[cq], \[oq]testing\[cq], \[oq]unstable\[cq] and \[oq]experimental\[cq], respectively. .SH EXAMPLES To set the reference file in the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-checkpackages unstable \-\-set\fP\fP .br .PP To show the differences in the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-checkpackages unstable \-\-list\fP\fP .br .SH AUTHORS .nf Roger Leigh. .fi .SH COPYRIGHT .nf Copyright \[co] 2006\[en]2008 Roger Leigh . .fi .SH "SEE ALSO" .BR sbuild (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/defs.man.in0000644000000000000000000000013112637266600015351 xustar0030 mtime=1451060608.614723316 29 atime=1451060625.31875086 30 ctime=1451136984.213760047 sbuild-0.67.0/man/defs.man.in0000644000175000017500000000130612637266600016172 0ustar00joschjosch00000000000000.ds WANNA_BUILD_CONF @WANNA_BUILD_CONF@ .ds SCHROOT_CONF @SCHROOT_CONF@ .ds WANNA_BUILD_SYSCONF_DIR @WANNA_BUILD_SYSCONF_DIR@ .ds SCHROOT_SYSCONF_DIR @SCHROOT_SYSCONF_DIR@ .ds BUILDD_CONF @BUILDD_CONF@ .ds BUILDD_SYSCONF_DIR @BUILDD_SYSCONF_DIR@ .ds SBUILD_CONF @SBUILD_CONF@ .ds SBUILD_SYSCONF_DIR @SBUILD_SYSCONF_DIR@ .ds WANNA_BUILD_LIBEXEC_DIR @WANNA_BUILD_LIBEXEC_DIR@ .ds SBUILD_LIBEXEC_DIR @SBUILD_LIBEXEC_DIR@ .ds RELEASE_DATE @RELEASE_DATE@ .ds VERSION @VERSION@ .ds PACKAGE @PACKAGE@ .ds PACKAGE_URL @PACKAGE_URL@ .ds PACKAGE_BUGREPORT @PACKAGE_BUGREPORT@ .ds PACKAGE_STRING @PACKAGE_STRING@ .ds PACKAGE_VERSION @PACKAGE_VERSION@ .ds PACKAGE_TARNAME @PACKAGE_TARNAME@ .ds PACKAGE_NAME @PACKAGE_NAME@ sbuild-0.67.0/man/PaxHeaders.4860/sbuild-update.1.in0000644000000000000000000000013212565554441016563 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.229760068 sbuild-0.67.0/man/sbuild-update.1.in0000644000175000017500000001116412565554441017406 0ustar00joschjosch00000000000000.\" Copyright © 2005-2009 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD\-UPDATE 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-update \- update, upgrade, and clean an sbuild chroot with apt-get .SH SYNOPSIS .B sbuild\-update .RB [ \-h \[or] \-\-help ] " " [ \-V \[or] \-\-version ] .RB [ \-\-arch=\fIarchitecture\fP ] .RB [ \-u \[or] \-\-update ] " " [ \-g \[or] \-\-upgrade ] " " .RB [ \-d \[or] \-\-dist\-upgrade ] " " [ \-c \[or] \-\-clean ] " " .RB [ \-a \[or] \-\-autoclean ] " " [ \-r \[or] \-\-autoremove ] .RB CHROOT1 " [" CHROOT2 " [" CHROOT\f[BI]n\fP... ]] .br .B sbuild\-update .BR \-k \[or] \-\-keygen .br .RB "(DEPRECATED) " sbuild\-upgrade .RB [ \-h \[or] \-\-help ] " " [ \-V \[or] \-\-version ] .RB CHROOT1 " [" CHROOT2 " [" CHROOT\f[BI]n\fP... ]] .br .RB "(DEPRECATED) " sbuild\-distupgrade .RB [ \-h \[or] \-\-help ] " " [ \-V \[or] \-\-version ] .RB CHROOT1 " [" CHROOT2 " [" CHROOT\f[BI]n\fP... ]] .br .RB "(DEPRECATED) " sbuild\-clean .RB [ \-h \[or] \-\-help ] " " [ \-V \[or] \-\-version ] .RB [ \-c \[or] \-\-clean ] " " [ \-a \[or] \-\-autoclean ] " " .RB [ \-r \[or] \-\-autoremove ] .RB CHROOT1 " [" CHROOT2 " [" CHROOT\f[BI]n\fP... ]] .SH DESCRIPTION \fBsbuild\-update\fR runs \f[CB]apt\-get\fP inside the specified chroot performing \f[CB]update\fP, \f[CB]upgrade\fP, \f[CB]dist\-upgrade\fP, \f[CB]clean\fP, \f[CB]autoclean\fP, and/or \f[CB]autoremove\fP depending on the options specified on the command line. .PP \fBsbuild\-upgrade\fR, \fBsbuild\-distupgrade\fR, and \fBsbuild\-clean\fR, are deprecated. They now simply run \fBsbuild\-update\fR with the appropriate options (\f[CB]\-\-upgrade\fP or \f[CB]\-\-dist\-upgrade\fP for \fBsbuild\-upgrade\fR or \fBsbuild\-distupgrade\fR respectively) along with whatever arguments were passed in the scripts. .SH OPTIONS .SS Actions .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .TP .BR "\-\-arch=\fIarchitecture\fP" Update chroot for the architecture specified. .TP .BR \-u ", " \-\-update Perform an \f[CB]apt\-get update\fP. .TP .BR \-g ", " \-\-upgrade Perform an \f[CB]apt\-get upgrade\fP. .TP .BR \-d ", " \-\-dist\-upgrade Perform an \f[CB]apt\-get dist\-upgrade\fP. .TP .BR \-c ", " \-\-clean Perform an \f[CB]apt\-get clean\fP. .TP .BR \-a ", " \-\-autoclean Perform an \f[CB]apt\-get autoclean\fP. .TP .BR \-r ", " \-\-autoremove Perform an \f[CB]apt\-get autoremove\fP. .TP .BR \-k ", " \-\-keygen Generate a GPG public/private key pair for self-signing local apt archives, used for installation of dependency packages. Note that this requires a significant amount of entropy (randomness) and may hang on systems with poor entropy sources, such as headless systems without direct user input. In this situation, it is advisable to create the key on a trusted local system, and copy the files to the build system by hand from \fI/var/lib/sbuild/apt-keys/\fP. .SS Chroot selection .TP .B CHROOT The chroot to use. Note that \[oq]o\[cq], \[oq]s\[cq], \[oq]t\[cq], \[oq]u\[cq] and \[oq]e\[cq] may be used as abbreviations for \[oq]oldstable\[cq], \[oq]stable\[cq], \[oq]testing\[cq], \[oq]unstable\[cq] and \[oq]experimental\[cq], respectively. .SH EXAMPLES To update the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-update \-\-update unstable\fP\fP .PP To upgrade the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-update \-\-upgrade unstable\fP\fP .PP To clean the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-update \-\-clean unstable\fP\fP .PP To perform an update, dist-upgrade, clean, autoclean, and autoremove for the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-update \-udcar unstable\fP\fP .SH AUTHORS .nf Roger Leigh. Andres Mejia. .fi .SH COPYRIGHT .nf Copyright \[co] 2006\[en]2009 Roger Leigh . Copyright \[co] 2010 Andres Mejia . .fi .SH "SEE ALSO" .BR sbuild (1), .BR sbuild\-apt (1), .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild-createchroot.8.in0000644000000000000000000000013212637466265020000 xustar0030 mtime=1451125941.472607092 30 atime=1451125941.476607104 30 ctime=1451136984.225760063 sbuild-0.67.0/man/sbuild-createchroot.8.in0000644000175000017500000002125512637466265020625 0ustar00joschjosch00000000000000.\" Copyright © 2005-2008 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD\-CREATECHROOT 8 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-createchroot \- create sbuild chroot .SH SYNOPSIS .B sbuild\-createchroot .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .RB [ \-\-verbose ] .RB [ \-\-arch=\fIarch\fP ] .RB [ \-\-chroot-suffix=\fIsuffix\fP ] .RB [ \-\-foreign ] .RB [ \-\-resolve-deps " \[or] " \-\-no-resolve-deps ] .RB [ \-\-keep-debootstrap-dir ] .RB [ \-\-debootstrap=\fIdebootstrap\fP ] .RB [ "\-\-include=\fIpackage1[,package2,[packagen]]\fP" ] .RB [ "\-\-exclude=\fIpackage1[,package2,[packagen]]\fP" ] .RB [ "\-\-components=\fIcomponent1[,component2,[componentn]]\fP" ] .RB [ "\-\-keyring=\fIkeyring-file\fP" ] .RB [ "\-\-setup\-only" ] .RB [ "\-\-make\-sbuild\-tarball=\fIfile\fP" ] .RB [ "\-\-keep\-sbuild\-chroot\-dir" ] .B SUITE TARGET-DIRECTORY DEBIAN-MIRROR-URI .RB [ SCRIPT ] .PP .B buildd\-create\-chroot .B USER SUITE TARGET-DIRECTORY DEBIAN-MIRROR-URI .SH DESCRIPTION \fBsbuild\-createchroot\fR runs .BR debootstrap (1) to create a chroot suitable for building packages with sbuild. Note that while debootstrap may be used directly, sbuild\-createchroot performs additional setup tasks such as adding additional packages and configuring various files in the chroot. Invoking sbuild\-createchroot is functionally equivalent to running \f[CB]debootstrap\ \-\-variant=buildd \-\-include=fakeroot,build\-essential\fP, then editing \fI/etc/apt/sources.list\fP and \fI/etc/hosts\fP by hand. .PP The newly-created chroot is set up to work with .BR schroot (1) by creating a chroot definition file under \fI/etc/schroot/chroot.d\fP. This should be edited to finish the chroot configuration after sbuild\-createchroot has completed. .PP \fBbuildd\-create\-chroot\fP, like \fBsbuild\-createchroot\fR, runs .BR debootstrap (1) to create a chroot for package building. However, this creates a chroot specifically for .BR buildd (1) with an additional mandatory option to specify a user who will be granted sudo access inside the chroot. This script mainly differs in its additional customisation of \fI/etc/apt/sources.list\fP to use incoming.debian.org and security-master.debian.org. It also removes some packages from the newly-created chroot. Unless you are setting up an official Debian build daemon, \fBsbuild\-createchroot\fP should be used instead. The extra functionality will be merged into \fBsbuild\-createchroot\fP in the future. .SH OPTIONS .SS Actions .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .SS General options .TP .BR \-v ", " \-\-verbose Print all messages. .SS Debootstrap options Note that .BR debootstrap (1) is the canonical reference for the meaning of the options; they are passed directly to debootstrap. .TP .BR \-\-arch=\fIarch\fP Set the target architecture. This may be used if dpkg is not already installed. See also \fI\-\-foreign\fP, below. .TP .BR \-\-chroot-suffix=\fIsuffix\fP Add a custom suffix to the chroot name. Defaults to '\-sbuild'. .TP .BR \-\-foreign Only perform the initial unpack phase of bootstrapping. This is required if the target and host architectures do not match. Note that debootstrap requires running by hand to complete installation; run the debootstrap \fI/debootstrap/debootstrap\fP installed in \fITARGET-DIRECTORY\fP to complete the installation. .TP .BR \-\-resolve-deps Automatically resolve missing dependencies. This is the default. .TP .BR \-\-no-resolve-deps Do not automatically resolve missing dependencies. .TP .BR \-\-keep-debootstrap-dir Don't delete the \fI/debootstrap\fP directory in \fITARGET-DIRECTORY\fP after completing the installation. .TP .BR \-\-debootstrap=\fIdebootstrap\fP Define a custom debootstrap variant. Defaults to 'debootstrap'. .TP .BR "\-\-include=\fIpackage1[,package2,[packagen]]\fP" Comma separated list of packages which will be added to the list of packages to download and extract. .TP .BR "\-\-exclude=\fIpackage1[,package2,[packagen]]\fP" Comma separated list of packages which will be removed from the list of packages to download and extract. Note that this can remove essential packages, so use with extreme care. .TP .BR "\-\-components=\fIcomponent1[,component2,[componentn]]\fP" Comma separated list of archive components to use (e.g. \[oq]main\[cq], \[oq]contrib\[cq], \[oq]non-free\[cq]). Defaults to \[oq]main\[cq]. .TP .BR "\-\-keyring=\fIkeyring-file\fP" Download signatures for retrieved \fIRelease\fP files and check them against \fIkeyring-file\fP. By default \fI/etc/apt/trusted.gpg\fP is used. Set to an empty string to disable signature checking. .TP .B SUITE The distribution to bootstrap (e.g. \[oq]sarge\[cq], \[oq]etch\[cq], \[oq]lenny\[cq], \[oq]sid\[cq]). A complete list may be found in \fI/usr/share/debootstrap/scripts\fP. .TP .B TARGET-DIRECTORY The directory to create the chroot in. The directory will be created if it does not already exist. .TP .B DEBIAN-MIRROR-URI An \f[CR]http://\fP, \f[CR]file:///\fP, or \f[CR]ssh:///\fP URI pointing to a suitable archive mirror. .TP .B SCRIPT debootstrap script to run. Not typically required. .SS sbuild\-createchroot behaviour .TP .BR "\-\-setup\-only" Don't run debootstrap. Only perform the setup tasks on an already existing chroot. This is useful for converting an existing chroot for use with sbuild which has already been created using a tool such as debootstrap. .TP .BR \-\-make\-sbuild\-tarball=\fIfile\fP Create a bootstrapped file type chroot ready for use with sbuild and save it as \fIfile\fP. The compression format used for the tarball is dependent on the file extension used in \fIfile\fP. See the \fBTARBALL FILE\fP section for more details. .TP .BR \-\-keep\-sbuild\-chroot\-dir Don't delete the directory used for creating a file type chroot. This option does nothing if not creating a file type chroot. .SH TARBALL FILE When creating an sbuild tarball \fIfile\fP, the compression format used to generate the tarball depends on the entension used in \fIfile\fP. Here is a listing of the extensions that will be detected and what format the tarball will be generated as. .TP .BR *.tar Generates an uncompressed tarball. .TP .BR *.tar.gz|*.tgz Generates a compressed tarball using gzip. .TP .BR *.tar.bz2|*.tbz Generates a compressed tarball using bzip2. .TP .BR *.tar.lz|*.tlz Generates a compressed tarball using lzip. .TP .BR *.tar.xz|*.txz Generates a compressed tarball using xz. .PP If no extension is specified, sbuild\-createchroot will rename \fIfile\fP to \fIfile.tar.gz\fP and generate \fIfile.tar.gz\fP as a compressed tarball using gzip. .SH EXAMPLES To create a bootstrapped file type sid (unstable) chroot ready for use with sbuild and saved in \fI/var/cache/sbuild/sbuild.tar.gz\fP using the \fIhttpredir.debian.org\fP Debian http mirror redirector service and using a temporary directory as the target: .PP \f[CR]% \f[CB]sudo sbuild\-createchroot \fP\fP\\ .br \-\-make\-sbuild\-tarball=/srv/chroot/unstable-amd64.tar.gz \fP\fP\\ .br sid `mktemp \-d` \fP\fP\\ .br \f[CB] http://httpredir.debian.org/debian\fP\[CR] .PP To create a plain type sid (unstable) chroot in \fI/srv/chroot/unstable\fP using the \fIhttpredir.debian.org\fP Debian http mirror redirector service: .PP \f[CR]% \f[CB]sudo sbuild\-createchroot sid /srv/chroot/unstable-amd64 \fP\fP\\ .br \f[CB] http://httpredir.debian.org/debian\fP\[CR] .SH HISTORY sbuild\-createchroot was previously known as \fBbuildd.chroot\fP. buildd.chroot performed exactly the same tasks, but additionally created a number of directories in the chroot for use by sbuild. This is now done by .BR schroot (1). .SH AUTHORS .nf Roger Leigh. Francesco P. Lovergine. Andres Mejia. .fi .SH COPYRIGHT .nf Copyright \[co] 2004 Francesco P. Lovergine . Copyright \[co] 2007\-2008 Roger Leigh . Copyright \[co] 2010 Andres Mejia . .fi .SH "SEE ALSO" .BR debootstrap (8), .BR schroot (1), .BR sbuild (1), .BR sbuild\-setup (7). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/buildd-mail.1.in0000644000000000000000000000013212565554441016204 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.217760052 sbuild-0.67.0/man/buildd-mail.1.in0000644000175000017500000000615412565554441017032 0ustar00joschjosch00000000000000.\" Copyright © 2009 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH BUILDD\-MAIL 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME buildd\-mail \- mail answer processor for buildd .SH SYNOPSIS .B buildd\-mail .br .B buildd\-mail\-wrapper .SH VERSION This man page documents the packaged version of buildd\-mail. This version is maintained by the \fBbuildd-tools\fP project developers on Alioth (\f[CR]https://alioth.debian.org/projects/buildd\-tools/\fP). .PP There is also a version maintained by Ryan Murray which is adapted to build daemon needs, with similar functionality. This version should be equally capable of working in a buildd setup, but has a number of enhancements aimed at making it suitable for use by end-users. .SH DESCRIPTION \fBbuildd\-mail\fR processes incoming mail for the buildd user. .PP \fBbuildd\-mail\-wrapper\fR was a setuid wrapper for buildd\-mail, which has been removed and is no longer required. It has been kept as a symbolic link to buildd\-mail for compatibility purposes, but is obsolete and will removed in a future release. .SH SETUP The buildd user should have a file \fI~/.forward\fP with the following contents: .PP \f[CR]|/usr/bin/buildd-mail-wrapper\fP .br .PP This will ensure all incoming mail will be processed using buildd\-mail. .SH FILES .TP .I /etc/buildd/buildd.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I ~/.builddrc User-specific configuration. .TP .I ~/.forward Mail forwarding configuration. .SH AUTHORS Roman Hodek . .PP \fBsbuild\fR is based on debbuild, written by James Troup and has been modified by .nf Ben Collins , Ryan Murray , Francesco Paolo Lovergine , Michael Banck , and Roger Leigh .fi .SH COPYRIGHT .nf Copyright \[co] 1998-2000 Roman Hodek Copyright \[co] 1998-1999 James Troup Copyright \[co] 2003-2006 Ryan Murray Copyright \[co] 2001-2003 Rick Younie Copyright \[co] 2003-2004 Francesco Paolo Lovergine Copyright \[co] 2005 Michael Banck Copyright \[co] 2005-2008 Roger Leigh .fi .SH "SEE ALSO" .BR buildd (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/buildd.conf.5.in0000644000000000000000000000013212565554441016214 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.213760047 sbuild-0.67.0/man/buildd.conf.5.in0000644000175000017500000000570312565554441017041 0ustar00joschjosch00000000000000.\" Copyright © 2011 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH BUILDD.CONF 5 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME buildd.conf \- configuration file for buildd .SH DESCRIPTION \fBbuildd.conf\fR is a Perl script which is sourced by buildd to permit configuration. It is run in a sandbox and restricted to setting a small number of variables, detailed below, which may be set to configure the behaviour of buildd. Each variable has an internal name, shown in all caps, and a perl variable showing the default setting. Note that the internal name is not accessible within buildd.conf; only the variable may be assigned. Also note that some of the defaults are set to be unique for each build, and so some of the defaults shown here are unique to the user and system used to build sbuild, and will be different for your system. .PP While buildd permits many aspects of its behaviour to be configured, this should not normally be required. The defaults should be adequate for most uses, and should only be changed if you are doing something more advanced, or have specialist requirements. .SH CONFIGURATION .so buildd.conf.man .SH FILES .TP .I /etc/buildd/buildd.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I ~/.builddrc User-specific configuration. .SH AUTHORS Roman Hodek . .PP \fBsbuild\fR is based on debbuild, written by James Troup and has been modified by .nf Ben Collins , Ryan Murray , Francesco Paolo Lovergine , Michael Banck , and Roger Leigh .fi .SH COPYRIGHT .nf Copyright \[co] 1998-2000 Roman Hodek Copyright \[co] 1998-1999 James Troup Copyright \[co] 2003-2006 Ryan Murray Copyright \[co] 2001-2003 Rick Younie Copyright \[co] 2003-2004 Francesco Paolo Lovergine Copyright \[co] 2005 Michael Banck Copyright \[co] 2005-2009 Roger Leigh .fi .SH "SEE ALSO" .BR buildd (1), .BR sbuild (1), .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild-abort.1.in0000644000000000000000000000013212565554441016410 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.221760058 sbuild-0.67.0/man/sbuild-abort.1.in0000644000175000017500000000345512565554441017237 0ustar00joschjosch00000000000000.\" Copyright © 2005-2008 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD\-ABORT 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-abort \- abort the current sbuild build .SH SYNOPSIS .BR sbuild\-abort .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .br .BR buildd\-abort .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .SH DESCRIPTION \fBsbuild\-abort\fR kills the currently running \fIdpkg\-buildpackage\fP process. It will not kill if more than one process is found. .SH OPTIONS .SS Actions .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .SH EXAMPLES To abort the current build: .PP \f[CR]% \f[CB]sbuild\-abort\fP\fP\[CR] .br .SH AUTHORS .nf Roman Hodek. Ryan Murray. Roger Leigh. .fi .SH COPYRIGHT .nf Copyright \[co] 1998 Roman Hodek . Copyright \[co] 2003 Ryan Murray . Copyright \[co] 2006\[en]2008 Roger Leigh . .fi .SH "SEE ALSO" .BR sbuild (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild-shell.1.in0000644000000000000000000000013212627410514016377 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.229760068 sbuild-0.67.0/man/sbuild-shell.1.in0000644000175000017500000000364512627410514017227 0ustar00joschjosch00000000000000.\" Copyright © 2005-2008 Roger Leigh .\" .\" 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, see .\" . .so defs.man .TH SBUILD\-SHELL 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-shell \- run a shell in an sbuild chroot .SH SYNOPSIS .BR sbuild\-shell .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .B CHROOT .SH DESCRIPTION \fBsbuild\-shell\fR runs an interactive shell (\fI/bin/sh\fP) inside the specified chroot. The changes will not be discarded, so this can be used to setup a build chroot. .SH OPTIONS .SS Actions .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .SS Chroot selection .TP .B CHROOT The chroot to use. Note that \[oq]o\[cq], \[oq]s\[cq], \[oq]t\[cq], \[oq]u\[cq] and \[oq]e\[cq] may be used as abbreviations for \[oq]oldstable\[cq], \[oq]stable\[cq], \[oq]testing\[cq], \[oq]unstable\[cq] and \[oq]experimental\[cq], respectively. .SH EXAMPLES To run a shell in the \fIunstable\fP chroot: .PP \f[CR]% \f[CB]sbuild\-shell unstable\fP\fP\[CR] .br .SH AUTHORS .nf Roger Leigh. .fi .SH COPYRIGHT .nf Copyright \[co] 2006\[en]2008 Roger Leigh . .fi .SH "SEE ALSO" .BR sbuild (1). .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/man/PaxHeaders.4860/sbuild-debuild.1.in0000644000000000000000000000013212565554441016711 xustar0030 mtime=1440143649.648952144 30 atime=1451044743.162752739 30 ctime=1451136984.233760074 sbuild-0.67.0/man/sbuild-debuild.1.in0000644000175000017500000001740612565554441017541 0ustar00joschjosch00000000000000.\" Copyright © 2005-2009 Roger Leigh .\" Copyright © 2009 Andres Mejia .\" .\" 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, see .\" . .so defs.man .TH SBUILD-DEBUILD 1 "\*[RELEASE_DATE]" "Version \*[VERSION]" "Debian sbuild" .SH NAME sbuild\-debuild \- build debian packages from source in debuild\-like manner .SH SYNOPSIS .B sbuild\-debuild .RB [ \-h \[or] \-\-help " \[or] " \-V \[or] \-\-version ] .RB [ \-\-dpkg\-buildpackage\-opts " " \fIstring\fP ] .RB [ \-\-dpkg\-buildpackage\-extra\-opts " " \fIstring\fP ] .RB [ \-\-sbuild\-opts " " \fIstring\fP ] .RB [ \-\-sbuild\-extra\-opts " " \fIstring\fP ] .RB [ \-\-lintian\-opts " " \fIstring\fP ] .RB [ \-\-lintian\-extra\-opts " " \fIstring\fP ] .RB [ \-\-no\-lintian ] .RB [ \-\-pre\-dpkg\-buildpackage\-commands " " \fIstring\fP ] .RB [ \-\-pre\-sbuild\-commands " " \fIstring\fP ] .RB [ \-\-pre\-lintian\-commands " " \fIstring\fP ] .RB [ \-\-pre\-exit\-commands " " \fIstring\fP ] .BR [PACKAGE1[.dsc] " [" PACKAGE2[.dsc] " [" PACKAGE\f[BI]n\fP[.dsc] ]]] .SH DESCRIPTION \fBsbuild\-debuild\fR rebuilds Debian binary packages from the corresponding Debian source in a manner similar to debuild. .PP sbuild\-debuild is given a list of packages to process as the arguments \fBPACKAGE\f[BI]i\fP[.dsc]\fR. These arguments are in the form of either debianized package source directories or a .dsc file. .PP For arguments given as source directories, dpkg-buildpackage is first run to produce a source .dsc file. Then, the package is built using the .dsc produced. For arguments given as .dsc files, running dpkg-buildpackage is skipped altogether. If no arguments are given, sbuild-debuild acts on the current working directory as a source directory to process. .PP Before a package is built, sbuild-debuild first changes into the directory where the corresponding .dsc file resides. .PP After a successful build, if lintian is installed on the system, lintian is run on the resulting .changes file produced after a build. .PP In between each run of dpkg-buildpackage, sbuild, and lintian for a package, a list of commands can be run, similar to running hooks, except that arguments can be given and "special" keywords can be given as an argument to these commands to have sbuild-debuild convert them into various arguments. See the section \fBEXTERNAL COMMANDS\fR for more on this. .PP The exit status from sbuild-debuild is either 0 or 1. When a package is processed, if dpkg-buildpackage, sbuild, or lintian fails, processing of that package is stopped immediately and processing of the next package is started instead. For external commands, if an external command fails, the next external command is run but processing of a package is not halted. If at any point the processing of a package failed or an external command failed, sbuild-debuild is marked to exit with value 1 (i.e. failure), otherwise it exits with value 0 (i.e. success). .SH OPTIONS .TP .BR \-h ", " \-\-help Display this manual. .TP .BR \-V ", " \-\-version Print version information. .TP .BR "\-\-dpkg\-buildpackage\-opts \fIstring\fP" Override the default options passed to dpkg-buildpackage. .br Default is \fB"-S -us -uc"\fR. .TP .BR "\-\-dpkg\-buildpackage\-extra\-opts \fIstring\fP" Supply extra options to dpkg-buildpackage. .TP .BR "\-\-sbuild\-opts \fIstring\fP" Override the default options passed to sbuild. .br Default is no options are given. .TP .BR "\-\-sbuild\-extra\-opts \fIstring\fP" Supply extra options to sbuild. .TP .BR "\-\-lintian\-opts \fIstring\fP" Override the default options passed to lintian. .br Default is no options are given. .TP .BR "\-\-lintian\-extra\-opts \fIstring\fP" Supply extra options to lintian. .TP .BR "\-\-no\-lintian" Do not run lintian. .TP .BR "\-\-pre\-dpkg\-buildpackage\-commands \fIstring\fP" String of command to run before running dpkg-buildpackage. .br This option can be supplied multiple times to add more commands. .TP .BR "\-\-pre\-sbuild\-commands \fIstring\fP" String of command to run before running sbuild. .br This option can be supplied multiple times to add more commands. .TP .BR "\-\-pre\-lintian\-commands \fIstring\fP" String of command to run before running lintian. .br This option can be supplied multiple times to add more commands. .TP .BR "\-\-pre\-exit\-commands \fIstring\fP" String of command to run before ending the processing of a package. .br This option can be supplied multiple times to add more commands. .SH CONFIG FILES .TP .I /etc/sbuild/sbuild-debuild.conf Configuration, maintained by the system administrator. This may be used to override the defaults. .TP .I ~/.sbuild-debuildrc User-specific configuration. .SH EXTERNAL COMMANDS Support to run external commands during an sbuild-debuild run is provided. A set of external commands can be run before running dpkg-buildpackage, before running sbuild, before running lintian, and before ending processing of a package. Providing commands to run is done through the \fI\-\-pre\-*\-commands\fP options given on the command line and through the use of the configuration files. In the configuration file, the list of commands to run are placed in an array of strings corresponding to the commands to run. .PP Here's an example of how to edit the configuration files to run "foo" and "bar" with arguments before dpkg-buildpackage is run. .PP \f[CB]$pre_dpkg_buildpackage_commands = ['foo arg1 arg2',\fP .br \f[CB] 'bar arg1 arg2 arg3',\fP .br \f[CB] ];\fP .PP Here's an example of how to do the same with the previous example, except using the \fI\-\-pre\-dpkg\-buildpackage\-commands\fP option. .PP \f[CB]$ sbuild\-debuild \\\fP .br \f[CB] \-\-pre\-dpkg\-buildpackage\-commands 'foo arg1 arg2' \\\fP .br \f[CB] \-\-pre\-dpkg\-buildpackage\-commands 'bar arg1 arg2 arg3'\fP .PP Besides running external commands, sbuild\-debuild can also detect the use of certain keywords given as arguments. These keywords are used to allow for a command to be supplied with a certain argument depending on the keyword given. For example, it could be possible to have an external command be given the path to a .changes file. .PP Here is a listing of keywords and a description of what it's converted to. .IP \fB\@SBUILD_DEBUILD_DSC\@\fR This keyword is converted to the absolute path to a package's .dsc file. .IP \fB\@SBUILD_DEBUILD_SOURCE_CHANGES\@\fR This keyword is converted to the absolute path to a package's source .changes file. .IP \fB\@SBUILD_DEBUILD_BIN_CHANGES\@\fR This keyword is converted to the absolute path to a package's .changes file depending on architecture. .PP Here's an example of using a keyword to run piuparts on a .changes file before the processing of a package ends. .PP \f[CB]$ sbuild\-debuild \-\-pre\-exit\-commands \\\fP .br \f[CB] 'piuparts \@SBUILD_DEBUILD_BIN_CHANGES\@'\fP .PP One final note, external commands are processed in the order they are given. Also, the commands given in a configuration file are processed first, then the commands given through the command line options. .SH AUTHORS Andres Mejia. .SH COPYRIGHT .nf Copyright \[co] 2009 Andres Mejia .fi .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: sbuild-0.67.0/PaxHeaders.4860/NEWS-buildd0000644000000000000000000000013112565554441014516 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 30 ctime=1451136983.929759671 sbuild-0.67.0/NEWS-buildd0000644000175000017500000017216112565554441015347 0ustar00joschjosch000000000000002004-09-05 Ryan Murray * buildd-mail: get filelist from changes file first when processing ACCEPTED/INSTALLED mail. Limit filename pattern to valid filename characters if the changes file doesn't exist. Solves possible remote execution vulnerability (non-existant in default setup). 2003-11-05 Ryan Murray * sbuild: display toolchain package versions * sbuild: get build-essential information from the chroot, not the root. * sbuild: new --use-snapshot option that installs the gcc-snapshot package as a build-depends, and sets the environment variables needed to use it. * buildd-mail: attempt to move installed packages to the apt cache dir rather than deleting them. This saves bandwidth, as they will not need to be downloaded again if they are build-depends, but uses a lot of diskspace. * wanna-build: add --clean-db option to free unused space in the dbm file * sbuild: set the state of installed build-dependencies to purge after installation, so that in case of a crash, dpkg -P --pending should remove all packages that no longer need to be there. * sbuild: add $conf::build_env_cmnd to setup the build environment for sparc32 building on sparc64 (and other things?) * sbuild: add --binNMU=# parameter for use with --make-binNMU for the case where more than one binNMU is needed between upstream releases. defaults to 1. * sbuild: remove unused --store-built-packages * buildd: don't call sbuild with --store-built-packages * sourcedeps-makerev: disable for now, needs a rewrite for apt * update-sourcedeps: comment call to sourcedeps-makerev for now * buildd-mail: check for a Distribution: line in signed changes files, and at least one file. * buildd: call apt-get autoclean after an apt-get update that updates the apt package cache. * buildd-uploader: don't upload what's in the current directory if we can't chdir to the upload dir. * buildd: fork and call setsid so we don't have a controlling terminal. * abort-current-build: use /bin/kill instead of shell builtin * add EXIT-DAEMON-PLEASE flagfile. buildd checks it once per loop and will exit if found, taking the file with it. sbuild checks it after finishing each build, and will exit when finished a job. * Patch from Anthony Towns to sort standard and higher priorities higher, and add it to the front of the default order characters (the new character is S). This has the effect of making standard and higher uncompiled sort higher than all optional and extra, which is ideal for Debian. 2001-01-11 Roman Hodek * FetchFile.pm: Various fixes for package pools (tnx to Dan for patches). * sbuild.conf.local: New variable %dist_aliases can be used to translate distribution names (entries under dists/ on a mirror). Currently needed for strange unstable -> sid symlink, which IMHO should point to woody instead. 2000-10-19 Roman Hodek * sbuild: By Dan: Make sure that /etc/ld.so.conf is readable before building. * sbuild: Introduced local source dependency overrides with %conf::srcdep_over defined in some config file. You can replace deps on arbitrary packages with something else, e.g. $srcdep_over{'libfoo1-dev'} = [qw(libfoo2 >= 2.0)]; * buildd-mail: Added preliminary PGP/MIME support by Dan. 2000-06-27 Roman Hodek * sbuild: There are two new section types for special dependencies. The first is 'prepre', which contains a shell script like 'pre', but the script is run *before* dependencies are installed ('pre' is run afterwards). The second new section is 'unpack'. You can list a number of source package names there. sbuild will fetch the .dsc files and unpack the source trees in the build dir. After the build, those trees will be removed again. This can replace the dpkg-source calls that were used in pre scripts. Their problem were that they needed access to a local mirror, which can't be guaranteed now with chroot environments. 2000-06-20 Roman Hodek * sbuild: For chrooted builds, call apt-get with a bunch of options to relocate all relevant files instead of chrooting apt itself. This makes it unnecessary to have the Debian archive to be available from inside the chroot environment. Also dpkg and apt-cache calls are chrooted with options now. * buildd-addpkg: Also here apt-get is called with options instead of chrooting it. 2000-06-19 Roman Hodek * buildd-addpkg: New option --chroot=DIR (can be given multiple times). Causes apt-get update to be run chrooted for that dirs, too. * sbuild: If build was chrooted and produced source-deps, call buildd-addpkg with --chroot options for all dists greater or equal to the current one to get apt caches correctly updated. * sbuild, sbuild.conf: New config var @ignore_watches_no_build_deps. Watch packages listed there aren't reported if the package has no Build-Depends. This is for things like debhelper and debstd which are considered essential with the central source deps but not with Build-Depends. 2000-06-13 Roman Hodek * sbuild: Also execute shell scripts of special dependencies in chroot environment. 2000-06-09 Roman Hodek * rbuilder: Has been modified to use chroot environments. So you finally can build stable packages on kullervo now without shared library version problems! It also uses wanna-build again, but doesn't give back packages anymore so that the stable build daemon won't take them. 2000-06-08 Roman Hodek * sbuild: Implemented building in chroot environments. See README.chroot-building for details. * buildd-setup-chroot: New script for setting up a chroot environment for sbuild. See README.chroot-building for details. * README.chroot-building: New documentation for the above. 2000-06-06 Roman Hodek * sbuild: New option --source (-s): Also build source package, i.e. don't call dpkg-buildpackage with -b or -B. Also automatically switches on --purge=never. 2000-05-30 Roman Hodek * do-merge-{packages,quinn}: Rewritten in Perl and moved all configuration to /etc/wanna-build.conf.local. It was really a mess that those two scripts still had to be edited by hand... Also, they support local mirrors and quinn-diff files now. * buildd-addpkg: Local packages are now installed separated by distributions to ~/AddPkg/DIST. With this, you can exclude e.g. unstable packages from being installed on a frozen system by excluding that directory from /etc/apt/sources.list. buildd-addpkg has a new --dist option that defaults to unstable. --clean mode always operates on all distributions. * sbuild: Now calls buildd-addpkg with --dist option. Also does automatically install freshly built packages only if $conf::system_level is a "greater" or equal distribution that the distro the pkg was built for. For example, if the system level is "frozen", packages built for unstable won't be installed automatically. 2000-05-16 Roman Hodek * sbuild: Do a chmod -R go+rX on the build tree before building, so that files are readable. Some .orig.tar.gz's contain rather restrictive permissions that are simply inconvenient. 2000-03-03 Roman Hodek * wanna-build: The deleting of Arch: all packages was a really Bad Idea (TM)... It deleted all entries where *at least* one binary packages was Arch: all, and that really wasn't what I meant... Reverted this. The correct solution: There's a --merge-source now that reads the Sources.gz file (uncompressed) for a distribution and looks at Arch: all packages. If such a package also exists in the database with a less or equal version, the entry is deleted. 2000-03-02 Roman Hodek * wanna-build: If a package with Architecture: all appears in the database, it probably just has changed to this arch. Just delete it, it's not needed anymore. * wanna-build: If a package disappears from quinn-diff in states Building or Upload, delete is as well as it would have been Needs-Build, Failed, or Dep-Wait. * buildd-mail: Fixed a bug that caused check_building_any_dist to fail. As a consequence, a package still could be deleted if it became outdated and still was building in another dist. 2000-03-01 Roman Hodek * wanna-build: Introduced new concept of failed categories. See README.failcat for more details. (New option --category == -c) * README.failcat: new file. * wanna-build: New options --min-age=DAYS (-a DAYS) and --max-age=DAYS to restrict listed package depending on the time of last state change. * buildd-reply.el:There are two new functions: buildd-bug-change-category changes the failed category of a failed package; you use it from a mail buffer with a reply to the bug report (if the maintainer hasn't changed the subject...); you are prompted for a new category, which can be TAB-expanded. buildd-bug-comment adds next text to the fail message of a package; used the same way as buildd-bug-change-category above, but you can insert arbitrary text; with [CAT] you can also set/change the category. I've also changed keybindings: C-c C-a (formerly buildd-bug-ack-append) is now a prefix for 3 bindings that append something to fail messages: C-c C-a C-n -> buildd-bug-ack-append (i.e., append a bug number) C-c C-a C-a -> buildd-bug-comment (append arbitrary text) C-c C-a C-c -> buildd-bug-change-category * buildd: In get_changelog, remove an epoch if using the package name as part of a file name. * sbuild: Also match error message "dpkg: status database area is locked" from apt and retry call later. 2000-02-23 Roman Hodek * wanna-build: Added a warning for packages that have a newer version in the database than in quinn-diff, and the state is one of Installed, Install-Wait, Reupload-Wait, or Not-For-Us. In those cases, the newer version is questionable... it could be caused by a lame mirror, or it is an error in the db. During --merge-quinn, wanna-build now checks for such cases and if it detects some, it sends a mail about them to the admin. 2000-02-16 Roman Hodek * sbuild: Fix support for !needs-no-XXX deps (should now work as advertised :-) * sbuild: A package log contains now the version number of sbuild. 2000-02-15 Roman Hodek * sbuild: Improved warnings about missing central source dependencies: The list of package build dependencies is now not only dependency-expanded, but also virtual packages among them are expanded to an alternative of all providing packages. That way, a concrete package in the central deps shouldn't any longer be reported as missing if the build deps contain a corresponding virtual package. (E.g.: build dep is libncurses-dev, central deps contain libncurses5-dev.) 2000-02-11 Roman Hodek * sbuild: Do not show warnings that !this-package-does-not-exist or !needs-no-XXX type dependencies are missing in the package build dependencies. * sbuild: Do not activate watches for dependencies of build deps and not for packages where a !needs-no-XXX dep exists. 2000-02-04 Roman Hodek * wanna-build: --no-build now also propagates the new state to other distributions, which makes it consistent to the other actions. * wanna-build: new options --no-propagation (-N) and --no-down-propagation (-D) which suppress state propagation at all or to ``smaller'' distributions, resp. The former is sometimes useful for manually fixing things (e.g. a package fails only in stable due to the build environment, but not in unstable). --no-down-propagation is useful for the build daemon to avoid unwanted propagations. * buildd, buildd-mail, buildd-uploader, sbuild: Use --no-down-propagation in wanna-build calls. 2000-01-28 Roman Hodek * sbuild: Finally let it also accept abbrevs for distributions (s, f, and u). * buildd-reupload: Now finally can completely reconstruct a .changes from the source package and the existing binary packages that should be re-uploaded for different distributions. This finally makes the script usable :-) * buildd-reupload added to install and update-buildd scripts. * sbuild: New option --make-binNMU='message'. This will create a new changelog entry for a binary-only NMU. The message in the option will be used as description in the changelog (it may contain newlines and will be formatted properly). Please note that the version number in the package argument(s) still must be the existing, non-NMU versions so that sources can be downloaded. The version in the logfile etc. will be modified automatically. An bin-NMU entry won't be created twice in the same build tree. 2000-01-27 Roman Hodek * buildd: Remove $DISPLAY from the environment. The variable doesn't make sense when running in the background. 2000-01-20 Roman Hodek * buildd-mail: Allow "give-back" as answer to a Should-I-Build question. 2000-01-18 Roman Hodek * buildd-mail: "not-for-us" or "no-build" are now valid answers to a Should-I-Build question. This is handy if a package is now arch specific or the like. * buildd-mail: Fix outdated handling (packages are only outdated in a distrib if they were reported to be so...) * buildd-mail: If a package is reported as being outdated now, skip the build and/or delete the files only if we're not still building it in any other distribution. 2000-01-13 Roman Hodek * sbuild: Pass the --force-confold option to dpkg only if the version is before 1.4.1.18. Those old versions don't understand the option and fail. Newer versions need it, because they fail if they ask the conffile question and stdin is /dev/zero. 1999-12-17 Roman Hodek * sbuild: even more improved printout of missing central dependencies check. First sbuild reads the list of build-essential packages (as according to policy, from the build-essential package) and expands its dependencies. Those packages are filtered out and separately. They should never be mentioned in Build-Depends. Next, dependencies of the Build-Depends are expanded and those missing deps are also printed separately. It depends on the circumstances if those should be reported. This all together should make bug reports based on the sbuild warnings more reliable. 1999-12-08 Roman Hodek * sbuild: allow multi-line build dependencies when reading a .dsc. Those are actually forbidden is you look into packaging manual closely, but too many packages use them... * sbuild: Fix a bug in reading packages status: If a name was both provided and a real pkg name (probably an old one), the "not-installed" on the real pkg could set the installed status to 0. * sbuild: Special dependencies (those with a '*') are always implicitly overrides, i.e. they're added to package-supplied build dependencies. 1999-12-03 Roman Hodek * sbuild: When using source deps from a .dsc, compare them with the central deps and report any missing things. It seems that many packages lack some deps at the first try, and this aids reporting bugs. 1999-11-30 Roman Hodek * sbuild: When a package has its own source dependencies in the .dsc, store them in a file debian/.sbuild-build-deps in the build tree. This is needed when the package is later built again and the .dsc isn't available anymore. If a sbuild argument is a directory (building from tree without .dsc), look if this file exists and if yes, read build deps from it. * sbuild: Print a message to the log if package build deps are used. It already happened sometimes that I searched for an error in madd_sd-* or andrea, but the bad dependencies came from the packages :-) Such a message at least reminds you where to look... 1999-11-12 Roman Hodek * buildd: There's a new config variable, $secondary_daemon_threshold, in buildd.conf. It's intended for secondary daemons that should start building only if the primary daemon(s) are overloaded. The threshold gives a number of Needs-Build packages that must be reached before the secondary starts off. 1999-10-29 Roman Hodek * Fixed buildd statistics: The packages given back by sbuild weren't recorded, so some figures were a bit corrupted (specially processed). sbuild now appends 1 for each given-back pkg if it's given the new option --stats-dir. buildd passes that option. buildd-watcher knows about the new stats file and prints it in the summary. * buildd-addpkg: If apt-get update fails with "E: Could not get lock", try again a minute later. * sbuild: Make apt always pass --force-confold to dpkg. The = 1.4.1.18 (it gives an error on the conffile question if it read EOF.) * sbuild: If using an already unpacked source tree, check if it's really the version we want to build. (The requested version could be different in the Debian revision, and you can't see that on the directory's name.) 1999-10-25 Roman Hodek * New script buildd-clean-upload: It removes all jobs (.changes + associated files + .upload) that are installed in the archive (must be local or NFS mounted). I needed this now, because INSTALLED mails from maor-installer don't come through at the moment. But it's more a quick fix that can be useful later, too, than a real part of buildd. 1999-10-21 Roman Hodek * New script buildd-addpkg that maintains a private package archive for apt. buildd-addpkg copies a list of (reshly built) packages to ~/AddPkg and updates the Packages file there. Older versions of the pkg that existed in AddPkg/ are removed. Then apt-get update is called to make the installed pkgs available for apt. If called with --clean, buildd-addpkg checks apt knows about the packages in AddPkg/ from somewhere else and removes those. ~buildd/AddPkg should be in the last line of your /etc/apt/sources.list. * sourcedeps-makerev: New script that builds a reverse index of source dependencies, i.e. a list of all packages that are a referenced as source dependency. It is called now by update-sourcedeps after installing a new file, and the reverse index is stored as /etc/source-dependencies-DIST.rev. It is read by sbuild if called with --store-built-packages. * sbuild: New option --store-built-packages=PROG. PROG is a program that makes built packages available for apt and is usually buildd-addpkg. If this option is given, sbuild checks after each build if any of the produced packages is a source dependency. If yes, it is scheduled for installation. Also installed are packages that already scheduled packages depend on (maybe via Provides:) and that were also built. All those packages are passed to PROG, which makes the available for apt. Finally, if one of the src-dep packages is already installed and it's not in @conf::no_auto_upgrade, apt is called to install the new version. * buildd: Now calls sbuild with --store-built-packages=buildd-addpkg if that tool exists and $conf::no_store_packages isn't set (default). 1999-10-06 Roman Hodek * buildd-mail: before actions on retry, fail, dep-ret, man, give-back and should-I-build replies are executed, check that the state is Building in the given version. This should avoid that old mails (stalled in a queue somewhere) cause wrong things to be done on outdated stuff. Little exception: If a "fail" answer appends a bug number, the required state is Failed instead. Also, on should-I-build replies there is a check for outdated packages. * buildd-mail: There are now different error messages for the reply mail and the log. Often the messages were too verbose for the log. * buildd-mail: Logging of queue daemon messages can be turned off by $log_queued_messages = 0 in ~/buildd.conf. * buildd-mail: Before moving a package to the upload dir, every .deb is checked for correct md5 checksum. It happened in the past that a package was built twice (due to errors) overwriting the .debs. And if you then acknowledged the older log the md5sums didn't match, resulting in later errors in the queue or on master. * buildd: Removed message "DEBUG: not taking ... because given back recently". 1999-09-22 Roman Hodek * buildd-mail: Fix a bug that caused outdated packages to be added to REDO sometimes on "retry" mails. 1999-09-02 Roman Hodek * finish-build: I've added this script I'm using for some time to CVS now. It's used to finish builds that aborted and that were fixed manually. It runs the binary-arch if no debian/files exists, generates a .changes and sends a mail like sbuild would have done. 1999-09-01 Roman Hodek * {wanna-build,sbuild,buildd}.conf: All config files split into local and shared parts. The shared parts are to be modified by the buildd author only. The local parts contains some variables of local nature (mail addresses etc.) and also can override shared values. To keep compability with the previous names, the local and shared files are named as follows: | shared file | local file -------------+-------------------------+---------------------------- wanna-build | /etc/wanna-build.conf | /etc/wanna-build.conf.local sbuild | /etc/sbuild.conf | /etc/sbuild.conf.local buildd | /etc/buildd.conf.global | ~buildd/buildd.conf Except for buildd.conf, the shared file reads in the local file at the end. For buildd.conf, it's the other way round. On installation the shared files can be replaced without questions, so don't make modifications there. These should go into the local files. * buildd: Additionally check /etc/buildd.conf.global for changes and re-read configuration then. * buildd-mail, buildd-watcher: Add a special check for error mails: If more than 5 mails from a mailer daemon are received within less than $conf::error_mail_window (default 8 hours), they're not forwarded anymore to avoid possible mail loops. (This happens if the error is about the admin address itself.) The dates of error mails are stored in the new file ~buildd/mail-errormails. buildd-watcher regularily purges old entries from this file and removes it if it becomes empty. 1999-08-27 Roman Hodek * sbuild: --auto-give-back has a new optional argument giving the user and hostname where to call wanna-build (like $conf::sshcmd of buildd). This is needed that sbuild can do give-backs when there's no local wanna-build. If the argument is missing, wanna-build is called locally. Otherwise, it's used like --auto-give-back=[[WBUSER@]USER@]HOST An ssh calls is made as USER to HOST, and wanna-build called there with --user=WBUSER. If WBUSER is missing, it's the same as USER. If both are missing, the local username is used for both. * buildd: Passes the new --auto-give-back arg to sbuild now if $conf::sshcmd is set. Also correctly uses --user=$conf::wanna_build_user when taking packages. 1999-08-26 Roman Hodek * buildd-reply.el: Fixed several problems of alphabetical ordering with buildd-edit-manual-source-deps (C-c C-s). New function buildd-add-sd-map (C-c C-v) for editing sd_map files. 1999-08-23 Roman Hodek * wanna-build: When merging a Packages file, ignore entries for foreign architectures (including Arch: all). This is necessary for merging the Packages from proposed-updates, and this includes .debs for all archs. * do-merge-packages: Also merge Packages from proposed-updates. * Many changes in sbuild: * Support for alternatives in src-deps. This means you can have dependencies like "foo | bar (>= 1.2)". The installation is handled as follows: - If at least one alternative is installed in a matching version, nothing has to be done. - If at least one alternative is installed, but in the wrong version, the first such alternative is tried to upgrade. - If no alternative is installed, the first one is installed. - If all alternatives would need a downgrade to satisfy the version constraint, sbuild bails out that it can't do this. The decision which package to install or upgrade is made before apt is called and can't be changed later (yet). This means that, e.g., if the first alternative is not installable but the second would be, the package fails nevertheless. I might work on this in future... * Src-deps can now contain the [ARCH1 !ARCH2] architecture restrictions that will be used soon by the Build-Depends: field in the .dsc. The semantics are: The dependency is ignored if the current build arch isn't mentioned in the list, or if it's mentioned with a '!' prefix. The arch restrictions come after the version relation (if present) and apply to single alternatives. Example: foo: svgalib (>= 1.3) [i386 alpha] | svgalib-dummy [!i386 !alpha] * sbuild now checks the .dsc file for Build-{Depends,Conflicts}: fields and uses those as src-deps if present. (The *-Indep variants are also used if the --arch-all option is given.) The deps from the .dsc override the ones from /etc/source-dependencies*, as they are considered to be newer and/or more exact. However, there's still a way to add dependencies to packages that come already with src-deps: If you prefix a dep with '&' in the central src-dep file, those deps won't be thrown away. * There's a new feature of abbreviations in src-deps. You can define them by abbrev FOO = foo, bar, yxy anywhere in the source-dependencies-* file. Then FOO can be used just like any other package name. It will be replaced by "foo, bar, yxy" later. Abbrevs can't be used with version relations and inside alternatives. * New options: --arch-all (-A) also builds Arch: all packages (uses dpkg-buildpackage -b instead of -B); --add-depends (-a) like -f, but doesn't override existing deps completely but adds to them. * sbuild now only parses the src-deps for package which should be compiled. This should reduce the start-up time a bit. 1999-08-10 Roman Hodek * wanna-build: Allow section names like non-US/non-free when parsing a quinn-diff. (The section can contain letters, digits, -, and / now.) * do-merge-{packages,quinn}: New config var $section, can be more than just main (default is "main non-US/main"). Both scripts now import data from all sections in $section. ftp.uni-erlangen.de provides the necessary quinn-diff data. Both scripts now also print the names of the files downloaded and which will be merged. * sbuild: Virtual packages as source dependencies didn't really work yet... An alternative was installed ok, but the following consistency check didn't see the provided package, because it used dpkg --status, and that doesn't know virtual packages. Solution: get_dpkg_status() now directly reads /var/lib/dpkg/status (which should be a bit faster, too) and parses the Provides: fields of installed packages. Provided packages are considered installed for src-dep purposes. * sbuild: Make some more messages go to the package log (instead of the sbuild log, where they didn't belong). Also fix the stdout/stderr redirecting when running scripts of special deps. * FetchFile.pm: Redirect output of ftpget (lftp code). * Buildd.pm: Increase lock_interval from 5s to 15s, giving a total try time of 30m. I've seen cases where a valid lock has been broken because it existed too long. This shouldn't happen. 1999-08-09 Roman Hodek * buildd-mail, buildd-uploader: support for non-US packages There's a new dir upload-non-US for packages that should go to the non-US server. buildd-mail automatically recognizes such packages if the .deb sections contain the string "non-US" (case-insensitive). Also packages listed in @conf::non_us_packages are moved to this upload dir. Acknowledged packages are moved to the appropriate upload dir (upload/ or upload-non-US/). When removing a job from the upload dir (either if it has been installed into the archive, or on the upload-rem command), check if the changes file is in upload-non-US and use this dir then. buildd-uploader simply uploads packages from both dirs. The dupload in upload-non-US use a --to option of $conf::dupload_to_non_us (default "non-us"). Please make sure you can upload there without questions for passwords etc. * buildd.conf: New config vars $dupload_to_non_us and @non_us_packages. * sbuild.conf: Add non-US/main to @do_dists, remove non-us (seems obsolete). 1999-08-04 Roman Hodek * wanna-build: When taking a package, print the warning that previous version failed also if the previous state was Failed-Removed. * buildd*: Implemented the collecting of some statistical data. All the figures are written to files in ~/stats, where some script will pick them up. Written files are: taken, builds, uploads, failed, dep-wait, no-build, idle-time, and build-time. * buildd-watcher: Implemented statistics summary, which is mailed once per week. * buildd.conf: two new config vars: $statistics_period and $statistics_mail. 1999-08-03 Roman Hodek * wanna-build: I hope I've found out now what caused the HASH(0x........): fields which corrupted the databases from time to time. (It is something between unexpected Perl behaviour and a proper bug in perl-5.005.) 1999-07-28 Roman Hodek * rbuilder: Don't use wanna-build anymore at all -- it caused too many problems (If a package was given back, the new version was Needs-Build and the daemon grabbed it, but couldn't download the source; often distribution lines confused users; ...) The code is still there, but deactivated by $main::use_wb = 0. * rbuilder: Don't remove the build dir if upload failed or on .changes inconsistencies. Such stuff can probably be fixed manually and the packages doesn't need be rebuilt. 1999-07-27 Roman Hodek * buildd: New config variable $idle_sleep_time (in buildd.conf) instead of hardwired pause of 5 minutes between list-needs-build calls. * wanna-build: --info -dist=all created non-existing databases (e.g. for frozen); fixed. 1999-07-23 Roman Hodek * wanna-build: Avoid that MTAs add domains to From: or To: addresses: Add the local domain to the to addr if it doesn't contain a domain yet. Also add a explicit From: header, as the MTA might use the plain username otherwise. * rbuilder: If the package can't be built or uploaded successfully, give it back so it can be retried later. 1999-07-21 Roman Hodek * FetchFile.pm: Made the FTP downloading (via the Perl-internal Net::FTP module, not lftp) more fault-tolerant. If the received file is smaller than expected, it is retried as long as each try increases the file size. * buildd-mail-wrapper now sets the umask to 022, because some mailers seem use 077, which makes the files in ~/upload unreadable for others. 1999-07-09 Roman Hodek * check-security-uploaded: New script; to be run from crontab of wanna-build db admin. It downloads the Packages files from security.debian.org and compares the packages there with the ones that 'rbuilder' is currently building. If such packages are found to be installed, they're set to 'Uploaded' to avoid old-build mails. * rbuilder: Now maintains a file "builders" where it stores package names + versions and the email addresses of the people who requested to build those packages. The addresses are used for old-build mails: They're forwarded to the responsible person instead of being rejected because they're not PGP-signed. 1999-06-21 Roman Hodek * sbuild: Also recognize new message "Package file ... is out of sync" from apt-get and run apt-get update. 1999-06-18 Roman Hodek * rbuilder, wanna-build-mail: Both now support also GnuPG for signing the mails. * wanna-build-mail: Now can also parse mails signed with MIME/PGP, like rbuilder. 1999-06-14 Roman Hodek * wanna-build: Now packages can also changed from Installed to Installed if a newer version than registered in the database appears in the Packages file. This can happen if someone uploads a package without any wanna-build interaction. Formerly, only the Installed-Version: was updated, but not Version:. * wanna-build: Don't use getlogin() anymore for determining the user name; it returns wrong results if su has been used (returns the user you su-ed from). * rbuilder: Keep the logs for all requested builds for 100 days in a logs/ subdir. * rbuilder: In error replies, quote the mail that caused the error. * rbuilder: If taking a package fails, report the wanna-build messages to the user. * rbuilder: Fix silly syntax error ($main::wanna-build instead of $main::wanna_build). 1999-06-09 Roman Hodek * sbuild: Fixed some silly errors with global patches: Accept them at all when parsing the source-dependencies file; fix the loop in apply_patches to handle the args consistently; don't let the build fail if a global patch didn't apply. 1999-06-08 Roman Hodek * wanna-build: When reading quinn-diff output, accept empty sections and priorities. (Those are generated by quinn-diff now on packages from proposed-updates.) The empty values are replaced by "unknown". 1999-06-04 Roman Hodek * sbuild: When giving back a package, don't forget the --dist option to wanna-build. * sbuild: Added support for virtual packages in source dependencies. When sbuild tries to install such a package, apt-get will tell it which alternatives exist. One of these is substitued for the virtual package and apt-get will be retried. Which one to use is either determined by %conf::alternatives or more or less by random (first one listed). 1999-06-02 Roman Hodek * sbuild: Removed as many die's as possible. The error exit status caused by die can let buildd retry all jobs of this sbuild run, even if some have already been finished. * sbuild: Make sure that we're in the correct directory after a build (some chdir()s in error cases were missing). Also don't use chdir(".."), because we may have followed a symlink; better use the absolute path of the wanted dir. * sbuild: If the directory where a package should be unpacked already exists but is a symlink, then complain. * sbuild: With --batch write each finished job to a file SBUILD-FINISHED. buildd can look at this file if sbuild crashed for jobs that need not be rebuilt. * buildd: If sbuild exited with error status and hasn't dumped unfinished jobs to REDO itself, look for SBUILD-FINISHED to sort out jobs that don't need rebuilding. * check-old-builds: Add /usr/local/bin to $PATH if not included yet. 1999-06-01 Roman Hodek * buildd-mail: Now creates the upload directory if it didn't exist yet. And if not all files belonging to an upload could be moved there, abort with an error. * Removed some more hardcoded paths to binaries in buildd and buildd-watcher. 1999-05-31 Roman Hodek * sbuild: The du after the build (to get the total space required) is now run under sudo, because under some debian/tmp-like some dirs can not be accessible to normal users. * buildd.conf: Added build/{HOLD-BACK,Attic} to $no_warn_pattern. * In all scripts remove calls to aliases of wanna-build (the list-needs-build, build-info etc. symlinks) and use wanna-build itself with appropriate option instead. This removes the necessity to have the symlinks; you may still want them for typing convenience... * Removed hardcoded /usr/local paths. * Removed hardcoded /usr/local/var/debbuild paths from do-merge-* scripts. They extract the database dir now from /etc/wanna-build.conf. 1999-05-26 Roman Hodek * wanna-build: Introduced epochs in the database (they were ignored until now); now finally packages that have changed epoch go to state Needs-Build automatically. You're still allowed to omit the epoch in the usual commands (version comparison is fuzzy here) to still be able to pass file names as arguments. However, the input of --merge-packages and --merge-quinn must be exact can contain epochs. Caution #1: If the quinn-diff piped into wanna-build ignores epochs, you need to set $ignore_epochs in /etc/wanna-build.conf. Caution #2: When you install this wanna-build version (1.102) and have an existing database without epochs, run --merge-packages and --merge-quinn once with the --introduce-epochs option. Caution #3: Epochs are also added for currently building packages. buildd-mail might be confused by this if in the subjects of mails the epoch is still missing. You must add the epoch manually in this case. Caution #4: The automatic adding of epochs fails in one case: If someone has taken a version newer than what quinn-diff knows (e.g. a NMU planned) and that version was meant already with the epoch. In this case wanna-build will reset the state to Needs-Build and send you a new-version-while-building notice. Just re-take the package. * sbuild: Ignore epochs when fetching source files. * sbuild: If dpkg-source -x fails, remove the .tmp-nest dir if it's left over. * buildd-mail: Fix extraction of error message again (for replies to should-I-build mails): ignore empty parts between separators. * buildd-mail: Ignore epochs when constructing the name of a changes file or the name of a build directory. * wanna-build: If you take a package you have already taken, you don't get an error message anymore ("NOT OK; already taken by USER") but a notice instead that you already own the package and an ok. 1999-05-17 Roman Hodek * Fixed /tmp insecurity on wanna-build --manual-edit. 1999-05-04 Roman Hodek * sbuild: After a build the disk space required for it is determined (final size of build dir before purging + size of generated .deb's) and printed in the package log. Additionally, the figure is stored in a new database avg-build-space, analogous to avg-build-time. However, the calculation of the "average" is different. Since disk space isn't expected to vary as much as times, the last figure seems more important than later ones. Therefore, max. 4 numbers are stored, and when calculating the average, the latest is weighted with factor 4, the next with 3 and so on. * avg-pkg-build-time: Can now dump the space db, too, with option --space (-s), or if called as avg-pkg-build-space. Output format for space is a bit different, but adding, dumping, sorting etc. works as usual. 1999-05-03 Roman Hodek * sbuild: After unpacking a source, run "chmod -R g-s" on it. Some .orig.tar.gz files seems to be packaged with the setgid bit on, which causes the debian dir and its subdirs (e.g. debian/tmp) to be created setgid, too; and later dpkg-deb --build complains about bad permissions. 1999-04-26 Roman Hodek * rbuilder: Now can also parse mails signed with MIME/PGP. 1999-04-21 Roman Hodek * sbuild: sbuild can now check if certain binaries have been used during a package build (to update the source dependencies). The check just looks for access time of the binary being later than the start of the build, so it could be fooled by parallel activities on the machine. So better check manually... There's a new config var %watches where one can list all the packages and binaries therein to watch for. 1999-03-12 Roman Hodek * sbuild: New option --force-depends (-f) to override source dependencies of a package, in case they're wrong. The argument should be a line in the same format as used in /etc/source-dependencies. 1999-03-08 Roman Hodek * wanna-build: On --merge-packages, it can happen that multiple versions exist for one source package (if old binary packages from the same source haven't been removed from the archive yet). So skip a package in Packages not always if the same (source) packages has already been processed, but only if also the versions match. That way, all versions will be processed. * wanna-build: New option --pretend-avail. The packages given on the command line (versions required) are treated as if they're installed, and packages waiting for them are moved from Dep-Wait to Needs-Build (if other dependencies are available, too, of course). To make implementation of this easier, the Depends: list of a package in state Dep-Wait is now shortened each time a dependency is available. 1999-03-07 James Troup * andrea, merger: new option --architecture (-a) to define the architecture and override the default as set by the output of dpkg --print-architecture. 1999-03-05 Roman Hodek * FetchFile: Bigger redesign of caching: Do not cache all file names anymore, but only directory names. Building a full cache takes some time, specially if for a FTP site. And most of the infos is never needed, specially if compiling only one package. Additionally, the full cache must be cleared rather often after "not found" results, because the mirror might have changed. This isn't necessary if caching dir names, because they're very unlikely to change. The new cache should be a major speedup for single-package builds and/or if several source packages must be fetched from a FTP site. * sbuild: No not remove build-progress if not writing it (no --batch). * sbuild: New option --purge (-p) to define build dir purge mode on command line. 1999-03-02 Roman Hodek * sbuild: Now implemented source dependency locking. This allows (securely) for multiple sbuild instances at the same time. For each job, a lock file with needed source dependencies is written. Before installing src deps, sbuild checks all those lock files if any of the packages needed by other instances would be touched in any way (removed, installed, updated). In that case, the second instance must wait until all conflicting jobs are finished. Special dependencies usually cause no conflict, except they are marked with a "global { yes }" subsection, which means they influence global system state. At most one package at a time may be built that has such a global dependency. * sbuild: Source dependencies that were newly installed for a build are now removed immediately after the build has finished, not anymore at the end of all builds. The old behaviour might be a bit more efficient, but is complex to handle with src-dep locks. 1999-03-01 Roman Hodek * rbuilder: New script for remote building on demand. Accompanying is a rbuilder-wrapper. * wanna-build: When merging Packages files, unknown (source) packages aren't ignored anymore. The ignoring was initially done to keep the databases smaller, but by now most packages are included there anyway. So it is now better to have a full database, which also makes the statistics a bit more correct. 1999-02-24 Roman Hodek * sbuild: New option -n (--nolog): Do not write any log files (package log, build log), but only print to stdout. Also do not send any mails. * sbuild: Now a kind of source dependency locking information is maintained: In $conf::srcdep_lock_dir (usually /usr/local/var/debbuild/srcdep-lock) each instance of sbuild puts a file named after its pid and writes all needed packages into that file. Later instances of sbuild can use this information to check if a src-dep conflict exists. (To be implemented...) 1999-02-23 Roman Hodek * sbuild: Now URLs (http:// and ftp://) are allowed as command line parameters; the URL should point to a .dsc file. This feature can be used to build packages in arbitrary locations, not only those listed in @archive_locations. Also no searching is necessary, since the path is given. 1999-02-18 Roman Hodek * sbuild: Fix an old typo in some output text (chnages vs. changes) 1999-02-17 Roman Hodek * wanna-build: --give-back can now change to state Needs-Build from any state (not only Building) with --override. * wanna-build: --info and --forget (which take only package names without version) now strip anything following a '_' to avoid confusion. * sbuild: With -v don't mail the build log, because the same information is already mailed as the package log. And the additional stuff in the build log (e.g. removing packages) can be see interactively. * buildd: New config variable @take_from_dists: buildd will only take new packages from the distributions listed here. This can be used to let one buildd make this distrib, the other buildd the next and so on. If this variable isn't initialized in buildd.conf, it's set to (stable frozen unstable), i.e. all distributions. 1999-02-08 James Troup * andrea is now architecture and distrubtion independent through the use of multiple new format files for source dependency mappings and manually added source dependencies. 1999-02-03 Roman Hodek * sbuild: If installation of source dependencies (apt-get run) fails, try to reinstall removed packages and to remove newly installed packages. If apt-get failed because some package didn't configure, that package must be removed, otherwise all following apt-get runs will fail because they try to configure that package! * check-old-builds: Remove packages from reported-old-builds if they're not in state Building anymore. * wanna-build: "new version of ..." mails now include distribution. * wanna-build: With --info you can now also use --dist=all (or -da). Then infos are printed for all known distribution. * buildd-mail: Handle outdatedness for multiple distributions: - The outdated-packages file now also records distributions in which the package is outdated. - In the check for outdatedness, it can happen that it's outdated in none, some, or all distributions. The none and all cases are the same as before, but in the some case, a modified .changes needs to be sent, or an action cannot be applied automatically. - If the reply is no changes, we have to determine separately to which distributions the packaged is targeted. This is done by checking for state Building of the version in question. * buildd-mail: Fixed get_fail_msg for new output format of build-info. * buildd-mail: Before moving a package to the upload dir, check if it's really registered for building in all target distributions. If this is not the case, it's an indication of error. Either it should be registered, or some distributions should be deleted. 1999-02-01 James Troup * andrea's merger's ability to strip automatically generated dependencies through the source-dependencies file has been fixed. 1999-02-01 Roman Hodek * avg-pkg-build-time: New option -f (--dbfile) to select the database to consult on the command line. 1999-01-25 Roman Hodek * sbuild: When parsing dpkg --status output, ignore the help message appended at the end under some circumstances. This should remove the "parse error in dpkg --status: no Package: field" error messages. 1999-01-19 Roman Hodek * check-old-builds now checks all distributions, not only unstable. 1999-01-18 Roman Hodek * wanna-build: When opening the database, handle error EAGAIN: Wait 2 seconds and then try again for max. 30 times. Starting with the switch to GDBM, it often happened that after a lock was gone the database still couldn't be opened (file locking?). 1999-01-13 Roman Hodek * sbuild: Added --quiet option to patch call to avoid some blurb in the sbuild log file. * do-merge-quinn: Mail the statistics file only if its size is greater than 0. * wanna-build-statistics: If wanna-build --list=all dies with error status, print the last message from it. 1999-01-08 Roman Hodek * wanna-build: Don't warn if a package goes Reupload-Wait -> Installed, this is rather normal. * wanna-build now uses GDBM databases (instead of DB hash from glibc), because the former database driver crashed randomly on sufficiently big databases :-( 1998-12-23 James Troup * andrea now handles multi-line dependency information as found, for example, with the sgml-tools package. 1998-12-22 Roman Hodek * Several internal changes in wanna-build: make regexps faster by not using $`,$&,$'; replace ugly $main::var syntax for global variables by $var together with a use vars; made program name and option handling more general by replacing big switches by table-driven approach. * wanna-build now by default uses its own comparison function, written in Perl. This should be a great deal faster than forking dpkg --compare-versions all the time. But since this isn't 100% correct (dpkg is the only instance that really knows about version ordering), a new option --correct-compare can be used to force calling dpkg. 1998-12-16 Roman Hodek * New script wanna-build-statistics: Prints some nice statistics about how much packages are in which state, who put them into that state and so on. * do-merge-quinn now calls wanna-build-statistics after each merge and sends the results to a mailing list. * wanna-build now also allows --uploaded on packages in state Install-Wait without --override. 1998-12-15 Roman Hodek * Little correction to handling of Install-Wait state in wanna-build: If the corresponding package in another distribution changes state to Failed, Dep-Wait, or Needs-Build (on give-back), propagate this state change to the distrib where the Install-Wait is. This is necessary because in those cases, no upload will happen, and thus we could wait endless for an installation. 1998-12-11 Roman Hodek * On --merge-quinn, if a state is copied from another distribution, wanna-build must also set the Package: field, because the entry might not have existed before. This caused (rarely) "entry misses Package: field" errors. 1998-12-08 Roman Hodek * A SBUILD-REDO-DUMPED file is now also removed by buildd if sbuild exits with 0 status (as it does if the shutdown goes ok). 1998-12-07 Roman Hodek * buildd now also catches SIGALRM around the call to get_changelog, which uses FetchFile. This is similar to the recent change to sbuild. 1998-12-04 Roman Hodek * There's a new config variable in buildd.conf: @weak_no_auto_build. Packages listed there are usually not taken and built, just as those in @no_auto_build. However, if there is really nothing to do (in no distribution) and the daemon would go into its idle loop otherwise, it will also take one package that is in @weak_no_auto_build (if one is available). Only one package is taken, because it is assumed that those packages need relatively much time. The consideration behind all this is that it's better to start an expensive build instead of doing nothing. * sbuild now also catches SIGALRM and calls its shutdown function if receiving it. In the last time, it happened sometimes that the Net::FTP module triggered some unhandled SIGALRMs after unexpected FTP timeouts. This caused the whole sbuild to crash, and *all* packages were dumped to REDO. Calling shutdown at least will dump only the unfinished ones. 1998-11-26 James Troup * sbuild: sbuild can now use lftp instead of the perl FTP module to download source files; this was necessary for cookie-monster which is on a slow shared modem connection which consitently defeated the perl FTP module. It's optional (see sbuild.conf) and off by default because only machines with slow/poor connections should use it as it's slower than using the perl FTP module due to the overhead of spawning multiple copies of lftp. sbuild also now handles the case of an aborted dpkg-source extraction by removing a .orig.tmp-nest directory if it's in the way. 1998-11-25 Roman Hodek * buildd-reupload: New tool to reupload packages, which are already installed, for different distributions. * wanna-build: There are now two new states to solve the delayed-frozen-problem. Brief summary: If a (source) package is for (e.g.) frozen and unstable, it will be installed in unstable automatically, but in frozen later after acknowledgement by the release manager. This means that quinn-diff lists the new version for unstable earlier than for frozen, and that a build daemon might pick up the package from unstable. Since the upload cannot immediately go to frozen, too (the new version isn't accepted for this yet), sbuild modifies the .changes so the upload only goes to unstable (see sbuild change yesterday). But still the frozen version must be uploaded at some point. This is now handled by wanna-build (but not really completely; a perfect solution would have been rather hard to implement.) If quinn-diff lists a new version of some package, and the same version is Building or Uploaded for some other dist, the new state will be Install-Wait instead of Needs-Build. As soon as --merge-packages detects that that version has been installed, Install-Wait is turned into Reupload-Wait. If the packages was already installed in some dist at the time quinn-diff listed it, it goes to Reupload-Wait immediately. Whenever state Reupload-Wait is entered, the previous builder of the package receives a mail that a reupload for a different distribution is needed. buildd-mail will do this for some cases automatically, but sometimes manual work will be necessary. Why this solution isn't perfect: If another unstable version is installed before the previous version is needed for frozen, a recompilation is needed. Similar: If a version of a package is Failed or Dep-Wait in some other distrib and now is listed by quinn-diff for some dist, the Failed/Dep-Wait state is copied to the new dist. * wanna-build: You can abbreviate the argument to -d or --dist now as 's', 'f', or 'u'. * buildd-reply.el: new file with some Emacs functions that make it easier to reply to buildd mails. 1998-11-24 Roman Hodek * sbuild: If the changelog of a package wants to upload also for "lower" (stable < frozen < unstable) distributions than the distrib. set on the command line, then delete those distrib.s in the Distribution: field of the resulting .changes, because probably the package hasn't been accepted for stable or frozen, resp., yet. Instead, write a second, modified .changes to SAVED-CHANGES, which lists the omitted distribs in the Distribution: field. 1998-11-21 James Troup * do-merge-quinn: handle temporary files securely and don't hardcode architecture. 1998-11-20 Roman Hodek * sbuild, source-dependencies: Special dependencies now can also have 'patch' subsections. These patches are applied when a source tree has been unpacked (and the package depends on the special dependency that has the patch subsection...) This is intended for cases where some packages need to be patched, but the patch isn't be appropriate for the main package. Examples are: ddd (cannot be compiled with -g, because then needs to much memory), gcc (needs -O in CFLAGS if compiled on a '060). For more infos on the patch subsections, see the comment in source-dependencies. 1998-11-19 Roman Hodek * wanna-build: Implemented a global "maintenance" lock. Purpose: The --merge-{packages,quinn} commands work on each distribution separately, but the data still belong together. Concretely, it happened that a build daemon built some packages twice, because at the time of the first list-needs-build, they were Needs-Build for frozen, but not yet for unstable because the unstable quinn-diff wasn't merged in yet. The maintenance lock can be set or removed by the --create-maintenance-lock or --remove-maintenance-lock options, resp. If such a lock exists, every command except the two merge commands will wait for the lock to disappear. * do-merge-quinn, do-merge-packages: Use maintenance locks. * Whenever sbuild does auto-givebacks, it now logs them into a file SBUILD-GIVE-BACK, together with the current time. This list is used later by buildd: If a give-back hasn't been done at least $conf::delay_after_give_back minutes ago, the package will be ignored in list-needs-build output. buildd also deletes older entries from the file. This is to protect against loops, where buildd takes the same packages over and over, and sbuild only gives them back, for example because they're not on the mirror or the files are damaged. 1998-11-17 Roman Hodek * sbuild now tries to open /etc/source-dependencies-DISTRIB before /etc/source-dependencies. This is necessary because andrea will generate distrib-specific dependencies, so we need different files for each dist. The fallback without -DISTRIB appended is for compability. 1998-11-15 Roman Hodek * In source-dependencies, more than one dependency on the same package is now possible. (For example, one with >= relation and the other with <<.) Dependencies of this type can be produced by andrea. * sbuild can now detect cases where a package would have to be downgraded to fulfill a dependency. apt-get (how it is used currently) cannot handle downgrades, it always upgrades to the newest available version. Thus, in such cases a build is aborted. 1998-11-14 James Troup * do-merge-packages now handles temporary files securely, is no longer architecture dependent and refuses to try and merge zero length Packages files. 1998-11-10 Roman Hodek * sbuild now doesn't pass packages that are already installed in a sufficient version to apt-get. This removes the side effect that packages that are source dependencies are always updated to the newest version, which is not always desired. * In wanna-build --list, the sorting order of sections has been changed. They're not anymore sorted alphabetically, but by some kind of importance. This has been done because the build daemons pick up packages in the order listed by wanna-build. 1998-11-09 Roman Hodek * buildd now also checks its config file (~/buildd.conf) for changes and rereads it if the modification time has changed. No extra SIGHUP is needed anymore. 1998-11-06 Roman Hodek * New script check-old-builds, which sends warning mails for packages being in state Building for more than 10 days. 1998-11-05 James Troup * buildd-mail-wrapper now checks the pid in mailer-running files for validity (i.e. if the pid mentioned there really still exists). 1998-11-04 Roman Hodek * wanna-build does not anymore send out mails for Failed->Failed state changes ("message appended"). * sbuild: Fixed the changes-hack-for-frozen (didn't work at all). # Local Variables: # mode: change-log # change-log-default-name: "NEWS" # End: sbuild-0.67.0/PaxHeaders.4860/aclocal.m40000644000000000000000000000013112637513664014420 xustar0030 mtime=1451136948.321712699 30 atime=1451136948.445712862 29 ctime=1451136983.91375965 sbuild-0.67.0/aclocal.m40000644000175000017500000011654212637513664015252 0ustar00joschjosch00000000000000# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR sbuild-0.67.0/PaxHeaders.4860/lib0000644000000000000000000000013212637513730013244 xustar0030 mtime=1451136984.141759952 30 atime=1451136984.349760227 30 ctime=1451136984.141759952 sbuild-0.67.0/lib/0000755000175000017500000000000012637513730014141 5ustar00joschjosch00000000000000sbuild-0.67.0/lib/PaxHeaders.4860/Buildd0000644000000000000000000000013212637513730014447 xustar0030 mtime=1451136984.137759947 30 atime=1451136984.349760227 30 ctime=1451136984.137759947 sbuild-0.67.0/lib/Buildd/0000755000175000017500000000000012637513730015344 5ustar00joschjosch00000000000000sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/DistConf.pm0000644000000000000000000000013212627410514016566 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136984.129759936 sbuild-0.67.0/lib/Buildd/DistConf.pm0000644000175000017500000000666012627410514017416 0ustar00joschjosch00000000000000# # Conf.pm: configuration library for buildd # Copyright © 1998 Roman Hodek # Copyright © 2005 Ryan Murray # Copyright © 2006-2009 Roger Leigh # # 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, see # . # ####################################################################### package Buildd::DistConf; use strict; use warnings; use Sbuild::ConfBase; use Sbuild::Sysconfig; use Buildd::ClientConf qw(); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(new_hash setup read_hash); } sub new_hash (@); sub setup ($); sub read_hash ($$); sub new_hash (@) { my %opts = @_; my $queue_config = Sbuild::ConfBase->new(%opts); Buildd::DistConf::setup($queue_config); Buildd::DistConf::read_hash($queue_config, $opts{'HASH'}); return $queue_config; } sub setup ($) { my $conf = shift; my $validate_directory_in_home = sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $directory = $conf->get($key); my $home_directory = $conf->get('HOME'); die "$key directory is not defined" if !defined($directory) || !$directory; die "$key directory '$home_directory/$directory' does not exist" if !-d $home_directory . "/" . $directory; }; my $arch = $conf->get('ARCH'); my %buildd_dist_keys = ( 'DIST_NAME' => { DEFAULT => 'unstable' }, 'BUILT_ARCHITECTURE' => { DEFAULT => undef, }, 'SBUILD_CHROOT' => { DEFAULT => undef, }, 'WANNA_BUILD_SSH_HOST' => { DEFAULT => 'buildd.debian.org' }, 'WANNA_BUILD_SSH_USER' => { DEFAULT => 'buildd_' . $arch }, 'WANNA_BUILD_SSH_SOCKET' => { DEFAULT => undef }, 'WANNA_BUILD_SSH_OPTIONS' => { DEFAULT => [] }, 'WANNA_BUILD_DB_NAME' => { DEFAULT => undef, }, 'WANNA_BUILD_DB_USER' => { DEFAULT => $Buildd::username }, 'WANNA_BUILD_API' => { DEFAULT => undef, }, 'WANNA_BUILD_MIN_AGE' => { DEFAULT => undef, }, 'DUPLOAD_LOCAL_QUEUE_DIR' => { CHECK => $validate_directory_in_home, DEFAULT => 'upload' }, 'NO_AUTO_BUILD' => { DEFAULT => [] }, 'WEAK_NO_AUTO_BUILD' => { DEFAULT => [] }, 'NO_BUILD_REGEX' => { DEFAULT => undef }, 'BUILD_REGEX' => { DEFAULT => undef }, 'LOGS_MAILED_TO' => { DEFAULT => undef }, 'LOGS_MAIL_ALSO' => { DEFAULT => undef }, 'BUILD_DEP_RESOLVER' => { DEFAULT => undef }, 'SIGN_WITH' => { DEFAULT => undef }, 'MAINTAINER_NAME' => { DEFAULT => undef }, 'MAILFROM' => { DEFAULT => undef }, ); $conf->set_allowed_keys(\%buildd_dist_keys); Buildd::ClientConf::setup($conf); } sub read_hash($$) { my $conf = shift; my $data = shift; for my $key (keys %$data) { $conf->set($key, $data->{$key}); } } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Client.pm0000644000000000000000000000013112627410514016272 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 29 ctime=1451136984.12575993 sbuild-0.67.0/lib/Buildd/Client.pm0000644000175000017500000000604412627410514017117 0ustar00joschjosch00000000000000# # Client.pm: client library for wanna-build # Copyright © 2005 Ryan Murray # Copyright © 2005-2009 Roger Leigh # # 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, see # . # ####################################################################### package Buildd::Client; use strict; use warnings; use Sbuild qw($devnull); use Sbuild::ChrootRoot; use Cwd; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('SETUP', 0); return $self; } sub setup { my $self = shift; if (!$self->get('SETUP')) { my $host = Sbuild::ChrootRoot->new($self->get('Config')); $host->begin_session(); $host->set('Log Stream', $self->get('Log Stream')); $self->set('Host', $host); $self->set('SETUP', 1); } } sub get_query { my $self = shift; my @command = (@{$self->get_conf('WANNA_BUILD_SSH_CMD')}, 'wanna-build'); if ($self->get_conf('WANNA_BUILD_DB_NAME')) { push(@command, "--database=" . $self->get_conf('WANNA_BUILD_DB_NAME')); } else { if ($self->get_conf('BUILT_ARCHITECTURE')) { push(@command, "--arch=" . $self->get_conf('BUILT_ARCHITECTURE')); } if ($self->get_conf('DIST_NAME')) { push(@command, "--dist=" . $self->get_conf('DIST_NAME')); } } push(@command, "--user=" . $self->get_conf('WANNA_BUILD_DB_USER')) if $self->get_conf('WANNA_BUILD_DB_USER'); push(@command, @_); return @command; } sub run_query { my $self = shift; my @command = $self->get_query(@_); $self->setup(); my $pipe = $self->get('Host')->run_command( { COMMAND => [@command], USER => $self->get_conf('USERNAME'), PRIORITY => 0, }); } sub pipe_query { my $self = shift; my @command = $self->get_query(@_); $self->setup(); my $pipe = $self->get('Host')->pipe_command( { COMMAND => [@command], USER => $self->get_conf('USERNAME'), PRIORITY => 0, DIR => getcwd(), STREAMERR => \*STDOUT, }); return $pipe; } sub pipe_query_out { my $self = shift; my @command = $self->get_query(@_); $self->setup(); my $pipe = $self->get('Host')->pipe_command( { COMMAND => [@command], USER => $self->get_conf('USERNAME'), PIPE => 'out', STREAMOUT => $devnull, PRIORITY => 0, }); return $pipe; } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Base.pm0000644000000000000000000000013112627410514015726 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 29 ctime=1451136984.12575993 sbuild-0.67.0/lib/Buildd/Base.pm0000644000175000017500000001162412627410514016553 0ustar00joschjosch00000000000000# Buildd common base functionality # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # # 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, see # . # ####################################################################### package Buildd::Base; use strict; use warnings; use IO::File; use Buildd qw(lock_file unlock_file); use Buildd::Client qw(); use Sbuild::Base; use Sbuild qw($devnull); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('PID', $$); $self->open_log(); return $self; } sub open_log ($) { my $self = shift; my $logfile = $self->get_conf('DAEMON_LOG_FILE'); my $log = IO::File->new("$logfile", O_CREAT|O_WRONLY|O_APPEND, 0640) or die "$0: Cannot open logfile $logfile: $!\n"; $log->autoflush(1); # Since we are a daemon, fully detach from terminal by reopening # stdout and stderr to redirect to the log file. Note messages # should be printed using log(), not printing directly to the # filehandle. This is a fallback only. open(STDOUT, '>&', $log) or warn "Can't redirect stderr\n"; open(STDERR, '>&', $log) or warn "Can't redirect stderr\n"; $self->set('Log Stream', $log); return $log; } sub close_log ($) { my $self = shift; # We can't close stdout and stderr, so redirect to /dev/null. open(STDOUT, '>&', $devnull) or warn "Can't redirect stderr\n"; open(STDERR, '>&', $devnull) or warn "Can't redirect stderr\n"; my $log = $self->get('Log Stream'); $self->set('Log Stream', undef); return $log->close(); } sub reopen_log ($) { my $self = shift; my $log = $self->get('Log Stream'); if ($self->close_log()) { $log = $self->open_log(); } return $log; } sub write_stats ($$$) { my $self = shift; my ($cat, $val) = @_; local( *F ); my $home = $self->get_conf('HOME'); lock_file( "$home/stats" ); open( F, ">>$home/stats/$cat" ); print F "$val\n"; close( F ); unlock_file( "$home/stats" ); } sub get_db_handle ($$) { my $self = shift; my $dist_config = shift; my $db = Buildd::Client->new($dist_config); $db->set('Log Stream', $self->get('Log Stream')); return $db; } sub get_dist_config_by_name ($$) { my $self = shift; my $dist_name = shift; my $dist_config; for my $dist_config_entry (@{$self->get_conf('DISTRIBUTIONS')}) { if ($dist_config_entry->get('DIST_NAME') eq $dist_name) { $dist_config = $dist_config_entry; } } if (!$dist_config) { $self->set('Mail Short Error', $self->get('Mail Short Error') . "No configuration found for dist $dist_name\n"); $self->set('Mail Error', $self->get('Mail Error') . "Answer could not be processed, as dist=$dist_name does not match any of\n". "the entries in the buildd configuration.\n"); } return $dist_config; } sub get_arch_dist_config_by_name ($$) { my $self = shift; my $arch_name = shift; my $dist_name = shift; my $arch_config, my $dist_config; for my $dist_config_entry (@{$self->get_conf('DISTRIBUTIONS')}) { if ($dist_config_entry->get('BUILT_ARCHITECTURE') eq $arch_name && $dist_config_entry->get('DIST_NAME') eq $dist_name) { $dist_config = $dist_config_entry; } } if (!$dist_config) { $self->set('Mail Short Error', $self->get('Mail Short Error') . "No configuration found for arch=$arch_name, dist=$dist_name\n"); $self->set('Mail Error', $self->get('Mail Error') . "Answer could not be processed, as arch=$arch_name, dist=$dist_name". "does not match any of the entries in the buildd configuration.\n"); } return $dist_config; } sub log { my $self = shift; my $timestamp = localtime; # omit weekday and year for brevity $timestamp =~ s/^\w+\s(.*)\s\d+$/$1/; my $prefix = "$timestamp $Buildd::progname\[" . $self->get('PID') . "\]: "; for my $line (split(/\n/, join("", @_))) { Sbuild::Base::log($self, $prefix, $line, "\n"); } } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/UploadQueueConf.pm0000644000000000000000000000013212605405362020115 xustar0030 mtime=1444285170.648049667 30 atime=1451044743.162752739 30 ctime=1451136984.133759941 sbuild-0.67.0/lib/Buildd/UploadQueueConf.pm0000644000175000017500000000447212605405362020744 0ustar00joschjosch00000000000000# # Conf.pm: configuration library for buildd # Copyright © 1998 Roman Hodek # Copyright © 2005 Ryan Murray # Copyright © 2006-2009 Roger Leigh # # 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, see # . # ####################################################################### package Buildd::UploadQueueConf; use strict; use warnings; use Sbuild::ConfBase; use Sbuild::Sysconfig; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(new_hash setup read_hash); } sub new_hash (@); sub setup ($); sub read_hash ($$); sub new_hash (@) { my %opts = @_; my $queue_config = Sbuild::ConfBase->new(%opts); Buildd::UploadQueueConf::setup($queue_config); Buildd::UploadQueueConf::read_hash($queue_config, $opts{'HASH'}); return $queue_config; } sub setup ($) { my $conf = shift; my $validate_directory_in_home = sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $directory = $conf->get($key); my $home_directory = $conf->get('HOME'); die "$key directory is not defined" if !defined($directory) || !$directory; die "$key directory '$home_directory/$directory' does not exist" if !-d $home_directory . "/" . $directory; }; my %dupload_queue_keys = ( 'DUPLOAD_LOCAL_QUEUE_DIR' => { CHECK => $validate_directory_in_home, DEFAULT => 'upload' }, 'DUPLOAD_ARCHIVE_NAME' => { DEFAULT => 'anonymous-ftp-master' }, ); $conf->set_allowed_keys(\%dupload_queue_keys); Buildd::ClientConf::setup($conf); } sub read_hash ($$) { my $conf = shift; my $data = shift; for my $key (keys %$data) { $conf->set($key, $data->{$key}); } } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665016600 xustar0030 mtime=1451136949.445714178 30 atime=1451136977.877751671 30 ctime=1451136984.121759926 sbuild-0.67.0/lib/Buildd/Makefile.in0000644000175000017500000003666412637513665017437 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2009 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am subdir = lib/Buildd ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(perlmodbuildddir)" DATA = $(perlmodbuildd_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) perlmodbuildddir = $(perlmoddir)/Buildd MODULES = \ Base.pm \ Client.pm \ ClientConf.pm \ Conf.pm \ DistConf.pm \ UploadQueueConf.pm \ Daemon.pm \ Mail.pm \ Uploader.pm \ Watcher.pm perlmodbuildd_DATA = \ $(MODULES) EXTRA_DIST = \ $(MODULES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Buildd/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu lib/Buildd/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-perlmodbuilddDATA: $(perlmodbuildd_DATA) @$(NORMAL_INSTALL) @list='$(perlmodbuildd_DATA)'; test -n "$(perlmodbuildddir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(perlmodbuildddir)'"; \ $(MKDIR_P) "$(DESTDIR)$(perlmodbuildddir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(perlmodbuildddir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(perlmodbuildddir)" || exit $$?; \ done uninstall-perlmodbuilddDATA: @$(NORMAL_UNINSTALL) @list='$(perlmodbuildd_DATA)'; test -n "$(perlmodbuildddir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(perlmodbuildddir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(perlmodbuildddir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-perlmodbuilddDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-perlmodbuilddDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-perlmodbuilddDATA install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-perlmodbuilddDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Makefile.am0000644000000000000000000000013212605405362016554 xustar0030 mtime=1444285170.648049667 30 atime=1451136876.853619154 30 ctime=1451136984.121759926 sbuild-0.67.0/lib/Buildd/Makefile.am0000644000175000017500000000211612605405362017374 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2009 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk perlmodbuildddir = $(perlmoddir)/Buildd MODULES = \ Base.pm \ Client.pm \ ClientConf.pm \ Conf.pm \ DistConf.pm \ UploadQueueConf.pm \ Daemon.pm \ Mail.pm \ Uploader.pm \ Watcher.pm perlmodbuildd_DATA = \ $(MODULES) EXTRA_DIST = \ $(MODULES) sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Daemon.pm0000644000000000000000000000013212627410514016260 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136984.133759941 sbuild-0.67.0/lib/Buildd/Daemon.pm0000644000175000017500000006716512627410514017117 0ustar00joschjosch00000000000000# buildd: daemon to automatically build packages # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### package Buildd::Daemon; use strict; use warnings; use POSIX; use Buildd qw(isin lock_file unlock_file send_mail exitstatus); use Buildd::Conf qw(); use Buildd::Base; use Sbuild qw($devnull df); use Sbuild::Sysconfig; use Sbuild::ChrootRoot; use Buildd::Client; use Cwd; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Buildd::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('Daemon', 0); return $self; } sub ST_MTIME () { 9 } sub run { my $self = shift; my $host = Sbuild::ChrootRoot->new($self->get('Config')); $host->set('Log Stream', $self->get('Log Stream')); $self->set('Host', $host); $host->begin_session() or die "Can't begin session\n"; my $my_binary = $0; $my_binary = cwd . "/" . $my_binary if $my_binary !~ m,^/,; $self->set('MY_BINARY', $my_binary); my @bin_stats = stat( $my_binary ); die "Cannot stat $my_binary: $!\n" if !@bin_stats; $self->set('MY_BINARY_TIME', $bin_stats[ST_MTIME]); chdir( $self->get_conf('HOME') . "/build" ) or die "Can't cd to " . $self->get_conf('HOME') . "/build: $!\n"; open( STDIN, "get_conf('PIDFILE') )) { my $pid = ; close( PID ); $pid =~ /^[[:space:]]*(\d+)/; $pid = $1; if (!$pid || (kill( 0, $pid ) == 0 && $! == ESRCH)) { warn "Removing stale pid file (process $pid dead)\n"; } else { die "Another buildd (pid $pid) is already running.\n"; } } if (!@{$self->get_conf('DISTRIBUTIONS')}) { die "distribution list is empty, aborting."; } if (!$self->get_conf('NO_DETACH')) { defined(my $pid = fork) or die "can't fork: $!\n"; exit if $pid; # parent exits setsid or die "can't start a new session: $!\n"; } $self->set('PID', $$); # Needed for cleanup $self->set('Daemon', 1); open( PID, ">" . $self->get_conf('PIDFILE') ) or die "can't create " . $self->get_conf('PIDFILE') . ": $!\n"; printf PID "%5d\n", $self->get('PID'); close( PID ); $self->log("Daemon started. (pid=$$)\n"); undef $ENV{'DISPLAY'}; # the main loop MAINLOOP: while( 1 ) { $self->check_restart(); my ( $dist_config, $pkg_ver) = get_next_REDO($self); $self->do_build( $dist_config, $pkg_ver) if $pkg_ver; next MAINLOOP if $pkg_ver; ( $dist_config, $pkg_ver) = get_next_WANNABUILD($self); $self->do_build( $dist_config, $pkg_ver) if $pkg_ver; next MAINLOOP if $pkg_ver; # sleep a little bit if there was nothing to do this time $self->log("Nothing to do -- sleeping " . $self->get_conf('IDLE_SLEEP_TIME') . " seconds\n"); my $idle_start_time = time; sleep( $self->get_conf('IDLE_SLEEP_TIME') ); my $idle_end_time = time; $self->write_stats("idle-time", $idle_end_time - $idle_start_time); } return 0; } sub get_next_WANNABUILD { my $self = shift; foreach my $dist_config (@{$self->get_conf('DISTRIBUTIONS')}) { $self->check_ssh_master($dist_config); my $dist_name = $dist_config->get('DIST_NAME'); my %givenback = $self->read_givenback(); my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query( ($dist_config->get('WANNA_BUILD_API') ? '--api '.$dist_config->get('WANNA_BUILD_API') : ''), '--list=needs-build', ($dist_config->get('WANNA_BUILD_MIN_AGE') ? '--min-age '.$dist_config->get('WANNA_BUILD_MIN_AGE') : ''), ); if (!$pipe) { $self->log("Can't spawn wanna-build --list=needs-build: $!\n"); next MAINLOOP; } my($pkg_ver, $total, $nonex, $lowprio_pkg_ver); while( <$pipe> ) { my $socket = $dist_config->get('WANNA_BUILD_SSH_SOCKET'); if ($socket && (/^Couldn't connect to $socket: Connection refused[\r]?$/ || /^Control socket connect\($socket\): Connection refused[\r]?$/)) { unlink($socket); $self->check_ssh_master($dist_config); next; } elsif (/^Total (\d+) package/) { $total = $1; next; } elsif (/^Database for \S+ doesn.t exist/) { $nonex = 1; } next if $nonex; next if defined($pkg_ver); #we only want one! my @line = (split( /\s+/, $_)); my $pv = $line[0]; my $no_build_regex = $dist_config->get('NO_BUILD_REGEX'); my $build_regex = $dist_config->get('BUILD_REGEX'); next if $no_build_regex && $pv =~ m,$no_build_regex,; next if $build_regex && $pv !~ m,$build_regex,; $pv =~ s,^.*/,,; my $p; ($p = $pv) =~ s/_.*$//; next if isin( $p, @{$dist_config->get('NO_AUTO_BUILD')} ); next if $givenback{$pv}; if (isin( $p, @{$dist_config->get('WEAK_NO_AUTO_BUILD')} )) { # only consider the first lowprio item if there are # multiple ones next if defined($lowprio_pkg_ver); $lowprio_pkg_ver = $pv; next; } $pkg_ver = $pv; } close( $pipe ); next if $nonex; if ($?) { $self->log("wanna-build --list=needs-build --dist=${dist_name} failed; status ", exitstatus($?), "\n"); next; } $self->log("${dist_name}: total $total packages to build.\n") if defined($total); # Build weak_no_auto packages before the next dist if (!defined($pkg_ver) && defined($lowprio_pkg_ver)) { $pkg_ver = $lowprio_pkg_ver; } next if !defined($pkg_ver); my $todo = $self->do_wanna_build( $dist_config, $pkg_ver ); last if !$todo; return ( $dist_config, $todo ); } } sub get_next_REDO { my $self = shift; my ( $dist_config, $pkg_ver); foreach my $current_dist_config (@{$self->get_conf('DISTRIBUTIONS')}) { $pkg_ver = $self->get_from_REDO( $current_dist_config ); $dist_config = $current_dist_config; last if defined($pkg_ver); } return ( $dist_config, $pkg_ver); } sub get_from_REDO { my $self = shift; my $wanted_dist_config = shift; my $ret = undef; local( *F ); lock_file( "REDO" ); goto end if ! -f "REDO"; if (!open( F, "log("File REDO exists, but can't open it: $!\n"); goto end; } my @lines = ; close( F ); $self->block_signals(); if (!open( F, ">REDO" )) { $self->log("Can't open REDO for writing: $!\n", "Raw contents:\n@lines\n"); goto end; } foreach (@lines) { if (!/^(\S+)\s+(\S+)(?:\s*|\s+(\d+)\s+(\S.*))?$/) { $self->log("Ignoring/deleting bad line in REDO: $_"); next; } my($pkg, $dist, $binNMUver, $changelog) = ($1, $2, $3, $4); if ($dist eq $wanted_dist_config->get('DIST_NAME') && !defined($ret)) { $ret = {'pv' => $pkg }; if (defined $binNMUver) { $ret->{'changelog'} = $changelog; $ret->{'binNMU'} = $binNMUver; } } else { print F $_; } } close( F ); end: unlock_file( "REDO" ); $self->unblock_signals(); return $ret; } sub add_given_back ($$) { my $self = shift; my $pkg_ver = shift; local( *F ); lock_file("SBUILD-GIVEN-BACK", 0); if (open( F, ">>SBUILD-GIVEN-BACK" )) { print F $pkg_ver . " " . time() . "\n"; close( F ); } else { $self->log("Can't open SBUILD-GIVEN-BACK: $!\n"); } unlock_file("SBUILD-GIVEN-BACK"); } sub read_givenback { my $self = shift; my %gb; my $now = time; local( *F ); lock_file( "SBUILD-GIVEN-BACK" ); if (open( F, "; close( F ); } if (open( F, ">SBUILD-GIVEN-BACK" )) { foreach (keys %gb) { if ($now - $gb{$_} > $self->get_conf('DELAY_AFTER_GIVE_BACK') *60) { delete $gb{$_}; } else { print F "$_ $gb{$_}\n"; } } close( F ); } else { $self->log("Can't open SBUILD-GIVEN-BACK: $!\n"); } unlock: unlock_file( "SBUILD-GIVEN-BACK" ); return %gb; } sub do_wanna_build { my $self = shift; my $dist_config = shift; my $pkgver = shift; my @output = (); my $ret = undef; my $n = 0; $self->block_signals(); my $db = $self->get_db_handle($dist_config); if ($dist_config->get('WANNA_BUILD_API') >= 1) { use YAML::Tiny; my $pipe = $db->pipe_query( '--api '.$dist_config->get('WANNA_BUILD_API'), $pkgver); unless ($pipe) { $self->unblock_signals(); $self->log("Can't spawn wanna-build: $!\n"); return undef; } local $/ = undef; my $yaml = <$pipe>; $yaml =~ s,^update transactions:.*$,,m; # get rid of simulate output in case simulate is specified above $self->log($yaml); $yaml = YAML::Tiny->read_string($yaml); $yaml = $yaml->[0]; foreach my $pkgv (@$yaml) { my $pkg = (keys %$pkgv)[0]; my $pkgd; foreach my $k (@{$pkgv->{$pkg}}) { foreach my $l (keys %$k) { $pkgd->{$l} = $k->{$l}; } }; if ($pkgd->{'status'} ne 'ok') { $self->log("Can't take $pkg: $pkgd->{'status'}\n"); next; } $ret = { 'pv' => $pkgver }; # fix SHOULD_BUILD_MSGS # if ($self->get_conf('SHOULD_BUILD_MSGS')) { # $self->handle_prevfailed( $dist_config, grep( /^\Q$pkg\E_/, @_ ) ); # } else { # push( @output, grep( /^\Q$pkg\E_/, @_ ) ); my $fields = { 'changelog' => 'extra-changelog', 'binNMU' => 'binNMU', 'extra-depends' => 'extra-depends', 'extra-conflicts' => 'extra-conflicts', 'build_dep_resolver' => 'build_dep_resolver', 'arch_all' => 'arch_all', 'mail_logs' => 'mail_logs', }; for my $f (keys %$fields) { $ret->{$f} = $pkgd->{$fields->{$f}} if $pkgd->{$fields->{$f}}; } last; } close( $pipe ); $self->unblock_signals(); $self->write_stats("taken", $n) if $n; return $ret; } my $pipe = $db->pipe_query( '-v', $pkgver); if ($pipe) { while( <$pipe> ) { next if /^wanna-build Revision/; if (/^(\S+):\s*ok/) { $ret = { 'pv' => $pkgver }; ++$n; } elsif (/^(\S+):.*NOT OK/) { my $pkg = $1; my $nextline = <$pipe>; chomp( $nextline ); $nextline =~ s/^\s+//; $self->log("Can't take $pkg: $nextline\n"); } elsif (/^(\S+):.*previous version failed/i) { my $pkg = $1; ++$n; if ($self->get_conf('SHOULD_BUILD_MSGS')) { $self->handle_prevfailed( $dist_config, $pkgver ); } else { $ret = { 'pv' => $pkgver }; } # skip until ok line while( <$pipe> ) { last if /^\Q$pkg\E:\s*ok/; } } elsif (/^(\S+):.*needs binary NMU (\d+)/) { my $pkg = $1; my $binNMUver = $2; chop (my $changelog = <$pipe>); my $newpkg; ++$n; push( @output, grep( /^\Q$pkg\E_/, @_ ) ); $ret = { 'pv' => $pkgver }; $ret->{'changelog'} = $changelog; $ret->{'binNMU'} = $binNMUver; # skip until ok line while( <$pipe> ) { last if /^\Q$pkg\E:\s*aok/; } } } close( $pipe ); $self->unblock_signals(); $self->write_stats("taken", $n) if $n; return $ret; } else { $self->unblock_signals(); $self->log("Can't spawn wanna-build: $!\n"); return undef; } } sub should_skip { my $self = shift; my $pkgv = shift; my $found = 0; $self->lock_file("SKIP", 0); goto unlock if !open( F, "SKIP" ); my @pkgs = ; close(F); if (!open( F, ">SKIP" )) { $self->log("Can't open SKIP for writing: $!\n", "Would write: @pkgs\nminus $pkgv\n"); goto unlock; } foreach (@pkgs) { if (/^\Q$pkgv\E$/) { ++$found; $self->log("$pkgv found in SKIP file -- skipping building it\n"); } else { print F $_; } } close( F ); unlock: $self->unlock_file("SKIP"); return $found; } sub do_build { my $self = shift; my $dist_config = shift; my $todo = shift; # $todo = { 'pv' => $pkg_ver, 'changelog' => $binNMUlog->{$pkg_ver}, 'binNMU' => $binNMUver; }; # If the package to build is in SKIP, then skip. if ($self->should_skip($todo->{'pv'})) { return; } my $free_space; while (($free_space = df(".")) < $self->get_conf('MIN_FREE_SPACE')) { $self->log("Delaying build, because free space is low ($free_space KB)\n"); my $idle_start_time = time; sleep( 10*60 ); my $idle_end_time = time; $self->write_stats("idle-time", $idle_end_time - $idle_start_time); } $self->log("Starting build (dist=" . $dist_config->get('DIST_NAME') . ") of " .($todo->{'binNMU'} ? "!".$todo->{'binNMU'}."!" : "") ."$todo->{'pv'}\n"); $self->write_stats("builds", 1); my @sbuild_args = (); if ($self->get_conf('NICE_LEVEL') != 0) { @sbuild_args = ( 'nice', '-n', $self->get_conf('NICE_LEVEL') ); } push @sbuild_args, 'sbuild', '--apt-update', '--no-apt-upgrade', '--no-apt-distupgrade', '--batch', "--stats-dir=" . $self->get_conf('HOME') . "/stats", "--dist=" . $dist_config->get('DIST_NAME'); push @sbuild_args, "--sbuild-mode=buildd"; push @sbuild_args, "--mailfrom=".$dist_config->get('MAILFROM') if $dist_config->get('MAILFROM'); push @sbuild_args, "--maintainer=".$dist_config->get('MAINTAINER_NAME') if $dist_config->get('MAINTAINER_NAME'); if ($dist_config->get('SIGN_WITH')) { push @sbuild_args, '--keyid=' . $dist_config->get('SIGN_WITH'); } #multi-archive-buildd keeps the mailto configuration in the builddrc, so #this needs to be passed over to sbuild. If the buildd config doesn't have #it, we hope that the address is configured in .sbuildrc and the right one: if ($dist_config->get('LOGS_MAILED_TO')) { push @sbuild_args, '--mail-log-to=' . $dist_config->get('LOGS_MAILED_TO'); } elsif ($dist_config->get('LOGS_MAIL_ALSO') || $todo->{'mail_logs'}) { push @sbuild_args, '--mail-log-to=' . join (',', grep { $_ } ($dist_config->get('LOGS_MAIL_ALSO'), $todo->{'mail_logs'})); } #Some distributions (bpo, experimental) require a more complex dep resolver. #Ask sbuild to use another build-dep resolver if the config says so: if ($dist_config->get('BUILD_DEP_RESOLVER') || $todo->{'build_dep_resolver'}) { push @sbuild_args, '--build-dep-resolver=' . ($dist_config->get('BUILD_DEP_RESOLVER') || $todo->{'build_dep_resolver'}); } # Check if we need to build the arch:all. if (defined($todo->{'arch_all'}) && $todo->{'arch_all'}) { push @sbuild_args, '--arch-all'; } if ($dist_config->get('BUILT_ARCHITECTURE')) { if ($dist_config->get('BUILT_ARCHITECTURE') eq 'all') { push ( @sbuild_args, "--arch-all-only" ); } else { push ( @sbuild_args, "--arch=" . $dist_config->get('BUILT_ARCHITECTURE') ); } } push ( @sbuild_args, "--chroot=" . $dist_config->get('SBUILD_CHROOT') ) if $dist_config->get('SBUILD_CHROOT'); push ( @sbuild_args, "--binNMU=$todo->{'binNMU'}") if $todo->{'binNMU'}; push ( @sbuild_args, "--make-binNMU=$todo->{'changelog'}") if $todo->{'changelog'}; push ( @sbuild_args, "--add-conflicts=$todo->{'extra-conflicts'}") if $todo->{'extra-conflicts'}; push ( @sbuild_args, "--add-depends=$todo->{'extra-depends'}") if $todo->{'extra-depends'}; push @sbuild_args, $todo->{'pv'}; $self->log("command line: @sbuild_args\n"); $main::sbuild_pid = open(SBUILD_OUT, "-|"); #We're childish, so call sbuild: if ($main::sbuild_pid == 0) { { exec (@sbuild_args) }; $self->log("Cannot execute sbuild: $!\n"); exit(64); } if (!defined $main::sbuild_pid) { $self->log("Cannot fork for sbuild: $!\n"); goto failed; } #We want to collect the first few lines of sbuild output: my ($sbuild_output_line_count, @sbuild_output_buffer) = (0, ()); while () { #5 lines are enough: if (++$sbuild_output_line_count < 5) { push @sbuild_output_buffer, $_; } } #We got enough output, now just wait for sbuild to die: my $rc; while (($rc = wait) != $main::sbuild_pid) { if ($rc == -1) { last if $! == ECHILD; next if $! == EINTR; $self->log("wait for sbuild: $!; continuing to wait\n"); } elsif ($rc != $main::sbuild_pid) { $self->log("wait for sbuild: returned unexpected pid $rc\n"); } } my $sbuild_exit_code = $?; undef $main::sbuild_pid; close(SBUILD_OUT); #Process sbuild's results: my $db = $self->get_db_handle($dist_config); my $failed = 1; my $giveback = 1; if (WIFEXITED($sbuild_exit_code)) { my $status = WEXITSTATUS($sbuild_exit_code); if ($status == 0) { $failed = 0; $giveback = 0; $self->log("sbuild of $todo->{'pv'} succeeded -- marking as built in wanna-build\n"); $db->run_query('--built', '--dist=' . $dist_config->get('DIST_NAME'), $todo->{'pv'}); if ($dist_config->get('SIGN_WITH') && $dist_config->get('BUILT_ARCHITECTURE')) { # XXX: Check if signature is present. $self->move_to_upload($dist_config, $todo->{'pv'}, $todo->{'binNMU'}); } } elsif ($status == 2) { $giveback = 0; $self->log("sbuild of $todo->{'pv'} failed with status $status (build failed) -- marking as attempted in wanna-build\n"); $db->run_query('--attempted', '--dist=' . $dist_config->get('DIST_NAME'), $todo->{'pv'}); $self->write_stats("failed", 1); } else { $self->log("sbuild of $todo->{'pv'} failed with status $status (local problem) -- giving back\n"); } } elsif (WIFSIGNALED($sbuild_exit_code)) { my $sig = WTERMSIG($sbuild_exit_code); $self->log("sbuild of $todo->{'pv'} failed with signal $sig (local problem) -- giving back\n"); } else { $self->log("sbuild of $todo->{'pv'} failed with unknown reason (local problem) -- giving back\n"); } if ($giveback) { $db->run_query('--give-back', '--dist=' . $dist_config->get('DIST_NAME'), $todo->{'pv'}); $self->add_given_back($todo->{'pv'}); $self->write_stats("give-back", 1); } # Check if we encountered some local error to stop further building if ($giveback) { if (!defined $main::sbuild_fails) { $main::sbuild_fails = 0; } $main::sbuild_fails++; if ($main::sbuild_fails > $self->get_conf('MAX_SBUILD_FAILS')) { $self->log("sbuild now failed $main::sbuild_fails times in ". "a row; going to sleep\n"); send_mail( $self->get_conf('ADMIN_MAIL'), "Repeated mess with sbuild", <write_stats("idle-time", $idle_end_time - $idle_start_time); EOF $main::sbuild_fails = 0; } } else { # Either a build success or an attempted build will cause the # counter to reset. $main::sbuild_fails = 0; } $self->log("Build finished.\n"); } sub move_to_upload { my $self = shift; my $dist_config = shift; my $pv = shift; my $binNMUver = shift; my $arch = $dist_config->get('BUILT_ARCHITECTURE'); my $upload_dir = $dist_config->get('DUPLOAD_LOCAL_QUEUE_DIR'); if ($binNMUver) { $pv .= '+b' . $binNMUver; } my $pkg_noepoch = $pv; $pkg_noepoch =~ s/_\d*:/_/; my $changes_name = $pkg_noepoch . '_' . $arch . '.changes'; $self->log("$pv is autosigned, moving to '$upload_dir'\n"); system sprintf('dcmd mv %s/build/%s %s/%s/', $self->get_conf('HOME'), $changes_name, $self->get_conf('HOME'), $dist_config->get('DUPLOAD_LOCAL_QUEUE_DIR')); $self->log("$pv moved to '$upload_dir'\n"); } sub handle_prevfailed { my $self = shift; my $dist_config = shift; my $pkgv = shift; my $dist_name = $dist_config->get('DIST_NAME'); my( $pkg, $fail_msg, $changelog); $self->log("$pkgv previously failed -- asking admin first\n"); ($pkg = $pkgv) =~ s/_.*$//; my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query( '--info', $pkg); if (!$pipe) { $self->log("Can't run wanna-build: $!\n"); return; } $fail_msg = ""; while (<$pipe>) { $fail_msg .= $_; } close($pipe); if ($?) { $self->log("wanna-build exited with error $?\n"); return; } send_mail( $self->get_conf('ADMIN_MAIL'), "Should I build $pkgv (dist=${dist_name})?", "The package $pkg failed to build in a previous version. ". "The fail\n". "messages are:\n\n$fail_msg\n". "Should buildd try to build the new version, or should it ". "fail with the\n". "same messages again.? Please answer with 'build' (or 'ok'), ". "or 'fail'.\n" ); } sub get_changelog { # This method is currently broken. It makes some assumptions about source # layout that are no longer true. Furthermore it tries fetching through # the host instead of creating a session (which is necessary for snapshot- # based chroots) and work in the chroot. my $self = shift; my $dist_config = shift; my $pkg = shift; my $dist_name = $dist_config->get('DIST_NAME'); my $changelog = ""; my $analyze = ""; my $chroot_apt_options; my $file; my $retried = 0; $pkg =~ /^([\w\d.+-]+)_([\w\d:.~+-]+)/; my ($n, $v) = ($1, $2); (my $v_ne = $v) =~ s/^\d+://; my $pkg_ne = "${n}_${v_ne}"; retry: my @schroot = ($self->get_conf('SCHROOT'), '-c', $dist_name . '-' . $self->get_conf('ARCH') . '-sbuild', '--'); my @schroot_root = ($self->get_conf('SCHROOT'), '-c', $dist_name . '-' . $self->get_conf('ARCH') . '-sbuild', '-u', 'root', '--'); my $apt_get = $self->get_conf('APT_GET'); my $pipe = $self->get('Host')->pipe_command( { COMMAND => [@schroot, "$apt_get", '-q', '-d', '--diff-only', 'source', "$n=$v"], USER => $self->get_conf('USERNAME'), PRIORITY => 0, }); if (!$pipe) { $self->log("Can't run schroot: $!\n"); return; } my $msg = ""; while (<$pipe>) { $msg .= $_; } close($pipe); if ($? == 0 && $msg !~ /get 0B/) { $analyze = "diff"; $file = "${n}_${v_ne}.diff.gz"; } if (!$analyze) { my $pipe2 = $self->get('Host')->pipe_command( { COMMAND => [@schroot, "$apt_get", '-q', '-d', '--tar-only', 'source', "$n=$v"], USER => $self->get_conf('USERNAME'), PRIORITY => 0, }); if (!$pipe2) { $self->log("Can't run schroot: $!\n"); return; } my $msg = <$pipe2>; close($pipe2); if ($? == 0 && $msg !~ /get 0B/) { $analyze = "tar"; $file = "${n}_${v_ne}.tar.gz"; } } if (!$analyze && !$retried) { $self->get('Host')->run_command( { COMMAND => [@schroot_root, $apt_get, '-qq', 'update'], USER => $self->get_conf('USERNAME'), PRIORITY => 0, STREAMOUT => $devnull }); $retried = 1; goto retry; } return "ERROR: cannot find any source" if !$analyze; if ($analyze eq "diff") { if (!open( F, "gzip -dc '$file' 2>/dev/null |" )) { return "ERROR: Cannot spawn gzip to zcat $file: $!"; } while( ) { # look for header line of a file */debian/changelog last if m,^\+\+\+\s+[^/]+/debian/changelog(\s+|$),; } while( ) { last if /^---/; # end of control changelog patch next if /^\@\@/; $changelog .= "$1\n" if /^\+(.*)$/; last if /^\+\s+--\s+/; } while( ) { } # read to end of file to avoid broken pipe close( F ); if ($?) { return "ERROR: error status ".exitstatus($?)." from gzip on $file"; } unlink( $file ); } elsif ($analyze eq "tar") { if (!open( F, "tar -xzOf '$file' '*/debian/changelog' ". "2>/dev/null |" )) { return "ERROR: Cannot spawn tar for $file: $!"; } while( ) { $changelog .= $_; last if /^\s+--\s+/; } while( ) { } # read to end of file to avoid broken pipe close( F ); if ($?) { return "ERROR: error status ".exitstatus($?)." from tar on $file"; } unlink( $file ); } return $changelog; } sub check_restart { my $self = shift; my @stats = stat( $self->get('MY_BINARY') ); if (@stats && $self->get('MY_BINARY_TIME') != $stats[ST_MTIME]) { $self->log("My binary has been updated -- restarting myself (pid=$$)\n"); unlink( $self->get_conf('PIDFILE') ); kill ( 15, $main::ssh_pid ) if $main::ssh_pid; exec $self->get('MY_BINARY'); } if ( -f $self->get_conf('HOME') . "/EXIT-DAEMON-PLEASE" ) { unlink($self->get_conf('HOME') . "/EXIT-DAEMON-PLEASE"); $self->shutdown("NONE (flag file exit)"); } } sub block_signals { my $self = shift; POSIX::sigprocmask( SIG_BLOCK, $main::block_sigset ); } sub unblock_signals { my $self = shift; POSIX::sigprocmask( SIG_UNBLOCK, $main::block_sigset ); } sub check_ssh_master { my $self = shift; my $dist_config = shift; my $ssh_socket = $dist_config->get('WANNA_BUILD_SSH_SOCKET'); return 1 if (!$ssh_socket); return 1 if ( -S $ssh_socket ); my $ssh_master_pids = {}; if ($self->get('SSH_MASTER_PIDS')) { $ssh_master_pids = $self->get('SSH_MASTER_PIDS'); } else { $self->set('SSH_MASTER_PIDS', $ssh_master_pids); } if ($ssh_master_pids->{$ssh_socket}) { my $wpid = waitpid ( $ssh_master_pids->{$ssh_socket}, WNOHANG ); return 1 if ($wpid != -1 and $wpid != $ssh_master_pids->{$ssh_socket}); } my $new_master_pid = fork; #We are in the newly forked child: if (defined($new_master_pid) && $new_master_pid == 0) { exec (@{$dist_config->get('WANNA_BUILD_SSH_CMD')}, "-MN"); } #We are the parent: if (!defined $new_master_pid) { $self->log("Cannot fork for ssh master: $!\n"); return 0; } $ssh_master_pids->{$ssh_socket} = $new_master_pid; while ( ! -S $ssh_socket ) { sleep 1; my $wpid = waitpid ( $new_master_pid, WNOHANG ); return 0 if ($wpid == -1 or $wpid == $new_master_pid); } return 1; } sub shutdown { my $self = shift; my $signame = shift; $self->log("buildd ($$) received SIG$signame -- shutting down\n"); if ($self->get('SSH_MASTER_PIDS')) { my $ssh_master_pids = $self->get('SSH_MASTER_PIDS'); for my $ssh_socket (keys %{$ssh_master_pids}) { my $master_pid = $ssh_master_pids->{$ssh_socket}; kill ( 15, $master_pid ); delete ( $ssh_master_pids->{$ssh_socket} ); } } if (defined $main::sbuild_pid) { $self->log("Killing sbuild (pid=$main::sbuild_pid)\n"); kill( 15, $main::sbuild_pid ); $self->log("Waiting max. 2 minutes for sbuild to finish\n"); $SIG{'ALRM'} = sub ($) { die "timeout\n"; }; alarm( 120 ); eval "waitpid( $main::sbuild_pid, 0 )"; alarm( 0 ); if ($@) { $self->log("sbuild did not die!"); } else { $self->log("sbuild died normally"); } unlink( "SBUILD-REDO-DUMPED" ); } unlink( $self->get('Config')->get('PIDFILE') ); $self->log("exiting now\n"); $self->close_log(); exit 1; } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Conf.pm0000644000000000000000000000013212627410514015742 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136984.129759936 sbuild-0.67.0/lib/Buildd/Conf.pm0000644000175000017500000004145012627410514016566 0ustar00joschjosch00000000000000# # Conf.pm: configuration library for buildd # Copyright © 1998 Roman Hodek # Copyright © 2005 Ryan Murray # Copyright © 2006-2009 Roger Leigh # # 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, see # . # ####################################################################### package Buildd::Conf; use strict; use warnings; use Buildd::DistConf qw(); use Buildd::UploadQueueConf qw(); use Sbuild::ConfBase; use Sbuild::Sysconfig; use Buildd::ClientConf qw(); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw($reread_config new setup read); } our $reread_config = 0; sub setup ($); sub read ($); sub new { my $conf = Sbuild::ConfBase->new(@_); Buildd::Conf::setup($conf); Buildd::Conf::read($conf); return $conf; } sub setup ($) { my $conf = shift; my $validate_program = sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $program = $conf->get($key); die "$key binary is not defined" if !defined($program) || !$program; # Emulate execvp behaviour by searching the binary in the PATH. my @paths = split(/:/, $conf->get('PATH')); # Also consider the empty path for absolute locations. push (@paths, ''); my $found = 0; foreach my $path (@paths) { $found = 1 if (-x File::Spec->catfile($path, $program)); } die "$key binary '$program' does not exist or is not executable" if !$found; }; my $validate_directory = sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $directory = $conf->get($key); die "$key directory is not defined" if !defined($directory) || !$directory; die "$key directory '$directory' does not exist" if !-d $directory; }; our $HOME = $conf->get('HOME'); $main::HOME = $HOME; # TODO: Remove once Buildd.pm uses $conf my $arch = $conf->get('ARCH'); my %buildd_keys = ( 'ADMIN_MAIL' => { TYPE => 'STRING', VARNAME => 'admin_mail', GROUP => 'Mail', DEFAULT => 'root', HELP => 'email address for admin' }, 'APT_GET' => { TYPE => 'STRING', VARNAME => 'apt_get', GROUP => 'Programs', CHECK => $validate_program, DEFAULT => 'apt-get', HELP => 'Path to apt-get binary' }, 'BUILD_LOG_KEEP' => { TYPE => 'NUMERIC', VARNAME => 'build_log_keep', GROUP => 'Watcher', DEFAULT => 2, HELP => 'Number of days until build logs are archived' }, 'DAEMON_LOG_FILE' => { TYPE => 'STRING', VARNAME => 'daemon_log_file', GROUP => 'Daemon', DEFAULT => "$HOME/daemon.log", HELP => 'Main buildd daemon log file' }, 'DAEMON_LOG_KEEP' => { TYPE => 'NUMERIC', VARNAME => 'daemon_log_keep', GROUP => 'Watcher', DEFAULT => 7, HELP => 'Number of days until old daemon logs are archived in a .tar.gz file' }, 'DAEMON_LOG_ROTATE' => { TYPE => 'NUMERIC', VARNAME => 'daemon_log_rotate', GROUP => 'Watcher', DEFAULT => 1, HELP => 'Number how many days until daemon logs are rotated (one is kept as daemon.log.old, others are moved to old-logs and gzipped)' }, 'DAEMON_LOG_SEND' => { TYPE => 'BOOL', VARNAME => 'daemon_log_send', GROUP => 'Watcher', DEFAULT => 1, HELP => 'email rotated daemon logs to the admin?' }, 'DELAY_AFTER_GIVE_BACK' => { TYPE => 'NUMERIC', VARNAME => 'delay_after_give_back', GROUP => 'Daemon', DEFAULT => 8 * 60, # 8 hours HELP => 'Time to avoid packages that have automatically been given back by sbuild (in minutes)' }, 'ERROR_MAIL_WINDOW' => { TYPE => 'NUMERIC', VARNAME => 'error_mail_window', GROUP => 'Mail', DEFAULT => 8*60*60, HELP => 'If more than five error mails are received within the specified time (in seconds), do not forward (to avoid possible mail loops)' }, 'IDLE_SLEEP_TIME' => { TYPE => 'NUMERIC', VARNAME => 'idle_sleep_time', GROUP => 'Daemon', DEFAULT => 5*60, HELP => 'Time to sleep when idle (in seconds) between wanna-build --list=needs-build calls)' }, 'LOG_QUEUED_MESSAGES' => { TYPE => 'BOOL', VARNAME => 'log_queued_messages', GROUP => 'Mail', DEFAULT => 0, HELP => 'Log success messages from upload queue daemon?' }, 'MAX_SBUILD_FAILS' => { TYPE => 'NUMERIC', VARNAME => 'max_sbuild_fails', GROUP => 'Daemon', DEFAULT => 2, HELP => 'Maximum number of times sbuild can fail before sleeping' }, 'MIN_FREE_SPACE' => { TYPE => 'NUMERIC', VARNAME => 'min_free_space', GROUP => 'Daemon', DEFAULT => 50*1024, HELP => 'Minimum free space (in KiB) on build filesystem' }, 'NICE_LEVEL' => { TYPE => 'NUMERIC', VARNAME => 'nice_level', GROUP => 'Build options', DEFAULT => 10, HELP => 'Nice level to run sbuild. Dedicated build daemons should not be niced.' }, 'NO_DETACH' => { TYPE => 'BOOL', VARNAME => 'no_detach', GROUP => 'Daemon', DEFAULT => 0, HELP => 'Disable becoming a daemon, for debugging purposes. Set to 1 to stop daemonising, otherwise set to 0 to become a daemon.' }, 'NO_WARN_PATTERN' => { TYPE => 'STRING', VARNAME => 'no_warn_pattern', GROUP => 'Watcher', DEFAULT => '^build/(SKIP|REDO|SBUILD-GIVEN-BACK|buildd\.pid|[^/]*.ssh|chroot-[^/]*|current-[^/]*)$', HELP => 'Don\'t complain about old files if they match the regexp.' }, 'PIDFILE' => { TYPE => 'STRING', VARNAME => 'pidfile', GROUP => 'Daemon', # Set once running as a system service. # DEFAULT => "${Sbuild::Sysconfig::paths{'LOCALSTATEDIR'}/run/buildd.pid" DEFAULT => "$HOME/build/buildd.pid", HELP => 'PID file to identify running daemon.' }, 'PKG_LOG_KEEP' => { TYPE => 'NUMERIC', VARNAME => 'pkg_log_keep', GROUP => 'Watcher', DEFAULT => 7, HELP => 'Number of days until to package logs are archived' }, 'SHOULD_BUILD_MSGS' => { TYPE => 'BOOL', VARNAME => 'should_build_msgs', GROUP => 'Daemon', DEFAULT => 1, HELP => 'Should buildd send "Should I build" messages?' }, 'STATISTICS_MAIL' => { TYPE => 'STRING', VARNAME => 'statistics_mail', GROUP => 'Watcher', DEFAULT => 'root', HELP => 'email address for statistics summaries' }, 'STATISTICS_PERIOD' => { TYPE => 'NUMERIC', VARNAME => 'statistics_period', GROUP => 'Watcher', DEFAULT => 7, HELP => 'Period for statistic summaries (days)' }, 'SUDO' => { TYPE => 'STRING', VARNAME => 'sudo', GROUP => 'Programs', CHECK => $validate_program, DEFAULT => 'sudo', HELP => 'Path to sudo binary' }, 'WARNING_AGE' => { TYPE => 'NUMERIC', VARNAME => 'warning_age', GROUP => 'Watcher', DEFAULT => 7, HELP => 'Age (in days) after which a warning is issued for files in upload and dirs in build' }, 'CONFIG_TIME' => { TYPE => 'NUMERIC', VARNAME => 'config_time', GROUP => '__INTERNAL', DEFAULT => {}, HELP => 'Time configuration was last read' }, 'DISTRIBUTIONS' => { TYPE => 'ARRAY:HASH:SCALAR', VARNAME => 'distributions', GROUP => 'Build options', DEFAULT => [], IGNORE_DEFAULT => 1, # Don't dump class to config HELP => 'List of distributions that buildd should take packages from', EXAMPLE => '$distributions = [ { # name of the suite to build (also used to query wanna-build) dist_name => ["unstable", "testing"], # architecture to be built (will be passed to sbuild and can be # used to compute wanna_build_db_name) built_architecture => undef, # host on which wanna-build is run wanna_build_ssh_host => "buildd.debian.org", # user as who we are going to connect to the host running wanna-build wanna_build_ssh_user => "buildd_arch", # SSH control socket path for ssh -S option wanna_build_ssh_socket => "", # Additional SSH options used when connecting wanna_build_ssh_options => [], # database used for wanna-build wanna_build_db_name => "arch/build-db", # Username to use for wanna-build. wanna_build_db_user => $Buildd::username, # Local queue directory where binaries are stored before uploaded # by dupload. You need to configure this directory in # @upload_queues to get packages uploaded from there. dupload_local_queue_dir => "upload", # list of packages which shouldn\'t be picked up by buildd no_auto_build => [], # list of packages which should only be taken if there absolutely # nothing else to do (probably packages included in no_auto_build # because they take too long) weak_no_auto_build => [], # regex used to filter out unwanted packages: #no_build_regex => "^(contrib/|non-free/)?non-US/", # regex used to filter packages to build: #build_regex => "", # mail addr of buildd admin handling packages from this distribution logs_mailed_to => $admin_mail, # schroot name (or alias) of the chrooted environment to use for # building (will be passed to sbuild). sbuild\'s default is # the first of $distribution-$arch-sbuild, $distribution-sbuild, # $distribution-$arch and $distribution. sbuild_chroot => undef, } ];' }, 'UPLOAD_QUEUES' => { TYPE => 'ARRAY:HASH:SCALAR', VARNAME => 'upload_queues', GROUP => 'Uploader', DEFAULT => [], IGNORE_DEFAULT => 1, # Don't dump class to config HELP => 'Package upload queues', EXAMPLE => '$upload_queues = [ { # Local queue directory where binaries are stored before uploaded # by dupload. dupload_local_queue_dir => "upload", # Upload site for buildd-upload to pass to dupload(1); see # /etc/dupload.conf for possible values. dupload_archive_name => "anonymous-ftp-master", }, { # Local queue directory where binaries are stored before uploaded # by dupload. dupload_local_queue_dir => "upload-security", # Upload site for buildd-upload to pass to dupload(1); see # /etc/dupload.conf for possible values. dupload_archive_name => "security", } ];' }); $conf->set_allowed_keys(\%buildd_keys); Buildd::ClientConf::setup($conf); } sub read ($) { my $conf = shift; my $HOME = $conf->get('HOME'); my $global = $Sbuild::Sysconfig::paths{'BUILDD_CONF'}; my $user = "$HOME/.builddrc"; my %config_time = (); my $user_time = 0; my $reread = 0; sub ST_MTIME () { 9 } my @config_files = ($global, $user); $reread = 1 if $reread_config; foreach (@config_files) { if (-r $_) { $config_time{$_} = 0; my @stat = stat($_); if (!defined($conf->get('CONFIG_TIME')->{$_}) || $conf->get('CONFIG_TIME')->{$_} < $stat[ST_MTIME]) { $config_time{$_} = $stat[ST_MTIME]; $reread = 1; } } } # For compatibility only. Non-scalars are deprecated. my $deprecated_init = <set('SSH', \$1); #Try to pry the user out: if (\$rest =~ /(-l\\s*(\\S+))\\s+/) { \$wanna_build_ssh_user = \$2; #purge this from the rest: \$rest =~ s/\\Q\$1//; } elsif (\$rest =~ /\\s+(\\S+)\@/) { \$wanna_build_ssh_user = \$1; \$rest =~ s/\\Q\$1\\E\@//; } #Hope that the last argument is the host: if (\$rest =~ /\\s+(\\S+)\\s*\$/) { \$wanna_build_ssh_host = \$1; \$rest =~ s/\\Q\$1//; } #rest should be options: if (\$rest !~ /\\s*/) { \$wanna_build_ssh_options = [split \$rest]; } } if (\$sshsocket) { \$wanna_build_ssh_socket = \$sshsocket; } if (\$wanna_build_user) { \$wanna_build_db_user = \$wanna_build_user; } if (\$wanna_build_dbbase) { \$wanna_build_db_name = \$wanna_build_dbbase; } #Convert old config, if needed: my \@distributions_info; if (\@take_from_dists) { for my \$dist (\@take_from_dists) { my \%entry; \$entry{DIST_NAME} = \$dist; \$entry{SSH} = \$ssh; if (\$dist =~ /security/) { \$entry{DUPLOAD_LOCAL_QUEUE_DIR} = 'upload-security'; } if (\$build_regex) { \$entry{BUILD_REGEX} = \$build_regex; } if (\$no_build_regex) { \$entry{NO_BUILD_REGEX} = \$build_regex; } if (\@no_auto_build) { \$entry{NO_AUTO_BUILD} = \\\@no_auto_build; } if (\@weak_no_auto_build) { \$entry{WEAK_NO_AUTO_BUILD} = \\\@weak_no_auto_build; } \$entry{WANNA_BUILD_DB_NAME} = \$wanna_build_db_name; \$entry{WANNA_BUILD_DB_USER} = \$wanna_build_db_user; \$entry{WANNA_BUILD_SSH_HOST} = \$wanna_build_ssh_host; \$entry{WANNA_BUILD_SSH_USER} = \$wanna_build_ssh_user; \$entry{WANNA_BUILD_SSH_SOCKET} = \$wanna_build_ssh_socket; \$entry{WANNA_BUILD_SSH_OPTIONS} = \$wanna_build_ssh_options; \$entry{WANNA_BUILD_API} = 0; my \$dist_config = Buildd::DistConf::new_hash(CHECK=>$conf->{'CHECK'}, HASH=>\\\%entry); push \@distributions_info, \$dist_config; } } else { my \@dists = (); push \@dists, \@{\$distributions} if defined \$distributions; if (\@distributions) { warn 'W: \@distributions is deprecated; please use the array reference \$distributions[]\n'; push \@dists, \@distributions; } for my \$raw_entry (\@dists) { my \%entry; my \@dist_names; #Find out for which distributions this entry is intended: for my \$key (keys \%\$raw_entry) { if (uc(\$key) eq "DIST_NAME") { if (ref(\$raw_entry->{\$key}) eq "ARRAY") { push \@dist_names, \@{\$raw_entry->{\$key}}; } else { push \@dist_names, \$raw_entry->{\$key}; } } } for my \$key (keys \%\$raw_entry) { if (uc(\$key) ne "DIST_NAME") { \$entry{uc(\$key)} = \$raw_entry->{\$key}; } } for my \$key (keys \%\$defaults) { if (uc(\$key) ne "DIST_NAME" && not defined \$entry{uc(\$key)}) { \$entry{uc(\$key)} = \$defaults->{\$key}; } } \$entry{WANNA_BUILD_API} //= 1; #We need this to pass this to Buildd::Client: \$entry{SSH} = \$ssh; #Make one entry per distribution, it's easier later on: for my \$dist (\@dist_names) { \$entry{'DIST_NAME'} = \$dist; my \$dist_config = Buildd::DistConf::new_hash(HASH=>\\\%entry); push \@distributions_info, \$dist_config; } } } \$conf->set('DISTRIBUTIONS', \\\@distributions_info); my \@queues = (); push \@queues, \@{\$upload_queues} if defined \$upload_queues; if (\@upload_queues) { warn 'W: \@upload_queues is deprecated; please use the array reference \$upload_queues[]\n'; push \@queues, \@upload_queues; } if (\@queues) { my \@upload_queue_configs; for my \$raw_entry (\@queues) { my \%entry; for my \$key (keys \%\$raw_entry) { \$entry{uc(\$key)} = \$raw_entry->{\$key}; } my \$queue_config = Buildd::UploadQueueConf::new_hash(CHECK=>$conf->{'CHECK'}, HASH=>\\\%entry); push \@upload_queue_configs, \$queue_config; } \$conf->set('UPLOAD_QUEUES', \\\@upload_queue_configs); } else { push \@{\$conf->get('UPLOAD_QUEUES')}, Buildd::UploadQueueConf::new_hash(CHECK=>$conf->{'CHECK'}, HASH=> { DUPLOAD_LOCAL_QUEUE_DIR => 'upload', DUPLOAD_ARCHIVE_NAME => 'anonymous-ftp-master' } ), Buildd::UploadQueueConf::new_hash(CHECK=>$conf->{'CHECK'}, HASH=> { DUPLOAD_LOCAL_QUEUE_DIR => 'upload-security', DUPLOAD_ARCHIVE_NAME => 'security' } ); } # Set here to allow user to override. if (-t STDIN && -t STDOUT && \$conf->get('NO_DETACH')) { \$conf->_set_default('VERBOSE', 1); } else { \$conf->_set_default('VERBOSE', 0); } END $conf->read(\@config_files, $deprecated_init, $deprecated_setup, $custom_setup); # Update times if ($reread) { foreach (@config_files) { if (-r $_) { $conf->get('CONFIG_TIME')->{$_} = $config_time{$_}; } } } } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/ClientConf.pm0000644000000000000000000000012712637266600017113 xustar0029 mtime=1451060608.61072331 29 atime=1451060625.31875086 29 ctime=1451136984.12575993 sbuild-0.67.0/lib/Buildd/ClientConf.pm0000644000175000017500000001203612637266600017731 0ustar00joschjosch00000000000000# # ClientConf.pm: configuration library for wanna-build clients # Copyright © 1998 Roman Hodek # Copyright © 2005 Ryan Murray # Copyright © 2006-2009 Roger Leigh # # 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, see # . # ####################################################################### package Buildd::ClientConf; use strict; use warnings; use Sbuild::Sysconfig; use File::Spec; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(setup); } sub setup ($) { my $conf = shift; my $validate_program = sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $program = $conf->get($key); die "$key binary is not defined" if !defined($program) || !$program; # Emulate execvp behaviour by searching the binary in the PATH. my @paths = split(/:/, $ENV{'PATH'}); # Also consider the empty path for absolute locations. push (@paths, ''); my $found = 0; foreach my $path (@paths) { $found = 1 if (-x File::Spec->catfile($path, $program)); } die "$key binary '$program' does not exist or is not executable" if !$found; }; my $validate_ssh = sub { my $conf = shift; my $entry = shift; # TODO: Provide self, config and entry contexts, which functions to # get at needed data. Provide generic configuration functions. # $validate_program->($conf, $conf->{'KEYS'}->{'SSH'}); my $ssh = $conf->get('SSH'); my $sshuser = $conf->get('WANNA_BUILD_SSH_USER'); my $sshhost = $conf->get('WANNA_BUILD_SSH_HOST'); my @sshoptions = @{$conf->get('WANNA_BUILD_SSH_OPTIONS')}; my $sshsocket = $conf->get('WANNA_BUILD_SSH_SOCKET'); my @command = (); if ($sshhost) { push (@command, $ssh); push (@command, '-l', $sshuser) if $sshuser; push (@command, '-S', $sshsocket) if $sshsocket; push (@command, @sshoptions) if @sshoptions; push (@command, $sshhost); } $conf->set('WANNA_BUILD_SSH_CMD', \@command); }; our $HOME = $conf->get('HOME'); my $arch = $conf->get('ARCH'); my %db_keys = ( 'SSH' => { TYPE => 'STRING', VARNAME => 'ssh', GROUP => 'Programs', DEFAULT => 'ssh', CHECK => $validate_ssh, HELP => 'Path to ssh binary' }, 'WANNA_BUILD_SSH_CMD' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => '', HELP => 'Command to run wanna-build (set automatically from the other wanna-build options)' }, 'WANNA_BUILD_SSH_USER' => { TYPE => 'STRING', VARNAME => 'wanna_build_ssh_user', GROUP => 'wanna-build client', DEFAULT => '', CHECK => $validate_ssh, HELP => 'Username for SSH connection' }, 'WANNA_BUILD_SSH_HOST' => { TYPE => 'STRING', VARNAME => 'wanna_build_ssh_host', GROUP => 'wanna-build client', DEFAULT => '', CHECK => $validate_ssh, HELP => 'Host for SSH connection' }, 'WANNA_BUILD_SSH_SOCKET' => { TYPE => 'STRING', VARNAME => 'wanna_build_ssh_socket', GROUP => 'wanna-build client', DEFAULT => '', CHECK => $validate_ssh, HELP => 'Socket for SSH connection' }, 'WANNA_BUILD_SSH_OPTIONS' => { TYPE => 'ARRAY:STRING', VARNAME => 'wanna_build_ssh_options', GROUP => 'wanna-build client', DEFAULT => [], CHECK => $validate_ssh, HELP => 'SSH options. Note this is an array reference.' }, 'WANNA_BUILD_DB_NAME' => { TYPE => 'STRING', VARNAME => 'wanna_build_db_name', GROUP => 'wanna-build client', DEFAULT => undef, HELP => 'Database name' }, 'WANNA_BUILD_DB_USER' => { TYPE => 'STRING', VARNAME => 'wanna_build_db_user', GROUP => 'wanna-build client', DEFAULT => $conf->get('USERNAME'), # arch:all packages must not differ depending on which user is # building the source package, so don't show the default for # example config and man page generation IGNORE_DEFAULT => 1, HELP => 'Database user' }, 'BUILT_ARCHITECTURE' => { TYPE => 'STRING', VARNAME => 'wanna_build_built_architecture', GROUP => 'wanna-build client', DEFAULT => $arch, # the $native_arch is different depending on the machine where # sbuild is built but arch:all packages must not differ depending on # the architecture they are built on, so don't show the default for # example config and man page generation IGNORE_DEFAULT => 1, HELP => 'Architecture for database' }); $conf->set_allowed_keys(\%db_keys); } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Uploader.pm0000644000000000000000000000013212627410514016630 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136984.137759947 sbuild-0.67.0/lib/Buildd/Uploader.pm0000644000175000017500000001535712627410514017463 0ustar00joschjosch00000000000000# buildd-uploader: upload finished packages for buildd # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### package Buildd::Uploader; use strict; use warnings; use Buildd qw(lock_file unlock_file unset_env exitstatus send_mail); use Buildd::Base; use Buildd::Conf qw(); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Buildd::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('Uploader Lock', undef); $self->set('Uploaded Pkgs', {}); $self->open_log(); return $self; } sub run { my $self = shift; unset_env(); $self->set('Uploader Lock', lock_file("$main::HOME/buildd-uploader", 1)); if (!$self->get('Uploader Lock')) { $self->log("exiting; another buildd-uploader is still running"); return 1; } for my $queue_config (@{$self->get_conf('UPLOAD_QUEUES')}) { $self->upload( $queue_config->get('DUPLOAD_LOCAL_QUEUE_DIR'), $queue_config->get('DUPLOAD_ARCHIVE_NAME')); } my $uploaded_pkgs = $self->get('Uploaded Pkgs'); foreach my $archdist (keys %{$uploaded_pkgs}) { $self->log("Set to Uploaded($archdist):$uploaded_pkgs->{$archdist}"); } return 0; } sub uploaded ($@) { my $self = shift; my $pkg = shift; my $arch_name = shift; my $dist_name = shift; my $msgs = ""; my $dist_config = $self->get_arch_dist_config_by_name($arch_name, $dist_name); my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query('--uploaded', $pkg); if ($pipe) { while(<$pipe>) { if (!/^(\S+): Propagating new state /) { $msgs .= $_; } } close($pipe); if ($msgs or $?) { $self->log($msgs) if $msgs; $self->log("wanna-build --uploaded failed with status ", exitstatus($?), "\n" ) if $?; } else { my $archdist_name = "$arch_name/$dist_name"; $self->get('Uploaded Pkgs')->{$archdist_name} .= " $pkg"; } } else { $self->log("Can't spawn wanna-build --uploaded: $!\n"); } } sub upload ($$) { my $self = shift; my $udir = shift; my $upload_to = shift; chdir( "$main::HOME/$udir" ) || return; lock_file( "$main::HOME/$udir" ); my( $f, $g, @before, @after ); foreach $f (<*.changes>) { ($g = $f) =~ s/\.changes$/\.upload/; push( @before, $f ) if ! -f $g; } unlock_file( "$main::HOME/$udir" ); if (!@before) { $self->log("Nothing to do for $udir\n"); return; } $self->log(scalar(@before), " jobs to upload in $udir: @before\n"); foreach $f (@before) { ($g = $f) =~ s/\.changes$/\.upload/; my $logref = $self->do_dupload( $upload_to, $f ); if (defined $logref and scalar(@$logref) > 0) { my $line; foreach $line (@$logref) { $self->log($line); } } if ( -f $g ) { if (!open( F, "<$f" )) { $self->log("Cannot open $f: $!\n"); next; } my $text; { local($/); undef $/; $text = ; } close( F ); if ($text !~ /^Architecture:\s*(.*)\s*$/m) { $self->log("$f doesn't have a Architecture: field\n"); next; } my @archs = split( /\s+/, $1 ); if ($text !~ /^Distribution:\s*(.*)\s*$/m) { $self->log("$f doesn't have a Distribution: field\n"); next; } my @dists = split( /\s+/, $1 ); my ($version,$source,$pkg); if ($text =~ /^Version:\s*(\S+)\s*$/m) { $version = $1; } if ($text =~ /^Source:\s*(\S+)(?:\s+\(\S+\))?\s*$/m) { $source = $1; } if (defined($version) and defined($source)) { $pkg = "${source}_$version"; } else { ($pkg = $f) =~ s/_\S+\.changes$//; } $self->uploaded($pkg, @archs, @dists); } else { push (@after, $f); } } if (@after) { $self->log("The following jobs were not processed (successfully):\n" . "@after\n"); } else { $self->log("dupload successful.\n"); } $self->write_stats("uploads", scalar(@before) - scalar(@after)); } sub do_dupload ($@) { my $self = shift; my $upload_to = shift; my @jobs = @_; my @log; local( *PIPE ); my( $current_job, $current_file, @failed, $errs ); if (!open( PIPE, "dupload -k --to $upload_to @jobs &1 |" )) { return "Cannot spawn dupload: $!"; } my $dup_log = ""; while( ) { $dup_log .= $_; chomp; if (/^\[ job \S+ from (\S+\.changes)$/) { $current_job = $1; } elsif (/^warning: MD5sum mismatch for (\S+), skipping/i) { my $f = $1; push( @log, "dupload error: md5sum mismatch for $f\n" ); $errs .= "md5sum mismatch on file $f ($current_job)\n"; push( @failed, $current_job ); } elsif (/^\[ Uploading job (\S+)$/) { $current_job = "$1.changes"; } elsif (/dupload fatal error: Can't upload (\S+)/i || /^\s(\S+).*scp: (.*)$/) { my($f, $e) = ($1, $2); push( @log, "dupload error: upload error for $f\n" ); push( @log, "($e)\n" ) if $e; $errs .= "upload error on file $f ($current_job)\n"; push( @failed, $current_job ); } elsif (/Timeout at [\S]+ line [\d]+$/) { $errs .= "upload timeout on file $current_job\n"; push( @failed, $current_job ); } elsif (/^\s(\S+)\s+[\d.]+ kB /) { $current_file = $1; } } close( PIPE ); if ($?) { if (($? >> 8) == 141) { push( @log, "dupload error: SIGPIPE (broken connection)\n" ); $errs .= "upload error (broken connection) during ". "file $current_file ($current_job)\n"; push( @failed, $current_job ); } else { push( @log, "dupload exit status ". exitstatus($?) ); $errs .= "dupload exit status ".exitstatus($?)."\n"; push( @failed, $current_job ); } } foreach (@failed) { my $u = $_; $u =~ s/\.changes$/\.upload/; unlink( $u ); push( @log, "Removed $u due to upload errors.\n" ); $errs .= "Removed $u to reupload later.\n"; } if ($errs) { $errs .= "\nComplete output from dupload:\n\n$dup_log"; send_mail($self->get_conf('ADMIN_MAIL'), "dupload errors", $errs); } return \@log; } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Watcher.pm0000644000000000000000000000013212565554441016463 xustar0030 mtime=1440143649.640952212 30 atime=1451044743.162752739 30 ctime=1451136984.137759947 sbuild-0.67.0/lib/Buildd/Watcher.pm0000644000175000017500000003605412565554441017313 0ustar00joschjosch00000000000000# buildd-watcher: # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # # 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, see # . # ####################################################################### package Buildd::Watcher; use strict; use warnings; use Buildd qw(send_mail lock_file unlock_file unset_env); use Buildd::Conf qw(); use Buildd::Base; use POSIX qw(ESRCH LONG_MAX); use Cwd; sub ST_MTIME () { 9 } BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Buildd::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('Fudge', 1/24/6); # 10 minutes in units of a day $self->set('Graph Maxval', { 'builds-per-day' => 100, 'uploads-per-day' => 100, 'failed-per-day' => 50, 'dep-wait-per-day' => 50, 'give-back-per-day' => 50, 'time-per-build' => 10*60*60, 'build-time-percent' => 1, 'idle-time-percent' => 1}); $self->open_log(); return $self; } sub run { my $self = shift; unset_env(); chdir($self->get_conf('HOME')); # check if another watcher is still running my $watcher_pid; if (open( PID, "; close( PID ); $watcher_pid =~ /^\s*(\d+)/; $watcher_pid = $1; if (!$watcher_pid || (kill( 0, $watcher_pid ) == 0 && $! == ESRCH)) { $self->log("Ignoring stale watcher-running file (pid $watcher_pid).\n"); } else { $self->log("Another buildd-watcher is still running ". "(pid $watcher_pid) -- exiting.\n"); return 0; } } open( F, ">watcher-running.new" ) or die "Can't create watcher-running.new: $!\n"; printf F "%5d\n", $$; close( F ); rename( "watcher-running.new", "watcher-running" ) or die "Can't rename watcher-running.new: $!\n"; # check if buildd is still running, restart it if needed. my $restart = 0; my $daemon_pid; if (open( PID, "<" . $self->get_conf('PIDFILE') )) { $daemon_pid = ; close( PID ); $daemon_pid =~ /^\s*(\d+)/; $daemon_pid = $1; if (!$daemon_pid || (kill( 0, $daemon_pid ) == 0 && $! == ESRCH)) { $self->log("pid file exists, but process $daemon_pid doesn't exist.\n"); $restart = 1; } } else { $self->log("daemon not running (no pid file).\n"); $restart = 1; } # do dir-purges that buildd-mail can't do (is running as nobody, so no sudo) lock_file( "build/PURGE" ); my @to_purge = (); if (open( F, "; close( F ); unlink( "build/PURGE" ); chomp( @to_purge ); } unlock_file( "build/PURGE" ); foreach (@to_purge) { next if ! -d $_; system "sudo rm -rf $_"; $self->log("Purged $_\n"); } # cut down mail-errormails file my $now = time; my @em = (); if (open( F, " ); close( F ); } shift @em while @em && ($now - $em[0]) > $self->get_conf('ERROR_MAIL_WINDOW'); if (@em) { open( F, ">mail-errormails" ); print F join( "\n", @em ), "\n"; close( F ); } else { unlink( "mail-errormails" ); } # check for old stuff in build and upload dirs my %warnfile; my $file; my $dev; my $ino; foreach $file () { ($dev,$ino) = lstat $file; $warnfile{"$dev:$ino"} = $file if -M $file >= $self->get_conf('WARNING_AGE'); } # TODO: Glob is incompatible with modern sbuild, which doesn't use # separate user directories. my $username = $self->get_conf('USERNAME'); foreach $file () { ($dev,$ino) = lstat $file; if (! -d _ && ! -l _) { $warnfile{"$dev:$ino"} = $file if -C _ >= $self->get_conf('WARNING_AGE'); } else { my $warnage = $self->get_conf('WARNING_AGE'); my $changed_files = `find $file -ctime -$warnage -print 2>/dev/null`; $warnfile{"$dev:$ino"} = $file if !$changed_files; } } foreach $file () { next if $file =~ m#^build/chroot-[^/]+$#; ($dev,$ino) = lstat $file; if (! -d _ && ! -l _) { $warnfile{"$dev:$ino"} = $file if -C _ >= $self->get_conf('WARNING_AGE'); } else { my $warnage = $self->get_conf('WARNING_AGE'); my $changed_files = `find $file -ctime -$warnage -print 2>/dev/null`; $warnfile{"$dev:$ino"} = $file if !$changed_files; } } my $nowarnpattern = $self->get_conf('NO_WARN_PATTERN'); my @warnings = grep( !/$nowarnpattern/, sort values %warnfile ); if (@warnings) { my %reported; my @do_warn; if (open( W, " ) { next if !/^(\S+)\s+(\d+)$/; $reported{$1} = $2; } close( W ); } foreach (@warnings) { if (!exists($reported{$_}) || ($now - $reported{$_}) >= $self->get_conf('WARNING_AGE')*24*60*60) { push( @do_warn, $_ ); $reported{$_} = $now; } } my $old_umask = umask 007; open( W, ">reported-old-files" ) or die "Can't create/write reported-old-files: $!\n"; foreach (keys %reported) { print W "$_ $reported{$_}\n" if -e $_ || -l $_; } close( W ); umask $old_umask; send_mail( $self->get_conf('ADMIN_MAIL'), "buildd-watcher found some old files", "buildd-watcher has found some old files or directories in\n". "~buildd/upload and/or ~buildd/build. Those are:\n\n ". join( "\n ", @do_warn ). "\n\n". "Please have a look at them and remove them if ". "they're obsolete.\n" ) if @do_warn; } # archive old package/build log files $self->archive_logs( "logs", "*", "old-logs/plog", $self->get_conf('PKG_LOG_KEEP') ); $self->archive_logs( "build", "build-*.log", "old-logs/blog", $self->get_conf('BUILD_LOG_KEEP') ); # rotate daemon's log file if (!-f "old-logs/daemon-stamp" || -M "old-logs/daemon-stamp" > $self->get_conf('DAEMON_LOG_ROTATE')-$self->get('Fudge')) { $self->log("Rotating daemon log file\n"); system "touch old-logs/daemon-stamp"; my $d = $self->format_time(time); if (-f $self->get_conf('DAEMON_LOG_FILE') . ".old") { system "mv " . $self->get_conf('DAEMON_LOG_FILE') . ".old old-logs/daemon-$d.log"; system "gzip -9 old-logs/daemon-$d.log"; } rename( $self->get_conf('DAEMON_LOG_FILE'), $self->get_conf('DAEMON_LOG_FILE') . ".old" ); my $old_umask = umask 0007; system "touch " . $self->get_conf('DAEMON_LOG_FILE'); umask $old_umask; kill( 1, $daemon_pid ) if $daemon_pid; $self->reopen_log(); if ($self->get_conf('DAEMON_LOG_SEND')) { my $text; open( F, "<" . $self->get_conf('DAEMON_LOG_FILE') . ".old" ); { local($/); undef $/; $text = ; } close( F ); send_mail( $self->get_conf('ADMIN_MAIL'), "Build Daemon Log $d", $text ); } } $self->archive_logs( "old-logs", "daemon-*.log.gz", "old-logs/dlog", $self->get_conf('DAEMON_LOG_KEEP') ); # make buildd statistics if (!-f "stats/Stamp" || -M "stats/Stamp" > $self->get_conf('STATISTICS_PERIOD')-$self->get('Fudge')) { $self->log("Making buildd statistics\n"); lock_file( "stats" ); my $lasttime = 0; if (open( F, " ); close( F ); } my $now = time; $self->make_statistics( $lasttime, $now ); open( F, ">stats/Stamp" ); print F "$now\n"; close( F ); unlock_file( "stats" ); my $text; open( F, "; } close( F ); send_mail( $self->get_conf('STATISTICS_MAIL'), "Build Daemon Statistics", $text ); } if ($restart) { if (-f "NO-DAEMON-PLEASE") { $self->log("NO-DAEMON-PLEASE exists, not starting daemon\n"); } else { $self->close_log(); unlink ("watcher-running"); exec "buildd"; } } unlink ("watcher-running"); return 0; } sub archive_logs ($$$$) { my $self = shift; my $dir = shift; my $pattern = shift; my $destpat = shift; my $minage = shift; my( $olddir, $file, @todo, $oldest, $newest, $oldt, $newt ); return if -f "$destpat-stamp" && -M "$destpat-stamp" < $minage-$self->get('Fudge'); $self->log("Archiving logs in $dir:\n"); system "touch $destpat-stamp"; $olddir = cwd; chdir( $dir ); $oldest = LONG_MAX; $newest = 0; foreach $file (glob($pattern)) { if (-M $file >= $minage) { push( @todo, $file ); my $modtime = (stat(_))[ST_MTIME]; $oldest = $modtime if $oldest > $modtime; $newest = $modtime if $newest < $modtime; } } if (@todo) { $oldt = $self->format_time($oldest); $newt = $self->format_time($newest); $file = $self->get_conf('HOME') . "/$destpat-$oldt-$newt.tar"; system "tar cf $file @todo"; system "gzip -9 $file"; if ($dir eq "logs") { local (*F); my $index = $self->get_conf('HOME') . "/$destpat-$oldt-$newt.index"; if (open( F, ">$index" )) { print F join( "\n", @todo ), "\n"; close( F ); } } unlink( @todo ); $self->log("Archived ", scalar(@todo), " files from $oldt to $newt\n"); } else { $self->log("No files to archive\n"); } chdir( $olddir ); } sub make_statistics ($$) { my $self = shift; my $start_time = shift; my $end_time = shift; my @svars = qw(taken builds uploads failed dep-wait no-build give-back idle-time build-time remove-time install-download-time); my ($s_taken, $s_builds, $s_uploads, $s_failed, $s_dep_wait, $s_no_build, $s_give_back, $s_idle_time, $s_build_time, $s_remove_time, $s_install_download_time); local( *F, *G, *OUT ); my $var; foreach $var (@svars) { my $svar = "s_$var"; $svar =~ s/-/_/g; eval "\$$svar = 0;"; if (-f "stats/$var") { if (!open( F, "log("can't open stats/$var: $!\n"); next; } my $n = 0; while( ) { chomp; $n += $_; } close( F ); eval "\$$svar = $n;"; unlink( "stats/$var" ); } } my $total_time = $end_time - $start_time; my $days = $total_time / (24*60*60); if (!open( OUT, ">stats/Summary" )) { $self->log("Can't create stats/Summary: $!\n"); return; } printf OUT "Build daemon statistics from %s to %s (%3.2f days):\n\n", $self->format_time($start_time), $self->format_time($end_time), $days; print OUT " #packages % of taken pkgs/day\n"; print OUT "-------------------------------------------\n"; printf OUT "taken : %5d %7.2f\n", $s_taken, $s_taken/$days; printf OUT "builds : %5d %7.2f%% %7.2f\n", $s_builds, $s_taken ? $s_builds*100/$s_taken : 0, $s_builds/$days; printf OUT "uploaded : %5d %7.2f%% %7.2f\n", $s_uploads, $s_taken ? $s_uploads*100/$s_taken : 0, $s_uploads/$days; printf OUT "failed : %5d %7.2f%% %7.2f\n", $s_failed, $s_taken ? $s_failed*100/$s_taken : 0, $s_failed/$days; printf OUT "dep-wait : %5d %7.2f%% %7.2f\n", $s_dep_wait, $s_taken ? $s_dep_wait*100/$s_taken : 0, $s_dep_wait/$days; printf OUT "give-back: %5d %7.2f%% %7.2f\n", $s_give_back, $s_taken ? $s_give_back*100/$s_taken : 0, $s_give_back/$days; printf OUT "no-build : %5d %7.2f%% %7.2f\n", $s_no_build, $s_taken ? $s_no_build*100/$s_taken : 0, $s_no_build/$days; print OUT "\n"; print OUT " time % of total\n"; print OUT "----------------------------------\n"; printf OUT "building: %s %7.2f%%\n", $self->print_time($s_build_time), $s_build_time*100/$total_time; printf OUT "install : %s %7.2f%%\n", $self->print_time($s_install_download_time), $s_install_download_time*100/$total_time; printf OUT "removing: %s %7.2f%%\n", $self->print_time($s_remove_time), $s_remove_time*100/$total_time; printf OUT "idle : %s %7.2f%%\n", $self->print_time($s_idle_time), $s_idle_time*100/$total_time; printf OUT "total : %s\n", $self->print_time($total_time); print OUT "\n"; my $proc = $s_uploads+$s_failed+$s_dep_wait+$s_no_build+$s_give_back; printf OUT "processed package (upl+fail+dep+nob): %7d\n", $proc; printf OUT "slipped (proc-taken) : %7d\n", $proc-$s_taken; printf OUT "builds/taken package : %7.2f\n", $s_builds/$s_taken if $s_taken; printf OUT "avg. time/taken package : %s\n", $self->print_time($s_build_time/$s_taken) if $s_taken; printf OUT "avg. time/processed package : %s\n", $self->print_time($s_build_time/$proc) if $proc; printf OUT "avg. time/build : %s\n", $self->print_time($s_build_time/$s_builds) if $s_builds; print OUT "\n"; my $date = $self->format_date(time); $self->print_graph( $s_builds/$days, $date, "builds-per-day" ); $self->print_graph( $s_uploads/$days, $date, "uploads-per-day" ); $self->print_graph( $s_failed/$days, $date, "failed-per-day" ); $self->print_graph( $s_dep_wait/$days, $date, "dep-wait-per-day" ); $self->print_graph( $s_give_back/$days, $date, "give-back-per-day" ); $self->print_graph( $s_build_time/$s_builds, $date, "time-per-build" ) if $s_builds; $self->print_graph( $s_build_time/$total_time, $date, "build-time-percent" ); $self->print_graph( $s_idle_time/$total_time, $date, "idle-time-percent" ); my $g; my $graph_maxval = $self->get('Graph Maxval'); foreach $g (keys %{$graph_maxval}) { next if !open( G, "{$g}):\n\n"; while( ) { print OUT $_; } close( G ); print OUT "\n"; } close( OUT ); } sub print_time ($) { my $self = shift; my $t = shift; my $str = sprintf "%02d:%02d:%02d", int($t/3600), int(($t%3600)/60), int($t%60); $str = " "x(10-length($str)) . $str; return $str; } sub print_graph ($$$) { my $self = shift; my $val = shift; my $date = shift; my $graph = shift; my $width = 72; local( *G ); my $graph_maxval = $self->get('Graph Maxval'); if (!exists $graph_maxval->{$graph}) { $self->log("Unknown graph $graph\n"); return; } if (!open( G, ">>stats/graphs/$graph" )) { $self->log("Can't create stats/graphs/$graph: $!\n"); return; } $val = int( $val*$width/$graph_maxval->{$graph} + 0.5 ); my $str = $val > $width ? "*"x($width-1)."+" : "*"x$val; $date = substr( $date, 0, 6 ); $date .= " " x (6-length($date)); print G "$date $str\n"; close( G ); } sub format_time ($) { my $self = shift; my $t = shift; my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime($t); return sprintf "%04d%02d%02d-%02d%02d", $year+1900, $mon+1, $mday, $hour, $min; } sub format_date ($) { my $self = shift; my $t = shift; my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime($t); return sprintf "%02d%02d%02d", $year%100, $mon+1, $mday; } 1; sbuild-0.67.0/lib/Buildd/PaxHeaders.4860/Mail.pm0000644000000000000000000000013212627410514015737 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136984.137759947 sbuild-0.67.0/lib/Buildd/Mail.pm0000644000175000017500000011215212627410514016561 0ustar00joschjosch00000000000000# buildd-mail: mail answer processor for buildd # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### package Buildd::Mail; use strict; use warnings; use Buildd qw(ll_send_mail lock_file unlock_file send_mail exitstatus); use Buildd::Conf qw(); use Buildd::Base; use Sbuild qw(binNMU_version $devnull); use Sbuild::ChrootRoot; use Buildd::Client; use POSIX; use File::Basename; use MIME::QuotedPrint; use MIME::Base64; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Buildd::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('Mail Error', undef); $self->set('Mail Short Error', undef); $self->set('Mail Header', {}); $self->set('Mail Body Text', ''); $self->open_log(); return $self; } sub run { my $self = shift; chdir($self->get_conf('HOME')); $self->set('Mail Error', undef); $self->set('Mail Short Error', undef); $self->set('Mail Header', {}); $self->set('Mail Body Text', ''); $self->process_mail(); return 0; } sub process_mail () { my $self = shift; # Note: Mail Header (to|from|subject|message-id|date) are mandatory. # Check for these and bail out if not present. my $header_text = ""; my $lastheader = ""; $self->set('Mail Header', {}); $self->set('Mail Error', ''); $self->set('Mail Short Error', ''); $self->set('Mail Header', {}); $self->set('Mail Body Text', ''); while( ) { $header_text .= $_; last if /^$/; if (/^\s/ && $lastheader) { $_ =~ s/^\s+//; $_ = "$lastheader $_"; } if (/^From (\S+)/) { ; } if (/^([\w\d-]+):\s*(.*)\s*$/) { my $hname; ($hname = $1) =~ y/A-Z/a-z/; $self->get('Mail Header')->{$hname} = $2; $lastheader = $_; chomp( $lastheader ); } else { $lastheader = ""; } } while( ) { last if !/^\s*$/; } $self->set('Mail Body Text', $self->get('Mail Body Text') . $_) if defined($_); if (!eof) { local($/); undef $/; $self->set('Mail Body Text', $self->get('Mail Body Text') . ); } if ($self->get('Mail Header')->{'from'} =~ /mail\s+delivery\s+(sub)?system|mailer.\s*daemon/i) { # is an error mail from a mailer daemon # To avoid mail loops if this error resulted from a mail we sent # outselves, we break the loop by not forwarding this mail after the 5th # error mail within 8 hours or so. my $n = $self->add_error_mail(); if ($n > 5) { $self->log("Too much error mails ($n) within ", int($self->get_conf('ERROR_MAIL_WINDOW')/(60*60)), " hours\n", "Not forwarding mail from ".$self->get('Mail Header')->{'from'}."\n", "Subject: " . $self->get('Mail Header')->{'subject'} . "\n"); return; } } goto forward_mail if !$self->get('Mail Header')->{'subject'}; my $subject = $self->get('Mail Header')->{'subject'}; if ($subject =~ /^Re: Log for \S+ build of (\S+)(?: on [\w-]+)? \(dist=(\S+)\)/i) { # reply to a build log my( $package, $dist_name ) = ( $1, $2 ); my $dist_config = $self->get_dist_config_by_name($dist_name); return if (!$dist_config); #get_dist_config sets the error mail my $text = $self->get('Mail Body Text'); $text =~ /^(\S+)/; $self->set('Mail Body Text', $text); if (defined($self->get('Mail Header')->{'content-transfer-encoding'})) { # Decode the mail if necessary. if ($self->get('Mail Header')->{'content-transfer-encoding'} =~ /quoted-printable/) { $self->set('Mail Body Text', decode_qp($self->get('Mail Body Text'))); } elsif ($self->get('Mail Header')->{'content-transfer-encoding'} =~ /base64/) { $self->set('Mail Body Text', decode_base64($self->get('Mail Body Text'))); } } my $keyword = $1; my $from = $self->get('Mail Header')->{'from'}; $from = $1 if $from =~ /<(.+)>/; $self->log("Log reply from $from\n"); my %newv; if ($keyword =~ /^not-for-us/) { $self->no_build( $package, $dist_config ); $self->purge_pkg( $package, $dist_config ); } elsif ($keyword =~ /^up(l(oad)?)?-rem/) { $self->remove_from_upload( $package, $dist_config ); } elsif ($self->check_is_outdated( $dist_config, $package )) { # Error has been set already -> no action here } elsif ($keyword =~ /^fail/) { my $text = $self->get('Mail Body Text'); $text =~ s/^fail.*\n(\s*\n)*//; $text =~ s/\n+$/\n/; $self->set_to_failed( $package, $dist_config, $text ); $self->purge_pkg( $package, $dist_config ); } elsif ($keyword =~ /^ret/) { if (!$self->check_state( $package, $dist_config, qw(Built Building Build-Attempted) )) { # Error already set } else { $self->append_to_REDO( $package, $dist_config ); } } elsif ($keyword =~ /^d(ep(endency)?)?-(ret|w)/) { if (!$self->check_state( $package, $dist_config, qw(Built Building Build-Attempted) )) { # Error already set } else { $self->get('Mail Body Text') =~ /^\S+\s+(.*)$/m; my $deps = $1; $self->set_to_depwait( $package, $dist_config, $deps ); $self->purge_pkg( $package, $dist_config ); } } elsif ($keyword =~ /^man/) { if (!$self->check_state( $package, $dist_config, qw(Built Building Build-Attempted) )) { # Error already set } else { # no action $self->log("$package($dist_name) will be finished manually\n"); } } elsif ($keyword =~ /^newv/) { # build a newer version instead $self->get('Mail Body Text') =~ /^newv\S*\s+(\S+)/; my $newv = $1; if ($newv =~ /_/) { $self->log("Removing unneeded package name from $newv\n"); $newv =~ s/^.*_//; $self->log("Result: $newv\n"); } my $pkgname; ($pkgname = $package) =~ s/_.*$//; $self->redo_new_version( $dist_config, $package, "${pkgname}_${newv}" ); $self->purge_pkg( $package, $dist_config ); } elsif ($keyword =~ /^(give|back)/) { $self->get('Mail Body Text') =~ /^(give|back) ([-0-9]+)/; my $pri = $1; if (!$self->check_state( $package, $dist_config, qw(Built Building Build-Attempted) )) { # Error already set } else { $self->give_back( $package, $dist_config ); $self->purge_pkg( $package, $dist_config ); } } elsif ($keyword =~ /^purge/) { $self->purge_pkg( $package, $dist_config ); } elsif ($self->get('Mail Body Text') =~ /^---+\s*BEGIN PGP SIGNED MESSAGE/) { if ($self->prepare_for_upload( $package, $self->get('Mail Body Text') )) { $self->purge_pkg( $package, $dist_config ); } } elsif ($self->get('Mail Body Text') =~ /^--/ && $self->get('Mail Header')->{'content-type'} =~ m,multipart/signed,) { my ($prot) = ($self->get('Mail Header')->{'content-type'} =~ m,protocol="([^"]*)",); my ($bound) = ($self->get('Mail Header')->{'content-type'} =~ m,boundary="([^"]*)",); my $text = $self->get('Mail Body Text'); $text =~ s,^--\Q$bound\E\nContent-Type: text/plain; charset=us-ascii\n\n,-----BEGIN PGP SIGNED MESSAGE-----\n\n,; $text =~ s,--\Q$bound\E\nContent-Type: application/pgp-signature\n\n,,; $text =~ s,\n\n--\Q$bound\E--\n,,; $self->set('Mail Body Text', $text); if ($self->prepare_for_upload($package, $self->get('Mail Body Text'))) { $self->purge_pkg( $package, $dist_config ); } } else { $self->set('Mail Short Error', $self->get('Mail Short Error') . "Bad keyword in answer $keyword\n"); $self->set('Mail Error', $self->get('Mail Error') . "Answer not understood (expected retry, failed, manual,\n". "dep-wait, giveback, not-for-us, purge, upload-rem,\n". "newvers, or a signed changes file)\n"); } } elsif ($subject =~ /^Re: Should I build (\S+) \(dist=(\S+)\)/i) { # reply whether a prev-failed package should be built my( $package, $dist_name ) = ( $1, $2 ); my $dist_config = $self->get_dist_config_by_name($dist_name); return if (!$dist_config); #get_dist_config sets the error mail $self->get('Mail Body Text') =~ /^(\S+)/; my $keyword = $1; $self->log("Should-build reply for $package($dist_name)\n"); if ($self->check_is_outdated( $dist_config, $package )) { # Error has been set already -> no action here } elsif (!$self->check_state( $package, $dist_config, qw(Built Building Build-Attempted) )) { # Error already set } elsif ($keyword =~ /^(build|ok)/) { $self->append_to_REDO( $package, $dist_config ); } elsif ($keyword =~ /^fail/) { my $text = $self->get_fail_msg( $package, $dist_config ); $self->set_to_failed( $package, $dist_config, $text ); } elsif ($keyword =~ /^(not|no-b)/) { $self->no_build( $package, $dist_config ); } elsif ($keyword =~ /^(give|back)/) { $self->give_back( $package, $dist_config ); } else { $self->set('Mail Short Error', $self->get('Mail Short Error') . "Bad keyword in answer $keyword\n"); $self->set('Mail Error', $self->get('Mail Error') . "Answer not understood (expected build, ok, fail, ". "give-back, or no-build)\n"); } } elsif ($subject =~ /^Processing of (\S+)/) { my $job = $1; # mail from Erlangen queue daemon: forward all non-success messages my $text = $self->get('Mail Body Text'); goto forward_mail if $text !~ /uploaded successfully/mi; $self->log("$job processed by upload queue\n") if $self->get_conf('LOG_QUEUED_MESSAGES'); } elsif ($subject =~ /^([-+~\.\w]+\.changes) (INSTALL|ACCEPT)ED/) { # success mail from dinstall my $changes_f = $1; my( @to_remove, $upload_f, $pkgv ); my @upload_dirs = $self->find_upload_dirs_for_changes_file($changes_f); if ((scalar @upload_dirs) < 1) { $self->log("Can't identify upload directory for $changes_f!\n"); return 0; } elsif ((scalar @upload_dirs) > 1) { $self->log("Found more than one upload directory for $changes_f - not deleting binaries!\n"); return 0; } my $upload_dir = $upload_dirs[0]; if (-f "$upload_dir/$changes_f" && open( F, "<$upload_dir/$changes_f" )) { local($/); undef $/; my $changetext = ; close( F ); push( @to_remove, $self->get_files_from_changes( $changetext ) ); } else { foreach (split( "\n", $self->get('Mail Body Text'))) { if (/^(\[-+~\.\w]+\.(u?deb))$/) { my $f = $1; push( @to_remove, $f ) if !grep { $_ eq $f } @to_remove; } } } ($upload_f = $changes_f) =~ s/\.changes$/\.upload/; push( @to_remove, $changes_f, $upload_f ); ($pkgv = $changes_f) =~ s/_(\S+)\.changes//; $self->log("$pkgv has been installed; removing from upload dir:\n", "@to_remove\n"); my @dists; if (open( F, "<$upload_dir/$changes_f" )) { my $changes_text; { local($/); undef $/; $changes_text = ; } close( F ); @dists = $self->get_dists_from_changes( $changes_text ); } else { $self->log("Cannot get dists from $upload_dir/$changes_f: $! (assuming unstable)\n"); @dists = ( "unstable" ); } FILE: foreach (@to_remove) { if (/\.deb$/) { # first listed wins foreach my $dist (@dists) { if ( -d $self->get_conf('HOME') . "/build/chroot-$dist" && -w $self->get_conf('HOME') . "/build/chroot-$dist/var/cache/apt/archives/") { # TODO: send all of to_remove to perl-apt if it's available, setting a try_mv list # that only has build-depends in it. # if that's too much cpu, have buildd use perl-apt if avail to export the # build-depends list, which could then be read in at this point if (system "mv $upload_dir/$_ " . $self->get_conf('HOME') . "/build/chroot-$dist/var/cache/apt/archives/") { $self->log("Cannot move $upload_dir/$_ to cache dir\n"); } else { next FILE; } } } } unlink "$upload_dir/$_" or $self->log("Can't remove $upload_dir/$_: $!\n"); } } elsif ($subject =~ /^(\S+\.changes) is NEW$/) { # "is new" mail from dinstall my $changes_f = $1; my $pkgv; ($pkgv = $changes_f) =~ s/_(\S+)\.changes//; $self->log("$pkgv must be manually dinstall-ed -- delayed\n"); } elsif ($subject =~ /^new version of (\S+) \(dist=(\S+)\)$/) { # notice from wanna-build my ($pkg, $dist_name) = ($1, $2); my $dist_config = $self->get_dist_config_by_name($dist_name); goto forward if $self->get('Mail Body Text') !~ /^in version (\S+)\.$/m; my $pkgv = $pkg."_".$1; $self->get('Mail Body Text') =~ /new source version (\S+)\./m; my $newv = $1; $self->log("Build of $pkgv ($dist_name) obsolete -- new version $newv\n"); $self->register_outdated( $dist_name, $pkgv, $pkg."_".$newv ); my @ds; if (!(@ds = $self->check_building_any_dist( $pkgv ))) { if (!$self->remove_from_REDO( $pkgv )) { $self->append_to_SKIP( $pkgv ); } $self->purge_pkg( $pkgv, $dist_config ); } else { $self->log("Not deleting, still building for @ds\n"); } } elsif ($self->get('Mail Body Text') =~ /^blacklist (\S+)\n$/) { my $pattern = "\Q$1\E"; if (open( F, ">>mail-blacklist" )) { print F "$pattern\n"; close( F ); $self->log("Added $pattern to blacklist.\n"); } else { $self->log("Can't open mail-blacklist for appending: $!\n"); } } else { goto forward_mail; } if ($self->get('Mail Error')) { $self->log("Error: ", $self->get('Mail Short Error') || $self->get('Mail Error')); $self->reply("Your mail could not be processed:\n" . $self->get('Mail Error')); } return; forward_mail: my $header = $self->get('Mail Header'); $self->log("Mail from $header->{'from'}\nSubject: $subject\n"); if ($self->is_blacklisted( $self->get('Mail Header')->{'from'} )) { $self->log("Address is blacklisted, deleting mail.\n"); } else { $self->log("Not for me, forwarding to admin\n"); ll_send_mail( $self->get_conf('ADMIN_MAIL'), "To: $header->{'to'}\n". ($header->{'cc'} ? "Cc: $header->{'cc'}\n" : ""). "From: $header->{'from'}\n". "Subject: $header->{'subject'}\n". "Date: $header->{'date'}\n". "Message-Id: $header->{'message-id'}\n". ($header->{'reply-to'} ? "Reply-To: $header->{'reply-to'}\n" : ""). ($header->{'in-reply-to'} ? "In-Reply-To: $header->{'in-reply-to'}\n" : ""). ($header->{'references'} ? "References: $header->{'references'}\n" : ""). "Resent-From: $Buildd::gecos <$Buildd::username\@$Buildd::hostname>\n". "Resent-To: " . $self->get_conf('ADMIN_MAIL') . "\n\n". $self->get('Mail Body Text') ); } } sub prepare_for_upload ($$) { my $self = shift; my $pkg = shift; my $changes = shift; $changes =~ s/\n+$/\n/; my( @files, @md5, @missing, @md5fail, $i ); my @to_dists = $self->get_dists_from_changes( $changes ); if (!@to_dists) { # probably not a valid changes $self->set('Mail Short Error', $self->get('Mail Error')); $self->set('Mail Error', $self->get('Mail Error') . "Couldn't find a valid Distribution: line.\n"); return 0; } my $changes_filename_arch = $self->get_conf('ARCH'); #Try to extract the arch from the actual changes file (see #566398) if ($changes =~ /^Architecture:\s*(.+)/m) { my @arches = grep { $_ ne "all" } split /\s+/, $1; if (@arches > 1) { $changes_filename_arch = "multi"; } else { $changes_filename_arch = $arches[0]; } } $changes =~ /^Files:\s*\n((^[ ]+.*\n)*)/m; foreach (split( "\n", $1 )) { push( @md5, (split( /\s+/, $_ ))[1] ); push( @files, (split( /\s+/, $_ ))[5] ); } if (!@files) { # probably not a valid changes $self->set('Mail Short Error', $self->get('Mail Error')); $self->set('Mail Error', $self->get('Mail Error') . "No files listed in changes.\n"); return 0; } my @wrong_dists = (); foreach my $d (@to_dists) { push( @wrong_dists, $d ) if !$self->check_state( $pkg, $self->get_dist_config_by_name($d), qw(Building Built Install-Wait Reupload-Wait Build-Attempted)); } if (@wrong_dists) { $self->set('Mail Short Error', $self->get('Mail Error')); $self->set('Mail Error', $self->get('Mail Error') . "Package $pkg has target distributions @wrong_dists\n". "for which it isn't registered as Building.\n". "Please fix this by either modifying the Distribution: ". "header or\n". "taking the package in those distributions, too.\n"); return 0; } for( $i = 0; $i < @files; ++$i ) { if (! -f $self->get_conf('HOME') . "/build/$files[$i]") { push( @missing, $files[$i] ) ; } else { my $home = $self->get_conf('HOME'); chomp( my $sum = `md5sum $home/build/$files[$i]` ); push( @md5fail, $files[$i] ) if (split(/\s+/,$sum))[0] ne $md5[$i]; } } if (@missing) { $self->set('Mail Short Error', $self->get('Mail Short Error') . "Missing files for move: @missing\n"); $self->set('Mail Error', $self->get('Mail Error') . "While trying to move the built package $pkg to upload,\n". "the following files mentioned in the .changes were not found:\n". "@missing\n"); return 0; } if (@md5fail) { $self->set('Mail Short Error', $self->get('Mail Short Error') . "md5 failure during move: @md5fail\n"); $self->set('Mail Error', $self->get('Mail Error') . "While trying to move the built package $pkg to upload,\n". "the following files had bad md5 checksums:\n". "@md5fail\n"); return 0; } my @upload_dirs = $self->get_upload_queue_dirs ( $changes ); my $pkg_noep = $pkg; $pkg_noep =~ s/_\d*:/_/; my $changes_name = $pkg_noep . "_" . $changes_filename_arch . ".changes"; for my $upload_dir (@upload_dirs) { if (! -d $upload_dir &&!mkdir( $upload_dir, 0750 )) { $self->set('Mail Error', $self->get('Mail Error') . "Cannot create directory $upload_dir"); $self->log("Cannot create dir $upload_dir\n"); return 0; } } my $errs = 0; for my $upload_dir (@upload_dirs) { lock_file( $upload_dir ); foreach (@files) { if (system "cp " . $self->get_conf('HOME') . "/build/$_ $upload_dir/$_") { $self->log("Cannot copy $_ to $upload_dir/\n"); ++$errs; } } open( F, ">$upload_dir/$changes_name" ); print F $changes; close( F ); unlock_file( $upload_dir ); $self->log("Moved $pkg to ", basename($upload_dir), "\n"); } foreach (@files) { if (system "rm " . $self->get_conf('HOME') . "/build/$_") { $self->log("Cannot remove build/$_\n"); ++$errs; } } if ($errs) { $self->set('Mail Error', $self->get('Mail Error') . "Could not move all files to upload dir."); return 0; } unlink( $self->get_conf('HOME') . "/build/$changes_name" ) or $self->log("Cannot remove " . $self->get_conf('HOME') . "/$changes_name: $!\n"); } sub redo_new_version ($$$) { my $self = shift; my $dist_config = shift; my $oldv = shift; my $newv = shift; my $err = 0; my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query('-v', $newv); if ($pipe) { while(<$pipe>) { next if /^wanna-build Revision/ || /^\S+: Warning: Older version / || /^\S+: ok$/; $self->set('Mail Error', $self->get('Mail Error') . $_); $err = 1; } close($pipe); } else { $self->log("Can't spawn wanna-build: $!\n"); $self->set('Mail Error', $self->get('Mail Error') . "Can't spawn wanna-build: $!\n"); return; } if ($err) { $self->log("Can't take newer version $newv due to wanna-build errors\n"); return; } $self->log("Going to build $newv instead of $oldv\n"); $self->append_to_REDO( $newv, $dist_config ); } sub purge_pkg ($$) { my $self = shift; my $pkg = shift; my $dist_config = shift; my $dist_name = $dist_config->get('DIST_NAME'); my $dir; local( *F ); $self->remove_from_REDO( $pkg ); # remove .changes and .deb in build dir (if existing) my $pkg_noep = $pkg; $pkg_noep =~ s/_\d*:/_/; my $changes = "${pkg_noep}_" . $self->get_conf('ARCH') . ".changes"; if (-f "build/$changes" && open( F, "; close( F ); my @files = $self->get_files_from_changes( $changetext ); push( @files, $changes ); $self->log("Purging files: $changes\n"); unlink( map { "build/$_" } @files ); } # schedule dir for purging ($dir = $pkg_noep) =~ s/-[^-]*$//; # remove Debian revision $dir =~ s/_/-/; # change _ to - if (-d "build/chroot-$dist_name/build/$Buildd::username/$dir") { $dir = "build/chroot-$dist_name/build/$Buildd::username/$dir"; } else { $dir = "build/$dir"; } return if ! -d $dir; lock_file( "build/PURGE" ); if (open( F, ">>build/PURGE" )) { print F "$dir\n"; close( F ); $self->log("Scheduled $dir for purging\n"); } else { $self->set('Mail Error', $self->get('Mail Error') . "Can't open build/PURGE: $!\n"); $self->log("Can't open build/PURGE: $!\n"); } unlock_file( "build/PURGE" ); } sub remove_from_upload ($) { my $self = shift; my $pkg = shift; my $dist_config = shift; my($changes_f, $upload_f, $changes_text, @to_remove); local( *F ); $self->log("Remove $pkg from upload dir\n"); my $pkg_noep = $pkg; $pkg_noep =~ s/_\d*:/_/; $changes_f = "${pkg_noep}_" . $self->get_conf('ARCH') . ".changes"; my $upload_dir = $self->get_conf('HOME') . '/' . $dist_config->get('DUPLOAD_LOCAL_QUEUE_DIR'); if (!-f "$upload_dir/$changes_f") { $self->log("$changes_f does not exist\n"); return; } if (!open( F, "<$upload_dir/$changes_f" )) { $self->log("Cannot open $upload_dir/$changes_f: $!\n"); return; } { local($/); undef $/; $changes_text = ; } close( F ); @to_remove = $self->get_files_from_changes( $changes_text ); ($upload_f = $changes_f) =~ s/\.changes$/\.upload/; push( @to_remove, $changes_f, $upload_f ); $self->log("Removing files:\n", "@to_remove\n"); foreach (@to_remove) { unlink "$upload_dir/$_" or $self->log("Can't remove $upload_dir/$_: $!\n"); } } sub append_to_REDO ($$) { my $self = shift; my $pkg = shift; my $dist_config = shift; my $dist_name = $dist_config->get('DIST_NAME'); local( *F ); lock_file( "build/REDO" ); if (open( F, "build/REDO" )) { my @pkgs = ; close( F ); if (grep( /^\Q$pkg\E\s/, @pkgs )) { $self->log("$pkg is already in REDO -- not rescheduled\n"); goto unlock; } } if (open( F, ">>build/REDO" )) { print F "$pkg $dist_name\n"; close( F ); $self->log("Scheduled $pkg for rebuild\n"); } else { $self->set('Mail Error', $self->get('Mail Error') . "Can't open build/REDO: $!\n"); $self->log("Can't open build/REDO: $!\n"); } unlock: unlock_file( "build/REDO" ); } sub remove_from_REDO ($) { my $self = shift; my $pkg = shift; local( *F ); lock_file( "build/REDO" ); goto unlock if !open( F, "; close( F ); if (!open( F, ">build/REDO" )) { $self->log("Can't open REDO for writing: $!\n", "Would write: @pkgs\nminus $pkg\n"); goto unlock; } my $done = 0; foreach (@pkgs) { if (/^\Q$pkg\E\s/) { ++$done; } else { print F $_; } } close( F ); $self->log("Deleted $pkg from REDO list.\n") if $done; unlock: unlock_file( "build/REDO" ); return $done; } sub append_to_SKIP ($) { my $self = shift; my $pkg = shift; local( *F ); return if !open( F, "; close( F ); if (grep( /^\s*\Q$pkg\E$/, @lines )) { # pkg is in build-progress, but without a suffix (failed, # successful, currently building), so it can be skipped lock_file( "build/SKIP" ); if (open( F, ">>build/SKIP" )) { print F "$pkg\n"; close( F ); $self->log("Told sbuild to skip $pkg\n"); } unlock_file( "build/SKIP" ); } } sub check_is_outdated ($$) { my $self = shift; my $dist_config = shift; my $package = shift; my $dist_name = $dist_config->get('DIST_NAME'); my %newv; return 0 if !(%newv = $self->is_outdated( $dist_name, $package )); my $have_changes = 1 if $self->get('Mail Body Text') =~ /^---+\s*BEGIN PGP SIGNED MESSAGE/; # If we have a changes file, we can see which distributions that # package is aimed to. Otherwise, we're out of luck because we can't see # reliably anymore for which distribs the package was for. Let the user # find out this... # # If the package is outdated in all dists we have to consider, # send a plain error message. If only outdated in some of them, send a # modified error that tells to send a restricted changes (with # Distribution: only for those dists where it isn't outdated), or to do # the action manually, because it would be (wrongly) propagated. goto all_outdated if !$have_changes; my @check_dists = (); @check_dists = $self->get_dists_from_changes($self->get('Mail Body Text')); my @not_outdated = (); my @outdated = (); foreach (@check_dists) { if (!exists $newv{$_}) { push( @not_outdated, $_ ); } else { push( @outdated, $_ ); } } return 0 if !@outdated; if (@not_outdated) { $self->set('Mail Short Error', $self->get('Mail Short Error') . "$package ($dist_name) partially outdated ". "(ok for @not_outdated)\n"); $self->set('Mail Error', $self->get('Mail Error') . "Package $package ($dist_name) is partially outdated.\n". "The following new versions have appeared in the meantime:\n ". join( "\n ", map { "$_: $newv{$_}" } keys %newv )."\n\n". "Please send a .changes for the following distributions only:\n". " Distribution: ".join( " ", @not_outdated )."\n"); } else { all_outdated: $self->set('Mail Short Error', $self->get('Mail Short Error') . "$package ($dist_name) outdated; new versions ". join( ", ", map { "$_:$newv{$_}" } keys %newv )."\n"); $self->set('Mail Error', $self->get('Mail Error') . "Package $package ($dist_name) is outdated.\n". "The following new versions have appeared in the meantime:\n ". join( "\n ", map { "$_: $newv{$_}" } keys %newv )."\n"); } return 1; } sub is_outdated ($$) { my $self = shift; my $dist_name = shift; my $pkg = shift; my %result = (); local( *F ); lock_file( "outdated-packages" ); goto unlock if !open( F, " ) { my($oldpkg, $newpkg, $t, $d) = split( /\s+/, $_ ); $d ||= "unstable"; if ($oldpkg eq $pkg && $d eq $dist_name) { $result{$d} = $newpkg; } } close( F ); unlock: unlock_file( "outdated-packages" ); return %result; } sub register_outdated ($$$) { my $self = shift; my $dist = shift; my $oldv = shift; my $newv = shift; my(@pkgs); local( *F ); lock_file( "outdated-packages" ); if (open( F, "; close( F ); } if (!open( F, ">outdated-packages" )) { $self->log("Cannot open outdated-packages for writing: $!\n"); goto unlock; } my $now = time; my @d = (); foreach (@pkgs) { my($oldpkg, $newpkg, $t, $d) = split( /\s+/, $_ ); $d ||= "unstable"; next if ($oldpkg eq $oldv && $d eq $dist) || ($now - $t) > 21*24*60*60; print F $_; } print F "$oldv $newv $now $dist\n"; close( F ); unlock: unlock_file( "outdated-packages" ); } sub set_to_failed ($$$) { my $self = shift; my $pkg = shift; my $dist_config = shift; my $text = shift; my $dist_name = $dist_config->get('DIST_NAME'); my $is_bugno = 0; $text =~ s/^\.$/../mg; $is_bugno = 1 if $text =~ /^\(see #\d+\)$/; return if !$self->check_state( $pkg, $dist_config, $is_bugno ? "Failed" : qw(Built Building Build-Attempted BD-Uninstallable) ); my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query_out('--failed', $pkg); if ($pipe) { print $pipe "${text}.\n"; close($pipe); } if ($?) { my $t = "wanna-build --failed failed with status ".exitstatus($?)."\n"; $self->log($t); $self->set('Mail Error', $self->get('Mail Error') . $t); } elsif ($is_bugno) { $self->log("Bug# appended to fail message of $pkg ($dist_name)\n"); } else { $self->log("Set package $pkg ($dist_name) to Failed\n"); $self->write_stats("failed", 1); } } sub set_to_depwait ($$$) { my $self = shift; my $pkg = shift; my $dist_config = shift; my $deps = shift; my $dist_name = $dist_config->get('DIST_NAME'); my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query_out('--dep-wait', $pkg); if ($pipe) { print $pipe "$deps\n"; close($pipe); } if ($?) { my $t = "wanna-build --dep-wait failed with status ".exitstatus($?)."\n"; $self->log($t); $self->set('Mail Error', $self->get('Mail Error') . $t); } else { $self->log("Set package $pkg ($dist_name) to Dep-Wait\nDependencies: $deps\n"); } $self->write_stats("dep-wait", 1); } sub give_back ($$) { my $self = shift; my $pkg = shift; my $dist_config = shift; my $dist_name = $dist_config->get('DIST_NAME'); my $answer; my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query('--give-back', $pkg); if ($pipe) { $answer = <$pipe>; close($pipe); } if ($?) { $self->set('Mail Error', $self->get('Mail Error') . "wanna-build --give-back failed:\n$answer"); } else { $self->log("Given back package $pkg ($dist_name)\n"); } } sub no_build ($$) { my $self = shift; my $pkg = shift; my $dist_config = shift; my $dist_name = $dist_config->get('DIST_NAME'); my $answer_cmd; my $answer; my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query('--no-build', $pkg); if ($pipe) { $answer = <$pipe>; close($pipe); } if ($?) { $self->set('Mail Error', $self->get('Mail Error') . "no-build failed:\n$answer"); } else { $self->log("Package $pkg ($dist_name) to set Not-For-Us\n"); } $self->write_stats("no-build", 1); } sub get_fail_msg ($$) { my $self = shift; my $pkg = shift; my $dist_config = shift; my $dist_name = $dist_config->get('DIST_NAME'); $pkg =~ s/_.*//; my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query('--info', $pkg); if ($pipe) { my $msg = ""; while(<$pipe>) { if (/^\s*Old-Failed\s*:/) { while(<$pipe>) { last if /^ \S+\s*/; $_ =~ s/^\s+//; if (/^----+\s+\S+\s+----+$/) { last if $msg; } else { $msg .= $_; } } last; } } close($pipe); return $msg if $msg; $self->set('Mail Error', $self->get('Mail Error') . "Couldn't find Old-Failed in info for $pkg\n"); return "Same as previous version (couldn't extract the text)\n"; } else { $self->set('Mail Error', $self->get('Mail Error') . "Couldn't start wanna-build --info: $!\n"); return "Same as previous version (couldn't extract the text)\n"; } } sub check_state ($@) { my $self = shift; my $mail_error = $self->get('Mail Error'); my $retval = $self->check_state_internal(@_); # check if we should retry the call if ($retval == -1) { my $interval = int(rand(120)); $self->log("Retrying --info in $interval seconds...\n"); # reset error to old value $self->set('Mail Error', $mail_error); # 0..120s of sleep ought to be enough for retrying; # for mail bursts, this should get us out of the # crticial mass sleep $interval; $retval = $self->check_state_internal(@_); # remap the -1 retry code to failure if ($retval == -1) { return 0; } else { return $retval; } } return $retval; } sub check_state_internal ($$@) { my $self = shift; my $pkgv = shift; my $dist_config = shift; my @wanted_states = @_; my $dist_name = $dist_config->get('DIST_NAME'); $pkgv =~ /^([^_]+)_(.+)/; my ($pkg, $vers) = ($1, $2); my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query('--info', $pkg); if (!$pipe) { $self->set('Mail Error', $self->get('Mail Error') . "Couldn't start wanna-build --info: $!\n"); $self->log("Couldn't start wanna-build --info: $!\n"); # let check_state() retry if needed return -1; } my ($av, $as, $ab, $an); while(<$pipe>) { $av = $1 if /^\s*Version\s*:\s*(\S+)/; $as = $1 if /^\s*State\s*:\s*(\S+)/; $ab = $1 if /^\s*Builder\s*:\s*(\S+)/; $an = $1 if /^\s*Binary-NMU-Version\s*:\s*(\d+)/; } close($pipe); if ($?) { my $t = "wanna-build --info failed with status ".exitstatus($?)."\n"; $self->log($t); $self->set('Mail Error', $self->get('Mail Error') . $t); return 0; } my $msg = "$pkgv($dist_name) check_state(@wanted_states): "; $av = binNMU_version($av,$an,undef) if (defined $an); if ($av ne $vers) { $self->set('Mail Error', $self->get('Mail Error') . $msg."version $av registered as $as\n"); return 0; } if (!Buildd::isin( $as, @wanted_states)) { $self->set('Mail Error', $self->get('Mail Error') . $msg."state is $as\n"); return 0; } if ($as eq "Building" && $ab ne $dist_config->get('WANNA_BUILD_DB_USER')) { $self->set('Mail Error', $self->get('Mail Error') . $msg."is building by $ab\n"); return 0; } return 1; } sub check_building_any_dist ($) { my $self = shift; my $pkgv = shift; my @dists; $pkgv =~ /^([^_]+)_(.+)/; my ($pkg, $vers) = ($1, $2); for my $dist_config (@{$self->get_conf('DISTRIBUTIONS')}) { my $dist_name = $dist_config->get('DIST_NAME'); my $db = $self->get_db_handle($dist_config); my $pipe = $db->pipe_query('--info', $pkg); if (!$pipe) { $self->set('Mail Error', $self->get('Mail Error') . "Couldn't start wanna-build --info: $!\n"); return 0; } my $text; { local ($/); $text = <$pipe>; } close($pipe); while( $text =~ /^\Q$pkg\E\((\w+)\):(.*)\n((\s.*\n)*)/mg ) { my ($dist, $rest, $info) = ($1, $2, $3); next if $rest =~ /not registered/; my ($av, $as, $ab); $av = $1 if $info =~ /^\s*Version\s*:\s*(\S+)/mi; $as = $1 if $info =~ /^\s*State\s*:\s*(\S+)/mi; $ab = $1 if $info =~ /^\s*Builder\s*:\s*(\S+)/mi; push( @dists, $dist ) if $av eq $vers && $as eq "Building" && $ab eq $self->get_conf('WANNA_BUILD_DB_USER'); } } return @dists; } sub get_files_from_changes ($) { my $self = shift; my $changes_text = shift; my(@filelines, @files); $changes_text =~ /^Files:\s*\n((^[ ]+.*\n)*)/m; @filelines = split( "\n", $1 ); foreach (@filelines) { push( @files, (split( /\s+/, $_ ))[5] ); } return @files; } sub get_dists_from_changes ($) { my $self = shift; my $changes_text = shift; $changes_text =~ /^Distribution:\s*(.*)\s*$/mi; return split( /\s+/, $1 ); } sub get_upload_queue_dirs ($) { my $self = shift; my $changes_text = shift; my %upload_dirs; my @dists = $self->get_dists_from_changes( $changes_text ); for my $dist_config (@{$self->get_conf('DISTRIBUTIONS')}) { my $upload_dir = $self->get_conf('HOME') . '/' . $dist_config->get('DUPLOAD_LOCAL_QUEUE_DIR'); if (grep { $dist_config->get('DIST_NAME') eq $_ } @dists) { $upload_dirs{$upload_dir} = 1; } } return keys %upload_dirs; } sub find_upload_dirs_for_changes_file ($) { my $self = shift; my $changes_file_name = shift; my %dirs; for my $dist_config (@{$self->get_conf('DISTRIBUTIONS')}) { my $upload_dir = $self->get_conf('HOME') . '/' . $dist_config->get('DUPLOAD_LOCAL_QUEUE_DIR'); if (-f "$upload_dir/$changes_file_name") { $dirs{$upload_dir} = 1; } } return keys %dirs; } sub reply ($) { my $self = shift; my $text = shift; my( $to, $subj, $quoting ); $to = $self->get('Mail Header')->{'reply-to'} || $self->get('Mail Header')->{'from'}; $subj = $self->get('Mail Header')->{'subject'}; $subj = "Re: $subj" if $subj !~ /^Re\S{0,2}:/; ($quoting = $self->get('Mail Body Text')) =~ s/\n+$/\n/; $quoting =~ s/^/> /mg; send_mail( $to, $subj, "$text\n$quoting", "In-Reply-To: ". $self->get('Mail Header')->{'message-id'}. "\n" ); } sub is_blacklisted ($) { my $self = shift; my $addr = shift; local( *BL ); $addr = $1 if $addr =~ /<(.*)>/; return 0 if !open( BL, " ) { chomp; if ($addr =~ /$_$/) { close( BL ); return 1; } } close( BL ); return 0; } sub add_error_mail () { my $self = shift; local( *F ); my $now = time; my @em = (); if (open( F, " ); close( F ); } push( @em, $now ); shift @em while @em && ($now - $em[0]) > $self->get_conf('ERROR_MAIL_WINDOW'); if (@em) { open( F, ">mail-errormails" ); print F join( "\n", @em ), "\n"; close( F ); } else { unlink( "mail-errormails" ); } return scalar(@em); } 1; sbuild-0.67.0/lib/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665015375 xustar0030 mtime=1451136949.473714215 30 atime=1451136977.865751655 30 ctime=1451136984.093759888 sbuild-0.67.0/lib/Makefile.in0000644000175000017500000005255712637513665016233 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am subdir = lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(perlmoddir)" DATA = $(perlmod_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) SUBDIRS = Buildd Sbuild perlmod_DATA = \ Buildd.pm \ Sbuild.pm EXTRA_DIST = \ $(perlmod_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu lib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-perlmodDATA: $(perlmod_DATA) @$(NORMAL_INSTALL) @list='$(perlmod_DATA)'; test -n "$(perlmoddir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(perlmoddir)'"; \ $(MKDIR_P) "$(DESTDIR)$(perlmoddir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(perlmoddir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(perlmoddir)" || exit $$?; \ done uninstall-perlmodDATA: @$(NORMAL_UNINSTALL) @list='$(perlmod_DATA)'; test -n "$(perlmoddir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(perlmoddir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(perlmoddir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-perlmodDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-perlmodDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-perlmodDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-perlmodDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/lib/PaxHeaders.4860/Sbuild.pm0000644000000000000000000000013212637466265015113 xustar0030 mtime=1451125941.660607678 30 atime=1451125941.664607691 30 ctime=1451136984.097759894 sbuild-0.67.0/lib/Sbuild.pm0000644000175000017500000002336512637466265015744 0ustar00joschjosch00000000000000# # Sbuild.pm: library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2008 Roger Leigh . # ####################################################################### package Sbuild; use Sbuild::Sysconfig; use strict; use warnings; use POSIX; use FileHandle; use Filesys::Df qw(); use Time::Local; use IO::Zlib; use MIME::Base64; use Dpkg::Control; use Dpkg::Checksums; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw($debug_level $devnull binNMU_version parse_date isin copy dump_file check_packages help_text version_text usage_error send_mail debug debug2 df check_group_membership dsc_files dsc_pkgver); } our $devnull; our $debug_level = 0; BEGIN { # A file representing /dev/null if (!open($devnull, '+<', '/dev/null')) { die "Cannot open /dev/null: $!\n";; } } sub binNMU_version ($$$); sub parse_date ($); sub isin ($@); sub copy ($); sub dump_file ($); sub check_packages ($$); sub help_text ($$); sub version_text ($); sub usage_error ($$); sub debug (@); sub debug2 (@); sub check_group_membership(); sub dsc_files ($); sub binNMU_version ($$$) { my $v = shift; my $binNMUver = shift; my $append_to_version = shift; my $ver = $v; if (defined($append_to_version) && $append_to_version) { $ver .= $append_to_version; } if (defined($binNMUver) && $binNMUver) { $ver .= "+b$binNMUver"; } return $ver; } my %monname = ('jan', 0, 'feb', 1, 'mar', 2, 'apr', 3, 'may', 4, 'jun', 5, 'jul', 6, 'aug', 7, 'sep', 8, 'oct', 9, 'nov', 10, 'dec', 11 ); sub parse_date ($) { my $text = shift; return 0 if !$text; die "Cannot parse date: $text\n" if $text !~ /^(\d{4}) (\w{3}) (\d+) (\d{2}):(\d{2}):(\d{2})$/; my ($year, $mon, $day, $hour, $min, $sec) = ($1, $2, $3, $4, $5, $6); $mon =~ y/A-Z/a-z/; die "Invalid month name $mon" if !exists $monname{$mon}; $mon = $monname{$mon}; return timegm($sec, $min, $hour, $day, $mon, $year); } sub isin ($@) { my $val = shift; return grep( $_ eq $val, @_ ); } sub copy ($) { my $r = shift; my $new; if (ref($r) eq "HASH") { $new = { }; foreach (keys %$r) { $new->{$_} = copy($r->{$_}); } } elsif (ref($r) eq "ARRAY") { my $i; $new = [ ]; for( $i = 0; $i < @$r; ++$i ) { $new->[$i] = copy($r->[$i]); } } elsif (!ref($r)) { $new = $r; } else { die "unknown ref type in copy\n"; } return $new; } sub dump_file ($) { my $file = shift; if (-r "$file" && open(SOURCES, "<$file")) { print " +------------------------------------------------------------------------\n"; while () { chomp; print " |$_\n"; } print " +------------------------------------------------------------------------\n"; close(SOURCES) or print "Failed to close $file\n"; } else { print "W: Failed to open $file\n"; } } # set and list saved package list (used by sbuild-checkpackages) sub check_packages ($$) { my $chroot = shift; my $mode = shift; my $package_checklist = $chroot->get_conf('PACKAGE_CHECKLIST'); my $chroot_dir = $chroot->get('Location'); my (@status, @ref, @install, @remove); if (! open STATUS, "grep-status -F Status -s Package ' installed' '$chroot_dir/var/lib/dpkg/status' | awk '{print \$2}' |" ) { print STDERR "Can't read dpkg status file in chroot: $!\n"; return 1; } while () { chomp; push @status, $_; } if (! close STATUS) { print STDERR "Error reading dpkg status file in chroot: $!\n"; return 1; } @status = sort @status; if (!@status) { print STDERR "dpkg status file is empty\n"; return 1; } if ($mode eq "set") { if (! open WREF, "> $chroot_dir/$package_checklist") { print STDERR "Can't write reference status file $chroot_dir/$package_checklist: $!\n"; return 1; } foreach (@status) { print WREF "$_\n"; } if (! close WREF) { print STDERR "Error writing reference status file: $!\n"; return 1; } } else { # "list" if (! open REF, "< $chroot_dir/$package_checklist") { print STDERR "Can't read reference status file $chroot_dir/$package_checklist: $!\n"; return 1; } while () { chomp; push @ref, $_; } if (! close REF) { print STDERR "Error reading reference status file: $!\n"; return 1; } @ref = sort @ref; if (!@ref) { print STDERR "Reference status file is empty\n"; return 1; } print "DELETE ADD\n"; print "--------------------------------------\n"; my $i = 0; my $j = 0; while ($i < scalar @status && $j < scalar @ref) { my $c = $status[$i] cmp $ref[$j]; if ($c < 0) { # In status, not reference; remove. print "$status[$i]\n"; $i++; } elsif ($c > 0) { # In reference, not status; install. print " $ref[$j]\n"; $j++; } else { # Identical; skip. $i++; $j++; } } # Print any remaining elements while ($i < scalar @status) { print "$status[$i]\n"; $i++; } while ($j < scalar @ref) { print " $ref[$j]\n"; $j++; } } } sub help_text ($$) { my $section = shift; my $page = shift; system("/usr/bin/man", "$section", "$page"); exit 0; } sub version_text ($) { my $program = shift; print <<"EOF"; $program (Debian sbuild) $Sbuild::Sysconfig::version ($Sbuild::Sysconfig::release_date) Written by Roman Hodek, James Troup, Ben Collins, Ryan Murray, Rick Younie, Francesco Paolo Lovergine, Michael Banck, Roger Leigh and Andres Mejia. Copyright © 1998-2000 Roman Hodek © 1998-1999 James Troup © 2003-2006 Ryan Murray © 2001-2003 Rick Younie © 2003-2004 Francesco Paolo Lovergine © 2005 Michael Banck © 2005-2010 Roger Leigh © 2009-2010 Andres Mejia This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. EOF exit 0; } # Print an error message about incorrect command-line options sub usage_error ($$) { my $program = shift; my $message = shift; print STDERR "E: $message\n"; print STDERR "I: Run '$program --help' to list usage example and all available options\n"; exit 1; } sub send_mail ($$$$) { my $conf = shift; my $to = shift; my $subject = shift; my $file = shift; local( *MAIL, *F ); if (!open( F, "<$file" )) { warn "Cannot open $file for mailing: $!\n"; return 0; } local $SIG{'PIPE'} = 'IGNORE'; if (!open( MAIL, "|" . $conf->get('MAILPROG') . " -oem $to" )) { warn "Could not open pipe to " . $conf->get('MAILPROG') . ": $!\n"; close( F ); return 0; } print MAIL "From: " . $conf->get('MAILFROM') . "\n"; print MAIL "To: $to\n"; print MAIL "Subject: $subject\n"; print MAIL "Content-Type: text/plain; charset=UTF-8\n"; print MAIL "Content-Transfer-Encoding: 8bit\n"; print MAIL "\n"; while( ) { print MAIL "." if $_ eq ".\n"; print MAIL $_; } close( F ); if (!close( MAIL )) { warn $conf->get('MAILPROG') . " failed (exit status $?)\n"; return 0; } return 1; } # Note: split to stderr sub debug (@) { # TODO: Add debug level checking. if ($debug_level) { print STDERR "D: ", @_; } } sub debug2 (@) { # TODO: Add debug level checking. if ($debug_level && $debug_level >= 2) { print STDERR "D2: ", @_; } } sub df { my $dir = shift; my $stat = Filesys::Df::df($dir); return $stat->{bfree} if (defined($stat)); # This only happens if $dir was not a valid file or directory. return 0; } sub check_group_membership () { # Skip for root return if ($< == 0); my $user = getpwuid($<); my ($name,$passwd,$gid,$members) = getgrnam("sbuild"); if (!$gid) { die "Group sbuild does not exist"; } my $in_group = 0; my @groups = getgroups(); push @groups, getgid(); foreach (@groups) { ($name, $passwd, $gid, $members) = getgrgid($_); $in_group = 1 if defined($name) && $name eq 'sbuild'; } if (!$in_group) { print STDERR "User $user is not currently an effective member of group sbuild. Please run:\n"; print STDERR " sudo sbuild-adduser $user\n"; print STDERR "And then either log out and log in again or use `newgrp sbuild` to gain sbuild group privileges\n"; exit(1); } return; } sub dsc_files ($) { my $dsc = shift; debug("Parsing $dsc\n"); my $pdsc = Dpkg::Control->new(type => CTRL_PKG_SRC); $pdsc->set_options(allow_pgp => 1); if (!$pdsc->load($dsc)) { print STDERR "Could not parse $dsc\n"; return undef; } my $csums = Dpkg::Checksums->new(); $csums->add_from_control($pdsc, use_files_for_md5 => 1); return $csums->get_files(); } sub dsc_pkgver ($) { my $dsc = shift; debug("Parsing $dsc\n"); my $pdsc = Dpkg::Control->new(type => CTRL_PKG_SRC); $pdsc->set_options(allow_pgp => 1); if (!$pdsc->load($dsc)) { print STDERR "Could not parse $dsc\n"; return undef; } return ($pdsc->{'Source'}, $pdsc->{'Version'}); } 1; sbuild-0.67.0/lib/PaxHeaders.4860/Makefile.am0000644000000000000000000000013112605405362015350 xustar0030 mtime=1444285170.648049667 29 atime=1451136876.87361918 30 ctime=1451136984.097759894 sbuild-0.67.0/lib/Makefile.am0000644000175000017500000000164212605405362016174 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk SUBDIRS = Buildd Sbuild perlmod_DATA = \ Buildd.pm \ Sbuild.pm EXTRA_DIST = \ $(perlmod_DATA) sbuild-0.67.0/lib/PaxHeaders.4860/Sbuild0000644000000000000000000000013212637513730014466 xustar0030 mtime=1451136984.189760016 30 atime=1451136984.349760227 30 ctime=1451136984.189760016 sbuild-0.67.0/lib/Sbuild/0000755000175000017500000000000012637513730015363 5ustar00joschjosch00000000000000sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ChrootSudo.pm0000644000000000000000000000013212627410514017165 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.173759994 sbuild-0.67.0/lib/Sbuild/ChrootSudo.pm0000644000175000017500000000722612627410514020014 0ustar00joschjosch00000000000000# # Chroot.pm: chroot library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2008 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::ChrootSudo; use strict; use warnings; use Sbuild::Sysconfig; BEGIN { use Exporter (); use Sbuild::Chroot; our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Chroot); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $chroot_id = shift; my $self = $class->SUPER::new($conf, $chroot_id); bless($self, $class); return $self; } sub begin_session { my $self = shift; my $chroot = $self->get('Chroot ID'); my $info = $self->get('Chroots')->get_info($chroot); print STDERR "Setting up chroot $chroot\n" if $self->get_conf('DEBUG'); if (defined($info) && defined($info->{'Location'}) && -d $info->{'Location'}) { $self->set('Priority', $info->{'Priority'}); $self->set('Location', $info->{'Location'}); $self->set('Session Purged', $info->{'Session Purged'}); } else { die $self->get('Chroot ID') . " chroot does not exist\n"; } return 0 if !$self->_setup_options(); return 1; } sub end_session { my $self = shift; # No-op for sudo. return 1; } sub get_command_internal { my $self = shift; my $options = shift; # Command to run. If I have a string, use it. Otherwise use the list-ref my $command = $options->{'INTCOMMAND_STR'} // $options->{'INTCOMMAND'}; my $user = $options->{'USER'}; # User to run command under my $dir; # Directory to use (optional) $dir = $self->get('Defaults')->{'DIR'} if (defined($self->get('Defaults')) && defined($self->get('Defaults')->{'DIR'})); $dir = $options->{'DIR'} if defined($options->{'DIR'}) && $options->{'DIR'}; if (!defined $user || $user eq "") { $user = $self->get_conf('USERNAME'); } my @cmdline; if (!defined($dir)) { $dir = '/'; } @cmdline = ($self->get_conf('SUDO'), '/usr/sbin/chroot', $self->get('Location'), $self->get_conf('SU'), "$user", '-s'); if( ref $command ) { my $shellcommand; foreach (@$command) { my $tmp = $_; $tmp =~ s/'//g; # Strip any single quotes for security if ($_ ne $tmp) { $self->log_warning("Stripped single quote from command for security: $_\n"); } if ($shellcommand) { $shellcommand .= " '$tmp'"; } else { $shellcommand = "'$tmp'"; } } push(@cmdline, '/bin/sh', '-c', "cd '$dir' && $shellcommand"); } else { push(@cmdline, '/bin/sh', '-c', "cd '$dir' && ( $command )"); } $options->{'USER'} = $user; $options->{'COMMAND'} = ref($command) ? $command : [split(/\s+/, $command)]; $options->{'EXPCOMMAND'} = \@cmdline; $options->{'CHDIR'} = undef; $options->{'DIR'} = $dir; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ChrootPlain.pm0000644000000000000000000000013212627410514017316 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.169759989 sbuild-0.67.0/lib/Sbuild/ChrootPlain.pm0000644000175000017500000000747312627410514020151 0ustar00joschjosch00000000000000# # Chroot.pm: chroot library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2006 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::ChrootPlain; use strict; use warnings; use POSIX; use FileHandle; use File::Temp (); use Sbuild::Sysconfig; BEGIN { use Exporter (); use Sbuild::Chroot; our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Chroot); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $chroot_id = shift; my $self = $class->SUPER::new($conf, $chroot_id); bless($self, $class); # Only run split, because plain makes no guarantee that networking # works inside the chroot. $self->set('Split', 1); return $self; } sub begin_session { my $self = shift; $self->set('Priority', 0); $self->set('Location', $self->get('Chroot ID')); $self->set('Session Purged', 0); return 0 if !$self->_setup_options(); return 1; } sub end_session { my $self = shift; # No-op for sudo. return 1; } sub get_command_internal { my $self = shift; my $options = shift; # Command to run. If I have a string, use it. Otherwise use the list-ref my $command = $options->{'INTCOMMAND_STR'} // $options->{'INTCOMMAND'}; my $user = $options->{'USER'}; # User to run command under my $dir; # Directory to use (optional) $dir = $self->get('Defaults')->{'DIR'} if (defined($self->get('Defaults')) && defined($self->get('Defaults')->{'DIR'})); $dir = $options->{'DIR'} if defined($options->{'DIR'}) && $options->{'DIR'}; if (!defined $user || $user eq "") { $user = $self->get_conf('USERNAME'); } my @cmdline; if (!defined($dir)) { $dir = '/'; } my $need_chroot = 0; $need_chroot = 1 if ($self->get('Location') ne '/'); my $need_su = 0; $need_su = 1 if (($need_chroot && $user ne 'root') || (!$need_chroot && $user ne $self->get_conf('USERNAME'))); push(@cmdline, $self->get_conf('SUDO')) if (($need_chroot || $need_su) && $user ne 'root'); push(@cmdline, '/usr/sbin/chroot', $self->get('Location')) if ($need_chroot); push(@cmdline, $self->get_conf('SU'), "$user", '-s') if ($need_su); if( ref $command ) { my $shellcommand; foreach (@$command) { my $tmp = $_; $tmp =~ s/'//g; # Strip any single quotes for security if ($_ ne $tmp) { $self->log_warning("Stripped single quote from command for security: $_\n"); } if ($shellcommand) { $shellcommand .= " '$tmp'"; } else { $shellcommand = "'$tmp'"; } } push(@cmdline, '/bin/sh', '-c', "cd '$dir' && $shellcommand"); } else { push(@cmdline, '/bin/sh', '-c', "cd '$dir' && ( $command )"); } $options->{'USER'} = $user; $options->{'COMMAND'} = ref($command) ? $command : [split(/\s+/, $command)]; $options->{'EXPCOMMAND'} = \@cmdline; $options->{'CHDIR'} = undef; $options->{'DIR'} = $dir; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ChrootInfoSudo.pm0000644000000000000000000000013212565554441020012 xustar0030 mtime=1440143649.644952177 30 atime=1451044743.162752739 30 ctime=1451136984.177759999 sbuild-0.67.0/lib/Sbuild/ChrootInfoSudo.pm0000644000175000017500000000543612565554441020642 0ustar00joschjosch00000000000000# # ChrootInfo.pm: chroot utility library for sbuild # Copyright © 2005-2006 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::ChrootInfoSudo; use Sbuild::ChrootInfo; use Sbuild::ChrootSudo; use strict; use warnings; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::ChrootInfo); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); return $self; } sub get_info { my $self = shift; my $chroot = shift; $chroot =~ /(\S+):(\S+)/; my ($namespace, $chrootname) = ($1, $2); my $info = undef; if (exists($self->get('Chroots')->{$namespace}) && defined($self->get('Chroots')->{$namespace}) && exists($self->get('Chroots')->{$namespace}->{$chrootname})) { $info = $self->get('Chroots')->{$namespace}->{$chrootname} } return $info; } sub get_info_all { my $self = shift; my $chroots = {}; # All sudo chroots are in the chroot namespace. my $namespace = "chroot"; $chroots->{$namespace} = {}; my $build_dir = $self->get_conf('BUILD_DIR'); # TODO: Configure $build_dir as $sudo_chroot_dir foreach (glob($self->get_conf('SBUILD_MODE') eq "user" ? "/etc/sbuild/chroot/*" : "$build_dir/chroot-*")) { my %tmp = ('Priority' => 0, 'Location' => $_, 'Session Purged' => 0); if (-d $tmp{'Location'}) { my $name = $_; if ($self->get_conf('SBUILD_MODE') eq "user") { $name =~ s/^\/etc\/sbuild\/chroot\///; } else { $name =~ s/\Q${build_dir}\/chroot-\E//; } if ($self->get_conf('DEBUG')) { print STDERR "Found chroot $name\n"; foreach (sort keys %tmp) { print STDERR " $_ $tmp{$_}\n"; } } $tmp{'Name'} = $name; $tmp{'Namespace'} = $namespace; $chroots->{$namespace}->{$name} = \%tmp; } } $self->set('Chroots', $chroots); } sub _create { my $self = shift; my $chroot_id = shift; my $chroot = undef; if (defined($chroot_id)) { $chroot = Sbuild::ChrootSudo->new($self->get('Config'), $chroot_id); } return $chroot; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/AspcudResolver.pm0000644000000000000000000000013212627410514020035 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.181760005 sbuild-0.67.0/lib/Sbuild/AspcudResolver.pm0000644000175000017500000001205412627410514020657 0ustar00joschjosch00000000000000# ResolverBase.pm: build library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2008 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::AspcudResolver; use strict; use warnings; use Sbuild::Base; use Sbuild::ResolverBase; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::ResolverBase); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $session = shift; my $host = shift; my $self = $class->SUPER::new($conf, $session, $host); bless($self, $class); return $self; } sub install_deps { my $self = shift; my $name = shift; my $cross = shift; my @pkgs = @_; my $status = 0; my $session = $self->get('Session'); my $dummy_pkg_name = 'sbuild-build-depends-' . $name. '-dummy'; # Call functions to setup an archive to install dummy package. return 0 unless ($self->setup_apt_archive($dummy_pkg_name, @pkgs)); return 0 unless (!$self->update_archive()); $self->log_subsection("Install $name build dependencies (aspcud-based resolver)"); #install aspcud first: my (@aspcud_installed_packages, @aspcud_removed_packages); if (!$self->run_apt('-y', \@aspcud_installed_packages, \@aspcud_removed_packages, 'install', 'apt-cudf', 'aspcud')) { $self->log_warning('Could not install aspcud!'); goto cleanup; } $self->set_installed(@aspcud_installed_packages); $self->set_removed(@aspcud_removed_packages); # Install the dummy package my (@instd, @rmvd); $self->log("Installing build dependencies\n"); my @apt_args = ("-yf", \@instd, \@rmvd); push @apt_args, 'install', $dummy_pkg_name; # It follows an explanation of the choice of the # APT::Solver::aspcud::Preferences setting # # Since it is assumed that the chroot only contains a base system and # build-essential, from which we assume that no package shall be removed, # we first minimize the number of removed packages. This means that if # there exist solutions that do not remove any packages, then those will # be evaluated further. The second optimization criteria is to minimize # the number of changed packages. This will take care that no packages of # the base system are unnecessarily upgraded to their versions from # experimental. It will also avoid any solutions that do need upgrades to # the experimental versions and keep the upgrades to a minimum if an # upgrade is strictly required. The third criteria minimizes the number of # new packages the solution installs. Here it can happen that installing a # dependency from experimental instead of unstable will lead to less new # packages. But this should only happen if the package in unstable depends # on more additional packages compared to the same package in # experimental. If the solutions are otherwise equal then as the last # criteria, the number of packages from experimental will be minimized by # maximizing the sum of the apt-pin values. Since packages from unstable # have a higher pin value than those in experimental, this should prefer # packages from unstable except if the solution from unstable is so large # compared to the one in experimental that their sum of pin values is # larger in which case the solution in experimental will be preferred. push @apt_args, '--solver', 'aspcud', '-o', 'APT::Solver::Strict-Pinning=false', '-o', 'APT::Solver::aspcud::Preferences=-removed,-changed,-new,+sum(solution,apt-pin)'; if (!$self->run_apt(@apt_args)) { $self->log("Package installation failed\n"); if (defined ($self->get('Session')->get('Session Purged')) && $self->get('Session')->get('Session Purged') == 1) { $self->log("Not removing build depends: cloned chroot in use\n"); } else { $self->set_installed(@instd); $self->set_removed(@rmvd); goto package_cleanup; } return 0; } $self->set_installed(@instd); $self->set_removed(@rmvd); $status = 1; package_cleanup: if ($status == 0) { if (defined ($session->get('Session Purged')) && $session->get('Session Purged') == 1) { $self->log("Not removing installed packages: cloned chroot in use\n"); } else { $self->uninstall_deps(); } } cleanup: $self->cleanup_apt_archive(); return $status; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Build.pm0000644000000000000000000000013212637466265016152 xustar0030 mtime=1451125941.876608352 30 atime=1451125941.880608364 30 ctime=1451136984.165759984 sbuild-0.67.0/lib/Sbuild/Build.pm0000644000175000017500000023645412637466265017010 0ustar00joschjosch00000000000000# # Build.pm: build library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2010 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::Build; use strict; use warnings; use English; use POSIX; use Errno qw(:POSIX); use Fcntl; use File::Basename qw(basename dirname); use File::Temp qw(tempdir); use File::Path qw(make_path); use FileHandle; use File::Copy qw(); # copy is already exported from Sbuild, so don't export # anything. use Dpkg::Arch; use Dpkg::Control; use Dpkg::Version; use Dpkg::Deps qw(deps_concat deps_parse); use Scalar::Util 'refaddr'; use MIME::Lite; use Term::ANSIColor; use Sbuild qw($devnull binNMU_version copy isin debug df send_mail dsc_files dsc_pkgver); use Sbuild::Base; use Sbuild::ChrootInfoSchroot; use Sbuild::ChrootInfoSudo; use Sbuild::ChrootRoot; use Sbuild::Sysconfig qw($version $release_date); use Sbuild::Sysconfig; use Sbuild::Resolver qw(get_resolver); use Sbuild::Exception; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Base); @EXPORT = qw(); } our $saved_stdout = undef; our $saved_stderr = undef; sub new { my $class = shift; my $dsc = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('ABORT', undef); $self->set('Job', $dsc); $self->set('Chroot Dir', ''); $self->set('Chroot Build Dir', ''); $self->set('Build Dir', ''); $self->set('Max Lock Trys', 120); $self->set('Lock Interval', 5); $self->set('Pkg Status', 'pending'); $self->set('Pkg Status Trigger', undef); $self->set('Pkg Start Time', 0); $self->set('Pkg End Time', 0); $self->set('Pkg Fail Stage', 'init'); $self->set('Build Start Time', 0); $self->set('Build End Time', 0); $self->set('Install Start Time', 0); $self->set('Install End Time', 0); $self->set('This Time', 0); $self->set('This Space', 0); $self->set('Sub Task', 'initialisation'); $self->set('Host', Sbuild::ChrootRoot->new($self->get('Config'))); # Host execution defaults my $host_defaults = $self->get('Host')->get('Defaults'); $host_defaults->{'USER'} = $self->get_conf('USERNAME'); $host_defaults->{'DIR'} = $self->get_conf('HOME'); $host_defaults->{'STREAMIN'} = $devnull; $host_defaults->{'ENV'}->{'LC_ALL'} = 'POSIX'; $host_defaults->{'ENV'}->{'SHELL'} = '/bin/sh'; $host_defaults->{'ENV_FILTER'} = $self->get_conf('ENVIRONMENT_FILTER'); # Note, this should never fail. But, we should handle failure anyway. $self->get('Host')->begin_session(); $self->set('Session', undef); $self->set('Dependency Resolver', undef); $self->set('Log File', undef); $self->set('Log Stream', undef); $self->set('Summary Stats', {}); # DSC, package and version information: $self->set_dsc($dsc); # Note, will be overwritten by Version: in DSC. $self->set_version($dsc); # Can sources be obtained? $self->set('Invalid Source', 0); $self->set('Invalid Source', 1) if (!defined $self->get('Version')); debug("Invalid Source = " . $self->get('Invalid Source') . "\n"); return $self; } sub request_abort { my $self = shift; my $reason = shift; $self->log_error("ABORT: $reason (requesting cleanup and shutdown)\n"); $self->set('ABORT', $reason); } sub check_abort { my $self = shift; if ($self->get('ABORT')) { Sbuild::Exception::Build->throw(error => "Aborting build: " . $self->get('ABORT'), failstage => "abort"); } } sub set_dsc { my $self = shift; my $dsc = shift; debug("Setting DSC: $dsc\n"); $self->set('DSC', $dsc); $self->set('Source Dir', dirname($dsc)); $self->set('DSC Base', basename($dsc)); debug("DSC = " . $self->get('DSC') . "\n"); debug("Source Dir = " . $self->get('Source Dir') . "\n"); debug("DSC Base = " . $self->get('DSC Base') . "\n"); } sub set_version { my $self = shift; my $pkgv = shift; debug("Setting package version: $pkgv\n"); my ($pkg, $version); if (-f $pkgv && -r $pkgv) { ($pkg, $version) = dsc_pkgver($pkgv); } else { ($pkg, $version) = split /_/, $pkgv; } my $pver = Dpkg::Version->new($version, check => 1); return if (!defined($pkg) || !defined($version) || !defined($pver)); my ($o_version); $o_version = $pver->version(); # Original version (no binNMU or other addition) my $oversion = $version; # Original version with stripped epoch my $osversion = $o_version; $osversion .= '-' . $pver->revision() unless $pver->{'no_revision'}; # Add binNMU to version if needed. if ($self->get_conf('BIN_NMU') || $self->get_conf('APPEND_TO_VERSION')) { $version = binNMU_version($version, $self->get_conf('BIN_NMU_VERSION'), $self->get_conf('APPEND_TO_VERSION')); } my $bver = Dpkg::Version->new($version, check => 1); return if (!defined($bver)); my ($b_epoch, $b_version, $b_revision); $b_epoch = $bver->epoch(); $b_epoch = "" if $bver->{'no_epoch'}; $b_version = $bver->version(); $b_revision = $bver->revision(); $b_revision = "" if $bver->{'no_revision'}; # Version with binNMU or other additions and stripped epoch my $sversion = $b_version; $sversion .= '-' . $b_revision if $b_revision ne ''; $self->set('Package', $pkg); $self->set('Version', $version); $self->set('Package_Version', "${pkg}_$version"); $self->set('Package_OVersion', "${pkg}_$oversion"); $self->set('Package_OSVersion', "${pkg}_$osversion"); $self->set('Package_SVersion', "${pkg}_$sversion"); $self->set('OVersion', $oversion); $self->set('OSVersion', $osversion); $self->set('SVersion', $sversion); $self->set('VersionEpoch', $b_epoch); $self->set('VersionUpstream', $b_version); $self->set('VersionDebian', $b_revision); $self->set('DSC File', "${pkg}_${osversion}.dsc"); $self->set('DSC Dir', "${pkg}-${b_version}"); debug("Package = " . $self->get('Package') . "\n"); debug("Version = " . $self->get('Version') . "\n"); debug("Package_Version = " . $self->get('Package_Version') . "\n"); debug("Package_OVersion = " . $self->get('Package_OVersion') . "\n"); debug("Package_OSVersion = " . $self->get('Package_OSVersion') . "\n"); debug("Package_SVersion = " . $self->get('Package_SVersion') . "\n"); debug("OVersion = " . $self->get('OVersion') . "\n"); debug("OSVersion = " . $self->get('OSVersion') . "\n"); debug("SVersion = " . $self->get('SVersion') . "\n"); debug("VersionEpoch = " . $self->get('VersionEpoch') . "\n"); debug("VersionUpstream = " . $self->get('VersionUpstream') . "\n"); debug("VersionDebian = " . $self->get('VersionDebian') . "\n"); debug("DSC File = " . $self->get('DSC File') . "\n"); debug("DSC Dir = " . $self->get('DSC Dir') . "\n"); } sub set_status { my $self = shift; my $status = shift; $self->set('Pkg Status', $status); if (defined($self->get('Pkg Status Trigger'))) { $self->get('Pkg Status Trigger')->($self, $status); } } sub get_status { my $self = shift; return $self->get('Pkg Status'); } # This function is the main entry point into the package build. It # provides a top-level exception handler and does the initial setup # including initiating logging and creating host chroot. The nested # run_ functions it calls are separate in order to permit running # cleanup tasks in a strict order. sub run { my $self = shift; eval { $self->check_abort(); $self->set_status('building'); $self->set('Pkg Start Time', time); $self->set('Pkg End Time', $self->get('Pkg Start Time')); # Acquire the architectures we're building for and on. $self->set('Host Arch', $self->get_conf('HOST_ARCH')); $self->set('Build Arch', $self->get_conf('BUILD_ARCH')); $self->set('Build Profiles', $self->get_conf('BUILD_PROFILES')); my $dist = $self->get_conf('DISTRIBUTION'); if (!defined($dist) || !$dist) { Sbuild::Exception::Build->throw(error => "No distribution defined", failstage => "init"); } if ($self->get('Invalid Source')) { Sbuild::Exception::Build->throw(error => "Invalid source " . $self->get('DSC'), failstage => "init"); } # TODO: Get package name from build object if (!$self->open_build_log()) { Sbuild::Exception::Build->throw(error => "Failed to open build log", failstage => "init"); } # Set a chroot to run commands in host my $host = $self->get('Host'); # Host execution defaults (set streams) my $host_defaults = $host->get('Defaults'); $host_defaults->{'STREAMIN'} = $devnull; $host_defaults->{'STREAMOUT'} = $self->get('Log Stream'); $host_defaults->{'STREAMERR'} = $self->get('Log Stream'); $self->check_abort(); $self->run_chroot(); }; debug("Error run(): $@") if $@; my $e; if ($e = Exception::Class->caught('Sbuild::Exception::Build')) { if ($e->status) { $self->set_status($e->status); } else { $self->set_status("failed"); } $self->set('Pkg Fail Stage', $e->failstage); $e->rethrow(); } } # Pack up source if needed and then run the main chroot session. # Close log during return/failure. sub run_chroot { my $self = shift; eval { $self->check_abort(); $self->run_chroot_session(); }; # Log exception info and set status and fail stage prior to # closing build log. my $e; if ($e = Exception::Class->caught('Sbuild::Exception::Build')) { $self->log_error("$e\n"); $self->log_info($e->info."\n") if ($e->info); if ($e->status) { $self->set_status($e->status); } else { $self->set_status("failed"); } $self->set('Pkg Fail Stage', $e->failstage); } $self->close_build_log(); if ($e) { $e->rethrow(); } } # Create main chroot session and package resolver. Creates a lock in # the chroot to prevent concurrent chroot usage (only important for # non-snapshot chroots). Ends chroot session on return/failure. sub run_chroot_session { my $self=shift; eval { $self->check_abort(); my $chroot_info; if ($self->get_conf('CHROOT_MODE') eq 'schroot') { $chroot_info = Sbuild::ChrootInfoSchroot->new($self->get('Config')); } else { $chroot_info = Sbuild::ChrootInfoSudo->new($self->get('Config')); } my $host = $self->get('Host'); my $session = $chroot_info->create('chroot', $self->get_conf('DISTRIBUTION'), $self->get_conf('CHROOT'), $self->get_conf('BUILD_ARCH')); if (!defined $session) { Sbuild::Exception::Build->throw(error => "Error creating chroot", failstage => "create-session"); } $self->check_abort(); if (!$session->begin_session()) { Sbuild::Exception::Build->throw(error => "Error creating chroot session: skipping " . $self->get('Package'), failstage => "create-session"); } $self->set('Session', $session); $self->check_abort(); my $chroot_arch = $self->chroot_arch(); if ($self->get_conf('BUILD_ARCH') ne $chroot_arch) { Sbuild::Exception::Build->throw( error => "Requested build architecture (" . $self->get_conf('BUILD_ARCH') . ") and chroot architecture (" . $chroot_arch . ") do not match. Skipping build.", info => "Please specify the correct architecture with --build, or use a chroot of the correct architecture", failstage => "create-session"); } $self->set('Chroot Dir', $session->get('Location')); if (defined($self->get_conf('BUILD_PATH')) && $self->get_conf('BUILD_PATH')) { my $build_path = $session->get('Location') . "/" . $self->get_conf('BUILD_PATH'); $self->set('Chroot Build Dir', $build_path); if (!(-d "$build_path")) { make_path($build_path, {error => \my $err} ); if (@$err) { my $error; for my $diag (@$err) { my ($file, $message) = %$diag; $error .= "mkdir $file: $message\n"; } Sbuild::Exception::Build->throw( error => $error, failstage => "create-session"); } } else { my $empty = isEmpty($build_path); if ($empty == 1) { Sbuild::Exception::Build->throw( error => "Buildpath: " . $build_path . " is not empty", failstage => "create-session"); } elsif ($empty == 2) { Sbuild::Exception::Build->throw( error => "Buildpath: " . $build_path . " cannot be read. Insufficient permissions?", failstage => "create-session"); } } } else { $self->set('Chroot Build Dir', tempdir($self->get('Package') . '-XXXXXX', DIR => $session->get('Location') . "/build")); } sub isEmpty{ my ($dirpath) = @_; my $file; if ( opendir my $dfh, $dirpath){ while (defined($file = readdir $dfh)){ next if $file eq '.' or $file eq '..'; closedir $dfh; return 1; } closedir $dfh; return 0; } return 2; } $self->set('Build Dir', $session->strip_chroot_path($self->get('Chroot Build Dir'))); # Run pre build external commands $self->check_abort(); if(!$self->run_external_commands("pre-build-commands")) { Sbuild::Exception::Build->throw(error => "Failed to execute pre-build-commands", failstage => "run-pre-build-commands"); } # Log colouring $self->build_log_colour('red', '^E: '); $self->build_log_colour('yellow', '^W: '); $self->build_log_colour('green', '^I: '); $self->build_log_colour('red', '^Status:'); $self->build_log_colour('green', '^Status: successful$'); $self->build_log_colour('yellow', '^Keeping session: '); $self->build_log_colour('red', '^Lintian:'); $self->build_log_colour('green', '^Lintian: pass$'); # Log filtering my $filter; $filter = $self->get('Build Dir') . '/' . $self->get('DSC Dir'); $filter =~ s;^/;;; $self->build_log_filter($filter, 'PKGBUILDDIR'); $filter = $self->get('Build Dir'); $filter =~ s;^/;;; $self->build_log_filter($filter, 'BUILDDIR'); $filter = $session->get('Location'); $filter =~ s;^/;;; $self->build_log_filter($filter , 'CHROOT'); # Need tempdir to be writable and readable by sbuild group. $self->check_abort(); $session->run_command( { COMMAND => ['chown', $self->get_conf('BUILD_USER') . ':sbuild', $self->get('Build Dir')], USER => 'root', DIR => '/' }); if ($?) { Sbuild::Exception::Build->throw(error => "Failed to set sbuild group ownership on chroot build dir", failstage => "create-build-dir"); } $self->check_abort(); $session->run_command( { COMMAND => ['chmod', '0770', $self->get('Build Dir')], USER => 'root', DIR => '/' }); if ($?) { Sbuild::Exception::Build->throw(error => "Failed to set sbuild group ownership on chroot build dir", failstage => "create-build-dir"); } $self->check_abort(); # Needed so chroot commands log to build log $session->set('Log Stream', $self->get('Log Stream')); $host->set('Log Stream', $self->get('Log Stream')); # Chroot execution defaults my $chroot_defaults = $session->get('Defaults'); $chroot_defaults->{'DIR'} = $self->get('Build Dir'); $chroot_defaults->{'STREAMIN'} = $devnull; $chroot_defaults->{'STREAMOUT'} = $self->get('Log Stream'); $chroot_defaults->{'STREAMERR'} = $self->get('Log Stream'); $chroot_defaults->{'ENV'}->{'LC_ALL'} = 'POSIX'; $chroot_defaults->{'ENV'}->{'SHELL'} = '/bin/sh'; $chroot_defaults->{'ENV'}->{'HOME'} = '/sbuild-nonexistent'; $chroot_defaults->{'ENV_FILTER'} = $self->get_conf('ENVIRONMENT_FILTER'); my $resolver = get_resolver($self->get('Config'), $session, $host); $resolver->set('Log Stream', $self->get('Log Stream')); $resolver->set('Arch', $self->get_conf('ARCH')); $resolver->set('Host Arch', $self->get_conf('HOST_ARCH')); $resolver->set('Build Arch', $self->get_conf('BUILD_ARCH')); $resolver->set('Build Profiles', $self->get_conf('BUILD_PROFILES')); $resolver->set('Chroot Build Dir', $self->get('Chroot Build Dir')); $self->set('Dependency Resolver', $resolver); # Lock chroot so it won't be tampered with during the build. $self->check_abort(); if (!$session->lock_chroot($self->get('Package_SVersion'), $$, $self->get_conf('USERNAME'))) { Sbuild::Exception::Build->throw(error => "Error locking chroot session: skipping " . $self->get('Package'), failstage => "lock-session"); } $self->check_abort(); $self->run_chroot_session_locked(); }; debug("Error run_chroot_session(): $@") if $@; # End chroot session my $session = $self->get('Session'); if (defined $session) { my $end_session = ($self->get_conf('PURGE_SESSION') eq 'always' || ($self->get_conf('PURGE_SESSION') eq 'successful' && $self->get_status() eq 'successful')) ? 1 : 0; if ($end_session) { $session->end_session(); } else { $self->log("Keeping session: " . $session->get('Session ID') . "\n"); } $session = undef; } $self->set('Session', $session); my $e; if ($e = Exception::Class->caught('Sbuild::Exception::Build')) { $e->rethrow(); } } # Run tasks in a *locked* chroot. Update and upgrade packages. # Unlocks chroot on return/failure. sub run_chroot_session_locked { my $self = shift; eval { my $session = $self->get('Session'); my $resolver = $self->get('Dependency Resolver'); # Run specified chroot setup commands $self->check_abort(); if(!$self->run_external_commands("chroot-setup-commands")) { Sbuild::Exception::Build->throw(error => "Failed to execute chroot-setup-commands", failstage => "run-chroot-setup-commands"); } $self->check_abort(); $self->check_abort(); if (!$resolver->setup()) { Sbuild::Exception::Build->throw(error => "resolver setup failed", failstage => "resolver setup"); } $self->check_abort(); $self->run_chroot_update(); $self->check_abort(); $self->run_fetch_install_packages(); }; debug("Error run_chroot_session_locked(): $@") if $@; my $session = $self->get('Session'); my $resolver = $self->get('Dependency Resolver'); $resolver->cleanup(); # Unlock chroot now it's cleaned up and ready for other users. $session->unlock_chroot(); my $e; if ($e = Exception::Class->caught('Sbuild::Exception::Build')) { $e->rethrow(); } } sub run_chroot_update { my $self = shift; my $resolver = $self->get('Dependency Resolver'); if ($self->get_conf('APT_CLEAN') || $self->get_conf('APT_UPDATE') || $self->get_conf('APT_DISTUPGRADE') || $self->get_conf('APT_UPGRADE')) { $self->log_subsection('Update chroot'); } # Clean APT cache. $self->check_abort(); if ($self->get_conf('APT_CLEAN')) { if ($resolver->clean()) { # Since apt-clean was requested specifically, fail on # error when not in buildd mode. $self->log("apt-get clean failed\n"); if ($self->get_conf('SBUILD_MODE') ne 'buildd') { Sbuild::Exception::Build->throw(error => "apt-get clean failed", failstage => "apt-get-clean"); } } } # Update APT cache. $self->check_abort(); if ($self->get_conf('APT_UPDATE')) { if ($resolver->update()) { # Since apt-update was requested specifically, fail on # error when not in buildd mode. if ($self->get_conf('SBUILD_MODE') ne 'buildd') { Sbuild::Exception::Build->throw(error => "apt-get update failed", failstage => "apt-get-update"); } } } # Upgrade using APT. $self->check_abort(); if ($self->get_conf('APT_DISTUPGRADE')) { if ($resolver->distupgrade()) { # Since apt-distupgrade was requested specifically, fail on # error when not in buildd mode. if ($self->get_conf('SBUILD_MODE') ne 'buildd') { Sbuild::Exception::Build->throw(error => "apt-get dist-upgrade failed", failstage => "apt-get-dist-upgrade"); } } } elsif ($self->get_conf('APT_UPGRADE')) { if ($resolver->upgrade()) { # Since apt-upgrade was requested specifically, fail on # error when not in buildd mode. if ($self->get_conf('SBUILD_MODE') ne 'buildd') { Sbuild::Exception::Build->throw(error => "apt-get upgrade failed", failstage => "apt-get-upgrade"); } } } } # Fetch sources, run setup, fetch and install core and package build # deps, then run build. Cleans up build directory and uninstalls # build depends on return/failure. sub run_fetch_install_packages { my $self = shift; $self->check_abort(); eval { my $session = $self->get('Session'); my $resolver = $self->get('Dependency Resolver'); $self->check_abort(); if (!$self->fetch_source_files()) { Sbuild::Exception::Build->throw(error => "Failed to fetch source files", failstage => "fetch-src"); } # Display message about chroot setup script option use being deprecated if ($self->get_conf('CHROOT_SETUP_SCRIPT')) { my $msg = "setup-hook option is deprecated. It has been superceded by "; $msg .= "the chroot-setup-commands feature. setup-hook script will be "; $msg .= "run via chroot-setup-commands.\n"; $self->log_warning($msg); } $self->check_abort(); $self->set('Install Start Time', time); $self->set('Install End Time', $self->get('Install Start Time')); my @coredeps = @{$self->get_conf('CORE_DEPENDS')}; if ($self->get('Host Arch') ne $self->get('Build Arch')) { my $crosscoredeps = $self->get_conf('CROSSBUILD_CORE_DEPENDS'); if (defined($crosscoredeps->{$self->get('Host Arch')})) { push(@coredeps, @{$crosscoredeps->{$self->get('Host Arch')}}); } else { push(@coredeps, 'crossbuild-essential-' . $self->get('Host Arch') . ':native'); } } $resolver->add_dependencies('CORE', join(", ", @coredeps) , "", "", "", "", ""); if (!$resolver->install_core_deps('core', 'CORE')) { Sbuild::Exception::Build->throw(error => "Core build dependencies not satisfied; skipping", failstage => "install-deps"); } my $snapshot = ""; $snapshot = "gcc-snapshot" if ($self->get_conf('GCC_SNAPSHOT')); $resolver->add_dependencies('GCC_SNAPSHOT', $snapshot , "", "", "", "", ""); # Add additional build dependencies specified on the command-line. # TODO: Split dependencies into an array from the start to save # lots of joining. $resolver->add_dependencies('MANUAL', join(", ", @{$self->get_conf('MANUAL_DEPENDS')}), join(", ", @{$self->get_conf('MANUAL_DEPENDS_ARCH')}), join(", ", @{$self->get_conf('MANUAL_DEPENDS_INDEP')}), join(", ", @{$self->get_conf('MANUAL_CONFLICTS')}), join(", ", @{$self->get_conf('MANUAL_CONFLICTS_ARCH')}), join(", ", @{$self->get_conf('MANUAL_CONFLICTS_INDEP')})); $resolver->add_dependencies($self->get('Package'), $self->get('Build Depends'), $self->get('Build Depends Arch'), $self->get('Build Depends Indep'), $self->get('Build Conflicts'), $self->get('Build Conflicts Arch'), $self->get('Build Conflicts Indep')); my @build_deps; if ($self->get('Host Arch') eq $self->get('Build Arch')) { @build_deps = ('GCC_SNAPSHOT', 'MANUAL', $self->get('Package')); } else { $self->check_abort(); if (!$resolver->install_core_deps('essential', 'GCC_SNAPSHOT')) { Sbuild::Exception::Build->throw(error => "Essential dependencies not satisfied; skipping", failstage => "install-essential"); } @build_deps = ('MANUAL', $self->get('Package')); } $self->check_abort(); if (!$resolver->install_main_deps($self->get('Package'), @build_deps)) { Sbuild::Exception::Build->throw(error => "Package build dependencies not satisfied; skipping", failstage => "install-deps"); } $self->set('Install End Time', time); $self->check_abort(); $resolver->dump_build_environment(); $self->check_abort(); if ($self->build()) { $self->set_status('successful'); } else { $self->set('Pkg Fail Stage', "build"); $self->set_status('failed'); } # Run specified chroot cleanup commands $self->check_abort(); if (!$self->run_external_commands("chroot-cleanup-commands")) { Sbuild::Exception::Build->throw(error => "Failed to execute chroot-cleanup-commands", failstage => "run-chroot-cleanup-commands"); } if ($self->get('Pkg Status') eq "successful") { $self->log_subsection("Post Build"); # Run piuparts. $self->check_abort(); $self->run_piuparts(); # Run post build external commands $self->check_abort(); if(!$self->run_external_commands("post-build-commands")) { Sbuild::Exception::Build->throw(error => "Failed to execute post-build-commands", failstage => "run-post-build-commands"); } } }; debug("Error run_fetch_install_packages(): $@") if $@; # I catch the exception here and trigger the hook, if needed. Normally I'd # do this at the end of the function, but I want the hook to fire before we # clean up the environment. I re-throw the exception at the end, as usual my $e = Exception::Class->caught('Sbuild::Exception::Build'); if ( defined $self->get('Pkg Fail Stage') && $self->get('Pkg Fail Stage') eq 'build' ) { if(!$self->run_external_commands("build-failed-commands")) { Sbuild::Exception::Build->throw(error => "Failed to execute build-failed-commands", failstage => "run-build-failed-commands"); } } elsif($e) { if(!$self->run_external_commands("build-deps-failed-commands")) { Sbuild::Exception::Build->throw(error => "Failed to execute build-deps-failed-commands", failstage => "run-build-deps-failed-commands"); } } $self->log_subsection("Cleanup"); my $session = $self->get('Session'); my $resolver = $self->get('Dependency Resolver'); my $purge_build_directory = ($self->get_conf('PURGE_BUILD_DIRECTORY') eq 'always' || ($self->get_conf('PURGE_BUILD_DIRECTORY') eq 'successful' && $self->get_status() eq 'successful')) ? 1 : 0; my $purge_build_deps = ($self->get_conf('PURGE_BUILD_DEPS') eq 'always' || ($self->get_conf('PURGE_BUILD_DEPS') eq 'successful' && $self->get_status() eq 'successful')) ? 1 : 0; my $is_cloned_session = (defined ($session->get('Session Purged')) && $session->get('Session Purged') == 1) ? 1 : 0; if ($purge_build_directory) { # Purge package build directory $self->log("Purging " . $self->get('Build Dir') . "\n"); $self->get('Session')->run_command( { COMMAND => ['rm', '-rf', $self->get('Build Dir')], USER => 'root', PRIORITY => 0, DIR => '/' }); } # Purge non-cloned session if ($is_cloned_session) { $self->log("Not cleaning session: cloned chroot in use\n"); } else { if ($purge_build_deps) { # Removing dependencies $resolver->uninstall_deps(); } else { $self->log("Not removing build depends: as requested\n"); } } # re-throw the previously-caught exception if ($e) { $e->rethrow(); } } sub copy_to_chroot { my $self = shift; my $source = shift; my $dest = shift; $self->check_abort(); if (! File::Copy::copy($source, $dest)) { $self->log_error("E: Failed to copy '$source' to '$dest': $!\n"); return 0; } $self->get('Session')->run_command( { COMMAND => ['chown', $self->get_conf('BUILD_USER') . ':sbuild', $self->get('Session')->strip_chroot_path($dest)], USER => 'root', DIR => '/' }); if ($?) { $self->log_error("E: Failed to set sbuild group ownership on $dest\n"); return 0; } $self->get('Session')->run_command( { COMMAND => ['chmod', '0664', $self->get('Session')->strip_chroot_path($dest)], USER => 'root', DIR => '/' }); if ($?) { $self->log_error("E: Failed to set 0644 permissions on $dest\n"); return 0; } return 1; } sub fetch_source_files { my $self = shift; my $dir = $self->get('Source Dir'); my $dsc = $self->get('DSC File'); my $build_dir = $self->get('Chroot Build Dir'); my $pkg = $self->get('Package'); my $ver = $self->get('OVersion'); my $host_arch = $self->get('Host Arch'); my $resolver = $self->get('Dependency Resolver'); my ($dscarchs, $dscpkg, $dscver, @fetched); my $build_depends = ""; my $build_depends_arch = ""; my $build_depends_indep = ""; my $build_conflicts = ""; my $build_conflicts_arch = ""; my $build_conflicts_indep = ""; local( *F ); $self->log_subsection("Fetch source files"); if (!defined($self->get('Package')) || !defined($self->get('OVersion')) || !defined($self->get('Source Dir'))) { $self->log("Invalid source: $self->get('DSC')\n"); return 0; } $self->check_abort(); if ($self->get('DSC Base') =~ m/\.dsc$/) { # Work with a .dsc file. my $file = $self->get('DSC'); if (! -f $file || ! -r $file) { $self->log_error("Could not find $file\n"); return 0; } my @cwd_files = dsc_files($file); # Copy the local source files into the build directory. $self->log_subsubsection("Local sources"); $self->log("$file exists in $dir; copying to chroot\n"); if (! $self->copy_to_chroot("$file", "$build_dir/$dsc")) { return 0; } push(@fetched, "$build_dir/$dsc"); foreach (@cwd_files) { if (! $self->copy_to_chroot("$dir/$_", "$build_dir/$_")) { return 0; } push(@fetched, "$build_dir/$_"); } } else { # Use apt to download the source files $self->log_subsubsection("Check APT"); my %entries = (); my $retried = $self->get_conf('APT_UPDATE'); # Already updated if set retry: $self->log("Checking available source versions...\n"); my $pipe = $self->get('Dependency Resolver')->pipe_apt_command( { COMMAND => [$self->get_conf('APT_CACHE'), '-q', 'showsrc', "$pkg"], USER => $self->get_conf('BUILD_USER'), PRIORITY => 0, DIR => '/'}); if (!$pipe) { $self->log("Can't open pipe to ".$self->get_conf('APT_UPDATE').": $!\n"); return 0; } { local($/) = ""; my $package; my $ver; my $tfile; while( <$pipe> ) { $package = $1 if /^Package:\s+(\S+)\s*$/mi; $ver = $1 if /^Version:\s+(\S+)\s*$/mi; $tfile = $1 if /^Files:\s*\n((\s+.*\s*\n)+)/mi; if (defined $package && defined $ver && defined $tfile) { @{$entries{"$package $ver"}} = map { (split( /\s+/, $_ ))[3] } split( "\n", $tfile ); undef($package); undef($ver); undef($tfile); } } if (! scalar keys %entries) { $self->log($self->get_conf('APT_CACHE') . " returned no information about $pkg source\n"); $self->log("Are there any deb-src lines in your /etc/apt/sources.list?\n"); return 0; } } close($pipe); if ($?) { $self->log($self->get_conf('APT_CACHE') . " exit status $?: $!\n"); return 0; } if (!defined($entries{"$pkg $ver"})) { if (!$retried) { $self->log_subsubsection("Update APT"); # try to update apt's cache if nothing found $self->get('Dependency Resolver')->update(); $retried = 1; goto retry; } $self->log("Can't find source for " . $self->get('Package_OVersion') . "\n"); $self->log("(only different version(s) ", join( ", ", sort keys %entries), " found)\n") if %entries; return 0; } $self->log_subsubsection("Download source files with APT"); foreach (@{$entries{"$pkg $ver"}}) { push(@fetched, "$build_dir/$_"); } my $pipe2 = $self->get('Dependency Resolver')->pipe_apt_command( { COMMAND => [$self->get_conf('APT_GET'), '--only-source', '-q', '-d', 'source', "$pkg=$ver"], USER => $self->get_conf('BUILD_USER'), PRIORITY => 0}) || return 0; while(<$pipe2>) { $self->log($_); } close($pipe2); if ($?) { $self->log($self->get_conf('APT_GET') . " for sources failed\n"); return 0; } $self->set_dsc((grep { /\.dsc$/ } @fetched)[0]); } my $pdsc = Dpkg::Control->new(type => CTRL_PKG_SRC); $pdsc->set_options(allow_pgp => 1); if (!$pdsc->load("$build_dir/$dsc")) { $self->log("Error parsing $build_dir/$dsc"); return 0; } $build_depends = $pdsc->{'Build-Depends'}; $build_depends_arch = $pdsc->{'Build-Depends-Arch'}; $build_depends_indep = $pdsc->{'Build-Depends-Indep'}; $build_conflicts = $pdsc->{'Build-Conflicts'}; $build_conflicts_arch = $pdsc->{'Build-Conflicts-Arch'}; $build_conflicts_indep = $pdsc->{'Build-Conflicts-Indep'}; $dscarchs = $pdsc->{'Architecture'}; $dscpkg = $pdsc->{'Source'}; $dscver = $pdsc->{'Version'}; $self->set_version("${dscpkg}_${dscver}"); $build_depends =~ s/\n\s+/ /g if defined $build_depends; $build_depends_arch =~ s/\n\s+/ /g if defined $build_depends_arch; $build_depends_indep =~ s/\n\s+/ /g if defined $build_depends_indep; $build_conflicts =~ s/\n\s+/ /g if defined $build_conflicts; $build_conflicts_arch =~ s/\n\s+/ /g if defined $build_conflicts_arch; $build_conflicts_indep =~ s/\n\s+/ /g if defined $build_conflicts_indep; $self->log_subsubsection("Check architectures"); # Check for cross-arch dependencies # parse $build_depends* for explicit :arch and add the foreign arches, as needed sub get_explicit_arches { my $visited_deps = pop; my @deps = @_; my %set; for my $dep (@deps) { # Break any recursion in the deps data structure (is this overkill?) next if !defined $dep; my $id = ref($dep) ? refaddr($dep) : "str:$dep"; next if $visited_deps->{$id}; $visited_deps->{$id} = 1; if ( exists( $dep->{archqual} ) ) { if ( $dep->{archqual} ) { $set{$dep->{archqual}} = 1; } } else { for my $key (get_explicit_arches($dep->get_deps, $visited_deps)) { $set{$key} = 1; } } } return keys %set; } my $build_depends_concat = deps_concat( grep {defined $_} ($build_depends, $build_depends_arch, $build_depends_indep)); my $merged_depends = deps_parse( $build_depends_concat, reduce_arch => 1, host_arch => $self->get('Host Arch'), build_arch => $self->get('Build Arch'), build_dep => 1, reduce_profiles => 1, build_profiles => [ split / /, $self->get('Build Profiles') ]); if( !defined $merged_depends ) { my $msg = "Error! deps_parse() couldn't parse the Build-Depends '$build_depends_concat'"; $self->log("$msg\n"); Sbuild::Exception::Build->throw(error => $msg, status => "skipped", failstage => "add-forein-architecture"); return 0; } my @explicit_arches = get_explicit_arches($merged_depends, {}); my @foreign_arches = grep {$_ !~ /any|all|native/} @explicit_arches; my $added_any_new; for my $foreign_arch(@foreign_arches) { $resolver->add_foreign_architecture($foreign_arch); $added_any_new = 1; } my @keylist=keys %{$resolver->get('Initial Foreign Arches')}; $self->log('Initial Foreign Architectures: ' . join ' ', @keylist, "\n") if @keylist; $self->log('Foreign Architectures in build-deps: '. join ' ', @foreign_arches, "\n\n") if @foreign_arches; $self->run_chroot_update() if $added_any_new; # Check package arch makes sense to build if (!$dscarchs) { $self->log("$dsc has no Architecture: field -- skipping arch check!\n"); } else { my $valid_arch; for my $a (split(/\s+/, $dscarchs)) { my $command = <<"EOF"; use strict; use warnings; use Dpkg::Arch; if (Dpkg::Arch::debarch_is($host_arch, $a)) { exit 0; } exit 1; EOF $self->get('Session')->run_command( { COMMAND => ['perl', '-e', $command], USER => 'root', PRIORITY => 0, DIR => '/' }); if ($? == 0) { $valid_arch = 1; last; } } if ($dscarchs ne "any" && !($valid_arch) && !($dscarchs =~ /\ball\b/ && $self->get_conf('BUILD_ARCH_ALL')) ) { my $msg = "$dsc: $host_arch not in arch list or does not match any arch wildcards: $dscarchs -- skipping\n"; $self->log($msg); Sbuild::Exception::Build->throw(error => "$dsc: $host_arch not in arch list or does not match any arch wildcards: $dscarchs -- skipping", status => "skipped", failstage => "arch-check"); return 0; } } debug("Arch check ok ($host_arch included in $dscarchs)\n"); $self->log_subsubsection("Check dependencies"); $self->set('Build Depends', $build_depends); $self->set('Build Depends Arch', $build_depends_arch); $self->set('Build Depends Indep', $build_depends_indep); $self->set('Build Conflicts', $build_conflicts); $self->set('Build Conflicts Arch', $build_conflicts_arch); $self->set('Build Conflicts Indep', $build_conflicts_indep); return 1; } # Subroutine that runs any command through the system (i.e. not through the # chroot. It takes a string of a command with arguments to run along with # arguments whether to save STDOUT and/or STDERR to the log stream sub run_command { my $self = shift; my $command = shift; my $log_output = shift; my $log_error = shift; my $chroot = shift; my $rootuser = shift; # Used to determine if we are to log from commands my ($out, $err, $defaults); # Run the command and save the exit status if (!$chroot) { $defaults = $self->get('Host')->{'Defaults'}; $out = $defaults->{'STREAMOUT'} if ($log_output); $err = $defaults->{'STREAMERR'} if ($log_error); my %args = (PRIORITY => 0, STREAMOUT => $out, STREAMERR => $err); if(ref $command) { $args{COMMAND} = \@{$command}; $args{COMMAND_STR} = "@{$command}"; } else { $args{COMMAND} = [split('\s+', $command)]; $args{COMMAND_STR} = $command; } $self->get('Host')->run_command( \%args ); } else { $defaults = $self->get('Session')->{'Defaults'}; $out = $defaults->{'STREAMOUT'} if ($log_output); $err = $defaults->{'STREAMERR'} if ($log_error); my %args = (USER => ($rootuser ? 'root' : $self->get_conf('BUILD_USER')), PRIORITY => 0, STREAMOUT => $out, STREAMERR => $err); if(ref $command) { $args{COMMAND} = \@{$command}; $args{COMMAND_STR} = "@{$command}"; } else { $args{COMMAND} = [split('\s+', $command)]; $args{COMMAND_STR} = $command; } $self->get('Session')->run_command( \%args ); } my $status = $?; # Check if the command failed if ($status != 0) { return 0; } return 1; } # Subroutine that processes external commands to be run during various stages of # an sbuild run. We also ask if we want to log any output from the commands sub run_external_commands { my $self = shift; my $stage = shift; my $log_output = $self->get_conf('LOG_EXTERNAL_COMMAND_OUTPUT'); my $log_error = $self->get_conf('LOG_EXTERNAL_COMMAND_ERROR'); # Return success now unless there are commands to run return 1 unless (${$self->get_conf('EXTERNAL_COMMANDS')}{$stage}); # Determine which set of commands to run based on the parameter $stage my @commands = @{${$self->get_conf('EXTERNAL_COMMANDS')}{$stage}}; return 1 if !(@commands); # Create appropriate log message and determine if the commands are to be # run inside the chroot or not, and as root or not. my $chroot = 0; my $rootuser = 1; if ($stage eq "pre-build-commands") { $self->log_subsection("Pre Build Commands"); } elsif ($stage eq "chroot-setup-commands") { $self->log_subsection("Chroot Setup Commands"); $chroot = 1; } elsif ($stage eq "build-deps-failed-commands") { $self->log_subsection("Build-Deps Install Failed Commands"); $chroot = 1; $rootuser = 1; } elsif ($stage eq "build-failed-commands") { $self->log_subsection("Generic Build Failed Commands"); $chroot = 1; $rootuser = 0; } elsif ($stage eq "starting-build-commands") { $self->log_subsection("Starting Timed Build Commands"); $chroot = 1; $rootuser = 0; } elsif ($stage eq "finished-build-commands") { $self->log_subsection("Finished Timed Build Commands"); $chroot = 1; $rootuser = 0; } elsif ($stage eq "chroot-cleanup-commands") { $self->log_subsection("Chroot Cleanup Commands"); $chroot = 1; } elsif ($stage eq "post-build-commands") { $self->log_subsection("Post Build Commands"); } # Run each command, substituting the various percent escapes (like # %SBUILD_DSC) from the commands to run with the appropriate subsitutions. my $dsc = $self->get('DSC'); my $changes = $self->get('Changes File') if ($self->get('Changes File')); my $hostarch = $self->get('Host Arch') if ($self->get('Host Arch')); my $build_dir = $self->get('Build Dir'); my $pkgbuild_dir = $build_dir . '/' . $self->get('DSC Dir'); my $shell_cmd = "bash -i /dev/tty 2>/dev/tty"; my %percent = ( "%" => "%", "d" => $dsc, "SBUILD_DSC" => $dsc, "c" => $changes, "SBUILD_CHANGES" => $changes, "a" => $hostarch, "SBUILD_HOST_ARCH" => $hostarch, "b" => $build_dir, "SBUILD_BUILD_DIR" => $build_dir, "p" => $pkgbuild_dir, "SBUILD_PKGBUILD_DIR" => $pkgbuild_dir, "s" => $shell_cmd, "SBUILD_SHELL" => $shell_cmd, ); if ($chroot == 0) { my $chroot_dir = $self->get('Chroot Dir'); $percent{r} = $chroot_dir; $percent{SBUILD_CHROOT_DIR} = $chroot_dir; } # Our escapes pattern, with longer escapes first, then sorted lexically. my $keyword_pat = join("|", sort {length $b <=> length $a || $a cmp $b} keys %percent); my $returnval = 1; foreach my $command (@commands) { my $substitute = sub { foreach(@_) { s{ # Match a percent followed by a valid keyword \%($keyword_pat) }{ # Substitute with the appropriate value only if it's defined $percent{$1} || $& }msxge; } }; my $command_str; if( ref $command ) { $substitute->(@{$command}); $command_str = join(" ", @{$command}); } else { $substitute->($command); $command_str = $command; } $self->log_subsubsection("$command_str"); $returnval = $self->run_command($command, $log_output, $log_error, $chroot, $rootuser); $self->log("\n"); if (!$returnval) { $self->log_error("Command '$command_str' failed to run.\n"); # do not run any other commands of this type after the first # failure last; } else { $self->log_info("Finished running '$command_str'.\n"); } } $self->log("\nFinished processing commands.\n"); $self->log_sep(); return $returnval; } sub run_lintian { my $self = shift; return 1 unless ($self->get_conf('RUN_LINTIAN')); $self->log_subsubsection("lintian"); my $build_dir = $self->get('Chroot Build Dir'); my $resolver = $self->get('Dependency Resolver'); my $lintian = $self->get_conf('LINTIAN'); my @lintian_command = ($lintian); push @lintian_command, @{$self->get_conf('LINTIAN_OPTIONS')} if ($self->get_conf('LINTIAN_OPTIONS')); push @lintian_command, $self->get_changes($build_dir); $resolver->add_dependencies('LINTIAN', 'lintian', "", "", "", "", ""); return 1 unless $resolver->install_core_deps('lintian', 'LINTIAN'); $self->get('Session')->run_command( { COMMAND => \@lintian_command, PRIORITY => 0, DIR => $self->get('Build Dir') }); my $status = $? >> 8; $self->set('Lintian Reason', 'pass'); $self->log("\n"); if ($?) { my $why = "unknown reason"; $self->set('Lintian Reason', 'error'); $self->set('Lintian Reason', 'fail') if ($status == 1); $why = "runtime error" if ($status == 2); $why = "policy violation" if ($status == 1); $why = "received signal " . $? & 127 if ($? & 127); $self->log_error("Lintian run failed ($why)\n"); return 0; } $self->log_info("Lintian run was successful.\n"); return 1; } sub run_piuparts { my $self = shift; return 1 unless ($self->get_conf('RUN_PIUPARTS')); $self->log_subsubsection("piuparts"); my $piuparts = $self->get_conf('PIUPARTS'); my @piuparts_command; if (scalar(@{$self->get_conf('PIUPARTS_ROOT_ARGS')})) { push @piuparts_command, @{$self->get_conf('PIUPARTS_ROOT_ARGS')}; } else { push @piuparts_command, 'sudo', '--'; } push @piuparts_command, $piuparts; push @piuparts_command, @{$self->get_conf('PIUPARTS_OPTIONS')} if ($self->get_conf('PIUPARTS_OPTIONS')); push @piuparts_command, $self->get('Changes File'); $self->get('Host')->run_command( { COMMAND => \@piuparts_command, PRIORITY => 0, }); my $status = $? >> 8; $self->set('Piuparts Reason', 'pass'); $self->log("\n"); if ($?) { $self->log_error("Piuparts run failed.\n"); $self->set('Piuparts Reason', 'fail'); return 0; } $self->log_info("Piuparts run was successful.\n"); return 1; } sub build { my $self = shift; my $dscfile = $self->get('DSC File'); my $dscdir = $self->get('DSC Dir'); my $pkg = $self->get('Package'); my $build_dir = $self->get('Chroot Build Dir'); my $host_arch = $self->get('Host Arch'); my $build_arch = $self->get('Build Arch'); my( $rv, $changes ); local( *PIPE, *F, *F2 ); $self->log_subsection("Build"); $self->set('This Space', 0); my $tmpunpackdir = $dscdir; $tmpunpackdir =~ s/-.*$/.orig.tmp-nest/; $tmpunpackdir =~ s/_/-/; $tmpunpackdir = "$build_dir/$tmpunpackdir"; $self->log_subsubsection("Unpack source"); if (-d "$build_dir/$dscdir" && -l "$build_dir/$dscdir") { # if the package dir already exists but is a symlink, complain $self->log("Cannot unpack source: a symlink to a directory with the\n". "same name already exists.\n"); return 0; } if (! -d "$build_dir/$dscdir") { $self->set('Sub Task', "dpkg-source"); $self->get('Session')->run_command( { COMMAND => [$self->get_conf('DPKG_SOURCE'), '-x', $dscfile, $dscdir], USER => $self->get_conf('BUILD_USER'), PRIORITY => 0}); if ($?) { $self->log("FAILED [dpkg-source died]\n"); Sbuild::Exception::Build->throw(error => "FAILED [dpkg-source died]", failstage => "unpack"); } $self->get('Session')->run_command( { COMMAND => ['chmod', '-R', 'g-s,go+rX', $dscdir], USER => $self->get_conf('BUILD_USER'), PRIORITY => 0}); if ($?) { $self->log("chmod -R g-s,go+rX $dscdir failed.\n"); Sbuild::Exception::Build->throw(error => "chmod -R g-s,go+rX $dscdir failed", failstage => "unpack"); } $dscdir = "$build_dir/$dscdir" } else { $dscdir = "$build_dir/$dscdir"; $self->log_subsubsection("Check unpacked source"); # check if the unpacked tree is really the version we need $dscdir = $self->get('Session')->strip_chroot_path($dscdir); my $pipe = $self->get('Session')->pipe_command( { COMMAND => ['dpkg-parsechangelog'], USER => $self->get_conf('BUILD_USER'), PRIORITY => 0, DIR => $dscdir}); $self->set('Sub Task', "dpkg-parsechangelog"); my $clog = ""; while(<$pipe>) { $clog .= $_; } close($pipe); if ($?) { $self->log("FAILED [dpkg-parsechangelog died]\n"); Sbuild::Exception::Build->throw(error => "FAILED [dpkg-parsechangelog died]", failstage => "check-unpacked-version"); } if ($clog !~ /^Version:\s*(.+)\s*$/mi) { $self->log("dpkg-parsechangelog didn't print Version:\n"); Sbuild::Exception::Build->throw(error => "dpkg-parsechangelog didn't print Version:", failstage => "check-unpacked-version"); } } $self->log_subsubsection("Check disc space"); my $current_usage = `du -k -s "$dscdir"`; $current_usage =~ /^(\d+)/; $current_usage = $1; if ($current_usage) { my $free = df($dscdir); if ($free < 2*$current_usage && $self->get_conf('CHECK_SPACE')) { Sbuild::Exception::Build->throw(error => "Disc space is probably not sufficient for building.", info => "Source needs $current_usage KiB, while $free KiB is free.)", failstage => "check-space"); } else { $self->log("Sufficient free space for build\n"); } } my $cpipe = $self->get('Session')->pipe_command( { COMMAND => ['dpkg-parsechangelog'], USER => $self->get_conf('BUILD_USER'), PRIORITY => 0, DIR => $self->get('Session')->strip_chroot_path($dscdir) }); my $clog = do { local $/; <$cpipe> }; close($cpipe); if ($?) { $self->log("FAILED [dpkg-parsechangelog died]\n"); return 0; } my ($name) = $clog =~ /^Source:\s*(.*)$/m; my ($version) = $clog =~ /^Version:\s*(.*)$/m; my ($dists) = $clog =~ /^Distribution:\s*(.*)$/m; my ($urgency) = $clog =~ /^Urgency:\s*(.*)$/m; my ($date) = $clog =~ /^Date:\s*(.*)$/m; if ($dists ne $self->get_conf('DISTRIBUTION')) { $self->build_log_colour('yellow', "^Distribution: " . $self->get_conf('DISTRIBUTION') . "\$"); } if ($self->get_conf('BIN_NMU') || $self->get_conf('APPEND_TO_VERSION')) { if (!$self->get_conf('MAINTAINER_NAME')) { Sbuild::Exception::Build->throw(error => "No maintainer specified.", info => 'When making changelog additions for a binNMU or appending a version suffix, a maintainer must be specified for the changelog entry e.g. using $maintainer_name, $uploader_name or $key_id, (or the equivalent command-line options)', failstage => "check-space"); } $self->log_subsubsection("Hack binNMU version"); if (open( F, "<$dscdir/debian/changelog" )) { my $text = do { local $/; }; close( F ); my $NMUversion = $self->get('Version'); if (!open( F, ">$dscdir/debian/changelog" )) { $self->log("Can't open debian/changelog for binNMU hack: $!\n"); Sbuild::Exception::Build->throw(error => "Can't open debian/changelog for binNMU hack: $!", failstage => "hack-binNMU"); } $dists = $self->get_conf('DISTRIBUTION'); print F "$name ($NMUversion) $dists; urgency=low, binary-only=yes\n\n"; if ($self->get_conf('APPEND_TO_VERSION')) { print F " * Append ", $self->get_conf('APPEND_TO_VERSION'), " to version number; no source changes\n"; } if ($self->get_conf('BIN_NMU')) { print F " * Binary-only non-maintainer upload for $host_arch; ", "no source changes.\n"; print F " * ", join( " ", split( "\n", $self->get_conf('BIN_NMU') )), "\n"; } print F "\n"; print F " -- " . $self->get_conf('MAINTAINER_NAME') . " $date\n\n"; print F $text; close( F ); $self->log("Created changelog entry for binNMU version $NMUversion\n"); } else { $self->log("Can't open debian/changelog -- no binNMU hack!\n"); Sbuild::Exception::Build->throw(error => "Can't open debian/changelog -- no binNMU hack: $!!", failstage => "hack-binNMU"); } } if (-f "$dscdir/debian/files") { local( *FILES ); my @lines; open( FILES, "<$dscdir/debian/files" ); chomp( @lines = ); close( FILES ); $self->log_warning("After unpacking, there exists a file debian/files with the contents:\n"); $self->log_sep(); foreach (@lines) { $self->log($_); } $self->log_sep(); $self->log("\n"); $self->log_info("This should be reported as a bug.\n"); $self->log_info("The file has been removed to avoid dpkg-genchanges errors.\n"); unlink "$dscdir/debian/files"; } # Build tree not writable during build (except for the sbuild # user performing the build). $self->get('Session')->run_command( { COMMAND => ['chmod', '-R', 'go-w', $self->get('Build Dir')], USER => 'root', PRIORITY => 0}); if ($?) { $self->log("chmod og-w " . $self->get('Build Dir') . " failed.\n"); return 0; } if (!$self->run_external_commands("starting-build-commands")) { Sbuild::Exception::Build->throw(error => "Failed to execute starting-build-commands", failstage => "run-starting-build-commands"); } $self->set('Build Start Time', time); $self->set('Build End Time', $self->get('Build Start Time')); my $bdir = $self->get('Session')->strip_chroot_path($dscdir); if (-f "$self->{'Chroot Dir'}/etc/ld.so.conf" && ! -r "$self->{'Chroot Dir'}/etc/ld.so.conf") { $self->get('Session')->run_command( { COMMAND => ['chmod', 'a+r', '/etc/ld.so.conf'], USER => 'root', PRIORITY => 0, DIR => '/' }); $self->log_subsubsection("Fix ld.so"); $self->log("ld.so.conf was not readable! Fixed.\n"); } my $buildcmd = []; push (@{$buildcmd}, $self->get_conf('BUILD_ENV_CMND')) if (defined($self->get_conf('BUILD_ENV_CMND')) && $self->get_conf('BUILD_ENV_CMND')); push (@{$buildcmd}, 'dpkg-buildpackage'); if ($host_arch ne $build_arch) { push (@{$buildcmd}, '-a' . $host_arch); } if (defined($self->get_conf('BUILD_PROFILES')) && $self->get_conf('BUILD_PROFILES')) { my $profiles = $self->get_conf('BUILD_PROFILES'); $profiles =~ tr/ /,/; push (@{$buildcmd}, '-P' . $profiles); } if (defined($self->get_conf('PGP_OPTIONS')) && $self->get_conf('PGP_OPTIONS')) { if (ref($self->get_conf('PGP_OPTIONS')) eq 'ARRAY') { push (@{$buildcmd}, @{$self->get_conf('PGP_OPTIONS')}); } else { push (@{$buildcmd}, $self->get_conf('PGP_OPTIONS')); } } if (defined($self->get_conf('SIGNING_OPTIONS')) && $self->get_conf('SIGNING_OPTIONS')) { if (ref($self->get_conf('SIGNING_OPTIONS')) eq 'ARRAY') { push (@{$buildcmd}, @{$self->get_conf('SIGNING_OPTIONS')}); } else { push (@{$buildcmd}, $self->get_conf('SIGNING_OPTIONS')); } } use constant dpkgopt => [[["", "-B"], ["-A", "-b" ]], [["-S", "-G"], ["-g", ""]]]; my $binopt = dpkgopt->[$self->get_conf('BUILD_SOURCE')] [$self->get_conf('BUILD_ARCH_ALL')] [$self->get_conf('BUILD_ARCH_ANY')]; push (@{$buildcmd}, $binopt) if $binopt; push (@{$buildcmd}, "-sa") if ($self->get_conf('BUILD_SOURCE') && $self->get_conf('FORCE_ORIG_SOURCE')); push (@{$buildcmd}, "-r" . $self->get_conf('FAKEROOT')); if (defined($self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')) && $self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')) { push (@{$buildcmd}, @{$self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')}); } # Set up additional build environment variables. my %buildenv = %{$self->get_conf('BUILD_ENVIRONMENT')}; $buildenv{'PATH'} = $self->get_conf('PATH'); $buildenv{'LD_LIBRARY_PATH'} = $self->get_conf('LD_LIBRARY_PATH') if defined($self->get_conf('LD_LIBRARY_PATH')); # Add cross environment config if ($host_arch ne $build_arch) { $buildenv{'CONFIG_SITE'} = "/etc/dpkg-cross/cross-config." . $host_arch; if (defined($buildenv{'DEB_BUILD_OPTIONS'})) { $buildenv{'DEB_BUILD_OPTIONS'} .= " nocheck"; } else { $buildenv{'DEB_BUILD_OPTIONS'} = "nocheck"; } } # Explicitly add any needed environment to the environment filter # temporarily for dpkg-buildpackage. my @env_filter; foreach my $envvar (keys %buildenv) { push(@env_filter, "^$envvar\$"); } # Dump build environment $self->log_subsubsection("User Environment"); { my $pipe = $self->get('Session')->pipe_command( { COMMAND => ['env'], ENV => \%buildenv, ENV_FILTER => \@env_filter, USER => $self->get_conf('BUILD_USER'), SETSID => 1, PRIORITY => 0, DIR => $bdir }); my (@lines) = <$pipe>; close($pipe); @lines=sort(@lines); foreach my $line (@lines) { # $line contains a trailing newline, so don't add one. $self->log($line); } } $self->log_subsubsection("dpkg-buildpackage"); my $command = { COMMAND => $buildcmd, ENV => \%buildenv, ENV_FILTER => \@env_filter, USER => $self->get_conf('BUILD_USER'), SETSID => 1, PRIORITY => 0, DIR => $bdir, STREAMERR => \*STDOUT, }; my $pipe = $self->get('Session')->pipe_command($command); $self->set('Sub Task', "dpkg-buildpackage"); # We must send the signal as root, because some subprocesses of # dpkg-buildpackage could run as root. So we have to use a shell # command to send the signal... but /bin/kill can't send to # process groups :-( So start another Perl :-) my $timeout = $self->get_conf('INDIVIDUAL_STALLED_PKG_TIMEOUT')->{$pkg} || $self->get_conf('STALLED_PKG_TIMEOUT'); $timeout *= 60; my $timed_out = 0; my(@timeout_times, @timeout_sigs, $last_time); local $SIG{'ALRM'} = sub { my $pid = $command->{'PID'}; my $signal = ($timed_out > 0) ? "KILL" : "TERM"; $self->get('Session')->run_command( { COMMAND => ['perl', '-e', "kill( \"$signal\", -$pid )"], USER => 'root', PRIORITY => 0, DIR => '/' }); $timeout_times[$timed_out] = time - $last_time; $timeout_sigs[$timed_out] = $signal; $timed_out++; $timeout = 5*60; # only wait 5 minutes until next signal }; alarm($timeout); while(<$pipe>) { alarm($timeout); $last_time = time; if ($self->get('ABORT')) { my $pid = $command->{'PID'}; $self->get('Session')->run_command( { COMMAND => ['perl', '-e', "kill( \"TERM\", -$pid )"], USER => 'root', PRIORITY => 0, DIR => '/' }); } $self->log($_); } close($pipe); alarm(0); $rv = $?; my $i; for( $i = 0; $i < $timed_out; ++$i ) { $self->log("Build killed with signal " . $timeout_sigs[$i] . " after " . int($timeout_times[$i]/60) . " minutes of inactivity\n"); } $self->set('Build End Time', time); $self->set('Pkg End Time', time); $self->write_stats('build-time', $self->get('Build End Time')-$self->get('Build Start Time')); $self->write_stats('install-download-time', $self->get('Install End Time')-$self->get('Install Start Time')); my $finish_date = strftime("%Y%m%d-%H%M",localtime($self->get('Build End Time'))); $self->log_sep(); $self->log("Build finished at $finish_date\n"); if (!$self->run_external_commands("finished-build-commands")) { Sbuild::Exception::Build->throw(error => "Failed to execute finished-build-commands", failstage => "run-finished-build-commands"); } my @space_files = ("$dscdir"); $self->log_subsubsection("Finished"); if ($rv) { $self->log_error("Build failure (dpkg-buildpackage died)\n"); } else { $self->log_info("Built successfully\n"); if (-r "$dscdir/debian/files" && $self->get('Chroot Build Dir')) { my @files = $self->debian_files_list("$dscdir/debian/files"); foreach (@files) { if (! -f "$build_dir/$_") { $self->log_error("Package claims to have built ".basename($_).", but did not. This is a bug in the packaging.\n"); next; } if (/_all.u?deb$/ and not $self->get_conf('BUILD_ARCH_ALL')) { $self->log_error("Package builds ".basename($_)." when binary-indep target is not called. This is a bug in the packaging.\n"); unlink("$build_dir/$_"); next; } } } # Restore write access to build tree now build is complete. $self->get('Session')->run_command( { COMMAND => ['chmod', '-R', 'g+w', $self->get('Build Dir')], USER => 'root', PRIORITY => 0}); if ($?) { $self->log("chmod g+w " . $self->get('Build Dir') . " failed.\n"); return 0; } if (!$rv) { $self->log_subsection("Post Build Chroot"); # Run lintian. $self->check_abort(); $self->run_lintian(); } $self->log_subsection("Changes"); $changes = $self->get_changes($build_dir); my @cfiles; if (-r "$build_dir/$changes") { my(@do_dists, @saved_dists); $self->log_subsubsection("$changes:"); open( F, "<$build_dir/$changes" ); my $sys_build_dir = $self->get_conf('BUILD_DIR'); if (open( F2, ">$sys_build_dir/$changes.new" )) { while( ) { if (/^Distribution:\s*(.*)\s*$/ and $self->get_conf('OVERRIDE_DISTRIBUTION')) { $self->log("Distribution: " . $self->get_conf('DISTRIBUTION') . "\n"); print F2 "Distribution: " . $self->get_conf('DISTRIBUTION') . "\n"; } else { print F2 $_; while (length $_ > 989) { my $index = rindex($_,' ',989); $self->log(substr ($_,0,$index) . "\n"); $_ = ' ' . substr ($_,$index+1); } $self->log($_); if (/^ [a-z0-9]{32} /) { push(@cfiles, (split( /\s+/, $_ ))[5] ); } } } close( F2 ); rename("$sys_build_dir/$changes.new", "$sys_build_dir/$changes") or $self->log("$sys_build_dir/$changes.new could not be " . "renamed to $sys_build_dir/$changes: $!\n"); $self->set('Changes File', "$sys_build_dir/$changes"); unlink("$build_dir/$changes") if $build_dir; } else { $self->log("Cannot create $sys_build_dir/$changes.new: $!\n"); $self->log("Distribution field may be wrong!!!\n"); if ($build_dir) { system "mv", "-f", "$build_dir/$changes", "." and $self->log_error("Could not move ".basename($_)." to .\n"); } } close( F ); } else { $self->log("Can't find $changes -- can't dump info\n"); } $self->log_subsection("Package contents"); my @debcfiles = @cfiles; foreach (@debcfiles) { my $deb = "$build_dir/$_"; next if $deb !~ /(\Q$host_arch\E|all)\.(udeb|deb)$/; $self->log_subsubsection("$_"); if (!open( PIPE, "dpkg --info $deb 2>&1 |" )) { $self->log("Can't spawn dpkg: $! -- can't dump info\n"); } else { $self->log($_) while( ); close( PIPE ) or ($rv = 1); } $self->log("\n"); if (!open( PIPE, "dpkg --contents $deb 2>&1 | sort -k6 |" )) { $self->log("Can't spawn dpkg: $! -- can't dump info\n"); } else { $self->log($_) while( ); close( PIPE ) or ($rv = 1); } $self->log("\n"); } foreach (@cfiles) { push( @space_files, $self->get_conf('BUILD_DIR') . "/$_"); system "mv", "-f", "$build_dir/$_", $self->get_conf('BUILD_DIR') and $self->log_error("Could not move $_ to .\n"); } } $self->check_space(@space_files); return $rv == 0 ? 1 : 0; } # Produce a hash suitable for ENV export sub get_env ($$) { my $self = shift; my $prefix = shift; sub _env_loop ($$$$) { my ($env,$ref,$keysref,$prefix) = @_; foreach my $key (keys( %{ $keysref } )) { my $value = $ref->get($key); next if (!defined($value)); next if (ref($value)); my $name = "${prefix}${key}"; $name =~ s/ /_/g; $env->{$name} = $value; } } my $envlist = {}; _env_loop($envlist, $self, $self, $prefix); _env_loop($envlist, $self->get('Config'), $self->get('Config')->{'KEYS'}, "${prefix}CONF_"); return $envlist; } sub get_changes { my $self=shift; my $path=shift; my $changes; if ( -r $path . '/' . $self->get('Package_SVersion') . "_source.changes") { $changes = $self->get('Package_SVersion') . "_source.changes"; } elsif ( -r $path . '/' . $self->get('Package_SVersion') . "_all.changes") { $changes = $self->get('Package_SVersion') . "_all.changes"; } else { $changes = $self->get('Package_SVersion') . '_' . $self->get('Host Arch') . '.changes'; } return $changes; } sub check_space { my $self = shift; my @files = @_; my $sum = 0; foreach (@files) { my $pipe = $self->get('Host')->pipe_command( { COMMAND => ['du', '-k', '-s', $_], USER => $self->get_conf('USERNAME'), PRIORITY => 0, DIR => '/'}); if (!$pipe) { $self->log("Cannot determine space needed (du failed): $!\n"); return; } while(<$pipe>) { next if !/^(\d+)/; $sum += $1; } close($pipe); } $self->set('This Time', $self->get('Pkg End Time') - $self->get('Pkg Start Time')); $self->get('This Time') = 0 if $self->get('This Time') < 0; $self->set('This Space', $sum); } sub lock_file { my $self = shift; my $file = shift; my $for_srcdep = shift; my $lockfile = "$file.lock"; my $try = 0; repeat: if (!sysopen( F, $lockfile, O_WRONLY|O_CREAT|O_TRUNC|O_EXCL, 0644 )){ if ($! == EEXIST) { # lock file exists, wait goto repeat if !open( F, "<$lockfile" ); my $line = ; my ($pid, $user); close( F ); if ($line !~ /^(\d+)\s+([\w\d.-]+)$/) { $self->log_warning("Bad lock file contents ($lockfile) -- still trying\n"); } else { ($pid, $user) = ($1, $2); if (kill( 0, $pid ) == 0 && $! == ESRCH) { # process doesn't exist anymore, remove stale lock $self->log_warning("Removing stale lock file $lockfile ". "(pid $pid, user $user)\n"); unlink( $lockfile ); goto repeat; } } ++$try; if (!$for_srcdep && $try > $self->get_conf('MAX_LOCK_TRYS')) { $self->log_warning("Lockfile $lockfile still present after " . $self->get_conf('MAX_LOCK_TRYS') * $self->get_conf('LOCK_INTERVAL') . " seconds -- giving up\n"); return; } $self->log("Another sbuild process ($pid by $user) is currently installing or removing packages -- waiting...\n") if $for_srcdep && $try == 1; sleep $self->get_conf('LOCK_INTERVAL'); goto repeat; } $self->log_warning("Can't create lock file $lockfile: $!\n"); } my $username = $self->get_conf('USERNAME'); F->print("$$ $username\n"); F->close(); } sub unlock_file { my $self = shift; my $file = shift; my $lockfile = "$file.lock"; unlink( $lockfile ); } sub add_stat { my $self = shift; my $key = shift; my $value = shift; $self->get('Summary Stats')->{$key} = $value; } sub generate_stats { my $self = shift; my $resolver = $self->get('Dependency Resolver'); $self->add_stat('Job', $self->get('Job')); $self->add_stat('Package', $self->get('Package')); $self->add_stat('Version', $self->get('Version')); $self->add_stat('Source-Version', $self->get('OVersion')); $self->add_stat('Machine Architecture', $self->get_conf('ARCH')); $self->add_stat('Host Architecture', $self->get('Host Arch')); $self->add_stat('Build Architecture', $self->get('Build Arch')); $self->add_stat('Build Profiles', $self->get('Build Profiles')) if $self->get('Build Profiles'); my @keylist; if (defined $resolver) { @keylist=keys %{$resolver->get('Initial Foreign Arches')}; push @keylist, keys %{$resolver->get('Added Foreign Arches')}; } my $foreign_arches = join ' ', @keylist; $self->add_stat('Foreign Architectures', $foreign_arches ) if $foreign_arches; $self->add_stat('Distribution', $self->get_conf('DISTRIBUTION')); $self->add_stat('Space', $self->get('This Space')); $self->add_stat('Build-Time', $self->get('Build End Time')-$self->get('Build Start Time')); $self->add_stat('Install-Time', $self->get('Install End Time')-$self->get('Install Start Time')); $self->add_stat('Package-Time', $self->get('Pkg End Time')-$self->get('Pkg Start Time')); $self->add_stat('Build-Space', $self->get('This Space')); $self->add_stat('Status', $self->get_status()); $self->add_stat('Fail-Stage', $self->get('Pkg Fail Stage')) if ($self->get_status() ne "successful"); $self->add_stat('Lintian', $self->get('Lintian Reason')) if $self->get('Lintian Reason'); $self->add_stat('Piuparts', $self->get('Piuparts Reason')) if $self->get('Piuparts Reason'); } sub log_stats { my $self = shift; foreach my $stat (sort keys %{$self->get('Summary Stats')}) { $self->log("${stat}: " . $self->get('Summary Stats')->{$stat} . "\n"); } } sub print_stats { my $self = shift; foreach my $stat (sort keys %{$self->get('Summary Stats')}) { print STDOUT "${stat}: " . $self->get('Summary Stats')->{$stat} . "\n"; } } sub write_stats { my $self = shift; return if (!$self->get_conf('BATCH_MODE')); my $stats_dir = $self->get_conf('STATS_DIR'); return if not defined $stats_dir; if (! -d $stats_dir && !mkdir $stats_dir) { $self->log_warning("Could not create $stats_dir: $!\n"); return; } my ($cat, $val) = @_; local( *F ); $self->lock_file($stats_dir, 0); open( F, ">>$stats_dir/$cat" ); print F "$val\n"; close( F ); $self->unlock_file($stats_dir); } sub debian_files_list { my $self = shift; my $files = shift; my @list; debug("Parsing $files\n"); if (-r $files && open( FILES, "<$files" )) { while () { chomp; my $f = (split( /\s+/, $_ ))[0]; push( @list, "$f" ); debug(" $f\n"); } close( FILES ) or $self->log("Failed to close $files\n") && return 1; } return @list; } # Figure out chroot architecture sub chroot_arch { my $self = shift; my $pipe = $self->get('Session')->pipe_command( { COMMAND => ['dpkg', '--print-architecture'], USER => $self->get_conf('BUILD_USER'), PRIORITY => 0, DIR => '/' }) || return undef; chomp(my $chroot_arch = <$pipe>); close($pipe); Sbuild::Exception::Build->throw(error => "Can't determine architecture of chroot: $!", failstage => "chroot-arch") if ($? || !defined($chroot_arch)); return $chroot_arch; } sub build_log_filter { my $self = shift; my $text = shift; my $replacement = shift; if ($self->get_conf('LOG_FILTER')) { $self->log($self->get('FILTER_PREFIX') . $text . ':' . $replacement . "\n"); } } sub build_log_colour { my $self = shift; my $regex = shift; my $colour = shift; if ($self->get_conf('LOG_COLOUR')) { $self->log($self->get('COLOUR_PREFIX') . $colour . ':' . $regex . "\n"); } } sub open_build_log { my $self = shift; my $date = strftime("%Y%m%d-%H%M", localtime($self->get('Pkg Start Time'))); my $filter_prefix = '__SBUILD_FILTER_' . $$ . ':'; $self->set('FILTER_PREFIX', $filter_prefix); my $colour_prefix = '__SBUILD_COLOUR_' . $$ . ':'; $self->set('COLOUR_PREFIX', $colour_prefix); my $filename = $self->get_conf('LOG_DIR') . '/' . $self->get('Package_SVersion') . '_' . $self->get('Host Arch') . "-$date"; $filename .= ".build" if $self->get_conf('SBUILD_MODE') ne 'buildd'; open($saved_stdout, ">&STDOUT") or warn "Can't redirect stdout\n"; open($saved_stderr, ">&STDERR") or warn "Can't redirect stderr\n"; my $PLOG; my $pid; ($pid = open($PLOG, "|-")); if (!defined $pid) { warn "Cannot open pipe to '$filename': $!\n"; } elsif ($pid == 0) { $SIG{'INT'} = 'IGNORE'; $SIG{'TERM'} = 'IGNORE'; $SIG{'QUIT'} = 'IGNORE'; $SIG{'PIPE'} = 'IGNORE'; $PROGRAM_NAME = 'package log for ' . $self->get('Package_SVersion') . '_' . $self->get('Host Arch'); $saved_stdout->autoflush(1); if (!$self->get_conf('NOLOG') && $self->get_conf('LOG_DIR_AVAILABLE')) { unlink $filename; # To prevent opening symlink to elsewhere open( CPLOG, ">$filename" ) or Sbuild::Exception::Build->throw(error => "Failed to open build log $filename: $!", failstage => "init"); CPLOG->autoflush(1); # Create 'current' symlinks if ($self->get_conf('SBUILD_MODE') eq 'buildd') { $self->log_symlink($filename, $self->get_conf('BUILD_DIR') . '/current-' . $self->get_conf('DISTRIBUTION')); } else { my $symlinktarget = $filename; # if symlink target is in the same directory as the symlink # itself, make it a relative link instead of an absolute one if (Cwd::abs_path($self->get_conf('BUILD_DIR')) eq Cwd::abs_path(dirname($filename))) { $symlinktarget = basename($filename) } $self->log_symlink($symlinktarget, $self->get_conf('BUILD_DIR') . '/' . $self->get('Package_SVersion') . '_' . $self->get('Host Arch') . ".build"); } } # Cache vars to avoid repeated hash lookups. my $nolog = $self->get_conf('NOLOG'); my $log = $self->get_conf('LOG_DIR_AVAILABLE'); my $verbose = $self->get_conf('VERBOSE'); my $log_colour = $self->get_conf('LOG_COLOUR'); my @filter = (); my @colour = (); my ($text, $replacement); my $filter_regex = "^$filter_prefix(.*):(.*)\$"; my $colour_regex = "^$colour_prefix(.*):(.*)\$"; my @ignore = (); while () { # Add a replacement pattern to filter (sent from main # process in log stream). if (m/$filter_regex/) { ($text,$replacement)=($1,$2); $replacement = "<<$replacement>>"; push (@filter, [$text, $replacement]); $_ = "I: NOTICE: Log filtering will replace '$text' with '$replacement'\n"; } elsif (m/$colour_regex/) { my ($colour, $regex); ($colour,$regex)=($1,$2); push (@colour, [$colour, $regex]); # $_ = "I: NOTICE: Log colouring will colour '$regex' in $colour\n"; next; } else { # Filter out any matching patterns foreach my $pattern (@filter) { ($text,$replacement) = @{$pattern}; s/$text/$replacement/g; } } if (m/Deprecated key/ || m/please update your configuration/) { my $skip = 0; foreach my $ignore (@ignore) { $skip = 1 if ($ignore eq $_); } next if $skip; push(@ignore, $_); } if ($nolog || $verbose) { if (-t $saved_stdout && $log_colour) { my $colour = 'reset'; foreach my $pattern (@colour) { if (m/$$pattern[0]/) { $colour = $$pattern[1]; } } print $saved_stdout color $colour; } print $saved_stdout $_; if (-t $saved_stdout && $log_colour) { print $saved_stdout color 'reset'; } } if (!$nolog && $log) { print CPLOG $_; } } close CPLOG; exit 0; } $PLOG->autoflush(1); open(STDOUT, '>&', $PLOG) or warn "Can't redirect stdout\n"; open(STDERR, '>&', $PLOG) or warn "Can't redirect stderr\n"; $self->set('Log File', $filename); $self->set('Log Stream', $PLOG); my $hostname = $self->get_conf('HOSTNAME'); $self->log("sbuild (Debian sbuild) $version ($release_date) on $hostname\n"); my $arch_string = $self->get('Build Arch'); $arch_string = 'CROSS host=' . $self->get('Host Arch') . '/build=' . $self->get('Build Arch') if ($self->get('Host Arch') ne $self->get('Build Arch')); my $head1 = $self->get('Package') . ' ' . $self->get('Version') . ' (' . $arch_string . ') '; my $head2 = strftime("%d %b %Y %H:%M", localtime($self->get('Pkg Start Time'))); my $head = $head1 . ' ' x (80 - 4 - length($head1) - length($head2)) . $head2; $self->log_section($head); $self->log("Package: " . $self->get('Package') . "\n"); $self->log("Version: " . $self->get('Version') . "\n"); $self->log("Source Version: " . $self->get('OVersion') . "\n"); $self->log("Distribution: " . $self->get_conf('DISTRIBUTION') . "\n"); $self->log("Machine Architecture: " . $self->get_conf('ARCH') . "\n"); $self->log("Host Architecture: " . $self->get('Host Arch') . "\n"); $self->log("Build Architecture: " . $self->get('Build Arch') . "\n"); $self->log("Build Profiles: " . $self->get('Build Profiles') . "\n") if $self->get('Build Profiles'); $self->log("\n"); } sub close_build_log { my $self = shift; my $time = $self->get('Pkg End Time'); if ($time == 0) { $time = time; } my $date = strftime("%Y%m%d-%H%M", localtime($time)); my $hours = int($self->get('This Time')/3600); my $minutes = int(($self->get('This Time')%3600)/60), my $seconds = int($self->get('This Time')%60), my $space = $self->get('This Space'); my $filename = $self->get('Log File'); # building status at this point means failure. if ($self->get_status() eq "building") { $self->set_status('failed'); } $self->log_subsection('Summary'); $self->generate_stats(); $self->log_stats(); $self->log_sep(); $self->log("Finished at ${date}\n"); $self->log(sprintf("Build needed %02d:%02d:%02d, %dk disc space\n", $hours, $minutes, $seconds, $space)); if ($self->get_status() eq "successful") { if (defined($self->get_conf('KEY_ID')) && $self->get_conf('KEY_ID')) { my $key_id = $self->get_conf('KEY_ID'); my $build_dir = $self->get_conf('BUILD_DIR'); my $changes; $self->log(sprintf("Signature with key '%s' requested:\n", $key_id)); $changes = $self->get_changes($build_dir); system "debsign", "-k$key_id", "$build_dir/$changes"; } } my $subject = "Log for " . $self->get_status() . " build of " . $self->get('Package_Version'); if ($self->get_conf('BUILD_SOURCE') && !$self->get_conf('BUILD_ARCH_ALL') && !$self->get_conf('BUILD_ARCH_ANY')) { $subject .= " source"; } if ($self->get_conf('BUILD_ARCH_ALL') && !$self->get_conf('BUILD_ARCH_ANY')) { $subject .= " on all"; } elsif ($self->get('Host Arch')) { $subject .= " on " . $self->get('Host Arch'); } if ($self->get_conf('ARCHIVE')) { $subject .= " (" . $self->get_conf('ARCHIVE') . "/" . $self->get_conf('DISTRIBUTION') . ")"; } else { $subject .= " (dist=" . $self->get_conf('DISTRIBUTION') . ")"; } open(STDERR, '>&', $saved_stderr) or warn "Can't redirect stderr\n" if defined($saved_stderr); open(STDOUT, '>&', $saved_stdout) or warn "Can't redirect stdout\n" if defined($saved_stdout); $saved_stderr->close(); undef $saved_stderr; $saved_stdout->close(); undef $saved_stdout; $self->set('Log File', undef); if (defined($self->get('Log Stream'))) { $self->get('Log Stream')->close(); # Close child logger process $self->set('Log Stream', undef); } $self->send_build_log($self->get_conf('MAILTO'), $subject, $filename) if (defined($filename) && -f $filename && $self->get_conf('MAILTO')); } sub send_build_log { my $self = shift; my $to = shift; my $subject = shift; my $filename = shift; my $conf = $self->get('Config'); if ($conf->get('MIME_BUILD_LOG_MAILS')) { return $self->send_mime_build_log($to, $subject, $filename); } else { return send_mail($conf, $to, $subject, $filename); } } sub send_mime_build_log { my $self = shift; my $to = shift; my $subject = shift; my $filename = shift; my $conf = $self->get('Config'); my $tmp; # Needed for gzip, here for proper scoping. my $msg = MIME::Lite->new( From => $conf->get('MAILFROM'), To => $to, Subject => $subject, Type => 'multipart/mixed' ); # Add the GPG key ID to the mail if present so that it's clear if the log # still needs signing or not. if (defined($self->get_conf('KEY_ID')) && $self->get_conf('KEY_ID')) { $msg->add('Key-ID', $self->get_conf('KEY_ID')); } if (!$conf->get('COMPRESS_BUILD_LOG_MAILS')) { my $log_part = MIME::Lite->new( Type => 'text/plain', Path => $filename, Filename => basename($filename) ); $log_part->attr('content-type.charset' => 'UTF-8'); $msg->attach($log_part); } else { local( *F, *GZFILE ); if (!open( F, "<$filename" )) { warn "Cannot open $filename for mailing: $!\n"; return 0; } $tmp = File::Temp->new(); tie *GZFILE, 'IO::Zlib', $tmp->filename, 'wb'; while( ) { print GZFILE $_; } untie *GZFILE; close F; close GZFILE; $msg->attach( Type => 'application/x-gzip', Path => $tmp->filename, Filename => basename($filename) . '.gz' ); } my $build_dir = $self->get_conf('BUILD_DIR'); my $changes = $self->get_changes($build_dir); if ($self->get_status() eq 'successful' && -r "$build_dir/$changes") { my $log_part = MIME::Lite->new( Type => 'text/plain', Path => "$build_dir/$changes", Filename => basename($changes) ); $log_part->attr('content-type.charset' => 'UTF-8'); $msg->attach($log_part); } my $stats = ''; foreach my $stat (sort keys %{$self->get('Summary Stats')}) { $stats .= sprintf("%s: %s\n", $stat, $self->get('Summary Stats')->{$stat}); } $msg->attach( Type => 'text/plain', Filename => basename($filename) . '.summary', Data => $stats ); local $SIG{'PIPE'} = 'IGNORE'; if (!open( MAIL, "|" . $conf->get('MAILPROG') . " -oem $to" )) { warn "Could not open pipe to " . $conf->get('MAILPROG') . ": $!\n"; close( F ); return 0; } $msg->print(\*MAIL); if (!close( MAIL )) { warn $conf->get('MAILPROG') . " failed (exit status $?)\n"; return 0; } return 1; } sub log_symlink { my $self = shift; my $log = shift; my $dest = shift; unlink $dest; # Don't return on failure, since the symlink will fail. symlink $log, $dest; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Base.pm0000644000000000000000000000013212627410514015746 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.165759984 sbuild-0.67.0/lib/Sbuild/Base.pm0000644000175000017500000000574012627410514016574 0ustar00joschjosch00000000000000# # Base.pm: base class containing common class infrastructure # Copyright © 2008 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::Base; use strict; use warnings; use Sbuild qw(debug); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = {}; bless($self, $class); $self->set('Config', $conf); return $self; } sub get { my $self = shift; my $key = shift; return $self->{$key}; } sub set { my $self = shift; my $key = shift; my $value = shift; if (defined($value)) { debug("Setting $key=$value\n"); } else { debug("Setting $key=undef\n"); } return $self->{$key} = $value; } sub get_conf { my $self = shift; my $key = shift; return $self->get('Config')->get($key); } sub set_conf { my $self = shift; my $key = shift; my $value = shift; return $self->get('Config')->set($key,$value); } sub log { my $self = shift; my $logfile = $self->get('Log Stream'); if (defined($logfile)) { print $logfile @_; } else { debug("E: Attempt to log to nonexistent log stream\n") if (!defined($self->get('Log Stream Error')) || !$self->get('Log Stream Error')); print STDERR @_; $self->set('Log Stream Error', 1) } } sub log_info { my $self = shift; $self->log("I: ", @_); } sub log_warning { my $self = shift; $self->log("W: ", @_); } sub log_error { my $self = shift; $self->log("E: ", @_); } sub log_section { my $self = shift; my $section = shift; $self->log("\n"); $self->log('+', '=' x 78, '+', "\n"); $self->log('|', " $section ", ' ' x (80 - length($section) - 4), '|', "\n"); $self->log('+', '=' x 78, '+', "\n\n"); } sub log_subsection { my $self = shift; my $section = shift; $self->log("\n"); $self->log('+', '-' x 78, '+', "\n"); $self->log('|', " $section ", ' ' x (80 - length($section) - 4), '|', "\n"); $self->log('+', '-' x 78, '+', "\n\n"); } sub log_subsubsection { my $self = shift; my $section = shift; $self->log("\n"); $self->log("$section\n"); $self->log('-' x (length($section)), "\n\n"); } sub log_sep { my $self = shift; $self->log('-' x 80, "\n"); } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Options.pm0000644000000000000000000000013112637466265016545 xustar0030 mtime=1451125941.604607503 30 atime=1451125941.608607516 29 ctime=1451136984.18576001 sbuild-0.67.0/lib/Sbuild/Options.pm0000644000175000017500000002567312637466265017403 0ustar00joschjosch00000000000000# # Options.pm: options parser for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2006 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::Options; use strict; use warnings; use Sbuild::OptionsBase; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::OptionsBase); @EXPORT = qw(); } sub set_options { my $self = shift; $self->add_options("arch=s" => sub { $self->set_conf('HOST_ARCH', $_[1]); $self->set_conf('BUILD_ARCH', $_[1]); }, "build=s" => sub { $self->set_conf('BUILD_ARCH', $_[1]); }, "host=s" => sub { $self->set_conf('HOST_ARCH', $_[1]); }, "A|arch-all" => sub { $self->set_conf('BUILD_ARCH_ALL', 1); }, "no-arch-all" => sub { $self->set_conf('BUILD_ARCH_ALL', 0); }, "arch-any" => sub { $self->set_conf('BUILD_ARCH_ANY', 1); }, "no-arch-any" => sub { $self->set_conf('BUILD_ARCH_ANY', 0); }, "arch-all-only" => sub { $self->set_conf('BUILD_ARCH_ALL', 1); $self->set_conf('BUILD_ARCH_ANY', 0); }, "profiles=s" => sub { $_[1] =~ tr/,/ /; $self->set_conf('BUILD_PROFILES', $_[1]); }, "add-depends=s" => sub { push(@{$self->get_conf('MANUAL_DEPENDS')}, $_[1]); }, "add-conflicts=s" => sub { push(@{$self->get_conf('MANUAL_CONFLICTS')}, $_[1]); }, "add-depends-arch=s" => sub { push(@{$self->get_conf('MANUAL_DEPENDS_ARCH')}, $_[1]); }, "add-conflicts-arch=s" => sub { push(@{$self->get_conf('MANUAL_CONFLICTS_ARCH')}, $_[1]); }, "add-depends-indep=s" => sub { push(@{$self->get_conf('MANUAL_DEPENDS_INDEP')}, $_[1]); }, "add-conflicts-indep=s" => sub { push(@{$self->get_conf('MANUAL_CONFLICTS_INDEP')}, $_[1]); }, "b|batch" => sub { $self->set_conf('BATCH_MODE', 1); }, "make-binNMU=s" => sub { $self->set_conf('BIN_NMU', $_[1]); $self->set_conf('BIN_NMU_VERSION', 1) if (!defined $self->get_conf('BIN_NMU_VERSION')); }, "binNMU=i" => sub { $self->set_conf('BIN_NMU_VERSION', $_[1]); }, "append-to-version=s" => sub { $self->set_conf('APPEND_TO_VERSION', $_[1]); }, "c|chroot=s" => sub { $self->set_conf('CHROOT', $_[1]); }, "apt-clean" => sub { $self->set_conf('APT_CLEAN', 1); }, "apt-update" => sub { $self->set_conf('APT_UPDATE', 1); }, "apt-upgrade" => sub { $self->set_conf('APT_UPGRADE', 1); }, "apt-distupgrade" => sub { $self->set_conf('APT_DISTUPGRADE', 1); }, "no-apt-clean" => sub { $self->set_conf('APT_CLEAN', 0); }, "no-apt-update" => sub { $self->set_conf('APT_UPDATE', 0); }, "no-apt-upgrade" => sub { $self->set_conf('APT_UPGRADE', 0); }, "no-apt-distupgrade" => sub { $self->set_conf('APT_DISTUPGRADE', 0); }, "d|dist=s" => sub { $self->set_conf('DISTRIBUTION', $_[1]); $self->set_conf('DISTRIBUTION', "oldstable") if $self->get_conf('DISTRIBUTION') eq "o"; $self->set_conf('DISTRIBUTION', "stable") if $self->get_conf('DISTRIBUTION') eq "s"; $self->set_conf('DISTRIBUTION', "testing") if $self->get_conf('DISTRIBUTION') eq "t"; $self->set_conf('DISTRIBUTION', "unstable") if $self->get_conf('DISTRIBUTION') eq "u"; $self->set_conf('DISTRIBUTION', "experimental") if $self->get_conf('DISTRIBUTION') eq "e"; $self->set_conf('OVERRIDE_DISTRIBUTION', 1); }, "force-orig-source" => sub { $self->set_conf('FORCE_ORIG_SOURCE', 1); }, "m|maintainer=s" => sub { $self->set_conf('MAINTAINER_NAME', $_[1]); }, "mailfrom=s" => sub { $self->set_conf('MAILFROM', $_[1]); }, "sbuild-mode=s" => sub { $self->set_conf('SBUILD_MODE', $_[1]); }, "k|keyid=s" => sub { $self->set_conf('KEY_ID', $_[1]); }, "e|uploader=s" => sub { $self->set_conf('UPLOADER_NAME', $_[1]); }, "debbuildopts=s" => sub { push(@{$self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')}, split(/\s+/, $_[1])); }, "debbuildopt=s" => sub { push(@{$self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')}, $_[1]); }, "j|jobs=i" => sub { push(@{$self->get_conf('DPKG_BUILDPACKAGE_USER_OPTIONS')}, '-j'.$_[1]) }, "dpkg-source-opts=s" => sub { push(@{$self->get_conf('DPKG_SOURCE_OPTIONS')}, split(/\s+/, $_[1])); }, "dpkg-source-opt=s" => sub { push(@{$self->get_conf('DPKG_SOURCE_OPTIONS')}, $_[1]); }, "mail-log-to=s" => sub { $self->set_conf('MAILTO', $_[1]); $self->set_conf('MAILTO_FORCED_BY_CLI', "yes"); }, "n|nolog" => sub { $self->set_conf('NOLOG', 1); }, "p|purge=s" => sub { $self->set_conf('PURGE_BUILD_DEPS', $_[1]); $self->set_conf('PURGE_BUILD_DIRECTORY', $_[1]); $self->set_conf('PURGE_SESSION', $_[1]); }, "purge-build=s" => sub { $self->set_conf('PURGE_BUILD_DIRECTORY', $_[1]); }, "purge-deps=s" => sub { $self->set_conf('PURGE_BUILD_DEPS', $_[1]); }, "purge-session=s" => sub { $self->set_conf('PURGE_SESSION', $_[1]); }, "s|source" => sub { $self->set_conf('BUILD_SOURCE', 1); }, "no-source" => sub { $self->set_conf('BUILD_SOURCE', 0); }, "archive=s" => sub { $self->set_conf('ARCHIVE', $_[1]); }, "stats-dir=s" => sub { $self->set_conf('STATS_DIR', $_[1]); }, "setup-hook=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"chroot-setup-commands"}}, $_[1]); $self->set_conf('CHROOT_SETUP_SCRIPT', $_[1]); }, "use-snapshot" => sub { my $newldpath = '/usr/lib/gcc-snapshot/lib'; my $ldpath = $self->get_conf('LD_LIBRARY_PATH'); if (defined($ldpath) && $ldpath ne '') { $newldpath .= ':' . $ldpath; } $self->set_conf('GCC_SNAPSHOT', 1); $self->set_conf('LD_LIBRARY_PATH', $newldpath); $self->set_conf('PATH', '/usr/lib/gcc-snapshot/bin' . $self->get_conf('PATH') ne '' ? ':' . $self->get_conf('PATH') : ''); }, "build-dep-resolver=s" => sub { $self->set_conf('BUILD_DEP_RESOLVER', $_[1]); }, "resolve-alternatives" => sub { $self->set_conf('RESOLVE_ALTERNATIVES', 1); }, "no-resolve-alternatives" => sub { $self->set_conf('RESOLVE_ALTERNATIVES', 0); }, "clean-source" => sub { $self->set_conf('CLEAN_SOURCE', 1); }, "no-clean-source" => sub { $self->set_conf('CLEAN_SOURCE', 0); }, "run-lintian" => sub { $self->set_conf('RUN_LINTIAN', 1); }, "no-run-lintian" => sub { $self->set_conf('RUN_LINTIAN', 0); }, "lintian-opts=s" => sub { push(@{$self->get_conf('LINTIAN_OPTIONS')}, split(/\s+/, $_[1])); }, "lintian-opt=s" => sub { push(@{$self->get_conf('LINTIAN_OPTIONS')}, $_[1]); }, "run-piuparts" => sub { $self->set_conf('RUN_PIUPARTS', 1); }, "no-run-piuparts" => sub { $self->set_conf('RUN_PIUPARTS', 0); }, "piuparts-opts=s" => sub { push(@{$self->get_conf('PIUPARTS_OPTIONS')}, split(/\s+/, $_[1])); }, "piuparts-opt=s" => sub { push(@{$self->get_conf('PIUPARTS_OPTIONS')}, $_[1]); }, "piuparts-root-args=s" => sub { push(@{$self->get_conf('PIUPARTS_ROOT_ARGS')}, split(/\s+/, $_[1])); }, "piuparts-root-arg=s" => sub { push(@{$self->get_conf('PIUPARTS_ROOT_ARGS')}, $_[1]); }, "pre-build-commands=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"pre-build-commands"}}, $_[1]); }, "chroot-setup-commands=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"chroot-setup-commands"}}, $_[1]); }, "build-deps-failed-commands=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"build-deps-failed-commands"}}, $_[1]); }, "build-failed-commands=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"build-failed-commands"}}, $_[1]); }, "anything-failed-commands=s" => sub { # --anything-failed-commands simply triggers all the # --xxx-failed-commands I know about push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"build-deps-failed-commands"}}, $_[1]); push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"build-failed-commands"}}, $_[1]); }, "starting-build-commands=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"starting-build-commands"}}, $_[1]); }, "finished-build-commands=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"finished-build-commands"}}, $_[1]); }, "chroot-cleanup-commands=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"chroot-cleanup-commands"}}, $_[1]); }, "post-build-commands=s" => sub { push(@{${$self->get_conf('EXTERNAL_COMMANDS')}{"post-build-commands"}}, $_[1]); }, "log-external-command-output" => sub { $self->set_conf('LOG_EXTERNAL_COMMAND_OUTPUT', 1); }, "log-external-command-error" => sub { $self->set_conf('LOG_EXTERNAL_COMMAND_ERROR', 1); }, "extra-package=s" => sub { push(@{$self->get_conf('EXTRA_PACKAGES')}, $_[1]); }, "extra-repository=s" => sub { push(@{$self->get_conf('EXTRA_REPOSITORIES')}, $_[1]); }, "extra-repository-key=s" => sub { push(@{$self->get_conf('EXTRA_REPOSITORY_KEYS')}, $_[1]); }, "build-path=s" => sub { $self->set_conf('BUILD_PATH', $_[1]); }, ); } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ChrootSetup.pm0000644000000000000000000000013212637466265017372 xustar0030 mtime=1451125941.448607017 30 atime=1451125941.452607029 30 ctime=1451136984.173759994 sbuild-0.67.0/lib/Sbuild/ChrootSetup.pm0000644000175000017500000001663612637466265020226 0ustar00joschjosch00000000000000# # ChrootSetup.pm: chroot maintenance operations # Copyright © 2005-2009 Roger Leigh . # ####################################################################### package Sbuild::ChrootSetup; use strict; use warnings; use File::Temp qw(tempfile); use Sbuild qw($devnull); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(basesetup shell hold_packages unhold_packages list_packages set_package_status generate_keys); } sub basesetup ($$); sub shell ($$); sub hold_packages ($$@); sub unhold_packages ($$@); sub list_packages ($$@); sub set_package_status ($$$@); sub generate_keys ($$); sub basesetup ($$) { my $session = shift; my $conf = shift; # Add sbuild group $session->run_command( { COMMAND => ['getent', 'group', 'sbuild'], USER => 'root', STREAMIN => $devnull, STREAMOUT => $devnull, DIR => '/' }); if ($?) { # This will require root privileges. However, this should # only get run at initial chroot setup time. my $groupfile = $session->get('Location') . "/etc/group"; system '/bin/sh', '-c', "getent group sbuild >> $groupfile"; if ($?) { print STDERR "E: Failed to create group sbuild\n"; return $? } } $session->run_command( { COMMAND => ['/bin/sh', '-c', 'set -e; if [ ! -d /build ] ; then mkdir -m 0775 /build; fi'], USER => 'root', DIR => '/' }); if ($?) { print STDERR "E: Failed to create build directory /build\n"; return $? } $session->run_command( { COMMAND => ['chown', 'sbuild:sbuild', '/build'], USER => 'root', DIR => '/' }); if ($?) { print STDERR "E: Failed to set sbuild:sbuild ownership on /build\n"; return $? } $session->run_command( { COMMAND => ['chmod', '02770', '/build'], USER => 'root', DIR => '/' }); if ($?) { print STDERR "E: Failed to set 0750 permissions on /build\n"; return $? } $session->run_command( { COMMAND => ['/bin/sh', '-c', 'set -e; if [ ! -d /var/lib/sbuild ] ; then mkdir -m 2770 /var/lib/sbuild; fi'], USER => 'root', DIR => '/' }); if ($?) { print STDERR "E: Failed to create build directory /var/lib/sbuild\n"; return $? } $session->run_command( { COMMAND => ['/bin/sh', '-c', 'set -e; if [ ! -d /var/lib/sbuild/srcdep-lock ] ; then mkdir -m 2770 /var/lib/sbuild/srcdep-lock; fi'], USER => 'root', DIR => '/' }); if ($?) { print STDERR "E: Failed to create sbuild directory /var/lib/sbuild/srcdep-lock\n"; return $? } $session->run_command( { COMMAND => ['chown', '-R', 'sbuild:sbuild', '/var/lib/sbuild'], USER => 'root', DIR => '/' }); if ($?) { print STDERR "E: Failed to set sbuild:sbuild ownership on /var/lib/sbuild/\n"; return $? } $session->run_command( { COMMAND => ['chmod', '02770', '/var/lib/sbuild'], USER => 'root', DIR => '/' }); if ($?) { print STDERR "E: Failed to set 02770 permissions on /var/lib/sbuild/\n"; return $? } # Set up debconf selections. my $pipe = $session->pipe_command( { COMMAND => ['/usr/bin/debconf-set-selections'], PIPE => 'out', USER => 'root', PRIORITY => 0, DIR => '/' }); if (!$pipe) { warn "Cannot open pipe: $!\n"; } else { foreach my $selection ('man-db man-db/auto-update boolean false') { print $pipe "$selection\n"; } close($pipe); if ($?) { print STDERR "E: debconf-set-selections failed\n"; return $? } } return 0; } sub shell ($$) { my $session = shift; my $conf = shift; $session->run_command( { COMMAND => ['/bin/sh'], PRIORITY => 1, USER => $conf->get('BUILD_USER'), STREAMIN => \*STDIN, STREAMOUT => \*STDOUT, STREAMERR => \*STDERR }); return $? } sub hold_packages ($$@) { my $session = shift; my $conf = shift; my $status = set_package_status($session, $conf, "hold", @_); return $status; } sub unhold_packages ($$@) { my $session = shift; my $conf = shift; my $status = set_package_status($session, $conf, "install", @_); return $status; } sub list_packages ($$@) { my $session = shift; my $conf = shift; $session->run_command( {COMMAND => ['dpkg', '--list', @_], USER => 'root', PRIORITY => 0}); return $?; } sub set_package_status ($$$@) { my $session = shift; my $conf = shift; my $status = shift; my $pipe = $session->pipe_command( {COMMAND => ['dpkg', '--set-selections'], PIPE => 'out', USER => 'root', PRIORITY => 0}); if (!$pipe) { print STDERR "Can't run dpkg --set-selections in chroot\n"; return 1; } foreach (@_) { print $pipe "$_ $status\n"; } if (!close $pipe) { print STDERR "Can't run dpkg --set-selections in chroot\n"; } return $?; } sub generate_keys ($$) { my $host = shift; my $conf = shift; my ($tmpfh, $tmpfilename) = tempfile(); print $tmpfh <<"EOF"; Key-Type: RSA Key-Length: 1024 Name-Real: Sbuild Signer Name-Comment: Sbuild Build Dependency Archive Key Name-Email: buildd-tools-devel\@lists.alioth.debian.org Expire-Date: 0 EOF print $tmpfh '%secring ' . $conf->get('SBUILD_BUILD_DEPENDS_SECRET_KEY') . "\n"; print $tmpfh '%pubring ' . $conf->get('SBUILD_BUILD_DEPENDS_PUBLIC_KEY') . "\n"; print $tmpfh '%commit' . "\n"; close($tmpfh); my $gnupghome = $ENV{'GNUPGHOME'}; if (!$gnupghome) { $gnupghome = $ENV{'HOME'}; if (!$gnupghome) { my @pwinfo = getpwuid($<); die "Can't get passwd entry for uid $<: $!" if (!@pwinfo); print STDERR "W: HOME not set in environment; falling back to $pwinfo[7]\n"; $gnupghome = $pwinfo[7]; } $gnupghome .= '/.gnupg'; } if (! -d $gnupghome) { mkdir $gnupghome, 0700 or die "failed to create $gnupghome"; } $host->run_command( { COMMAND => ['chown', ':sbuild', $tmpfilename], USER => $conf->get('USERNAME'), DIR => '/' }); if ($?) { print STDERR "E: Failed to set :sbuild ownership on $tmpfilename\n"; return $? } $host->run_command( { COMMAND => ['chmod', '0660', $tmpfilename], USER => $conf->get('USERNAME'), DIR => '/' }); if ($?) { print STDERR "E: Failed to set 0660 permissions on $tmpfilename\n"; return $? } my @command = ('gpg', '--no-options', '--no-default-keyring', '--batch', '--gen-key', $tmpfilename); $host->run_command( { COMMAND => \@command, USER => $conf->get('BUILD_USER'), PRIORITY => 0, DIR => '/'}); if ($?) { return $?; } # Keys needs to be readable by 'sbuild' group. @command = ('chmod', '640', $conf->get('SBUILD_BUILD_DEPENDS_SECRET_KEY'), $conf->get('SBUILD_BUILD_DEPENDS_PUBLIC_KEY')); $host->run_command( { COMMAND => \@command, USER => $conf->get('BUILD_USER'), PRIORITY => 0, DIR => '/'}); return $?; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/OptionsBase.pm0000644000000000000000000000013112565554441017332 xustar0030 mtime=1440143649.644952177 30 atime=1451044743.162752739 29 ctime=1451136984.18576001 sbuild-0.67.0/lib/Sbuild/OptionsBase.pm0000644000175000017500000000472312565554441020161 0ustar00joschjosch00000000000000# # OptionsBase.pm: options parser (base functionality) for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2009 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::OptionsBase; use strict; use warnings; use Getopt::Long qw(:config no_ignore_case auto_abbrev gnu_getopt); use Sbuild qw(help_text version_text usage_error); use Sbuild::Base; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $program = shift; my $section = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->add_options("h|help" => sub { help_text($section, $program); }, "V|version" => sub {version_text($program); }, "D|debug" => sub { $self->set_conf('DEBUG', $self->get_conf('DEBUG') + 1); }, "v|verbose" => sub { $self->set_conf('VERBOSE', $self->get_conf('VERBOSE') + 1); }, "q|quiet" => sub { $self->set_conf('VERBOSE', $self->get_conf('VERBOSE') - 1) if $self->get_conf('VERBOSE'); }); $self->set_options(); if (!$self->parse_options()) { usage_error($program, "Error parsing command-line options"); return undef; } return $self; } sub add_options () { my $self = shift; my @newopts = @_; my %options; if (defined($self->get('Options'))) { %options = (%{$self->get('Options')}, @newopts); } else { %options = (@newopts); } $self->set('Options', \%options); } sub set_options () { my $self = shift; } sub parse_options { my $self = shift; return GetOptions((%{$self->get('Options')})); } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/AptResolver.pm0000644000000000000000000000013212627537062017352 xustar0030 mtime=1449049650.251449646 30 atime=1451044743.162752739 30 ctime=1451136984.177759999 sbuild-0.67.0/lib/Sbuild/AptResolver.pm0000644000175000017500000000606012627537062020174 0ustar00joschjosch00000000000000# ResolverBase.pm: build library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2008 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::AptResolver; use strict; use warnings; use Sbuild qw(debug copy); use Sbuild::Base; use Sbuild::ResolverBase; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::ResolverBase); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $session = shift; my $host = shift; my $self = $class->SUPER::new($conf, $session, $host); bless($self, $class); return $self; } sub install_deps { my $self = shift; my $name = shift; my $cross = shift; my @pkgs = @_; my $status = 0; my $session = $self->get('Session'); my $dummy_pkg_name = 'sbuild-build-depends-' . $name. '-dummy'; # Call functions to setup an archive to install dummy package. return 0 unless ($self->setup_apt_archive($dummy_pkg_name, @pkgs)); return 0 unless (!$self->update_archive()); $self->log_subsection("Install $name build dependencies (apt-based resolver)"); # Install the dummy package my (@instd, @rmvd); $self->log("Installing build dependencies\n"); my @apt_args = ("-yf", \@instd, \@rmvd); if ($cross) { # Cross-building: 'apt-get build-dep' knows how to get the multiarch # details right. push @apt_args, '-a' . $self->get('Host Arch'), 'build-dep', $dummy_pkg_name; } else { push @apt_args, 'install', $dummy_pkg_name; } if (!$self->run_apt(@apt_args)) { $self->log("Package installation failed\n"); if (defined ($self->get('Session')->get('Session Purged')) && $self->get('Session')->get('Session Purged') == 1) { $self->log("Not removing build depends: cloned chroot in use\n"); } else { $self->set_installed(@instd); $self->set_removed(@rmvd); goto package_cleanup; } return 0; } $self->set_installed(@instd); $self->set_removed(@rmvd); $status = 1; package_cleanup: if ($status == 0) { if (defined ($session->get('Session Purged')) && $session->get('Session Purged') == 1) { $self->log("Not removing installed packages: cloned chroot in use\n"); } else { $self->uninstall_deps(); } } $self->cleanup_apt_archive(); return $status; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/AptitudeResolver.pm0000644000000000000000000000013212627410514020375 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.177759999 sbuild-0.67.0/lib/Sbuild/AptitudeResolver.pm0000644000175000017500000001154212627410514021220 0ustar00joschjosch00000000000000# ResolverBase.pm: build library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2008 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::AptitudeResolver; use strict; use warnings; use File::Temp qw(tempdir); use Sbuild qw(debug); use Sbuild::Base; use Sbuild::ResolverBase; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::ResolverBase); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $session = shift; my $host = shift; my $self = $class->SUPER::new($conf, $session, $host); bless($self, $class); return $self; } sub install_deps { my $self = shift; my $name = shift; my $cross = shift; my @pkgs = @_; my $status = 0; my $session = $self->get('Session'); my $dummy_pkg_name = 'sbuild-build-depends-' . $name. '-dummy'; # Call functions to setup an archive to install dummy package. return 0 unless ($self->setup_apt_archive($dummy_pkg_name, @pkgs)); return 0 unless (!$self->update_archive()); $self->log_subsection("Install $name build dependencies (aptitude-based resolver)"); #install aptitude first: my (@aptitude_installed_packages, @aptitude_removed_packages); if (!$self->run_apt('-y', \@aptitude_installed_packages, \@aptitude_removed_packages, 'install', 'aptitude')) { $self->log_warning('Could not install aptitude!'); goto cleanup; } $self->set_installed(@aptitude_installed_packages); $self->set_removed(@aptitude_removed_packages); my $ignore_trust_violations = $self->get_conf('APT_ALLOW_UNAUTHENTICATED') ? 'true' : 'false'; my @aptitude_install_command = ( $self->get_conf('APTITUDE'), '-y', '--without-recommends', '-o', 'Dpkg::Options::=--force-confold', '-o', "Aptitude::CmdLine::Ignore-Trust-Violations=$ignore_trust_violations", '-o', 'Aptitude::ProblemResolver::StepScore=100', '-o', "Aptitude::ProblemResolver::SolutionCost=safety, priority, non-default-versions", '-o', "Aptitude::ProblemResolver::Hints::KeepDummy=reject $dummy_pkg_name :UNINST", '-o', 'Aptitude::ProblemResolver::Keep-All-Level=55000', '-o', 'Aptitude::ProblemResolver::Remove-Essential-Level=maximum', 'install', $dummy_pkg_name . ':' . $self->get('Host Arch') ); $self->log(join(" ", @aptitude_install_command), "\n"); my $pipe = $self->pipe_aptitude_command( { COMMAND => \@aptitude_install_command, ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, PIPE => 'in', USER => 'root', PRIORITY => 0, DIR => '/' }); if (!$pipe) { $self->log_warning('Cannot open pipe from aptitude: ' . $! . "\n"); goto package_cleanup; } my $aptitude_output = ""; while(<$pipe>) { $aptitude_output .= $_; $self->log($_); } close($pipe); my $aptitude_exit_code = $?; if ($aptitude_output =~ /^E:/m) { $self->log('Satisfying build-deps with aptitude failed.' . "\n"); goto package_cleanup; } my ($installed_pkgs, $removed_pkgs) = ("", ""); while ($aptitude_output =~ /The following NEW packages will be installed:\n((^[ ].*\n)*)/gmi) { ($installed_pkgs = $1) =~ s/^[ ]*((.|\n)*)\s*$/$1/m; $installed_pkgs =~ s/\*//g; $installed_pkgs =~ s/\{.\}//g; } while ($aptitude_output =~ /The following packages will be REMOVED:\n((^[ ].*\n)*)/gmi) { ($removed_pkgs = $1) =~ s/^[ ]*((.|\n)*)\s*$/$1/m; $removed_pkgs =~ s/\*//g; $removed_pkgs =~ s/\{.\}//g; #remove {u}, {a} in output... } my @installed_packages = split( /\s+/, $installed_pkgs); $self->set_installed(keys %{$self->get('Changes')->{'installed'}}, @installed_packages); $self->set_removed(keys %{$self->get('Changes')->{'removed'}}, split( /\s+/, $removed_pkgs)); if ($aptitude_exit_code != 0) { goto package_cleanup; } #Seems it all went fine. $status = 1; package_cleanup: if ($status == 0) { if (defined ($session->get('Session Purged')) && $session->get('Session Purged') == 1) { $self->log("Not removing installed packages: cloned chroot in use\n"); } else { $self->uninstall_deps(); } } cleanup: return $status; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665016617 xustar0030 mtime=1451136949.493714241 30 atime=1451136977.889751687 30 ctime=1451136984.161759978 sbuild-0.67.0/lib/Sbuild/Makefile.in0000644000175000017500000003757412637513665017457 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(srcdir)/Sysconfig.pm.in subdir = lib/Sbuild ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = Sysconfig.pm CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(perlmodsbuilddir)" DATA = $(perlmodsbuild_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) perlmodsbuilddir = $(perlmoddir)/Sbuild MODULES = \ Base.pm \ Build.pm \ Chroot.pm \ ChrootPlain.pm \ ChrootRoot.pm \ ChrootSchroot.pm \ ChrootSudo.pm \ ChrootSetup.pm \ ChrootInfo.pm \ ChrootInfoSchroot.pm \ ChrootInfoSudo.pm \ Exception.pm \ ResolverBase.pm \ AptitudeResolver.pm \ AptResolver.pm \ AspcudResolver.pm \ XaptResolver.pm \ Resolver.pm \ Conf.pm \ ConfBase.pm \ LogBase.pm \ Options.pm \ OptionsBase.pm \ Utility.pm perlmodsbuild_DATA = \ $(MODULES) \ Sysconfig.pm EXTRA_DIST = \ $(MODULES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Sbuild/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu lib/Sbuild/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): Sysconfig.pm: $(top_builddir)/config.status $(srcdir)/Sysconfig.pm.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-perlmodsbuildDATA: $(perlmodsbuild_DATA) @$(NORMAL_INSTALL) @list='$(perlmodsbuild_DATA)'; test -n "$(perlmodsbuilddir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(perlmodsbuilddir)'"; \ $(MKDIR_P) "$(DESTDIR)$(perlmodsbuilddir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(perlmodsbuilddir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(perlmodsbuilddir)" || exit $$?; \ done uninstall-perlmodsbuildDATA: @$(NORMAL_UNINSTALL) @list='$(perlmodsbuild_DATA)'; test -n "$(perlmodsbuilddir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(perlmodsbuilddir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(perlmodsbuilddir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-perlmodsbuildDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-perlmodsbuildDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-perlmodsbuildDATA install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-perlmodsbuildDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ConfBase.pm0000644000000000000000000000013012637466265016571 xustar0030 mtime=1451125941.320606618 29 atime=1451125941.32460663 29 ctime=1451136984.18576001 sbuild-0.67.0/lib/Sbuild/ConfBase.pm0000644000175000017500000003175412637466265017425 0ustar00joschjosch00000000000000# # ConfBase.pm: configuration library (base functionality) for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2006-2008 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::ConfBase; use strict; use warnings; use Sbuild qw(isin); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(); } sub init_allowed_keys { my $self = shift; my $validate_program = sub { my $self = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $program = $self->get($key); die "$key binary is not defined" if !defined($program) || !$program; # Emulate execvp behaviour by searching the binary in the PATH. my @paths = split(/:/, $self->get('PATH')); # Also consider the empty path for absolute locations. push (@paths, ''); my $found = 0; foreach my $path (@paths) { $found = 1 if (-x File::Spec->catfile($path, $program)); } die "$key binary '$program' does not exist or is not executable" if !$found; }; my $validate_directory = sub { my $self = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $directory = $self->get($key); die "$key directory is not defined" if !defined($directory); die "$key directory $directory does not exist" if !-d $directory; }; my $set_distribution = sub { my $conf = shift; my $entry = shift; my $value = shift; my $key = $entry->{'NAME'}; $conf->_set_value($key, $value); $conf->set('MAILTO', $conf->get('MAILTO_HASH')->{$value}) if ($value && $conf->get('DISTRIBUTION') && $conf->get('MAILTO_HASH') && $conf->get('MAILTO_HASH')->{$value}); }; my @pwinfo = getpwuid($<); die "Can't get passwd entry for uid $<: $!" if (!@pwinfo); my $home = $ENV{'HOME'}; if (!$home) { print STDERR "W: HOME not set in environment; falling back to $pwinfo[7]\n"; $home = $pwinfo[7]; } my $username = $pwinfo[0]; my $fullname = $pwinfo[6]; $fullname =~ s/,.*$//; chomp(my $hostname = `hostname -f`); # Not user-settable. chomp(my $native_arch = readpipe("dpkg --print-architecture")); my %common_keys = ( 'PATH' => { TYPE => 'STRING', VARNAME => 'path', GROUP => 'Build environment', DEFAULT => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games", HELP => 'PATH to set when running dpkg-buildpackage.' }, 'DISTRIBUTION' => { TYPE => 'STRING', VARNAME => 'distribution', GROUP => 'Build options', DEFAULT => undef, SET => $set_distribution, HELP => 'Default distribution. By default, no distribution is defined, and the user must specify it with the -d option. However, a default may be configured here if desired. Users must take care not to upload to the wrong distribution when this option is set, for example experimental packages will be built for upload to unstable when this is not what is required.' }, 'OVERRIDE_DISTRIBUTION' => { TYPE => 'BOOL', GROUP => '__INTERNAL', DEFAULT => 0, GET => sub { my $conf = shift; my $entry = shift; my $dist = $conf->get('DISTRIBUTION'); my $overridden = 0; $overridden = 1 if (defined($dist)); return $overridden; }, HELP => 'Default distribution has been overridden' }, 'MAILPROG' => { TYPE => 'STRING', VARNAME => 'mailprog', GROUP => 'Programs', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; # Only validate if needed. if ($conf->get('MAILTO')) { $validate_program->($conf, $entry); } }, DEFAULT => '/usr/sbin/sendmail', HELP => 'Program to use to send mail' }, # TODO: Check if defaulted in code assuming undef # ARCH is the native (build-system) architecture. Not used for host/build. 'ARCH' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => $native_arch, HELP => 'Build architecture (Arch we are building on).' }, 'HOST_ARCH' => { TYPE => 'STRING', VARNAME => 'host_arch', GROUP => 'Build options', DEFAULT => $native_arch, # the $native_arch is different depending on the machine where # sbuild is built but arch:all packages must not differ depending on # the architecture they are built on, so don't show the default for # example config and man page generation IGNORE_DEFAULT => 1, HELP => 'Host architecture (Arch we are building for)' }, 'BUILD_ARCH' => { TYPE => 'STRING', VARNAME => 'build_arch', GROUP => 'Build options', DEFAULT => $native_arch, # the $native_arch is different depending on the machine where # sbuild is built but arch:all packages must not differ depending on # the architecture they are built on, so don't show the default for # example config and man page generation IGNORE_DEFAULT => 1, HELP => 'Build architecture (Arch we are building on).' }, 'BUILD_PROFILES' => { TYPE => 'STRING', VARNAME => 'build_profiles', GROUP => 'Build options', DEFAULT => $ENV{'DEB_BUILD_PROFILES'} || '', HELP => 'Build profiles. Separated by spaces.' }, 'HOSTNAME' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => $hostname, HELP => 'System hostname. Should not require setting.' }, 'HOME' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => $home, HELP => 'User\'s home directory. Should not require setting.' }, 'USERNAME' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => $username, HELP => 'User\'s username. Should not require setting.' }, 'FULLNAME' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => $fullname, HELP => 'User\'s full name. Should not require setting.' }, 'BUILD_USER' => { TYPE => 'STRING', VARNAME => 'build_user', GROUP => 'Core options', DEFAULT => $username, IGNORE_DEFAULT => 1, # don't write the username into the config HELP => 'Username used for running dpkg-buildpackage. By default the user running sbuild is used within the chroot as well but that might allow a process from within the chroot to break out of the chroot by attaching to a process running outside the chroot with eg. gdb and then becoming root inside the chroot through schroot and thus be able to leave the chroot.' }, 'VERBOSE' => { TYPE => 'NUMERIC', VARNAME => 'verbose', GROUP => 'Logging options', DEFAULT => undef, GET => sub { my $conf = shift; my $entry = shift; my $retval = $conf->_get($entry->{'NAME'}); # Note that during a build, STDOUT is redirected, so # this test will fail. So set explicitly at start to # ensure correctness. if (!defined($retval)) { $retval = 0; $retval = 1 if (-t STDIN && -t STDOUT); } return $retval; }, HELP => 'Verbose logging level' }, 'DEBUG' => { TYPE => 'NUMERIC', VARNAME => 'debug', GROUP => 'Logging options', DEFAULT => 0, HELP => 'Debug logging level' }, ); $self->set_allowed_keys(\%common_keys); } sub new { my $class = shift; my %opts = @_; my $self = {}; bless($self, $class); $self->{'CHECK'} = 1; $self->{'CHECK'} = $opts{'CHECK'} if exists $opts{'CHECK'}; $self->init_allowed_keys(); return $self; } sub get_keys { my $self = shift; return keys(%{$self->{'KEYS'}}); } sub is_default { my $self = shift; my $key = shift; return ($self->_get_value($key) == undef); } sub _get_property_value { my $self = shift; my $key = shift; my $property = shift; my $entry = $self->{'KEYS'}->{$key}; return $entry->{$property}; } sub _get_value { my $self = shift; my $key = shift; return $self->_get_property_value($key, 'VALUE'); } sub _get_default { my $self = shift; my $key = shift; return $self->_get_property_value($key, 'DEFAULT'); } sub _get_type { my $self = shift; my $key = shift; return $self->_get_property_value($key, 'TYPE'); } sub _get_varname { my $self = shift; my $key = shift; return $self->_get_property_value($key, 'VARNAME'); } sub _get_group { my $self = shift; my $key = shift; return $self->_get_property_value($key, 'GROUP'); } sub _get_help { my $self = shift; my $key = shift; return $self->_get_property_value($key, 'HELP'); } sub _get_example { my $self = shift; my $key = shift; return $self->_get_property_value($key, 'EXAMPLE'); } sub _get_ignore_default { my $self = shift; my $key = shift; return $self->_get_property_value($key, 'IGNORE_DEFAULT'); } sub _get { my $self = shift; my $key = shift; my $value = undef; $value = $self->_get_value($key); $value = $self->_get_default($key) if (!defined($value)); return $value; } sub get { my $self = shift; my $key = shift; my $entry = $self->{'KEYS'}->{$key}; my $value = undef; if ($entry) { if (defined($entry->{'GET'})) { $value = $entry->{'GET'}->($self, $entry); } else { $value = $self->_get($key); } } return $value; } sub _set_property_value { my $self = shift; my $key = shift; my $property = shift; my $value = shift; my $entry = $self->{'KEYS'}->{$key}; return $entry->{$property} = $value; } sub _set_value { my $self = shift; my $key = shift; my $value = shift; return $self->_set_property_value($key, 'VALUE', $value); } sub _set_default { my $self = shift; my $key = shift; my $value = shift; return $self->_set_property_value($key, 'DEFAULT', $value); } sub set { my $self = shift; my $key = shift; my $value = shift; # Set global debug level. $Sbuild::debug_level = $value if ($key eq 'DEBUG' && defined($value)); my $entry = $self->{'KEYS'}->{$key}; if (defined($entry)) { if (defined($entry->{'SET'})) { $value = $entry->{'SET'}->($self, $entry, $value); } else { $value = $self->_set_value($key, $value); } if ($self->{'CHECK'} && defined($entry->{'CHECK'})) { $entry->{'CHECK'}->($self, $entry); } $entry->{'NAME'} = $key; return $value; } else { warn "W: key \"$key\" is not allowed in configuration"; return undef; } } sub set_allowed_keys { my $self = shift; my $allowed_keys = shift; foreach (keys %{$allowed_keys}) { $allowed_keys->{$_}->{'NAME'} = $_; $self->{'KEYS'}->{$_} = $allowed_keys->{$_} } } sub check { my $self = shift; my $key = shift; my $entry = $self->{'KEYS'}->{$key}; if (defined($entry)) { if ($self->{'CHECK'} && defined($entry->{'CHECK'})) { $entry->{'CHECK'}->($self, $entry); } } } sub warn_deprecated { my $oldtype = shift; my $oldopt = shift; my $newtype = shift; my $newopt = shift; warn "W: Obsolete $oldtype option '$oldopt' used in configuration"; warn "I: The replacement is $newtype option '$newopt'" } sub read ($$$$) { my $conf = shift; my $paths = shift; my $deprecated_init = shift; my $deprecated_setup = shift; my $custom_setup = shift; foreach my $path (@{$paths}) { $path = "'$path'"; } my $pathstring = join(", ", @{$paths}); my $HOME = $conf->get('HOME'); # Variables are undefined, so config will default to DEFAULT if unset. # Create script to source configuration. my $script = "use strict;\nuse warnings;\n"; my @keys = $conf->get_keys(); foreach my $key (@keys) { next if $conf->_get_group($key) =~ m/^__/; my $varname = $conf->_get_varname($key); $script .= "my \$$varname = undef;\n"; } # For compatibility only. Non-scalars are deprecated. $script .= $deprecated_init if ($deprecated_init); $script .= <set('PATH', \$path); END # Non-scalar values, for backward compatibility. $script .= $deprecated_setup if ($deprecated_setup); foreach my $key (@keys) { next if $conf->_get_group($key) =~ m/^__/; my $varname = $conf->_get_varname($key); $script .= "\$conf->set('$key', \$$varname);\n"; } $script .= $custom_setup if ($custom_setup); $script .= "return 1;\n"; eval $script or die "Error reading configuration: $@"; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Makefile.am0000644000000000000000000000013212627410514016572 xustar0030 mtime=1449005388.463402744 30 atime=1451136876.901619216 30 ctime=1451136984.165759984 sbuild-0.67.0/lib/Sbuild/Makefile.am0000644000175000017500000000255412627410514017420 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk perlmodsbuilddir = $(perlmoddir)/Sbuild MODULES = \ Base.pm \ Build.pm \ Chroot.pm \ ChrootPlain.pm \ ChrootRoot.pm \ ChrootSchroot.pm \ ChrootSudo.pm \ ChrootSetup.pm \ ChrootInfo.pm \ ChrootInfoSchroot.pm \ ChrootInfoSudo.pm \ Exception.pm \ ResolverBase.pm \ AptitudeResolver.pm \ AptResolver.pm \ AspcudResolver.pm \ XaptResolver.pm \ Resolver.pm \ Conf.pm \ ConfBase.pm \ LogBase.pm \ Options.pm \ OptionsBase.pm \ Utility.pm perlmodsbuild_DATA = \ $(MODULES) \ Sysconfig.pm EXTRA_DIST = \ $(MODULES) sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Chroot.pm0000644000000000000000000000013212637466265016351 xustar0030 mtime=1451125941.796608102 30 atime=1451125941.800608114 30 ctime=1451136984.169759989 sbuild-0.67.0/lib/Sbuild/Chroot.pm0000644000175000017500000002543612637466265017203 0ustar00joschjosch00000000000000# # Chroot.pm: chroot library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2008 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::Chroot; use Sbuild qw(copy debug debug2); use Sbuild::Base; use Sbuild::ChrootInfo; use Sbuild::ChrootSetup qw(basesetup); use strict; use warnings; use POSIX; use FileHandle; use File::Temp (); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $chroot_id = shift; my $self = $class->SUPER::new($conf); bless($self, $class); my @filter; @filter = @{$self->get_conf('ENVIRONMENT_FILTER')} if (defined($self->get_conf('ENVIRONMENT_FILTER'))); $self->set('Session ID', ""); $self->set('Chroot ID', $chroot_id); $self->set('Defaults', { 'COMMAND' => [], 'INTCOMMAND' => [], # Private 'EXPCOMMAND' => [], # Private 'ENV' => {}, 'ENV_FILTER' => \@filter, 'USER' => 'root', 'CHROOT' => 1, 'PRIORITY' => 0, 'DIR' => '/', 'SETSID' => 0, 'STREAMIN' => undef, 'STREAMOUT' => undef, 'STREAMERR' => undef}); if (!defined($self->get('Chroot ID'))) { return undef; } return $self; } sub _setup_options { my $self = shift; if ($self->get('Location') ne '/') { if (basesetup($self, $self->get('Config'))) { print STDERR "Failed to set up chroot\n"; return 0; } } return 1; } sub get_option { my $self = shift; my $options = shift; my $option = shift; my $value = undef; $value = $self->get('Defaults')->{$option} if (defined($self->get('Defaults')) && defined($self->get('Defaults')->{$option})); $value = $options->{$option} if (defined($options) && exists($options->{$option})); return $value; } sub strip_chroot_path { my $self = shift; my $path = shift; my $location = $self->get('Location'); $path =~ s/^\Q$location\E//; return $path; } sub log_command { my $self = shift; my $options = shift; my $priority = $options->{'PRIORITY'}; if ((defined($priority) && $priority >= 1) || $self->get_conf('DEBUG')) { my $command; if ($self->get_conf('DEBUG')) { $command = $options->{'EXPCOMMAND'}; } else { $command = $options->{'COMMAND'}; } $self->log_info(join(" ", @$command), "\n"); } } # Note, do not run with $user="root", and $chroot=0, because root # access to the host system is not allowed by schroot, nor required # via sudo. sub pipe_command_internal { my $self = shift; my $options = shift; my $pipetype = "-|"; $pipetype = "|-" if (defined $options->{'PIPE'} && $options->{'PIPE'} eq 'out'); my $pipe = undef; my $pid = open($pipe, $pipetype); if (!defined $pid) { warn "Cannot open pipe: $!\n"; } elsif ($pid == 0) { # child if (!defined $options->{'PIPE'} || $options->{'PIPE'} ne 'out') { # redirect stdin my $in = $self->get_option($options, 'STREAMIN'); if (defined($in) && $in && \*STDIN != $in) { open(STDIN, '<&', $in) or warn "Can't redirect stdin\n"; } } else { # redirect stdout my $out = $self->get_option($options, 'STREAMOUT'); if (defined($out) && $out && \*STDOUT != $out) { open(STDOUT, '>&', $out) or warn "Can't redirect stdout\n"; } } # redirect stderr my $err = $self->get_option($options, 'STREAMERR'); if (defined($err) && $err && \*STDERR != $err) { open(STDERR, '>&', $err) or warn "Can't redirect stderr\n"; } my $setsid = $self->get_option($options, 'SETSID'); setsid() if defined($setsid) && $setsid; $self->exec_command($options); } debug2("Pipe (PID $pid, $pipe) created for: ", join(" ", @{$options->{'COMMAND'}}), "\n"); $options->{'PID'} = $pid; return $pipe; } # Note, do not run with $user="root", and $chroot=0, because root # access to the host system is not allowed by schroot, nor required # via sudo. sub run_command_internal { my $self = shift; my $options = shift; my $pid = fork(); if (!defined $pid) { warn "Cannot fork: $!\n"; } elsif ($pid == 0) { # child # redirect stdout my $in = $self->get_option($options, 'STREAMIN'); if (defined($in) && $in && \*STDIN != $in) { open(STDIN, '<&', $in) or warn "Can't redirect stdin\n"; } # redirect stdout my $out = $self->get_option($options, 'STREAMOUT'); if (defined($out) && $out && \*STDOUT != $out) { open(STDOUT, '>&', $out) or warn "Can't redirect stdout\n"; } # redirect stderr my $err = $self->get_option($options, 'STREAMERR'); if (defined($err) && $err && \*STDERR != $err) { open(STDERR, '>&', $err) or warn "Can't redirect stderr\n"; } my $setsid = $self->get_option($options, 'SETSID'); setsid() if defined($setsid) && $setsid; $self->exec_command($options); } debug2("Pipe (PID $pid) created for: ", join(" ", @{$options->{'COMMAND'}}), "\n"); waitpid($pid, 0); } # Note, do not run with $user="root", and $chroot=0, because root # access to the host system is not allowed by schroot, nor required # via sudo. sub run_command { my $self = shift; my $options = shift; $options->{'INTCOMMAND'} = copy($options->{'COMMAND'}); $options->{'INTCOMMAND_STR'} = copy($options->{'COMMAND_STR'}); return $self->run_command_internal($options); } # Note, do not run with $user="root", and $chroot=0, because root # access to the host system is not allowed by schroot, nor required # via sudo. sub pipe_command { my $self = shift; my $options = shift; $options->{'INTCOMMAND'} = copy($options->{'COMMAND'}); $options->{'INTCOMMAND_STR'} = copy($options->{'COMMAND_STR'}); return $self->pipe_command_internal($options); } sub exec_command { my $self = shift; my $options = shift; $self->get_command_internal($options); $self->log_command($options); my $command = $options->{'EXPCOMMAND'}; my $program = $command->[0]; $program = $options->{'PROGRAM'} if defined($options->{'PROGRAM'}); my @filter; my $chrootfilter = $self->get('Defaults')->{'ENV_FILTER'}; push(@filter, @{$chrootfilter}); my $commandfilter = $options->{'ENV_FILTER'}; push(@filter, @{$commandfilter}) if defined($commandfilter); # Sanitise environment foreach my $var (keys %ENV) { my $match = 0; foreach my $regex (@filter) { $match = 1 if $var =~ m/($regex)/; } delete $ENV{$var} if $match == 0; if (!$match) { debug2("Environment filter: Deleted $var\n"); } else { debug2("Environment filter: Kept $var\n"); } } my $chrootenv = $self->get('Defaults')->{'ENV'}; foreach (keys %$chrootenv) { $ENV{$_} = $chrootenv->{$_}; } my $commandenv = $options->{'ENV'}; foreach (keys %$commandenv) { $ENV{$_} = $commandenv->{$_}; } debug2("PROGRAM: $program\n"); debug2("COMMAND: ", join(" ", @{$options->{'COMMAND'}}), "\n"); debug2("COMMAND_STR: ", $options->{'COMMAND'} // 'UNDEFINED', "\n"); debug2("INTCOMMAND: ", join(" ", @{$options->{'INTCOMMAND'}}), "\n"); debug2("INTCOMMAND_STR: ", $options->{'INTCOMMAND_STR:'} // 'UNDEFINED', "\n"); debug2("EXPCOMMAND: ", join(" ", @{$options->{'EXPCOMMAND'}}), "\n"); debug2("Environment set:\n"); foreach (sort keys %ENV) { debug2(' ' . $_ . '=' . ($ENV{$_} || '') . "\n"); } debug("Running command: ", join(" ", @$command), "\n"); exec { $program } @$command; die "Failed to exec: $command->[0]: $!"; } sub lock_chroot { my $self = shift; my $new_job = shift; my $new_pid = shift; my $new_user = shift; my $lockfile = '/var/lock/sbuild'; my $max_trys = $self->get_conf('MAX_LOCK_TRYS'); my $lock_interval = $self->get_conf('LOCK_INTERVAL'); # The following command in run /inside/ the chroot to create the lockfile. my $command = <<"EOF"; use strict; use warnings; use POSIX; use FileHandle; my \$lockfile="$lockfile"; my \$try = 0; repeat: if (!sysopen( F, \$lockfile, O_WRONLY|O_CREAT|O_TRUNC|O_EXCL, 0644 )){ if (\$! == EEXIST) { # lock file exists, wait goto repeat if !open( F, "<\$lockfile" ); my \$line = ; my (\$job, \$pid, \$user); close( F ); if (\$line !~ /^(\\S+)\\s+(\\S+)\\s+(\\S+)/) { print STDERR "Bad lock file contents (\$lockfile) -- still trying\\n"; } else { (\$job, \$pid, \$user) = (\$1, \$2, \$3); if (kill( 0, \$pid ) == 0 && \$! == ESRCH) { # process no longer exists, remove stale lock print STDERR "Removing stale lock file \$lockfile ". "(job \$job, pid \$pid, user \$user)\\n"; if (!unlink(\$lockfile)) { if (\$! != ENOENT) { print STDERR "Cannot remove chroot lock file \$lockfile: \$!\\n"; exit 1; } } } } ++\$try; if (\$try > $max_trys) { print STDERR "Lockfile \$lockfile still present after " . $max_trys * $lock_interval . " seconds -- giving up\\n"; exit 1; } print STDERR "Another sbuild process (job \$job, pid \$pid by user \$user) is currently using the build chroot; waiting...\\n" if \$try == 1; sleep $lock_interval; goto repeat; } else { print STDERR "Failed to create lock file \$lockfile: \$!\\n"; exit 1; } } F->print("$new_job $new_pid $new_user\\n"); F->close(); exit 0; EOF $self->run_command( { COMMAND => ['perl', '-e', $command], USER => 'root', PRIORITY => 0, DIR => '/' }); if ($?) { return 0; } return 1; } sub unlock_chroot { my $self = shift; my $lockfile = '/var/lock/sbuild'; # The following command in run /inside/ the chroot to remove the lockfile. my $command = <<"EOF"; use strict; use warnings; use POSIX; my \$lockfile="$lockfile"; if (!unlink(\$lockfile)) { print STDERR "Cannot remove chroot lock file \$lockfile: \$!\\n" if \$! != ENOENT; exit 1; } exit 0; EOF debug("Removing chroot lock file $lockfile\n"); $self->run_command( { COMMAND => ['perl', '-e', $command], USER => 'root', PRIORITY => 0, DIR => '/' }); if ($?) { return 0; } return 1; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ChrootInfo.pm0000644000000000000000000000013212637466265017165 xustar0030 mtime=1451125941.820608177 30 atime=1451125941.824608189 30 ctime=1451136984.173759994 sbuild-0.67.0/lib/Sbuild/ChrootInfo.pm0000644000175000017500000000740612637466265020014 0ustar00joschjosch00000000000000# # ChrootInfo.pm: chroot utility library for sbuild # Copyright © 2005-2008 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::ChrootInfo; use strict; use warnings; use Sbuild::Base; use POSIX; use FileHandle; use File::Temp (); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('Chroots', {}); $self->get_info_all(); return $self; } sub create { my $self = shift; my $namespace = shift; my $distribution = shift; my $chroot = shift; my $arch = shift; # this is the build arch my $chrootid = $self->find($namespace, $distribution, $chroot, $arch); if (!defined $chrootid) { return undef; } my $newchroot = $self->_create($chrootid); if (defined($newchroot)) { $newchroot->set('Chroots', $self); } return $newchroot; } sub find { my $self = shift; my $namespace = shift; my $distribution = shift; my $chroot = shift; my $arch = shift; # this is the build arch # Use namespace given from $distribution if one is found if ($distribution =~ /^([^:]+):/msx) { $namespace = $1; $distribution =~ s/^[^:]+://msx; } my $chroots = $self->get('Chroots'); # Don't do strict arch checking if ARCH == HOST_ARCH. if (!defined($arch) || $arch eq "") { $arch = $self->get_conf('BUILD_ARCH'); } my $host_arch = $self->get_conf('HOST_ARCH'); if (!defined $chroot) { my $ns = $chroots->{$namespace}; if (!defined($ns)) { if ($namespace ne 'chroot') { $chroot = $self->find('chroot', $distribution, $chroot, $arch); } else { $self->log_error("Chroot namespace $namespace not found\n"); return undef; } } if ($arch ne $host_arch && defined($ns->{"${distribution}-${arch}-${host_arch}-sbuild"})) { $chroot = "${namespace}:${distribution}-${arch}-${host_arch}-sbuild"; } elsif ($arch ne $host_arch && defined($ns->{"${distribution}-${arch}-${host_arch}"})) { $chroot = "${namespace}:${distribution}-${arch}-${host_arch}"; } elsif ($arch ne "" && defined($ns->{"${distribution}-${arch}-sbuild"})) { $chroot = "${namespace}:${distribution}-${arch}-sbuild"; } elsif (defined($ns->{"${distribution}-sbuild"})) { $chroot = "${namespace}:${distribution}-sbuild"; } elsif ($arch ne "" && defined($ns->{"${distribution}-${arch}"})) { $chroot = "${namespace}:${distribution}-${arch}"; } elsif (defined($ns->{$distribution})) { $chroot = "${namespace}:${distribution}"; } } if (!$chroot) { # Fall back to chroot namespace. if ($namespace ne 'chroot') { $chroot = $self->find('chroot', $distribution, $chroot, $arch); } else { $self->log_error("Chroot for distribution $distribution, architecture $arch not found\n"); return undef; } } return $chroot; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Exception.pm0000644000000000000000000000013212605405362017033 xustar0030 mtime=1444285170.652049671 30 atime=1451044743.162752739 30 ctime=1451136984.177759999 sbuild-0.67.0/lib/Sbuild/Exception.pm0000644000175000017500000000203312605405362017651 0ustar00joschjosch00000000000000# # Exception.pm: exceptions for sbuild # Copyright © 2011 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::Exception; use strict; use warnings; use Exception::Class ( 'Sbuild::Exception::Base', 'Sbuild::Exception::Build' => { isa => 'Sbuild::Exception::Base', fields => [ 'info', 'status', 'failstage' ] } ); 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ChrootInfoSchroot.pm0000644000000000000000000000013112637266600020515 xustar0030 mtime=1451060608.614723316 29 atime=1451060625.31875086 30 ctime=1451136984.173759994 sbuild-0.67.0/lib/Sbuild/ChrootInfoSchroot.pm0000644000175000017500000001046112637266600021340 0ustar00joschjosch00000000000000# # ChrootInfo.pm: chroot utility library for sbuild # Copyright © 2005-2009 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::ChrootInfoSchroot; use Sbuild::ChrootInfo; use Sbuild::ChrootSchroot; use strict; use warnings; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::ChrootInfo); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf); bless($self, $class); return $self; } sub get_info_from_stream { my $self = shift; my $stream = shift; my $chroot_type = ''; my %tmp = ('Namespace' => '', 'Name' => '', 'Priority' => 0, 'Location' => '', 'Session Purged' => 0); while (<$stream>) { chomp; last if ! $_; if (/^\s*(───|---) Chroot \1$/ && $tmp{'Namespace'} eq "") { $tmp{'Namespace'} = 'chroot'; } if (/^\s*(───|---) Session \1$/ && $tmp{'Namespace'} eq "") { $tmp{'Namespace'} = 'session'; } if (/^\s*(───|---) Source \1$/ && $tmp{'Namespace'} eq "") { $tmp{'Namespace'} = 'source'; } if (/^\s*Name:?\s+(.*)$/ && $tmp{'Name'} eq "") { $tmp{'Name'} = $1; } if (/^\s*Type:?\s+(.*)$/) { $chroot_type = $1; } if (/^\s*Location:?\s+(.*)$/ && $tmp{'Location'} eq "") { $tmp{'Location'} = $1; } if (/^\s*Mount Location:?\s+(.*)$/ && $tmp{'Location'} eq "") { $tmp{'Location'} = $1; } # Path takes priority over Location and Mount Location. if (/^\s*Path:?\s+(.*)$/) { $tmp{'Location'} = $1; } if (/^\s*Priority:?\s+(\d+)$/) { $tmp{'Priority'} = $1; } if (/^\s*Session Purged\s+(.*)$/) { if ($1 eq "true") { $tmp{'Session Purged'} = 1; } } if (/^\s*Aliases:?\s+(.*)$/) { $tmp{'Aliases'} = $1; } } if ($self->get_conf('DEBUG') && $tmp{'Name'}) { print STDERR "Found schroot chroot: $tmp{'Namespace'}:$tmp{'Name'}\n"; foreach (sort keys %tmp) { print STDERR " $_ $tmp{$_}\n"; } } if (!$tmp{'Name'}) { return undef; } return \%tmp; } sub get_info { my $self = shift; my $chroot = shift; my $chroot_type = ""; # If namespaces aren't supported, try to fall back to old style session. open CHROOT_DATA, '-|', $self->get_conf('SCHROOT'), '--info', '--chroot', "session:$chroot" or open CHROOT_DATA, '-|', $self->get_conf('SCHROOT'), '--info', '--chroot', $chroot or die 'Can\'t run ' . $self->get_conf('SCHROOT') . ' to get chroot data'; my $tmp = $self->get_info_from_stream(\*CHROOT_DATA); close CHROOT_DATA or die "Can't close schroot pipe getting chroot data"; return $tmp; } sub get_info_all { my $self = shift; my $chroots = {}; my $build_dir = $self->get_conf('BUILD_DIR'); local %ENV; $ENV{'LC_ALL'} = 'C'; $ENV{'LANGUAGE'} = 'C'; open CHROOTS, '-|', $self->get_conf('SCHROOT'), '--info' or die 'Can\'t run ' . $self->get_conf('SCHROOT'); my $tmp = undef; while (defined($tmp = $self->get_info_from_stream(\*CHROOTS))) { my $namespace = $tmp->{'Namespace'}; $namespace = "chroot" if !$tmp->{'Namespace'}; $chroots->{$namespace} = {} if (!exists($chroots->{$namespace})); $chroots->{$namespace}->{$tmp->{'Name'}} = $tmp; foreach my $alias (split(/\s+/, $tmp->{'Aliases'})) { $chroots->{$namespace}->{$alias} = $tmp; } } close CHROOTS or die "Can't close schroot pipe"; $self->set('Chroots', $chroots); } sub _create { my $self = shift; my $chroot_id = shift; my $chroot = undef; if (defined($chroot_id)) { $chroot = Sbuild::ChrootSchroot->new($self->get('Config'), $chroot_id); } return $chroot; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/XaptResolver.pm0000644000000000000000000000013212627410514017532 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.181760005 sbuild-0.67.0/lib/Sbuild/XaptResolver.pm0000644000175000017500000000546012627410514020357 0ustar00joschjosch00000000000000# ResolverBase.pm: build library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2008 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::XaptResolver; use strict; use warnings; use Sbuild qw(debug); use Sbuild::Base; use Sbuild::ResolverBase; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::ResolverBase); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $session = shift; my $host = shift; my $self = $class->SUPER::new($conf, $session, $host); bless($self, $class); return $self; } sub install_deps { my $self = shift; my $name = shift; my $cross = shift; my @pkgs = @_; my $status = 0; my $session = $self->get('Session'); # my $dummy_pkg_name = 'sbuild-build-depends-' . $name. '-dummy'; # Call functions to setup an archive to install dummy package. # return 0 unless ($self->setup_apt_archive($dummy_pkg_name, @pkgs)); # return 0 unless (!$self->update_archive()); $self->log_subsection("Install $name cross-build dependencies (xapt-based resolver)"); # Install the dummy package my (@instd, @rmvd); $self->log("Installing cross-build dependencies\n"); if (!$self->run_xapt("-a", $self->get_conf('HOST_ARCH'), @pkgs)) { $self->log("Package installation failed\n"); if (defined ($self->get('Session')->get('Session Purged')) && $self->get('Session')->get('Session Purged') == 1) { $self->log("Not removing build depends: cloned chroot in use\n"); } else { $self->set_installed(@instd); $self->set_removed(@rmvd); goto package_cleanup; } return 0; } $self->set_installed(@instd); $self->set_removed(@rmvd); $status = 1; package_cleanup: if ($status == 0) { if (defined ($session->get('Session Purged')) && $session->get('Session Purged') == 1) { $self->log("Not removing installed packages: cloned chroot in use\n"); } else { $self->uninstall_deps(); } } $self->cleanup_apt_archive(); return $status; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Conf.pm0000644000000000000000000000013212637466265016000 xustar0030 mtime=1451125941.764608002 30 atime=1451125941.768608015 30 ctime=1451136984.181760005 sbuild-0.67.0/lib/Sbuild/Conf.pm0000644000175000017500000011525212637466265016626 0ustar00joschjosch00000000000000# # Conf.pm: configuration library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2006-2010 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::Conf; use strict; use warnings; use Cwd qw(cwd); use File::Spec; use POSIX qw(getgroups getgid); use Sbuild qw(isin); use Sbuild::ConfBase; use Sbuild::Sysconfig; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(new setup read); } sub setup ($); sub read ($); sub new { my $conf = Sbuild::ConfBase->new(@_); Sbuild::Conf::setup($conf); Sbuild::Conf::read($conf); return $conf; } sub setup ($) { my $conf = shift; my $validate_program = sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $program = $conf->get($key); die "$key binary is not defined" if !defined($program) || !$program; # Emulate execvp behaviour by searching the binary in the PATH. my @paths = split(/:/, $conf->get('PATH')); # Also consider the empty path for absolute locations. push (@paths, ''); my $found = 0; foreach my $path (@paths) { $found = 1 if (-x File::Spec->catfile($path, $program)); } die "$key binary '$program' does not exist or is not executable" if !$found; }; my $validate_directory = sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $directory = $conf->get($key); die "$key directory is not defined" if !defined($directory) || !$directory; die "$key directory '$directory' does not exist" if !-d $directory; }; my $validate_append_version = sub { my $conf = shift; my $entry = shift; if (defined($conf->get('APPEND_TO_VERSION')) && $conf->get('APPEND_TO_VERSION') && $conf->get('BUILD_SOURCE') != 0) { # See for details die "The --append-to-version option is incompatible with a source upload\n"; } if ($conf->get('BUILD_SOURCE') && $conf->get('BIN_NMU')) { print STDERR "Not building source package for binNMU\n"; $conf->_set_value('BUILD_SOURCE', 0); } }; my $set_signing_option = sub { my $conf = shift; my $entry = shift; my $value = shift; my $key = $entry->{'NAME'}; $conf->_set_value($key, $value); my @signing_options = (); push @signing_options, "-m".$conf->get('MAINTAINER_NAME') if defined $conf->get('MAINTAINER_NAME'); push @signing_options, "-e".$conf->get('UPLOADER_NAME') if defined $conf->get('UPLOADER_NAME'); $conf->set('SIGNING_OPTIONS', \@signing_options); }; our $HOME = $conf->get('HOME'); my %sbuild_keys = ( 'CHROOT' => { TYPE => 'STRING', VARNAME => 'chroot', GROUP => 'Chroot options', DEFAULT => undef, HELP => 'Default chroot (defaults to distribution[-arch][-sbuild])' }, 'BUILD_ARCH_ALL' => { TYPE => 'BOOL', VARNAME => 'build_arch_all', GROUP => 'Build options', DEFAULT => 0, HELP => 'Build architecture: all packages by default' }, 'BUILD_ARCH_ANY' => { TYPE => 'BOOL', VARNAME => 'build_arch_any', GROUP => 'Build options', DEFAULT => 1, HELP => 'Build architecture: any packages by default' }, 'NOLOG' => { TYPE => 'BOOL', GROUP => '__INTERNAL', DEFAULT => 0, HELP => 'Disable use of log file' }, 'SUDO' => { TYPE => 'STRING', VARNAME => 'sudo', GROUP => 'Programs', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; # Only validate if needed. if ($conf->get('CHROOT_MODE') eq 'split' || ($conf->get('CHROOT_MODE') eq 'schroot' && $conf->get('CHROOT_SPLIT'))) { $validate_program->($conf, $entry); local (%ENV) = %ENV; # make local environment $ENV{'DEBIAN_FRONTEND'} = "noninteractive"; $ENV{'APT_CONFIG'} = "test_apt_config"; $ENV{'SHELL'} = '/bin/sh'; my $sudo = $conf->get('SUDO'); chomp( my $test_df = `$sudo sh -c 'echo \$DEBIAN_FRONTEND'` ); chomp( my $test_ac = `$sudo sh -c 'echo \$APT_CONFIG'` ); chomp( my $test_sh = `$sudo sh -c 'echo \$SHELL'` ); if ($test_df ne "noninteractive" || $test_ac ne "test_apt_config" || $test_sh ne '/bin/sh') { print STDERR "$sudo is stripping APT_CONFIG, DEBIAN_FRONTEND and/or SHELL from the environment\n"; print STDERR "'Defaults:" . $conf->get('USERNAME') . " env_keep+=\"APT_CONFIG DEBIAN_FRONTEND SHELL\"' is not set in /etc/sudoers\n"; die "$sudo is incorrectly configured" } } }, DEFAULT => 'sudo', HELP => 'Path to sudo binary' }, 'SU' => { TYPE => 'STRING', VARNAME => 'su', GROUP => 'Programs', CHECK => $validate_program, DEFAULT => 'su', HELP => 'Path to su binary' }, 'SCHROOT' => { TYPE => 'STRING', GROUP => '__INTERNAL', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; # Only validate if needed. if ($conf->get('CHROOT_MODE') eq 'schroot') { $validate_program->($conf, $entry); } }, DEFAULT => 'schroot', HELP => 'Path to schroot binary' }, 'SCHROOT_OPTIONS' => { TYPE => 'ARRAY:STRING', VARNAME => 'schroot_options', GROUP => 'Programs', DEFAULT => ['-q'], HELP => 'Additional command-line options for schroot' }, 'FAKEROOT' => { TYPE => 'STRING', VARNAME => 'fakeroot', GROUP => 'Programs', DEFAULT => 'fakeroot', HELP => 'Path to fakeroot binary' }, 'APT_GET' => { TYPE => 'STRING', VARNAME => 'apt_get', GROUP => 'Programs', CHECK => $validate_program, DEFAULT => 'apt-get', HELP => 'Path to apt-get binary' }, 'APT_CACHE' => { TYPE => 'STRING', VARNAME => 'apt_cache', GROUP => 'Programs', CHECK => $validate_program, DEFAULT => 'apt-cache', HELP => 'Path to apt-cache binary' }, 'APTITUDE' => { TYPE => 'STRING', VARNAME => 'aptitude', GROUP => 'Programs', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; # Only validate if needed. if ($conf->get('BUILD_DEP_RESOLVER') eq 'aptitude') { $validate_program->($conf, $entry); } }, DEFAULT => 'aptitude', HELP => 'Path to aptitude binary' }, 'XAPT' => { TYPE => 'STRING', VARNAME => 'xapt', GROUP => 'Programs', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; # Only validate if needed. if ($conf->get('BUILD_DEP_RESOLVER') eq 'xapt') { $validate_program->($conf, $entry); } }, DEFAULT => 'xapt' }, 'DPKG_BUILDPACKAGE_USER_OPTIONS' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional command-line options for dpkg-buildpackage. Not settable in config.' }, 'DPKG_SOURCE' => { TYPE => 'STRING', VARNAME => 'dpkg_source', GROUP => 'Programs', CHECK => $validate_program, DEFAULT => 'dpkg-source', HELP => 'Path to dpkg-source binary' }, 'DPKG_SOURCE_OPTIONS' => { TYPE => 'ARRAY:STRING', VARNAME => 'dpkg_source_opts', GROUP => 'Programs', DEFAULT => [], HELP => 'Additional command-line options for dpkg-source' }, 'DCMD' => { TYPE => 'STRING', VARNAME => 'dcmd', GROUP => 'Programs', CHECK => $validate_program, DEFAULT => 'dcmd', HELP => 'Path to dcmd binary' }, 'MD5SUM' => { TYPE => 'STRING', VARNAME => 'md5sum', GROUP => 'Programs', CHECK => $validate_program, DEFAULT => 'md5sum', HELP => 'Path to md5sum binary' }, 'STATS_DIR' => { TYPE => 'STRING', VARNAME => 'stats_dir', GROUP => 'Statistics', DEFAULT => "$HOME/stats", HELP => 'Directory for writing build statistics to' }, 'PACKAGE_CHECKLIST' => { TYPE => 'STRING', VARNAME => 'package_checklist', GROUP => 'Chroot options', DEFAULT => "$Sbuild::Sysconfig::paths{'SBUILD_LOCALSTATE_DIR'}/package-checklist", HELP => 'Where to store list currently installed packages inside chroot' }, 'BUILD_ENV_CMND' => { TYPE => 'STRING', VARNAME => 'build_env_cmnd', GROUP => 'Build options', DEFAULT => "", HELP => 'This command is run with the dpkg-buildpackage command line passed to it (in the chroot, if doing a chrooted build). It is used by the sparc buildd (which is sparc64) to call the wrapper script that sets the environment to sparc (32-bit). It could be used for other build environment setup scripts. Note that this is superceded by schroot\'s \'command-prefix\' option' }, 'PGP_OPTIONS' => { TYPE => 'ARRAY:STRING', VARNAME => 'pgp_options', GROUP => 'Build options', DEFAULT => ['-us', '-uc'], HELP => 'Additional signing options for dpkg-buildpackage' }, 'LOG_DIR' => { TYPE => 'STRING', VARNAME => 'log_dir', GROUP => 'Logging options', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; my $directory = $conf->get($key); }, GET => sub { my $conf = shift; my $entry = shift; my $retval = $conf->_get($entry->{'NAME'}); # user mode defaults to the build directory, while buildd mode # defaults to $HOME/logs. if (!defined($retval)) { $retval = $conf->get('BUILD_DIR'); if ($conf->get('SBUILD_MODE') eq 'buildd') { $retval = "$HOME/logs"; } } return $retval; }, HELP => 'Directory for storing build logs. This defaults to \'.\' when SBUILD_MODE is set to \'user\' (the default), and to \'$HOME/logs\' when SBUILD_MODE is set to \'buildd\'.' }, 'LOG_COLOUR' => { TYPE => 'BOOL', VARNAME => 'log_colour', GROUP => 'Logging options', DEFAULT => 1, HELP => 'Add colour highlighting to interactive log messages (informational, warning and error messages). Log files will not be coloured.' }, 'LOG_FILTER' => { TYPE => 'BOOL', VARNAME => 'log_filter', GROUP => 'Logging options', DEFAULT => 1, HELP => 'Filter variable strings from log messages such as the chroot name and build directory' }, 'LOG_COLOUR' => { TYPE => 'BOOL', VARNAME => 'log_colour', GROUP => 'Logging options', DEFAULT => 1, HELP => 'Colour log messages such as critical failures, warnings and success' }, 'LOG_DIR_AVAILABLE' => { TYPE => 'BOOL', GROUP => '__INTERNAL', GET => sub { my $conf = shift; my $entry = shift; my $nolog = $conf->get('NOLOG'); my $directory = $conf->get('LOG_DIR'); my $log_dir_available = 1; if ($nolog) { $log_dir_available = 0; } elsif ($conf->get('SBUILD_MODE') ne "buildd") { if ($directory && ! -d $directory) { $log_dir_available = 0; } } elsif ($directory && ! -d $directory && !mkdir $directory) { # Only create the log dir in buildd mode warn "Could not create '$directory': $!\n"; $log_dir_available = 0; } return $log_dir_available; } }, 'MAILTO' => { TYPE => 'STRING', VARNAME => 'mailto', GROUP => 'Logging options', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; }, GET => sub { my $conf = shift; my $entry = shift; my $retval = $conf->_get($entry->{'NAME'}); # Now, we might need to adjust the MAILTO based on the # config data. We shouldn't do this if it was already # explicitly set by the command line option: if (defined($conf->get('MAILTO_FORCED_BY_CLI')) && !$conf->get('MAILTO_FORCED_BY_CLI') && defined($conf->get('DISTRIBUTION')) && $conf->get('DISTRIBUTION') && defined($conf->get('MAILTO_HASH')) && $conf->get('MAILTO_HASH')->{$conf->get('DISTRIBUTION')}) { $retval = $conf->get('MAILTO_HASH')->{$conf->get('DISTRIBUTION')}; } return $retval; }, DEFAULT => "", HELP => 'email address to mail build logs to' }, 'MAILTO_FORCED_BY_CLI' => { TYPE => 'BOOL', GROUP => '__INTERNAL', DEFAULT => 0 }, 'MAILTO_HASH' => { TYPE => 'HASH:STRING', VARNAME => 'mailto_hash', GROUP => 'Logging options', DEFAULT => {}, HELP => 'Like MAILTO, but per-distribution. This is a hashref mapping distribution name to MAILTO. Note that for backward compatibility, this is also settable using the hash %mailto (deprecated), rather than a hash reference.' }, 'MAILFROM' => { TYPE => 'STRING', VARNAME => 'mailfrom', GROUP => 'Logging options', DEFAULT => "Source Builder ", HELP => 'email address set in the From line of build logs' }, 'COMPRESS_BUILD_LOG_MAILS' => { TYPE => 'BOOL', VARNAME => 'compress_build_log_mails', GROUP => 'Logging options', DEFAULT => 1, HELP => 'Should build log mails be compressed?' }, 'MIME_BUILD_LOG_MAILS' => { TYPE => 'BOOL', VARNAME => 'mime_build_log_mails', GROUP => 'Logging options', DEFAULT => 1, HELP => 'Should build log mails be MIME encoded?' }, 'PURGE_BUILD_DEPS' => { TYPE => 'STRING', VARNAME => 'purge_build_deps', GROUP => 'Chroot options', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; die "Bad purge mode \'" . $conf->get('PURGE_BUILD_DEPS') . "\'" if !isin($conf->get('PURGE_BUILD_DEPS'), qw(always successful never)); }, DEFAULT => 'always', HELP => 'When to purge the build dependencies after a build; possible values are "never", "successful", and "always"' }, 'PURGE_BUILD_DIRECTORY' => { TYPE => 'STRING', VARNAME => 'purge_build_directory', GROUP => 'Chroot options', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; die "Bad purge mode \'" . $conf->get('PURGE_BUILD_DIRECTORY') . "\'" if !isin($conf->get('PURGE_BUILD_DIRECTORY'), qw(always successful never)); }, DEFAULT => 'always', HELP => 'When to purge the build directory after a build; possible values are "never", "successful", and "always"' }, 'PURGE_SESSION' => { TYPE => 'STRING', VARNAME => 'purge_session', GROUP => 'Chroot options', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; die "Bad purge mode \'" . $conf->get('PURGE_SESSION') . "\'" if !isin($conf->get('PURGE_SESSION'), qw(always successful never)); }, DEFAULT => 'always', HELP => 'Purge the schroot session following a build. This is useful in conjunction with the --purge and --purge-deps options when using snapshot chroots, since by default the snapshot will be deleted. Possible values are "always" (default), "never", and "successful"' }, 'TOOLCHAIN_REGEX' => { TYPE => 'ARRAY:STRING', VARNAME => 'toolchain_regex', GROUP => 'Build options', DEFAULT => ['binutils$', 'dpkg-dev$', 'gcc-[\d.]+$', 'g\+\+-[\d.]+$', 'libstdc\+\+', 'libc[\d.]+-dev$', 'linux-kernel-headers$', 'linux-libc-dev$', 'gnumach-dev$', 'hurd-dev$', 'kfreebsd-kernel-headers$' ], HELP => 'Regular expressions identifying toolchain packages. Note that for backward compatibility, this is also settable using the array @toolchain_regex (deprecated), rather than an array reference.' }, 'STALLED_PKG_TIMEOUT' => { TYPE => 'NUMERIC', VARNAME => 'stalled_pkg_timeout', GROUP => 'Build timeouts', DEFAULT => 150, # minutes HELP => 'Time (in minutes) of inactivity after which a build is terminated. Activity is measured by output to the log file.' }, 'MAX_LOCK_TRYS' => { TYPE => 'NUMERIC', VARNAME => 'max_lock_trys', GROUP => 'Build timeouts', DEFAULT => 120, HELP => 'Number of times to try waiting for a lock.' }, 'LOCK_INTERVAL' => { TYPE => 'NUMERIC', VARNAME => 'lock_interval', GROUP => 'Build timeouts', DEFAULT => 5, HELP => 'Lock wait interval (seconds). Maximum wait time is (max_lock_trys x lock_interval).' }, 'CHROOT_MODE' => { TYPE => 'STRING', VARNAME => 'chroot_mode', GROUP => 'Chroot options', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; die "Bad chroot mode \'" . $conf->get('CHROOT_MODE') . "\'" if !isin($conf->get('CHROOT_MODE'), qw(schroot sudo)); }, DEFAULT => 'schroot', HELP => 'Mechanism to use for chroot virtualisation. Possible value are "schroot" (default) and "sudo".' }, 'CHROOT_SPLIT' => { TYPE => 'BOOL', VARNAME => 'chroot_split', GROUP => 'Chroot options', DEFAULT => 0, HELP => 'Run in split mode? In split mode, apt-get and dpkg are run on the host system, rather than inside the chroot.' }, 'CHECK_SPACE' => { TYPE => 'BOOL', VARNAME => 'check_space', GROUP => 'Build options', DEFAULT => 1, HELP => 'Check free disk space prior to starting a build. sbuild requires the free space to be at least twice the size of the unpacked sources to allow a build to proceed. Can be disabled to allow building if space is very limited, but the threshold to abort a build has been exceeded despite there being sufficient space for the build to complete.' }, 'BUILD_DIR' => { TYPE => 'STRING', VARNAME => 'build_dir', GROUP => 'Core options', DEFAULT => cwd(), IGNORE_DEFAULT => 1, # Don't dump class to config EXAMPLE => '$build_dir = \'/home/pete/build\';', CHECK => $validate_directory, HELP => 'This option is deprecated. Directory for chroot symlinks and sbuild logs. Defaults to the current directory if unspecified. It is used as the location of chroot symlinks (obsolete) and for current build log symlinks and some build logs. There is no default; if unset, it defaults to the current working directory. $HOME/build is another common configuration.' }, 'BUILD_PATH' => { TYPE => 'STRING', VARNAME => 'build_path', GROUP => 'Build options', DEFAULT => undef, HELP => 'By default the package is built in a path of the following format /build/packagename-XXXXXX/packagename-version/ where XXXXXX is a random ascii string. This option allows one to specify a custom path where the package is built inside the chroot. Notice that the sbuild user in the chroot must have permissions to create the path. Common writable locations are subdirectories of /tmp or /build. The buildpath must be an empty directory because the last component of the path will be removed after the build is finished. If you are running multiple sbuild instances with the same build path in parallel for the same package, make sure that your build path is not in a directory commonly mounted by all sbuild instances (like /tmp or /home). In that case, use for example /build instead. Otherwise, your builds will probably fail or contain wrong content.' }, 'SBUILD_MODE' => { TYPE => 'STRING', VARNAME => 'sbuild_mode', GROUP => 'Core options', DEFAULT => 'user', HELP => 'sbuild behaviour; possible values are "user" (exit status reports build failures) and "buildd" (exit status does not report build failures) for use in a buildd setup. "buildd" also currently implies enabling of "legacy features" such as chroot symlinks in the build directory and the creation of current symlinks in the build directory.' }, 'CHROOT_SETUP_SCRIPT' => { TYPE => 'STRING', VARNAME => 'chroot_setup_script', GROUP => 'Chroot options', DEFAULT => undef, HELP => 'Script to run to perform custom setup tasks in the chroot.' }, 'FORCE_ORIG_SOURCE' => { TYPE => 'BOOL', VARNAME => 'force_orig_source', GROUP => 'Build options', DEFAULT => 0, HELP => 'By default, the -s option only includes the .orig.tar.gz when needed (i.e. when the Debian revision is 0 or 1). By setting this option to 1, the .orig.tar.gz will always be included when -s is used. This is equivalent to --force-orig-source.' }, 'INDIVIDUAL_STALLED_PKG_TIMEOUT' => { TYPE => 'HASH:NUMERIC', VARNAME => 'individual_stalled_pkg_timeout', GROUP => 'Build timeouts', DEFAULT => {}, HELP => 'Some packages may exceed the general timeout (e.g. redirecting output to a file) and need a different timeout. This has is a mapping between source package name and timeout. Note that for backward compatibility, this is also settable using the hash %individual_stalled_pkg_timeout (deprecated) , rather than a hash reference.', EXAMPLE => '%individual_stalled_pkg_timeout = (smalleiffel => 300, jade => 300, atlas => 300, glibc => 1000, \'gcc-3.3\' => 300, kwave => 600);' }, 'ENVIRONMENT_FILTER' => { TYPE => 'ARRAY:STRING', VARNAME => 'environment_filter', GROUP => 'Core options', DEFAULT => ['^PATH$', '^DEB(IAN|SIGN)?_[A-Z_]+$', '^(C(PP|XX)?|LD|F)FLAGS(_APPEND)?$', '^USER(NAME)?$', '^LOGNAME$', '^HOME$', '^TERM$', '^SHELL$'], HELP => 'Only environment variables matching one of the regular expressions in this arrayref will be passed to dpkg-buildpackage and other programs run by sbuild.' }, 'BUILD_ENVIRONMENT' => { TYPE => 'HASH:STRING', VARNAME => 'build_environment', GROUP => 'Core options', DEFAULT => {}, HELP => 'Environment to set during the build. Defaults to setting PATH and LD_LIBRARY_PATH only. Note that these environment variables are not subject to filtering with ENVIRONMENT_FILTER. Example:', EXAMPLE => '$build_environment = { \'CCACHE_DIR\' => \'/build/cache\' };' }, 'LD_LIBRARY_PATH' => { TYPE => 'STRING', VARNAME => 'ld_library_path', GROUP => 'Build environment', DEFAULT => undef, HELP => 'Library search path to use inside the chroot.' }, 'MAINTAINER_NAME' => { TYPE => 'STRING', VARNAME => 'maintainer_name', GROUP => 'Maintainer options', DEFAULT => undef, SET => $set_signing_option, HELP => 'Name to use as override in .changes files for the Maintainer field. The Maintainer field will not be overridden unless set here.' }, 'UPLOADER_NAME' => { VARNAME => 'uploader_name', TYPE => 'STRING', GROUP => 'Maintainer options', DEFAULT => undef, SET => $set_signing_option, HELP => 'Name to use as override in .changes file for the Changed-By: field.' }, 'KEY_ID' => { TYPE => 'STRING', VARNAME => 'key_id', GROUP => 'Maintainer options', DEFAULT => undef, HELP => 'Key ID to use in .changes for the current upload. It overrides both $maintainer_name and $uploader_name.' }, 'SIGNING_OPTIONS' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => "", HELP => 'PGP-related identity options to pass to dpkg-buildpackage. Usually neither .dsc nor .changes files are not signed automatically.' }, 'APT_CLEAN' => { TYPE => 'BOOL', VARNAME => 'apt_clean', GROUP => 'Chroot options', DEFAULT => 0, HELP => 'APT clean. 1 to enable running "apt-get clean" at the start of each build, or 0 to disable.' }, 'APT_UPDATE' => { TYPE => 'BOOL', VARNAME => 'apt_update', GROUP => 'Chroot options', DEFAULT => 1, HELP => 'APT update. 1 to enable running "apt-get update" at the start of each build, or 0 to disable.' }, 'APT_UPDATE_ARCHIVE_ONLY' => { TYPE => 'BOOL', VARNAME => 'apt_update_archive_only', GROUP => 'Chroot options', DEFAULT => 1, HELP => 'Update local temporary APT archive directly (1, the default) or set to 0 to disable and do a full apt update (not recommended in case the mirror content has changed since the build started).' }, 'APT_UPGRADE' => { TYPE => 'BOOL', VARNAME => 'apt_upgrade', GROUP => 'Chroot options', DEFAULT => 0, HELP => 'APT upgrade. 1 to enable running "apt-get upgrade" at the start of each build, or 0 to disable.' }, 'APT_DISTUPGRADE' => { TYPE => 'BOOL', VARNAME => 'apt_distupgrade', GROUP => 'Chroot options', DEFAULT => 1, HELP => 'APT distupgrade. 1 to enable running "apt-get dist-upgrade" at the start of each build, or 0 to disable.' }, 'APT_ALLOW_UNAUTHENTICATED' => { TYPE => 'BOOL', VARNAME => 'apt_allow_unauthenticated', GROUP => 'Chroot options', DEFAULT => 0, HELP => 'Force APT to accept unauthenticated packages. By default, unauthenticated packages are not allowed. This is to keep the build environment secure, using apt-secure(8). By setting this to 1, APT::Get::AllowUnauthenticated is set to "true" when running apt-get. This is disabled by default: only enable it if you know what you are doing.' }, 'BATCH_MODE' => { TYPE => 'BOOL', GROUP => '__INTERNAL', DEFAULT => 0, HELP => 'Enable batch mode?' }, 'CORE_DEPENDS' => { TYPE => 'ARRAY:STRING', VARNAME => 'core_depends', GROUP => 'Core options', DEFAULT => ['build-essential:native', 'fakeroot:native'], HELP => 'Packages which must be installed in the chroot for all builds.' }, 'MANUAL_DEPENDS' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build dependencies. Do not set by hand.' }, 'MANUAL_CONFLICTS' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build dependencies. Do not set by hand.' }, 'MANUAL_DEPENDS_ARCH' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build dependencies. Do not set by hand.' }, 'MANUAL_CONFLICTS_ARCH' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build dependencies. Do not set by hand.' }, 'MANUAL_DEPENDS_INDEP' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build dependencies. Do not set by hand.' }, 'MANUAL_CONFLICTS_INDEP' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build dependencies. Do not set by hand.' }, 'CROSSBUILD_CORE_DEPENDS' => { TYPE => 'HASH:ARRAY:STRING', VARNAME => 'crossbuild_core_depends', GROUP => 'Multiarch support (transitional)', DEFAULT => {}, HELP => 'Per-architecture dependencies required for cross-building. By default, if a Debian architecture is not found as a key in this hash, the package crossbuild-essential-${hostarch}:native will be installed.', EXAMPLE => ' $crossbuild_core_depends = { nios2 => [\'crossbuild-essential-nios2:native\', \'special-package\'], musl-linux-mips => [\'crossbuild-essential-musl-linux-mips:native\', \'super-special\'], } ' }, 'BUILD_SOURCE' => { TYPE => 'BOOL', VARNAME => 'build_source', GROUP => 'Build options', DEFAULT => 0, CHECK => $validate_append_version, HELP => 'By default, do not build a source package (binary only build). Set to 1 to force creation of a source package, but note that this is inappropriate for binary NMUs, where the option will always be disabled.' }, 'ARCHIVE' => { TYPE => 'STRING', VARNAME => 'archive', GROUP => 'Core options', DEFAULT => undef, HELP => 'Archive being built. Only set in build log. This might be useful for derivative distributions.' }, 'BIN_NMU' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => undef, CHECK => $validate_append_version, HELP => 'Binary NMU changelog entry. Do not set by hand.' }, 'BIN_NMU_VERSION' => { TYPE => 'STRING', GROUP => '__INTERNAL', DEFAULT => undef, HELP => 'Binary NMU version number. Do not set by hand.' }, 'APPEND_TO_VERSION' => { TYPE => 'STRING', VARNAME => 'append_to_version', GROUP => 'Build options', DEFAULT => undef, CHECK => $validate_append_version, HELP => 'Suffix to append to version number. May be useful for derivative distributions.' }, 'GCC_SNAPSHOT' => { TYPE => 'BOOL', VARNAME => 'gcc_snapshot', GROUP => 'Build options', DEFAULT => 0, HELP => 'Build using current GCC snapshot?' }, 'JOB_FILE' => { TYPE => 'STRING', VARNAME => 'job_file', GROUP => 'Core options', DEFAULT => 'build-progress', HELP => 'Job status file (only used in batch mode)' }, 'BUILD_DEP_RESOLVER' => { TYPE => 'STRING', VARNAME => 'build_dep_resolver', GROUP => 'Dependency resolution', DEFAULT => 'apt', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; if ($conf->get($key) eq 'internal') { warn "W: Build dependency resolver 'internal' has been removed; defaulting to 'apt'. Please update your configuration.\n"; $conf->set('BUILD_DEP_RESOLVER', 'apt'); } die '$key: Invalid build-dependency resolver \'' . $conf->get($key) . "'\nValid algorithms are 'apt', 'aptitude', 'aspcud' and 'xapt'\n" if !isin($conf->get($key), qw(apt aptitude aspcud xapt)); }, HELP => 'Build dependency resolver. The \'apt\' resolver is currently the default, and recommended for most users. This resolver uses apt-get to resolve dependencies. Alternative resolvers are \'apt\', \'aptitude\' and \'aspcud\'. The \'apt\' resolver uses a built-in resolver module while the \'aptitude\' resolver uses aptitude to resolve build dependencies. The aptitude resolver is similar to apt, but is useful in more complex situations, such as where multiple distributions are required, for example when building from experimental, where packages are needed from both unstable and experimental, but defaulting to unstable. If the dependency situation is too complex for either apt or aptitude to solve it, you can use the \'aspcud\' resolver which is a real SAT solver and will thus alwyas find a solution if a solution exists.' }, 'CLEAN_SOURCE' => { TYPE => 'BOOL', VARNAME => 'clean_source', GROUP => 'Build options', DEFAULT => 1, HELP => 'When running sbuild from within an unpacked source tree, run the \'clean\' target before generating the source package. This might require some of the build dependencies necessary for running the \'clean\' target to be installed on the host machine. Only disable if you start from a clean checkout and you know what you are doing.' }, 'LINTIAN' => { TYPE => 'STRING', VARNAME => 'lintian', GROUP => 'Build validation', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; # Only validate if needed. if ($conf->get('RUN_LINTIAN')) { $validate_program->($conf, $entry); } }, DEFAULT => 'lintian', HELP => 'Path to lintian binary' }, 'RUN_LINTIAN' => { TYPE => 'BOOL', VARNAME => 'run_lintian', GROUP => 'Build validation', CHECK => sub { my $conf = shift; $conf->check('LINTIAN'); }, DEFAULT => 0, HELP => 'Run lintian?' }, 'LINTIAN_OPTIONS' => { TYPE => 'ARRAY:STRING', VARNAME => 'lintian_opts', GROUP => 'Build validation', DEFAULT => [], HELP => 'Options to pass to lintian. Each option is a separate arrayref element. For example, [\'-i\', \'-v\'] to add -i and -v.' }, 'PIUPARTS' => { TYPE => 'STRING', VARNAME => 'piuparts', GROUP => 'Build validation', CHECK => sub { my $conf = shift; my $entry = shift; my $key = $entry->{'NAME'}; # Only validate if needed. if ($conf->get('RUN_PIUPARTS')) { $validate_program->($conf, $entry); } }, DEFAULT => 'piuparts', HELP => 'Path to piuparts binary' }, 'RUN_PIUPARTS' => { TYPE => 'BOOL', VARNAME => 'run_piuparts', GROUP => 'Build validation', CHECK => sub { my $conf = shift; $conf->check('PIUPARTS'); }, DEFAULT => 0, HELP => 'Run piuparts' }, 'PIUPARTS_OPTIONS' => { TYPE => 'ARRAY:STRING', VARNAME => 'piuparts_opts', GROUP => 'Build validation', DEFAULT => [], HELP => 'Options to pass to piuparts. Each option is a separate arrayref element. For example, [\'-b\', \'\'] to add -b and .' }, 'PIUPARTS_ROOT_ARGS' => { TYPE => 'ARRAY:STRING', VARNAME => 'piuparts_root_args', GROUP => 'Build validation', DEFAULT => [], HELP => 'Preceding arguments to launch piuparts as root. If no arguments are specified, piuparts will be launched via sudo.' }, 'EXTERNAL_COMMANDS' => { TYPE => 'HASH:ARRAY:STRING', VARNAME => 'external_commands', GROUP => 'Chroot options', DEFAULT => { "pre-build-commands" => [], "chroot-setup-commands" => [], "build-deps-failed-commands" => [], "build-failed-commands" => [], "starting-build-commands" => [], "finished-build-commands" => [], "chroot-cleanup-commands" => [], "post-build-commands" => [], }, HELP => 'External commands to run at various stages of a build. Commands are held in a hash of arrays of arrays data structure.', EXAMPLE => '$external_commands = { "pre-build-commands" => [ [\'foo\', \'arg1\', \'arg2\'], [\'bar\', \'arg1\', \'arg2\', \'arg3\'], ], "chroot-setup-commands" => [ [\'foo\', \'arg1\', \'arg2\'], [\'bar\', \'arg1\', \'arg2\', \'arg3\'], ], "build-deps-failed-commands" => [ [\'foo\', \'arg1\', \'arg2\'], [\'bar\', \'arg1\', \'arg2\', \'arg3\'], ], "build-failed-commands" => [ [\'foo\', \'arg1\', \'arg2\'], [\'bar\', \'arg1\', \'arg2\', \'arg3\'], ], "starting-build-commands" => [ [\'foo\', \'arg1\', \'arg2\'], [\'bar\', \'arg1\', \'arg2\', \'arg3\'], ], "finished-build-commands" => [ [\'foo\', \'arg1\', \'arg2\'], [\'bar\', \'arg1\', \'arg2\', \'arg3\'], ], "chroot-cleanup-commands" => [ [\'foo\', \'arg1\', \'arg2\'], [\'bar\', \'arg1\', \'arg2\', \'arg3\'], ], "post-build-commands" => [ [\'foo\', \'arg1\', \'arg2\'], [\'bar\', \'arg1\', \'arg2\', \'arg3\'], ], };' }, 'LOG_EXTERNAL_COMMAND_OUTPUT' => { TYPE => 'BOOL', VARNAME => 'log_external_command_output', GROUP => 'Chroot options', DEFAULT => 1, HELP => 'Log standard output of commands run by sbuild?' }, 'LOG_EXTERNAL_COMMAND_ERROR' => { TYPE => 'BOOL', VARNAME => 'log_external_command_error', GROUP => 'Chroot options', DEFAULT => 1, HELP => 'Log standard error of commands run by sbuild?' }, 'RESOLVE_ALTERNATIVES' => { TYPE => 'BOOL', VARNAME => 'resolve_alternatives', GROUP => 'Dependency resolution', DEFAULT => undef, GET => sub { my $conf = shift; my $entry = shift; my $retval = $conf->_get($entry->{'NAME'}); if (!defined($retval)) { $retval = 0; $retval = 1 if ($conf->get('BUILD_DEP_RESOLVER') eq 'aptitude'); } return $retval; }, EXAMPLE => '$resolve_alternatives = 0;', HELP => 'Should the dependency resolver use alternatives in Build-Depends, Build-Depends-Arch and Build-Depends-Indep? By default, using \'apt\' resolver, only the first alternative will be used; all other alternatives will be removed. When using the \'aptitude\' resolver, it will default to using all alternatives. Note that this does not include architecture-specific alternatives, which are reduced to the build architecture prior to alternatives removal. This should be left disabled when building for unstable; it may be useful when building for experimental or backports. Set to undef to use the default, 1 to enable, or 0 to disable.' }, 'SBUILD_BUILD_DEPENDS_SECRET_KEY' => { TYPE => 'STRING', VARNAME => 'sbuild_build_depends_secret_key', GROUP => 'Dependency resolution', DEFAULT => '/var/lib/sbuild/apt-keys/sbuild-key.sec', HELP => 'GPG secret key for temporary local apt archive.' }, 'SBUILD_BUILD_DEPENDS_PUBLIC_KEY' => { TYPE => 'STRING', VARNAME => 'sbuild_build_depends_public_key', GROUP => 'Dependency resolution', DEFAULT => '/var/lib/sbuild/apt-keys/sbuild-key.pub', HELP => 'GPG public key for temporary local apt archive.' }, 'EXTRA_PACKAGES' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build packages available as build dependencies. Do not set by hand.' }, 'EXTRA_REPOSITORY_KEYS' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build apt repository keys. Do not set by hand.' }, 'EXTRA_REPOSITORIES' => { TYPE => 'ARRAY:STRING', GROUP => '__INTERNAL', DEFAULT => [], HELP => 'Additional per-build apt repositories. Do not set by hand.' }, ); $conf->set_allowed_keys(\%sbuild_keys); } sub read ($) { my $conf = shift; # Set here to allow user to override. if (-t STDIN && -t STDOUT) { $conf->_set_default('VERBOSE', 1); } else { $conf->_set_default('VERBOSE', 0); } my $HOME = $conf->get('HOME'); my $files = ["$Sbuild::Sysconfig::paths{'SBUILD_CONF'}", "$HOME/.sbuildrc"]; push @{$files}, $ENV{'SBUILD_CONFIG'} if defined $ENV{'SBUILD_CONFIG'}; # For compatibility only. Non-scalars are deprecated. my $deprecated_init = <set('MAILTO_HASH', \\\%mailto); } if (\@toolchain_regex) { warn 'W: \@toolchain_regex is deprecated; please use the array reference \$toolchain_regexp[]\n'; \$conf->set('TOOLCHAIN_REGEX', \\\@toolchain_regex); } if (\%individual_stalled_pkg_timeout) { warn 'W: \%individual_stalled_pkg_timeout is deprecated; please use the hash reference \$individual_stalled_pkg_timeout{}\n'; \$conf->set('INDIVIDUAL_STALLED_PKG_TIMEOUT', \\\%individual_stalled_pkg_timeout); } END my $custom_setup = <get('EXTERNAL_COMMANDS')}{"chroot-user-setup-commands"}}, \$chroot_setup_script) if (\$chroot_setup_script); # Trigger log directory creation if needed \$conf->get('LOG_DIR_AVAILABLE'); END $conf->read($files, $deprecated_init, $deprecated_setup, $custom_setup); } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/LogBase.pm0000644000000000000000000000013112605405362016410 xustar0030 mtime=1444285170.652049671 30 atime=1451044743.162752739 29 ctime=1451136984.18576001 sbuild-0.67.0/lib/Sbuild/LogBase.pm0000644000175000017500000000641412605405362017236 0ustar00joschjosch00000000000000# # LogBase.pm: logging library (base functionality) for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2009 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::LogBase; use strict; use warnings; use English; sub open_log ($$$); sub close_log ($); our $log = undef; our $saved_stdout = undef; our $saved_stderr = undef; BEGIN { use Exporter (); our (@ISA, @EXPORT_OK); @ISA = qw(Exporter); @EXPORT_OK = qw(open_log close_log $log $saved_stdout $saved_stderr); } sub open_log ($$$) { my $conf = shift; my $log_file = shift; # File to log to my $logfunc = shift; # Function to handle logging if (!defined($logfunc)) { $logfunc = sub { my $log_file = shift; my $message = shift; print $log_file $message; } } $log_file->autoflush(1) if defined($log_file); my $pid; ($pid = open($log, "|-")); if (!defined $pid) { warn "Cannot open pipe to log: $!\n"; } elsif ($pid == 0) { # We ignore SIG(INT|QUIT|TERM) because they will be caught in # the parent which will subsequently close the logging stream # resulting in our termination. This is needed to ensure the # final log messages are sent and the parent doesn't die with # SIGPIPE. $SIG{'INT'} = 'IGNORE'; $SIG{'QUIT'} = 'IGNORE'; $SIG{'TERM'} = 'IGNORE'; $PROGRAM_NAME = 'main log for ' . $PROGRAM_NAME; while () { $logfunc->($log_file, $_) if (!$conf->get('NOLOG') && defined($log_file)); $logfunc->(\*STDOUT, $_) if ($conf->get('VERBOSE')); } undef $log_file; exit 0; } undef $log_file; # Close in parent $log->autoflush(1); # Automatically flush select($log); # It's the default stream open($saved_stdout, ">&STDOUT") or warn "Can't redirect stdout\n"; open($saved_stderr, ">&STDERR") or warn "Can't redirect stderr\n"; open(STDOUT, '>&', $log) or warn "Can't redirect stdout\n"; open(STDERR, '>&', $log) or warn "Can't redirect stderr\n"; return $log; } sub close_log ($) { my $conf = shift; # Note: It's imperative to close and reopen in the exact order in # which we originally opened and reopened, or else we can deadlock # in wait4 when closing the log stream due to waiting on the child # forever. open(STDERR, '>&', $saved_stderr) or warn "Can't redirect stderr\n" if defined($saved_stderr); open(STDOUT, '>&', $saved_stdout) or warn "Can't redirect stdout\n" if defined($saved_stdout); $saved_stderr->close(); undef $saved_stderr; $saved_stdout->close(); undef $saved_stdout; $log->close(); undef $log; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Sysconfig.pm.in0000644000000000000000000000013212605405362017446 xustar0030 mtime=1444285170.652049671 30 atime=1451136977.901751703 30 ctime=1451136984.165759984 sbuild-0.67.0/lib/Sbuild/Sysconfig.pm.in0000644000175000017500000000475412605405362020300 0ustar00joschjosch00000000000000# # Sysconfig.pm: system configuration for sbuild # Copyright © 2007-2008 Roger Leigh # # 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, see # . # ####################################################################### package Sbuild::Sysconfig; use strict; use warnings; BEGIN { use Exporter (); our (@ISA, @EXPORT_OK); @ISA = qw(Exporter); @EXPORT_OK = qw($version $release_date $compat_mode %paths %programs); } our $version = "@PACKAGE_VERSION@"; our $release_date = "@RELEASE_DATE@"; our $compat_mode = @SBUILD_COMPAT@; # Paths my $prefix = "@prefix@"; my $exec_prefix = "@exec_prefix@"; # Depend on prefix my $includedir = "@includedir@"; my $localstatedir = "@localstatedir@"; my $sharedstatedir = "@sharedstatedir@"; my $sysconfdir = "@sysconfdir@"; # Depend on exec_prefix my $bindir = "@bindir@"; my $libdir = "@libdir@"; my $libexecdir = "@libexecdir@"; my $sbindir = "@sbindir@"; # Data directories my $datarootdir = "@datarootdir@"; my $datadir = "@datadir@"; my $localedir = "@localedir@"; my $mandir = "@mandir@"; our %paths = ( 'PREFIX' => $prefix, 'EXEC_PREFIX' => $exec_prefix, 'INCLUDEDIR' => $includedir, 'LOCALSTATEDIR' => $localstatedir, 'SHAREDSTATEDIR' => $sharedstatedir, 'SYSCONFDIR' => $sysconfdir, 'BINDIR' => $bindir, 'LIBDIR' => $libdir, 'LIBEXECDIR' => $libexecdir, 'SBINDIR' => $sbindir, 'DATAROOTDIR' => $datarootdir, 'DATADIR' => $datadir, 'LOCALEDIR' => $localedir, 'MANDIR' => $mandir, 'BUILDD_CONF' => "@BUILDD_CONF@", 'BUILDD_SYSCONF_DIR' => "@BUILDD_SYSCONF_DIR@", 'SBUILD_CONF' => "@SBUILD_CONF@", 'SBUILD_DATA_DIR' => "@SBUILD_DATA_DIR@", 'SBUILD_LIBEXEC_DIR' => "@SBUILD_LIBEXEC_DIR@", 'SBUILD_LOCALSTATE_DIR' => "$localstatedir/lib/sbuild", 'SBUILD_SYSCONF_DIR' => "@SBUILD_SYSCONF_DIR@", 'SCHROOT_CONF' => "@SCHROOT_CONF@", 'SCHROOT_SYSCONF_DIR' => "@SCHROOT_SYSCONF_DIR@" ); 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ChrootSchroot.pm0000644000000000000000000000013212636522264017702 xustar0030 mtime=1450878132.816497113 30 atime=1451044743.162752739 30 ctime=1451136984.169759989 sbuild-0.67.0/lib/Sbuild/ChrootSchroot.pm0000644000175000017500000000766712636522264020542 0ustar00joschjosch00000000000000# # Chroot.pm: chroot library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2008 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::ChrootSchroot; use strict; use warnings; BEGIN { use Exporter (); use Sbuild::Chroot; our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Chroot); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $chroot_id = shift; my $self = $class->SUPER::new($conf, $chroot_id); bless($self, $class); return $self; } sub begin_session { my $self = shift; my $chroot = $self->get('Chroot ID'); # Don't use namespaces in compat mode. if ($Sbuild::Sysconfig::compat_mode) { $chroot =~ s/^[^:]+://msx; } my $schroot_session=readpipe($self->get_conf('SCHROOT') . " -c $chroot --begin-session"); chomp($schroot_session); if ($?) { print STDERR "Chroot setup failed\n"; return 0; } $self->set('Session ID', $schroot_session); print STDERR "Setting up chroot $chroot (session id $schroot_session)\n" if $self->get_conf('DEBUG'); my $info = $self->get('Chroots')->get_info($schroot_session); if (defined($info) && defined($info->{'Location'}) && -d $info->{'Location'}) { $self->set('Priority', $info->{'Priority'}); $self->set('Location', $info->{'Location'}); $self->set('Session Purged', $info->{'Session Purged'}); } else { die $self->get('Chroot ID') . " chroot does not exist\n"; } return 0 if !$self->_setup_options(); return 1; } sub end_session { my $self = shift; return if $self->get('Session ID') eq ""; print STDERR "Cleaning up chroot (session id " . $self->get('Session ID') . ")\n" if $self->get_conf('DEBUG'); system($self->get_conf('SCHROOT') . ' -c ' . $self->get('Session ID') . ' --end-session'); $self->set('Session ID', ""); if ($?) { print STDERR "Chroot cleanup failed\n"; return 0; } return 1; } sub get_command_internal { my $self = shift; my $options = shift; # Command to run. If I have a string, use it. Otherwise use the list-ref my $command = $options->{'INTCOMMAND_STR'} // $options->{'INTCOMMAND'}; my $user = $options->{'USER'}; # User to run command under my $dir; # Directory to use (optional) $dir = $self->get('Defaults')->{'DIR'} if (defined($self->get('Defaults')) && defined($self->get('Defaults')->{'DIR'})); $dir = $options->{'DIR'} if defined($options->{'DIR'}) && $options->{'DIR'}; if (!defined $user || $user eq "") { $user = $self->get_conf('USERNAME'); } my @cmdline = (); if (!defined($dir)) { $dir = '/'; } @cmdline = ($self->get_conf('SCHROOT'), '-d', $dir, '-c', $self->get('Session ID'), '--run-session', @{$self->get_conf('SCHROOT_OPTIONS')}, '-u', "$user", '-p', '--'); if (ref $command) { push @cmdline, @$command; } else { push @cmdline, ('/bin/sh', '-c', $command); $command = [split(/\s+/, $command)]; } $options->{'USER'} = $user; $options->{'COMMAND'} = $command; $options->{'EXPCOMMAND'} = \@cmdline; $options->{'CHDIR'} = undef; $options->{'DIR'} = $dir; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Utility.pm0000644000000000000000000000013212637466265016556 xustar0030 mtime=1451125941.820608177 30 atime=1451125941.824608189 30 ctime=1451136984.189760016 sbuild-0.67.0/lib/Sbuild/Utility.pm0000644000175000017500000002565212637466265017410 0ustar00joschjosch00000000000000# # Utility.pm: library for sbuild utility programs # Copyright © 2006 Roger Leigh # # 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # ############################################################################ # Import default modules into main package main; use Sbuild qw($devnull); use Sbuild::ChrootInfoSchroot; use Sbuild::ChrootInfoSudo; use Sbuild::Sysconfig; $ENV{'LC_ALL'} = "POSIX"; $ENV{'SHELL'} = '/bin/sh'; # avoid intermixing of stdout and stderr $| = 1; package Sbuild::Utility; use strict; use warnings; use Sbuild::Chroot; use File::Temp qw(tempfile); use Module::Load::Conditional qw(can_load); # Used to check for LWP::UserAgent use Time::HiRes qw ( time ); # Needed for high resolution timers sub get_dist ($); sub setup ($$$); sub cleanup ($); sub shutdown ($); my $current_session; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(setup cleanup shutdown check_url download); $SIG{'INT'} = \&shutdown; $SIG{'TERM'} = \&shutdown; $SIG{'ALRM'} = \&shutdown; $SIG{'PIPE'} = \&shutdown; } sub get_dist ($) { my $dist = shift; $dist = "unstable" if ($dist eq "-u" || $dist eq "u"); $dist = "testing" if ($dist eq "-t" || $dist eq "t"); $dist = "stable" if ($dist eq "-s" || $dist eq "s"); $dist = "oldstable" if ($dist eq "-o" || $dist eq "o"); $dist = "experimental" if ($dist eq "-e" || $dist eq "e"); return $dist; } sub setup ($$$) { my $namespace = shift; my $chroot = shift; my $conf = shift; $conf->set('VERBOSE', 1); $conf->set('NOLOG', 1); $chroot = get_dist($chroot); # TODO: Allow user to specify arch. my $chroot_info; if ($conf->get('CHROOT_MODE') eq 'schroot') { $chroot_info = Sbuild::ChrootInfoSchroot->new($conf); } else { $chroot_info = Sbuild::ChrootInfoSudo->new($conf); } my $session; $session = $chroot_info->create($namespace, $chroot, undef, # TODO: Add --chroot option $conf->get('BUILD_ARCH')); if (!defined $session) { print STDERR "Error creating chroot info\n"; return undef; } $session->set('Log Stream', \*STDOUT); my $chroot_defaults = $session->get('Defaults'); $chroot_defaults->{'DIR'} = '/'; $chroot_defaults->{'STREAMIN'} = $Sbuild::devnull; $chroot_defaults->{'STREAMOUT'} = \*STDOUT; $chroot_defaults->{'STREAMERR'} =\*STDOUT; $Sbuild::Utility::current_session = $session; if (!$session->begin_session()) { print STDERR "Error setting up $chroot chroot\n"; return undef; } if (defined(&main::local_setup)) { return main::local_setup($session); } return $session; } sub cleanup ($) { my $conf = shift; if (defined(&main::local_cleanup)) { main::local_cleanup($Sbuild::Utility::current_session); } if (defined $Sbuild::Utility::current_session) { $Sbuild::Utility::current_session->end_session(); } } sub shutdown ($) { cleanup($main::conf); # FIXME: don't use global exit 1; } # This method simply checks if a URL is valid. sub check_url { my ($url) = @_; # If $url is a readable plain file on the local system, just return true. return 1 if (-f $url && -r $url); # Load LWP::UserAgent if possible, else return 0. if (! can_load( modules => { 'LWP::UserAgent' => undef, } )) { return 0; } # Setup the user agent. my $ua = LWP::UserAgent->new; # Determine if we need to specify any proxy settings. $ua->env_proxy; my $proxy = _get_proxy(); if ($proxy) { $ua->proxy(['http', 'ftp'], $proxy); } # Dispatch a HEAD request, grab the response, and check the response for # success. my $res = $ua->head($url); return 1 if ($res->is_success); # URL wasn't valid. return 0; } # This method is used to retrieve a file, usually from a location on the # Internet, but it can also be used for files in the local system. # $url is location of file, $file is path to write $url into. sub download { # The parameters will be any URL and a location to save the file to. my($url, $file) = @_; # If $url is a readable plain file on the local system, just return the # $url. return $url if (-f $url && -r $url); # Load LWP::UserAgent if possible, else return 0. if (! can_load( modules => { 'LWP::UserAgent' => undef, } )) { return 0; } # Filehandle we'll be writing to. my $fh; # If $file isn't defined, a temporary file will be used instead. ($fh, $file) = tempfile( UNLINK => 0 ) if (! $file); # Setup the user agent. my $ua = LWP::UserAgent->new; # Determine if we need to specify any proxy settings. $ua->env_proxy; my $proxy = _get_proxy(); if ($proxy) { $ua->proxy(['http', 'ftp'], $proxy); } # Download the file. print "Downloading $url to $file.\n"; my $expected_length; # Total size we expect of content my $bytes_received = 0; # Size of content as it is received my $percent; # The percentage downloaded my $tick; # Used for counting. my $start_time = time; # Record of the start time open($fh, '>', $file); # Destination file to download content to my $request = HTTP::Request->new(GET => $url); my $response = $ua->request($request, sub { # Our own content callback subroutine my ($chunk, $response) = @_; $bytes_received += length($chunk); unless (defined $expected_length) { $expected_length = $response->content_length or undef; } if ($expected_length) { # Here we calculate the speed of the download to print out later my $speed; my $duration = time - $start_time; if ($bytes_received/$duration >= 1024 * 1024) { $speed = sprintf("%.4g MB", ($bytes_received/$duration) / (1024.0 * 1024)) . "/s"; } elsif ($bytes_received/$duration >= 1024) { $speed = sprintf("%.4g KB", ($bytes_received/$duration) / 1024.0) . "/s"; } else { $speed = sprintf("%.4g B", ($bytes_received/$duration)) . "/s"; } # Calculate the percentage downloaded $percent = sprintf("%d", 100 * $bytes_received / $expected_length); $tick++; # Keep count # Here we print out a progress of the download. We start by # printing out the amount of data retrieved so far, and then # show a progress bar. After 50 ticks, the percentage is printed # and the speed of the download is printed. A new line is # started and the process repeats until the download is # complete. if (($tick == 250) or ($percent == 100)) { if ($tick == 1) { # In case we reach 100% from tick 1. printf "%8s", sprintf("%d", $bytes_received / 1024) . "KB"; print " [."; } while ($tick != 250) { # In case we reach 100% before reaching 250 ticks print "." if ($tick % 5 == 0); $tick++; } print ".]"; printf "%5s", "$percent%"; printf "%12s", "$speed\n"; $tick = 0; } elsif ($tick == 1) { printf "%8s", sprintf("%d", $bytes_received / 1024) . "KB"; print " [."; } elsif ($tick % 5 == 0) { print "."; } } # Write the contents of the download to our specified file if ($response->is_success) { print $fh $chunk; # Print content to file } else { # Print message upon failure during download print "\n" . $response->status_line . "\n"; return 0; } } ); # End of our content callback subroutine close $fh; # Close the destination file # Print error message in case we couldn't get a response at all. if (!$response->is_success) { print $response->status_line . "\n"; return 0; } # Print out amount of content received before returning the path of the # file. print "Download of $url sucessful.\n"; print "Size of content downloaded: "; if ($bytes_received >= 1024 * 1024) { print sprintf("%.4g MB", $bytes_received / (1024.0 * 1024)) . "\n"; } elsif ($bytes_received >= 1024) { print sprintf("%.4g KB", $bytes_received / 1024.0) . "\n"; } else { print sprintf("%.4g B", $bytes_received) . "\n"; } return $file; } # This method is used to determine the proxy settings used on the local system. # It will return the proxy URL if a proxy setting is found. sub _get_proxy { my $proxy; # Attempt to acquire a proxy URL from apt-config. if (open(my $apt_config_output, '-|', '/usr/bin/apt-config dump')) { foreach my $tmp (<$apt_config_output>) { if ($tmp =~ m/^.*Acquire::http::Proxy\s+/) { $proxy = $tmp; chomp($proxy); # Trim the line to only the proxy URL $proxy =~ s/^.*Acquire::http::Proxy\s+"|";$//g; return $proxy; } } close $apt_config_output; } # Attempt to acquire a proxy URL from the user's or system's wgetrc # configuration. # First try the user's wgetrc if (open(my $wgetrc, '<', "$ENV{'HOME'}/.wgetrc")) { foreach my $tmp (<$wgetrc>) { if ($tmp =~ m/^[^#]*http_proxy/) { $proxy = $tmp; chomp($proxy); # Trim the line to only the proxy URL $proxy =~ s/^.*http_proxy\s*=\s*|\s+$//g; return $proxy; } } close($wgetrc); } # Now try the system's wgetrc if (open(my $wgetrc, '<', '/etc/wgetrc')) { foreach my $tmp (<$wgetrc>) { if ($tmp =~ m/^[^#]*http_proxy/) { $proxy = $tmp; chomp($proxy); # Trim the line to only the proxy URL $proxy =~ s/^.*http_proxy\s*=\s*|\s+$//g; return $proxy; } } close($wgetrc); } # At this point there should be no proxy settings. Return undefined. return 0; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/Resolver.pm0000644000000000000000000000013212627410514016675 xustar0030 mtime=1449005388.463402744 30 atime=1451044743.162752739 30 ctime=1451136984.181760005 sbuild-0.67.0/lib/Sbuild/Resolver.pm0000644000175000017500000000344212627410514017520 0ustar00joschjosch00000000000000# # Resolver.pm: library for sbuild # Copyright © 2010 Roger Leigh . # ####################################################################### package Sbuild::Resolver; use Sbuild::AptResolver; use Sbuild::XaptResolver; use Sbuild::AptitudeResolver; use Sbuild::AspcudResolver; use strict; use warnings; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(get_resolver); } sub get_resolver ($$$); sub get_resolver ($$$) { my $conf = shift; my $session = shift; my $host = shift; my $resolver; if ($conf->get('BUILD_DEP_RESOLVER') eq "apt") { $resolver = Sbuild::AptResolver->new($conf, $session, $host); } elsif ($conf->get('BUILD_DEP_RESOLVER') eq "xapt") { $resolver = Sbuild::XaptResolver->new($conf, $session, $host); } elsif ($conf->get('BUILD_DEP_RESOLVER') eq "aptitude") { $resolver = Sbuild::AptitudeResolver->new($conf, $session, $host); } elsif ($conf->get('BUILD_DEP_RESOLVER') eq "aspcud") { $resolver = Sbuild::AspcudResolver->new($conf, $session, $host); } else { $resolver = Sbuild::AptResolver->new($conf, $session, $host); } return $resolver; } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ResolverBase.pm0000644000000000000000000000013212637466265017507 xustar0030 mtime=1451125941.712607841 30 atime=1451125941.716607853 30 ctime=1451136984.177759999 sbuild-0.67.0/lib/Sbuild/ResolverBase.pm0000644000175000017500000013161512637466265020336 0ustar00joschjosch00000000000000# Resolver.pm: build library for sbuild # Copyright © 2005 Ryan Murray # Copyright © 2005-2010 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::ResolverBase; use strict; use warnings; use POSIX; use Fcntl; use File::Temp qw(tempdir tempfile); use File::Copy; use Dpkg::Deps; use Sbuild::Base; use Sbuild qw(isin debug debug2); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::Base); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $session = shift; my $host = shift; my $self = $class->SUPER::new($conf); bless($self, $class); $self->set('Session', $session); $self->set('Host', $host); $self->set('Changes', {}); $self->set('AptDependencies', {}); $self->set('Split', $self->get_conf('CHROOT_SPLIT')); # Typically set by Sbuild::Build, but not outside a build context. $self->set('Host Arch', $self->get_conf('HOST_ARCH')); $self->set('Build Arch', $self->get_conf('BUILD_ARCH')); $self->set('Build Profiles', $self->get_conf('BUILD_PROFILES')); $self->set('Multiarch Support', 1); $self->set('Initial Foreign Arches', {}); $self->set('Added Foreign Arches', {}); my $dummy_archive_list_file = $session->get('Location') . '/etc/apt/sources.list.d/sbuild-build-depends-archive.list'; $self->set('Dummy archive list file', $dummy_archive_list_file); my $dummy_archive_key_file = $session->get('Location') . '/etc/apt/trusted.gpg.d/sbuild-build-depends-archive.gpg'; $self->set('Dummy archive key file', $dummy_archive_key_file); return $self; } sub setup { my $self = shift; my $session = $self->get('Session'); my $chroot_dir = $session->get('Location'); #Set up dpkg config $self->setup_dpkg(); my $aptconf = "/var/lib/sbuild/apt.conf"; $self->set('APT Conf', $aptconf); my $chroot_aptconf = $session->get('Location') . "/$aptconf"; $self->set('Chroot APT Conf', $chroot_aptconf); # Always write out apt.conf, because it may become outdated. if (my $F = eval {new File::Temp( TEMPLATE => "$aptconf.XXXXXX", DIR => $session->get('Location'), UNLINK => 0) } ) { if ($self->get_conf('APT_ALLOW_UNAUTHENTICATED')) { print $F "APT::Get::AllowUnauthenticated true;\n"; } print $F "APT::Install-Recommends false;\n"; if ($self->get('Split')) { print $F "Dir \"$chroot_dir\";\n"; } if (! rename $F->filename, $chroot_aptconf) { $self->log_error("Can't rename $F->filename to $chroot_aptconf: $!\n"); return 0; } } else { $self->log_error("Can't create $chroot_aptconf: $!\n"); return 0; } # unsplit mode uses an absolute path inside the chroot, rather # than on the host system. if ($self->get('Split')) { $self->set('APT Options', ['-o', "Dir::State::status=$chroot_dir/var/lib/dpkg/status", '-o', "DPkg::Options::=--root=$chroot_dir", '-o', "DPkg::Run-Directory=$chroot_dir"]); $self->set('Aptitude Options', ['-o', "Dir::State::status=$chroot_dir/var/lib/dpkg/status", '-o', "DPkg::Options::=--root=$chroot_dir", '-o', "DPkg::Run-Directory=$chroot_dir"]); # sudo uses an absolute path on the host system. $session->get('Defaults')->{'ENV'}->{'APT_CONFIG'} = $self->get('Chroot APT Conf'); } else { # no split $self->set('APT Options', []); $self->set('Aptitude Options', []); $session->get('Defaults')->{'ENV'}->{'APT_CONFIG'} = $self->get('APT Conf'); } $self->cleanup_apt_archive(); return 1; } sub get_foreign_architectures { my $self = shift; my $session = $self->get('Session'); $session->run_command({ COMMAND => ['dpkg', '--assert-multi-arch'], USER => 'root'}); if ($?) { $self->set('Multiarch Support', 0); $self->log_error("dpkg does not support multi-arch\n"); return {}; } my ($tmpfh, $tmpfilename) = tempfile(DIR => $session->get('Location') . "/tmp"); $session->run_command({ COMMAND => ['dpkg', '--print-foreign-architectures'], USER => 'root', STREAMOUT => $tmpfh}); if ($?) { $self->set('Multiarch Support', 0); $self->log_error("Failed to get dpkg foreign-architecture config\n"); close $tmpfh; unlink $tmpfilename; return {}; } # else dpkg has multiarch support seek $tmpfh, 0, SEEK_SET; my @existing_foreign_arches; while(<$tmpfh>) { chomp; next unless $_; push @existing_foreign_arches, $_; } close $tmpfh; unlink $tmpfilename; my %set; foreach (@existing_foreign_arches) { $set{$_} = 1; } return \%set; } sub add_foreign_architecture { my $self = shift; my $arch = shift; # just skip if dpkg is to old for multiarch if (! $self->get('Multiarch Support')) { return 1 }; # if we already have this architecture, we're done my $initial_foreign_arches = $self->get('Initial Foreign Arches'); my $added_foreign_arches = $self->get('Added Foreign Arches'); return if $initial_foreign_arches->{$arch} || $added_foreign_arches->{$arch}; my $session = $self->get('Session'); # FIXME - allow for more than one foreign arch $session->run_command( # This is the Ubuntu dpkg 1.16.0~ubuntuN interface; # we ought to check (or configure) which to use with # check_dpkg_version: # { COMMAND => ['sh', '-c', 'echo "foreign-architecture ' . $self->get('Host Arch') . '" > /etc/dpkg/dpkg.cfg.d/sbuild'], # USER => 'root' }); # This is the Debian dpkg >= 1.16.2 interface: { COMMAND => ['dpkg', '--add-architecture', $arch], USER => 'root' }); if ($?) { $self->log_error("Failed to set dpkg foreign-architecture config\n"); return 0; } debug("Added foreign arch: $arch\n") if $arch; $added_foreign_arches->{$arch} = 1; return 1; } sub cleanup_foreign_architectures { my $self = shift; # just skip if dpkg is to old for multiarch if (! $self->get('Multiarch Support')) { return 1 }; my $added_foreign_arches = $self->get('Added Foreign Arches'); my $session = $self->get('Session'); foreach my $arch (keys %{$added_foreign_arches}) { $self->log("Removing foreign architecture $arch\n"); $session->run_command({ COMMAND => ['dpkg', '--remove-architecture', $arch], USER => 'root', DIR => '/'}); if ($?) { $self->log_error("Failed to remove dpkg foreign-architecture $arch\n"); return; } } } sub setup_dpkg { my $self = shift; my $session = $self->get('Session'); # Record initial foreign arch state so it can be restored $self->set('Initial Foreign Arches', $self->get_foreign_architectures()); if ($self->get('Host Arch') ne $self->get('Build Arch')) { $self->add_foreign_architecture($self->get('Host Arch')) } } sub cleanup { my $self = shift; #cleanup dpkg cross-config # rm /etc/dpkg/dpkg.cfg.d/sbuild $self->cleanup_apt_archive(); $self->cleanup_foreign_architectures(); } sub update { my $self = shift; $self->run_apt_command( { COMMAND => [$self->get_conf('APT_GET'), 'update'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $?; } sub update_archive { my $self = shift; if (!$self->get_conf('APT_UPDATE_ARCHIVE_ONLY')) { # Update with apt-get; causes complete archive update $self->run_apt_command( { COMMAND => [$self->get_conf('APT_GET'), 'update'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $?; } else { my $session = $self->get('Session'); my $dummy_archive_list_file = $self->get('Dummy archive list file'); # Create an empty sources.list.d directory that we can set as # Dir::Etc::sourceparts to suppress the real one. /dev/null # works in recent versions of apt, but not older ones (we want # 448eaf8 in apt 0.8.0 and af13d14 in apt 0.9.3). Since this # runs against the target chroot's apt, be conservative. my $dummy_sources_list_d = $self->get('Dummy package path') . '/sources.list.d'; if (!(-d $dummy_sources_list_d || mkdir $dummy_sources_list_d, 0700)) { $self->log_warning('Could not create build-depends dummy sources.list directory ' . $dummy_sources_list_d . ': ' . $!); $self->cleanup_apt_archive(); return 0; } # Run apt-get update pointed at our dummy archive list file, and # the empty sources.list.d directory, so that we only update # this one source. Since apt doesn't have all the sources # available to it in this run, any caches it generates are # invalid, so we then need to run gencaches with all sources # available to it. (Note that the tempting optimization to run # apt-get update -o pkgCacheFile::Generate=0 is broken before # 872ed75 in apt 0.9.1.) $self->run_apt_command( { COMMAND => [$self->get_conf('APT_GET'), 'update', '-o', 'Dir::Etc::sourcelist=' . $session->strip_chroot_path($dummy_archive_list_file), '-o', 'Dir::Etc::sourceparts=' . $session->strip_chroot_path($dummy_sources_list_d), '--no-list-cleanup'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $? if $?; $self->run_apt_command( { COMMAND => [$self->get_conf('APT_CACHE'), 'gencaches'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $?; } } sub upgrade { my $self = shift; $self->run_apt_command( { COMMAND => [$self->get_conf('APT_GET'), '-uy', '-o', 'Dpkg::Options::=--force-confold', 'upgrade'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $?; } sub distupgrade { my $self = shift; $self->run_apt_command( { COMMAND => [$self->get_conf('APT_GET'), '-uy', '-o', 'Dpkg::Options::=--force-confold', 'dist-upgrade'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $?; } sub clean { my $self = shift; $self->run_apt_command( { COMMAND => [$self->get_conf('APT_GET'), '-y', 'clean'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $?; } sub autoclean { my $self = shift; $self->run_apt_command( { COMMAND => [$self->get_conf('APT_GET'), '-y', 'autoclean'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $?; } sub autoremove { my $self = shift; $self->run_apt_command( { COMMAND => [$self->get_conf('APT_GET'), '-y', 'autoremove'], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', DIR => '/' }); return $?; } sub add_dependencies { my $self = shift; my $pkg = shift; my $build_depends = shift; my $build_depends_arch = shift; my $build_depends_indep = shift; my $build_conflicts = shift; my $build_conflicts_arch = shift; my $build_conflicts_indep = shift; debug("Build-Depends: $build_depends\n") if $build_depends; debug("Build-Depends-Arch: $build_depends_arch\n") if $build_depends_arch; debug("Build-Depends-Indep: $build_depends_indep\n") if $build_depends_indep; debug("Build-Conflicts: $build_conflicts\n") if $build_conflicts; debug("Build-Conflicts-Arch: $build_conflicts_arch\n") if $build_conflicts_arch; debug("Build-Conflicts-Indep: $build_conflicts_indep\n") if $build_conflicts_indep; my $deps = { 'Build Depends' => $build_depends, 'Build Depends Arch' => $build_depends_arch, 'Build Depends Indep' => $build_depends_indep, 'Build Conflicts' => $build_conflicts, 'Build Conflicts Arch' => $build_conflicts_arch, 'Build Conflicts Indep' => $build_conflicts_indep }; $self->get('AptDependencies')->{$pkg} = $deps; } sub install_core_deps { my $self = shift; my $name = shift; return $self->install_deps($name, 0, @_); } sub install_main_deps { my $self = shift; my $name = shift; my $cross = $self->get('Host Arch') ne $self->get('Build Arch'); return $self->install_deps($name, $cross, @_); } sub uninstall_deps { my $self = shift; my( @pkgs, @instd, @rmvd ); @pkgs = keys %{$self->get('Changes')->{'removed'}}; debug("Reinstalling removed packages: @pkgs\n"); $self->log("Failed to reinstall removed packages!\n") if !$self->run_apt("-y", \@instd, \@rmvd, 'install', @pkgs); debug("Installed were: @instd\n"); debug("Removed were: @rmvd\n"); $self->unset_removed(@instd); $self->unset_installed(@rmvd); @pkgs = keys %{$self->get('Changes')->{'installed'}}; debug("Removing installed packages: @pkgs\n"); $self->log("Failed to remove installed packages!\n") if !$self->run_apt("-y", \@instd, \@rmvd, 'remove', @pkgs); $self->unset_removed(@instd); $self->unset_installed(@rmvd); } sub set_installed { my $self = shift; foreach (@_) { $self->get('Changes')->{'installed'}->{$_} = 1; } debug("Added to installed list: @_\n"); } sub set_removed { my $self = shift; foreach (@_) { $self->get('Changes')->{'removed'}->{$_} = 1; if (exists $self->get('Changes')->{'installed'}->{$_}) { delete $self->get('Changes')->{'installed'}->{$_}; $self->get('Changes')->{'auto-removed'}->{$_} = 1; debug("Note: $_ was installed\n"); } } debug("Added to removed list: @_\n"); } sub unset_installed { my $self = shift; foreach (@_) { delete $self->get('Changes')->{'installed'}->{$_}; } debug("Removed from installed list: @_\n"); } sub unset_removed { my $self = shift; foreach (@_) { delete $self->get('Changes')->{'removed'}->{$_}; if (exists $self->get('Changes')->{'auto-removed'}->{$_}) { delete $self->get('Changes')->{'auto-removed'}->{$_}; $self->get('Changes')->{'installed'}->{$_} = 1; debug("Note: revived $_ to installed list\n"); } } debug("Removed from removed list: @_\n"); } sub dump_build_environment { my $self = shift; my $status = $self->get_dpkg_status(); my $arch = $self->get('Arch'); my ($sysname, $nodename, $release, $version, $machine) = POSIX::uname(); $self->log_subsection("Build environment"); $self->log("Kernel: $sysname $release $arch ($machine)\n"); $self->log("Toolchain package versions:"); foreach my $name (sort keys %{$status}) { foreach my $regex (@{$self->get_conf('TOOLCHAIN_REGEX')}) { if ($name =~ m,^$regex, && defined($status->{$name}->{'Version'})) { $self->log(' ' . $name . '_' . $status->{$name}->{'Version'}); } } } $self->log("\n"); $self->log("Package versions:"); foreach my $name (sort keys %{$status}) { if (defined($status->{$name}->{'Version'})) { $self->log(' ' . $name . '_' . $status->{$name}->{'Version'}); } } $self->log("\n"); } sub run_apt { my $self = shift; my $mode = shift; my $inst_ret = shift; my $rem_ret = shift; my $action = shift; my @packages = @_; my( $msgs, $status, $pkgs, $rpkgs ); $msgs = ""; # redirection of stdin from /dev/null so that conffile question # are treated as if RETURN was pressed. # dpkg since 1.4.1.18 issues an error on the conffile question if # it reads EOF -- hardwire the new --force-confold option to avoid # the questions. my @apt_command = ($self->get_conf('APT_GET'), '--purge', '-o', 'DPkg::Options::=--force-confold', '-o', 'DPkg::Options::=--refuse-remove-essential', '-o', 'APT::Install-Recommends=false', '-q'); push @apt_command, '--allow-unauthenticated' if ($self->get_conf('APT_ALLOW_UNAUTHENTICATED')); push @apt_command, "$mode", $action, @packages; my $pipe = $self->pipe_apt_command( { COMMAND => \@apt_command, ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', PRIORITY => 0, DIR => '/' }); if (!$pipe) { $self->log("Can't open pipe to apt-get: $!\n"); return 0; } while(<$pipe>) { $msgs .= $_; $self->log($_) if $mode ne "-s" || debug($_); } close($pipe); $status = $?; $pkgs = $rpkgs = ""; if ($msgs =~ /NEW packages will be installed:\n((^[ ].*\n)*)/mi) { ($pkgs = $1) =~ s/^[ ]*((.|\n)*)\s*$/$1/m; $pkgs =~ s/\*//g; } if ($msgs =~ /packages will be REMOVED:\n((^[ ].*\n)*)/mi) { ($rpkgs = $1) =~ s/^[ ]*((.|\n)*)\s*$/$1/m; $rpkgs =~ s/\*//g; } @$inst_ret = split( /\s+/, $pkgs ); @$rem_ret = split( /\s+/, $rpkgs ); $self->log("apt-get failed.\n") if $status && $mode ne "-s"; return $mode eq "-s" || $status == 0; } sub run_xapt { my $self = shift; my $mode = shift; my $inst_ret = shift; my $rem_ret = shift; my $action = shift; my @packages = @_; my( $msgs, $status, $pkgs, $rpkgs ); $msgs = ""; # redirection of stdin from /dev/null so that conffile question # are treated as if RETURN was pressed. # dpkg since 1.4.1.18 issues an error on the conffile question if # it reads EOF -- hardwire the new --force-confold option to avoid # the questions. my @xapt_command = ($self->get_conf('XAPT')); my $pipe = $self->pipe_xapt_command( { COMMAND => \@xapt_command, ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', PRIORITY => 0, DIR => '/' }); if (!$pipe) { $self->log("Can't open pipe to xapt: $!\n"); return 0; } while(<$pipe>) { $msgs .= $_; $self->log($_) if $mode ne "-s" || debug($_); } close($pipe); $status = $?; $pkgs = $rpkgs = ""; if ($msgs =~ /NEW packages will be installed:\n((^[ ].*\n)*)/mi) { ($pkgs = $1) =~ s/^[ ]*((.|\n)*)\s*$/$1/m; $pkgs =~ s/\*//g; } if ($msgs =~ /packages will be REMOVED:\n((^[ ].*\n)*)/mi) { ($rpkgs = $1) =~ s/^[ ]*((.|\n)*)\s*$/$1/m; $rpkgs =~ s/\*//g; } @$inst_ret = split( /\s+/, $pkgs ); @$rem_ret = split( /\s+/, $rpkgs ); $self->log("xapt failed.\n") if $status && $mode ne "-s"; return $mode eq "-s" || $status == 0; } sub format_deps { my $self = shift; return join( ", ", map { join( "|", map { ($_->{'Neg'} ? "!" : "") . $_->{'Package'} . ($_->{'Rel'} ? " ($_->{'Rel'} $_->{'Version'})":"")} scalar($_), @{$_->{'Alternatives'}}) } @_ ); } sub get_dpkg_status { my $self = shift; my @interest = @_; my %result; local( *STATUS ); debug("Requesting dpkg status for packages: @interest\n"); my $dpkg_status_file = $self->get('Session')->get('Location') . '/var/lib/dpkg/status'; if (!open( STATUS, '<', $dpkg_status_file)) { $self->log("Can't open $dpkg_status_file: $!\n"); return (); } local( $/ ) = ""; while( ) { my( $pkg, $status, $version, $provides ); /^Package:\s*(.*)\s*$/mi and $pkg = $1; /^Status:\s*(.*)\s*$/mi and $status = $1; /^Version:\s*(.*)\s*$/mi and $version = $1; /^Provides:\s*(.*)\s*$/mi and $provides = $1; if (!$pkg) { $self->log_error("parse error in $dpkg_status_file: no Package: field\n"); next; } if (defined($version)) { debug("$pkg ($version) status: $status\n") if $self->get_conf('DEBUG') >= 2; } else { debug("$pkg status: $status\n") if $self->get_conf('DEBUG') >= 2; } if (!$status) { $self->log_error("parse error in $dpkg_status_file: no Status: field for package $pkg\n"); next; } if ($status !~ /\sinstalled$/) { $result{$pkg}->{'Installed'} = 0 if !(exists($result{$pkg}) && $result{$pkg}->{'Version'} eq '~*=PROVIDED=*='); next; } if (!defined $version || $version eq "") { $self->log_error("parse error in $dpkg_status_file: no Version: field for package $pkg\n"); next; } $result{$pkg} = { Installed => 1, Version => $version } if (isin( $pkg, @interest ) || !@interest); if ($provides) { foreach (split( /\s*,\s*/, $provides )) { $result{$_} = { Installed => 1, Version => '~*=PROVIDED=*=' } if isin( $_, @interest ) and (not exists($result{$_}) or ($result{$_}->{'Installed'} == 0)); } } } close( STATUS ); return \%result; } # Create an apt archive. Add to it if one exists. sub setup_apt_archive { my $self = shift; my $dummy_pkg_name = shift; my @pkgs = @_; my $session = $self->get('Session'); #Prepare a path to build a dummy package containing our deps: if (! defined $self->get('Dummy package path')) { $self->set('Dummy package path', tempdir('resolver' . '-XXXXXX', DIR => $self->get('Chroot Build Dir'))); } $session->run_command( { COMMAND => ['chown', $self->get_conf('BUILD_USER') . ':sbuild', $session->strip_chroot_path($self->get('Dummy package path'))], USER => 'root', DIR => '/' }); if ($?) { $self->log_error("E: Failed to set " . $self->get_conf('BUILD_USER') . ":sbuild ownership on dummy package dir\n"); return 0; } $session->run_command( { COMMAND => ['chmod', '0770', $session->strip_chroot_path($self->get('Dummy package path'))], USER => 'root', DIR => '/' }); if ($?) { $self->log_error("E: Failed to set 0770 permissions on dummy package dir\n"); return 0; } my $dummy_dir = $self->get('Dummy package path'); my $dummy_gpghome = $dummy_dir . '/gpg'; my $dummy_archive_dir = $dummy_dir . '/apt_archive'; my $dummy_release_file = $dummy_archive_dir . '/Release'; my $dummy_archive_seckey = $dummy_archive_dir . '/sbuild-key.sec'; my $dummy_archive_pubkey = $dummy_archive_dir . '/sbuild-key.pub'; $self->set('Dummy archive directory', $dummy_archive_dir); $self->set('Dummy Release file', $dummy_release_file); my $dummy_archive_list_file = $self->get('Dummy archive list file'); if (! -d $dummy_dir) { $self->log_warning('Could not create build-depends dummy dir ' . $dummy_dir . ': ' . $!); $self->cleanup_apt_archive(); return 0; } if (!(-d $dummy_gpghome || mkdir $dummy_gpghome, 0700)) { $self->log_warning('Could not create build-depends dummy gpg home dir ' . $dummy_gpghome . ': ' . $!); $self->cleanup_apt_archive(); return 0; } $session->run_command( { COMMAND => ['chown', $self->get_conf('BUILD_USER') . ':sbuild', $session->strip_chroot_path($dummy_gpghome)], USER => 'root', DIR => '/' }); if ($?) { $self->log_error('E: Failed to set ' . $self->get_conf('BUILD_USER') . ':sbuild ownership on $dummy_gpghome\n'); return 0; } if (!(-d $dummy_archive_dir || mkdir $dummy_archive_dir, 0775)) { $self->log_warning('Could not create build-depends dummy archive dir ' . $dummy_archive_dir . ': ' . $!); $self->cleanup_apt_archive(); return 0; } my $dummy_pkg_dir = $dummy_dir . '/' . $dummy_pkg_name; my $dummy_deb = $dummy_archive_dir . '/' . $dummy_pkg_name . '.deb'; my $dummy_dsc = $dummy_archive_dir . '/' . $dummy_pkg_name . '.dsc'; if (!(mkdir($dummy_pkg_dir) && mkdir($dummy_pkg_dir . '/DEBIAN'))) { $self->log_warning('Could not create build-depends dummy dir ' . $dummy_pkg_dir . '/DEBIAN: ' . $!); $self->cleanup_apt_archive(); return 0; } if (!open(DUMMY_CONTROL, '>', $dummy_pkg_dir . '/DEBIAN/control')) { $self->log_warning('Could not open ' . $dummy_pkg_dir . '/DEBIAN/control for writing: ' . $!); $self->cleanup_apt_archive(); return 0; } my $arch = $self->get('Host Arch'); print DUMMY_CONTROL <<"EOF"; Package: $dummy_pkg_name Version: 0.invalid.0 Architecture: $arch EOF my @positive; my @negative; my @positive_arch; my @negative_arch; my @positive_indep; my @negative_indep; for my $pkg (@pkgs) { my $deps = $self->get('AptDependencies')->{$pkg}; push(@positive, $deps->{'Build Depends'}) if (defined($deps->{'Build Depends'}) && $deps->{'Build Depends'} ne ""); push(@negative, $deps->{'Build Conflicts'}) if (defined($deps->{'Build Conflicts'}) && $deps->{'Build Conflicts'} ne ""); if ($self->get_conf('BUILD_ARCH_ANY')) { push(@positive_arch, $deps->{'Build Depends Arch'}) if (defined($deps->{'Build Depends Arch'}) && $deps->{'Build Depends Arch'} ne ""); push(@negative_arch, $deps->{'Build Conflicts Arch'}) if (defined($deps->{'Build Conflicts Arch'}) && $deps->{'Build Conflicts Arch'} ne ""); } if ($self->get_conf('BUILD_ARCH_ALL')) { push(@positive_indep, $deps->{'Build Depends Indep'}) if (defined($deps->{'Build Depends Indep'}) && $deps->{'Build Depends Indep'} ne ""); push(@negative_indep, $deps->{'Build Conflicts Indep'}) if (defined($deps->{'Build Conflicts Indep'}) && $deps->{'Build Conflicts Indep'} ne ""); } } my $positive_build_deps = join(", ", @positive, @positive_arch, @positive_indep); my $positive = deps_parse($positive_build_deps, reduce_arch => 1, host_arch => $self->get('Host Arch'), build_arch => $self->get('Build Arch'), build_dep => 1, reduce_profiles => 1, build_profiles => [ split / /, $self->get('Build Profiles') ]); if( !defined $positive ) { my $msg = "Error! deps_parse() couldn't parse the positive Build-Depends '$positive_build_deps'"; $self->log_error("$msg\n"); $self->cleanup_apt_archive(); return 0; } my $negative_build_deps = join(", ", @negative, @negative_arch, @negative_indep); my $negative = deps_parse($negative_build_deps, reduce_arch => 1, host_arch => $self->get('Host Arch'), build_arch => $self->get('Build Arch'), build_dep => 1, union => 1, reduce_profiles => 1, build_profiles => [ split / /, $self->get('Build Profiles') ]); if( !defined $negative ) { my $msg = "Error! deps_parse() couldn't parse the negative Build-Depends '$negative_build_deps'"; $self->log_error("$msg\n"); $self->cleanup_apt_archive(); return 0; } # sbuild turns build dependencies into the dependencies of a dummy binary # package. Since binary package dependencies do not support :native the # architecture qualifier, these have to either be removed during native # compilation or replaced by the build (native) architecture during cross # building my $handle_native_archqual = sub { my ($dep) = @_; if ($dep->{archqual} && $dep->{archqual} eq "native") { if ($self->get('Host Arch') eq $self->get('Build Arch')) { $dep->{archqual} = undef; } else { $dep->{archqual} = $self->get('Build Arch'); } } return 1; }; deps_iterate($positive, $handle_native_archqual); deps_iterate($negative, $handle_native_archqual); $self->log("Merged Build-Depends: $positive\n") if $positive; $self->log("Merged Build-Conflicts: $negative\n") if $negative; # Filter out all but the first alternative except in special # cases. if (!$self->get_conf('RESOLVE_ALTERNATIVES')) { my $positive_filtered = Dpkg::Deps::AND->new(); foreach my $item ($positive->get_deps()) { my $alt_filtered = Dpkg::Deps::OR->new(); my @alternatives = $item->get_deps(); my $first = shift @alternatives; $alt_filtered->add($first) if defined $first; # Allow foo (rel x) | foo (rel y) as the only acceptable # form of alternative. i.e. where the package is the # same, but different relations are needed, since these # are effectively a single logical dependency. foreach my $alt (@alternatives) { if ($first->{'package'} eq $alt->{'package'}) { $alt_filtered->add($alt); } else { last; } } $positive_filtered->add($alt_filtered); } $positive = $positive_filtered; } if ($positive ne "") { print DUMMY_CONTROL 'Depends: ' . $positive . "\n"; } if ($negative ne "") { print DUMMY_CONTROL 'Conflicts: ' . $negative . "\n"; } $self->log("Filtered Build-Depends: $positive\n") if $positive; $self->log("Filtered Build-Conflicts: $negative\n") if $negative; print DUMMY_CONTROL <<"EOF"; Maintainer: Debian buildd-tools Developers Description: Dummy package to satisfy dependencies with apt - created by sbuild This package was created automatically by sbuild and should never appear on a real system. You can safely remove it. EOF close (DUMMY_CONTROL); foreach my $path ($dummy_pkg_dir . '/DEBIAN/control', $dummy_pkg_dir . '/DEBIAN', $dummy_pkg_dir, $dummy_archive_dir) { $session->run_command( { COMMAND => ['chown', $self->get_conf('BUILD_USER') . ':sbuild', $session->strip_chroot_path($path)], USER => 'root', DIR => '/' }); if ($?) { $self->log_error("E: Failed to set " . $self->get_conf('BUILD_USER') . ":sbuild ownership on $path\n"); return 0; } } #Now build the package: $session->run_command( { COMMAND => ['dpkg-deb', '--build', $session->strip_chroot_path($dummy_pkg_dir), $session->strip_chroot_path($dummy_deb)], USER => $self->get_conf('BUILD_USER'), PRIORITY => 0}); if ($?) { $self->log("Dummy package creation failed\n"); $self->cleanup_apt_archive(); return 0; } # Write the dummy dsc file. my $dummy_dsc_fh; if (!open($dummy_dsc_fh, '>', $dummy_dsc)) { $self->log_warning('Could not open ' . $dummy_dsc . ' for writing: ' . $!); $self->cleanup_apt_archive(); return 0; } print $dummy_dsc_fh <<"EOF"; Format: 1.0 Source: $dummy_pkg_name Binary: $dummy_pkg_name Architecture: any Version: 0.invalid.0 Maintainer: Debian buildd-tools Developers EOF if (scalar(@positive)) { print $dummy_dsc_fh 'Build-Depends: ' . join(", ", @positive) . "\n"; } if (scalar(@negative)) { print $dummy_dsc_fh 'Build-Conflicts: ' . join(", ", @negative) . "\n"; } if (scalar(@positive_arch)) { print $dummy_dsc_fh 'Build-Depends-Arch: ' . join(", ", @positive_arch) . "\n"; } if (scalar(@negative_arch)) { print $dummy_dsc_fh 'Build-Conflicts-Arch: ' . join(", ", @negative_arch) . "\n"; } if (scalar(@positive_indep)) { print $dummy_dsc_fh 'Build-Depends-Indep: ' . join(", ", @positive_indep) . "\n"; } if (scalar(@negative_indep)) { print $dummy_dsc_fh 'Build-Conflicts-Indep: ' . join(", ", @negative_indep) . "\n"; } print $dummy_dsc_fh "\n"; close $dummy_dsc_fh; # Do code to run apt-ftparchive if (!$self->run_apt_ftparchive()) { $self->log("Failed to run apt-ftparchive.\n"); $self->cleanup_apt_archive(); return 0; } # Sign the release file # This will only be done if the sbuild keys are present. # Once squeeze is not supported anymore, we want to never sign the # dummy repository anymore but instead make use of apt's support for # [trusted=yes] in wheezy and later. if ((-f $self->get_conf('SBUILD_BUILD_DEPENDS_SECRET_KEY')) && (-f $self->get_conf('SBUILD_BUILD_DEPENDS_PUBLIC_KEY')) && !$self->get_conf('APT_ALLOW_UNAUTHENTICATED')) { if (!$self->generate_keys()) { $self->log("Failed to generate archive keys.\n"); $self->cleanup_apt_archive(); return 0; } copy($self->get_conf('SBUILD_BUILD_DEPENDS_SECRET_KEY'), $dummy_archive_seckey) unless (-f $dummy_archive_seckey); copy($self->get_conf('SBUILD_BUILD_DEPENDS_PUBLIC_KEY'), $dummy_archive_pubkey) unless (-f $dummy_archive_pubkey); my @gpg_command = ('gpg', '--yes', '--no-default-keyring', '--homedir', $session->strip_chroot_path($dummy_gpghome), '--secret-keyring', $session->strip_chroot_path($dummy_archive_seckey), '--keyring', $session->strip_chroot_path($dummy_archive_pubkey), '--default-key', 'Sbuild Signer', '-abs', '-o', $session->strip_chroot_path($dummy_release_file) . '.gpg', $session->strip_chroot_path($dummy_release_file)); $session->run_command( { COMMAND => \@gpg_command, USER => $self->get_conf('BUILD_USER'), PRIORITY => 0}); if ($?) { $self->log("Failed to sign dummy archive Release file.\n"); $self->cleanup_apt_archive(); return 0; } } # Now, we'll add in any provided OpenPGP keys into the archive, so that # builds can (optionally) trust an external key for the duration of the # build. if (@{$self->get_conf('EXTRA_REPOSITORY_KEYS')}) { my $dummy_archive_key_file = $self->get('Dummy archive key file'); my ($tmpfh, $tmpfilename) = tempfile(DIR => $session->get('Location') . "/tmp"); # Right, so, in order to copy the keys into the chroot (since we may have # a bunch of them), we'll append to a tempfile, and write *all* of the # given keys to the same tempfile. After we're clear, we'll move that file # into the correct location by importing the .asc into a .gpg file. for my $repokey (@{$self->get_conf('EXTRA_REPOSITORY_KEYS')}) { debug("Adding archive key: $repokey\n"); if (!-f $repokey) { $self->log("Failed to add archive key '${repokey}' - it doesn't exist!\n"); $self->cleanup_apt_archive(); close($tmpfh); unlink $tmpfilename; return 0; } copy($repokey, $tmpfh); print $tmpfh "\n"; } close($tmpfh); # Now that we've concat'd all the keys into the chroot, we're going # to use GPG to import the keys into a single keyring. We've stubbed # out the secret ring and home to ensure we don't store anything # except for the public keyring. my $tmpgpghome = tempdir('extra-repository-keys' . '-XXXXXX', DIR => $session->get('Location') . "/tmp"); my @gpg_command = ('gpg', '--import', '--no-default-keyring', '--homedir', $session->strip_chroot_path($tmpgpghome), '--secret-keyring', '/dev/null', '--keyring', $session->strip_chroot_path($dummy_archive_key_file), $session->strip_chroot_path($tmpfilename)); $session->run_command( { COMMAND => \@gpg_command, USER => 'root', PRIORITY => 0}); if ($?) { $self->log("Failed to import archive keys to the trusted keyring"); $self->cleanup_apt_archive(); unlink $tmpfilename; return 0; } unlink $tmpfilename; } # Write a list file for the dummy archive if one not create yet. if (! -f $dummy_archive_list_file) { my ($tmpfh, $tmpfilename) = tempfile(DIR => $session->get('Location') . "/tmp"); # We always trust the dummy apt repositories. # This means that if SBUILD_BUILD_DEPENDS_{SECRET|PUBLIC}_KEY do not # exist and thus the dummy repositories do not get signed, apt will # still trust it. This allows one to run sbuild without generating # keys which is useful on machines with little randomness. # Older apt from squeeze will still require keys to be generated as it # ignores the trusted=yes. Older apt ignoring this is also why we can add # this unconditionally. print $tmpfh 'deb [trusted=yes] file://' . $session->strip_chroot_path($dummy_archive_dir) . " ./\n"; print $tmpfh 'deb-src [trusted=yes] file://' . $session->strip_chroot_path($dummy_archive_dir) . " ./\n"; for my $repospec (@{$self->get_conf('EXTRA_REPOSITORIES')}) { print $tmpfh "$repospec\n"; } close($tmpfh); # List file needs to be moved with root. $session->run_command( { COMMAND => ['chmod', '0644', $session->strip_chroot_path($tmpfilename)], USER => 'root', PRIORITY => 0}); if ($?) { $self->log("Failed to create apt list file for dummy archive.\n"); $self->cleanup_apt_archive(); unlink $tmpfilename; return 0; } $session->run_command( { COMMAND => ['mv', $session->strip_chroot_path($tmpfilename), $session->strip_chroot_path($dummy_archive_list_file)], USER => 'root', PRIORITY => 0}); if ($?) { $self->log("Failed to create apt list file for dummy archive.\n"); $self->cleanup_apt_archive(); unlink $tmpfilename; return 0; } unlink $tmpfilename; } if ((-f $self->get_conf('SBUILD_BUILD_DEPENDS_SECRET_KEY')) && (-f $self->get_conf('SBUILD_BUILD_DEPENDS_PUBLIC_KEY')) && !$self->get_conf('APT_ALLOW_UNAUTHENTICATED')) { # Add the generated key $session->run_command( { COMMAND => ['apt-key', 'add', $session->strip_chroot_path($dummy_archive_pubkey)], USER => 'root', PRIORITY => 0}); if ($?) { $self->log("Failed to add dummy archive key.\n"); $self->cleanup_apt_archive(); return 0; } } return 1; } # Remove the apt archive. sub cleanup_apt_archive { my $self = shift; my $session = $self->get('Session'); if (defined $self->get('Dummy package path')) { $session->run_command( { COMMAND => ['rm', '-fr', $session->strip_chroot_path($self->get('Dummy package path'))], USER => $self->get_conf('BUILD_USER'), DIR => '/' }); } $session->run_command( { COMMAND => ['rm', '-f', $session->strip_chroot_path($self->get('Dummy archive list file'))], USER => 'root', DIR => '/', PRIORITY => 0}); $session->run_command( { COMMAND => ['rm', '-f', $session->strip_chroot_path($self->get('Dummy archive key file'))], USER => 'root', DIR => '/', PRIORITY => 0}); $self->set('Dummy package path', undef); $self->set('Dummy archive directory', undef); $self->set('Dummy Release file', undef); } # Generate a key pair if not already done. sub generate_keys { my $self = shift; if ((-f $self->get_conf('SBUILD_BUILD_DEPENDS_SECRET_KEY')) && (-f $self->get_conf('SBUILD_BUILD_DEPENDS_PUBLIC_KEY'))) { return 1; } $self->log_error("Local archive GPG signing key not found\n"); $self->log_info("Please generate a key with 'sbuild-update --keygen'\n"); $self->log_info("Note that on machines with scarce entropy, you may wish ". "to generate the key with this command on another machine ". "and copy the public and private keypair to '" . $self->get_conf('SBUILD_BUILD_DEPENDS_PUBLIC_KEY') ."' and '". $self->get_conf('SBUILD_BUILD_DEPENDS_SECRET_KEY') ."'\n"); return 0; } # Function that runs apt-ftparchive sub run_apt_ftparchive { my $self = shift; my $session = $self->get('Session'); my $host = $self->get('Host'); my ($tmpfh, $tmpfilename) = tempfile(); my $dummy_archive_dir = $self->get('Dummy archive directory'); for my $deb (@{$self->get_conf('EXTRA_PACKAGES')}) { copy($deb, $dummy_archive_dir); } # Write the conf file. print $tmpfh <<"EOF"; Dir { ArchiveDir "$dummy_archive_dir"; }; Default { Packages::Compress ". gzip"; Sources::Compress ". gzip"; }; BinDirectory "$dummy_archive_dir" { Packages "Packages"; Sources "Sources"; }; APT::FTPArchive::Release::Origin "sbuild-build-depends-archive"; APT::FTPArchive::Release::Label "sbuild-build-depends-archive"; APT::FTPArchive::Release::Suite "invalid"; APT::FTPArchive::Release::Codename "invalid"; APT::FTPArchive::Release::Description "Sbuild Build Dependency Temporary Archive"; EOF close $tmpfh; # Remove APT_CONFIG environment variable here, restore it later. my $env = $self->get('Session')->get('Defaults')->{'ENV'}; my $apt_config_value = $env->{'APT_CONFIG'}; delete $env->{'APT_CONFIG'}; # Run apt-ftparchive to generate Packages and Sources files. $host->run_command( { COMMAND => ['apt-ftparchive', '-q=2', 'generate', $tmpfilename], USER => $self->get_conf('USERNAME'), PRIORITY => 0, DIR => '/'}); if ($?) { $env->{'APT_CONFIG'} = $apt_config_value; unlink $tmpfilename; return 0; } # Get output for Release file my $pipe = $host->pipe_command( { COMMAND => ['apt-ftparchive', '-q=2', '-c', $tmpfilename, 'release', $dummy_archive_dir], USER => $self->get_conf('USERNAME'), PRIORITY => 0, DIR => '/'}); if (!defined($pipe)) { $env->{'APT_CONFIG'} = $apt_config_value; unlink $tmpfilename; return 0; } $env->{'APT_CONFIG'} = $apt_config_value; # Write output to Release file path. my ($releasefh); if (!open($releasefh, '>', $self->get('Dummy Release file'))) { close $pipe; unlink $tmpfilename; return 0; } while (<$pipe>) { print $releasefh $_; } close $releasefh; close $pipe; # Remove config file. Note also removed on failure paths above. unlink $tmpfilename; return 1; } sub get_apt_command_internal { my $self = shift; my $options = shift; my $command = $options->{'COMMAND'}; my $apt_options = $self->get('APT Options'); debug2("APT Options: ", join(" ", @$apt_options), "\n") if defined($apt_options); my @aptcommand = (); if (defined($apt_options)) { push(@aptcommand, @{$command}[0]); push(@aptcommand, @$apt_options); if ($#$command > 0) { push(@aptcommand, @{$command}[1 .. $#$command]); } } else { @aptcommand = @$command; } debug2("APT Command: ", join(" ", @aptcommand), "\n"); $options->{'INTCOMMAND'} = \@aptcommand; } sub run_apt_command { my $self = shift; my $options = shift; my $session = $self->get('Session'); my $host = $self->get('Host'); # Set modfied command $self->get_apt_command_internal($options); if ($self->get('Split')) { return $host->run_command_internal($options); } else { return $session->run_command_internal($options); } } sub pipe_apt_command { my $self = shift; my $options = shift; my $session = $self->get('Session'); my $host = $self->get('Host'); # Set modfied command $self->get_apt_command_internal($options); if ($self->get('Split')) { return $host->pipe_command_internal($options); } else { return $session->pipe_command_internal($options); } } sub pipe_xapt_command { my $self = shift; my $options = shift; my $session = $self->get('Session'); my $host = $self->get('Host'); # Set modfied command $self->get_apt_command_internal($options); if ($self->get('Split')) { return $host->pipe_command_internal($options); } else { return $session->pipe_command_internal($options); } } sub get_aptitude_command_internal { my $self = shift; my $options = shift; my $command = $options->{'COMMAND'}; my $apt_options = $self->get('Aptitude Options'); debug2("Aptitude Options: ", join(" ", @$apt_options), "\n") if defined($apt_options); my @aptcommand = (); if (defined($apt_options)) { push(@aptcommand, @{$command}[0]); push(@aptcommand, @$apt_options); if ($#$command > 0) { push(@aptcommand, @{$command}[1 .. $#$command]); } } else { @aptcommand = @$command; } debug2("APT Command: ", join(" ", @aptcommand), "\n"); $options->{'INTCOMMAND'} = \@aptcommand; } sub run_aptitude_command { my $self = shift; my $options = shift; my $session = $self->get('Session'); my $host = $self->get('Host'); # Set modfied command $self->get_aptitude_command_internal($options); if ($self->get('Split')) { return $host->run_command_internal($options); } else { return $session->run_command_internal($options); } } sub pipe_aptitude_command { my $self = shift; my $options = shift; my $session = $self->get('Session'); my $host = $self->get('Host'); # Set modfied command $self->get_aptitude_command_internal($options); if ($self->get('Split')) { return $host->pipe_command_internal($options); } else { return $session->pipe_command_internal($options); } } 1; sbuild-0.67.0/lib/Sbuild/PaxHeaders.4860/ChrootRoot.pm0000644000000000000000000000013212565554441017207 xustar0030 mtime=1440143649.644952177 30 atime=1451044743.162752739 30 ctime=1451136984.169759989 sbuild-0.67.0/lib/Sbuild/ChrootRoot.pm0000644000175000017500000000262312565554441020032 0ustar00joschjosch00000000000000# # ChrootRoot.pm: Run commands on the root filesystem # Copyright © 2005 Ryan Murray # Copyright © 2005-2009 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package Sbuild::ChrootRoot; use strict; use warnings; use Sbuild::ChrootPlain; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::ChrootPlain); @EXPORT = qw(); } sub new { my $class = shift; my $conf = shift; my $self = $class->SUPER::new($conf, '/'); bless($self, $class); # There's no difference between split and unsplit when running on # the root filesystem. $self->set('Split', 0); return $self; } 1; sbuild-0.67.0/lib/PaxHeaders.4860/Buildd.pm0000644000000000000000000000013212627410514015055 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136984.097759894 sbuild-0.67.0/lib/Buildd.pm0000644000175000017500000001174512627410514015705 0ustar00joschjosch00000000000000#! /usr/bin/perl # # Buildd.pm: library for buildd and friends # Copyright © 1998 Roman Hodek # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### package Buildd; use strict; use warnings; use POSIX; use FileHandle; use Sbuild::LogBase; require Exporter; @Buildd::ISA = qw(Exporter); @Buildd::EXPORT = qw(unset_env lock_file unlock_file send_mail ll_send_mail exitstatus isin); $Buildd::lock_interval = 15; $Buildd::max_lock_trys = 120; ($Buildd::progname = $0) =~ s,.*/,,; my @pwinfo = getpwuid($>); $Buildd::username = $pwinfo[0]; $Buildd::gecos = $pwinfo[6]; $Buildd::gecos =~ s/,.*$//; $Buildd::hostname = `/bin/hostname -f`; $Buildd::hostname =~ /^(\S+)$/; $Buildd::hostname = $1; # untaint sub isin ($@); sub unset_env (); sub lock_file ($;$); sub unlock_file ($); sub send_mail ($$$;$); sub ll_send_mail ($$); sub exitstatus ($); sub isin ($@) { my $val = shift; return grep( $_ eq $val, @_ ); } sub unset_env () { # unset any locale variables (sorted to match output from locale(1)) delete $ENV{'LANG'}; delete $ENV{'LANGUAGE'}; delete $ENV{'LC_CTYPE'}; delete $ENV{'LC_NUMERIC'}; delete $ENV{'LC_TIME'}; delete $ENV{'LC_COLLATE'}; delete $ENV{'LC_MONETARY'}; delete $ENV{'LC_MESSAGES'}; delete $ENV{'LC_PAPER'}; delete $ENV{'LC_NAME'}; delete $ENV{'LC_ADDRESS'}; delete $ENV{'LC_TELEPHONE'}; delete $ENV{'LC_MEASUREMENT'}; delete $ENV{'LC_IDENTIFICATION'}; delete $ENV{'LC_ALL'}; # other unneeded variables that might be set delete $ENV{'DISPLAY'}; delete $ENV{'TERM'}; delete $ENV{'XDG_RUNTIME_DIR'}; delete $ENV{'XDG_SEAT'}; delete $ENV{'XDG_SESSION_COOKIE'}; delete $ENV{'XDG_SESSION_ID'}; delete $ENV{'XDG_VTNR'}; } sub lock_file ($;$) { my $file = shift; my $nowait = shift; my $lockfile = "$file.lock"; my $try = 0; my $username = (getpwuid($<))[0] || $ENV{'LOGNAME'} || $ENV{'USER'}; if (!defined($nowait)) { $nowait = 0; } repeat: if (!sysopen( F, $lockfile, O_WRONLY|O_CREAT|O_TRUNC|O_EXCL, 0644 )){ if ($! == EEXIST) { # lock file exists, wait goto repeat if !open( F, "<$lockfile" ); my $line = ; close( F ); # If this goes wrong it would be a spinlock and the world will # end. goto repeat if !defined( $line ); if ($line !~ /^(\d+)\s+([\w\d.-]+)$/) { warn "Bad lock file contents ($lockfile) -- still trying\n"; } else { my($pid, $user) = ($1, $2); my $cnt = kill( 0, $pid ); if ($cnt == 0 && $! == ESRCH) { # process doesn't exist anymore, remove stale lock warn "Removing stale lock file $lockfile ". " (pid $pid, user $user)\n"; unlink( $lockfile ); goto repeat; } elsif ($cnt >= 1 and $nowait == 1) { # process exists. return 0; } } if (++$try > $Buildd::max_lock_trys) { warn "Lockfile $lockfile still present after ". "$Buildd::max_lock_trys * $Buildd::lock_interval ". " seconds -- giving up\n"; return 0; } sleep $Buildd::lock_interval; goto repeat; } die "$Buildd::progname: Can't create lock file $lockfile: $!\n"; } F->print("$$ $username\n"); F->close(); return 1; } sub unlock_file ($) { my $file = shift; my $lockfile = "$file.lock"; unlink( $lockfile ); } sub send_mail ($$$;$) { my $addr = shift; my $subject = shift; my $text = shift; my $add_headers = shift; return ll_send_mail( $addr, "To: $addr\n". "Subject: $subject\n". "From: $Buildd::gecos ". "<$Buildd::username\@$Buildd::hostname>\n". ($add_headers ? $add_headers : ""). "\n$text\n" ); } sub ll_send_mail ($$) { my $to = shift; my $text = shift; local( *MAIL ); # TODO: Don't log to STDERR: Implement as class method using # standard pipe interface using normal log streams. $text =~ s/^\.$/../mg; local $SIG{'PIPE'} = 'IGNORE'; if (!open( MAIL, "|/usr/sbin/sendmail -oem '$to'" )) { print STDERR "Could not open pipe to /usr/sbin/sendmail: $!\n"; return 0; } print MAIL $text; if (!close( MAIL )) { print STDERR "sendmail failed (exit status ", exitstatus($?), ")\n"; return 0; } return 1; } sub exitstatus ($) { my $stat = shift; return ($stat >> 8) . "/" . ($stat % 256); } 1; sbuild-0.67.0/PaxHeaders.4860/db0000644000000000000000000000013212637513730013063 xustar0030 mtime=1451136984.265760116 30 atime=1451136984.349760227 30 ctime=1451136984.265760116 sbuild-0.67.0/db/0000755000175000017500000000000012637513730013760 5ustar00joschjosch00000000000000sbuild-0.67.0/db/PaxHeaders.4860/functions.sql0000644000000000000000000000013112565554441015674 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 29 ctime=1451136984.26176011 sbuild-0.67.0/db/functions.sql0000644000175000017500000001143212565554441016516 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2008-2009 Roger Leigh --- Copyright © 2008-2009 Marc 'HE' Brockschmidt --- Copyright © 2008-2009 Adeodato Simó --- --- 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, see --- . -- -- Triggers to insert missing sections and priorities -- CREATE OR REPLACE FUNCTION package_checkrel() RETURNS trigger AS $package_checkrel$ BEGIN PERFORM section FROM package_sections WHERE (section = NEW.section); IF FOUND = 'f' THEN INSERT INTO package_sections (section) VALUES (NEW.section); END IF; PERFORM pkg_prio FROM package_priorities WHERE (pkg_prio = NEW.pkg_prio); IF FOUND = 'f' THEN INSERT INTO package_priorities (pkg_prio) VALUES (NEW.pkg_prio); END IF; RETURN NEW; END; $package_checkrel$ LANGUAGE plpgsql; COMMENT ON FUNCTION package_checkrel () IS 'Check foreign key references (package sections and priorities) exist'; CREATE TRIGGER checkrel BEFORE INSERT OR UPDATE ON sources FOR EACH ROW EXECUTE PROCEDURE package_checkrel(); COMMENT ON TRIGGER checkrel ON sources IS 'Check foreign key references (package sections and priorities) exist'; CREATE TRIGGER checkrel BEFORE INSERT OR UPDATE ON binaries FOR EACH ROW EXECUTE PROCEDURE package_checkrel(); COMMENT ON TRIGGER checkrel ON binaries IS 'Check foreign key references (package sections and priorities) exist'; -- -- Triggers to insert missing package architectures -- CREATE OR REPLACE FUNCTION package_check_arch() RETURNS trigger AS $package_check_arch$ BEGIN PERFORM arch FROM package_architectures WHERE (arch = NEW.arch); IF FOUND = 'f' THEN INSERT INTO package_architectures (arch) VALUES (NEW.arch); END IF; RETURN NEW; END; $package_check_arch$ LANGUAGE plpgsql; COMMENT ON FUNCTION package_check_arch () IS 'Insert missing values into package_architectures (from NEW.arch)'; CREATE TRIGGER check_arch BEFORE INSERT OR UPDATE ON source_architectures FOR EACH ROW EXECUTE PROCEDURE package_check_arch(); COMMENT ON TRIGGER check_arch ON source_architectures IS 'Ensure foreign key references (arch) exist'; CREATE TRIGGER check_arch BEFORE INSERT OR UPDATE ON binaries FOR EACH ROW EXECUTE PROCEDURE package_check_arch(); COMMENT ON TRIGGER check_arch ON binaries IS 'Ensure foreign key references (arch) exist'; -- Triggers on build_status: -- - unconditionally update ctime -- - verify bin_nmu is a positive integer (and change 0 to NULL) -- - insert a record into status_history for every change in build_status CREATE OR REPLACE FUNCTION set_ctime() RETURNS trigger AS $set_ctime$ BEGIN NEW.ctime = CURRENT_TIMESTAMP; RETURN NEW; END; $set_ctime$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION check_bin_nmu_number() RETURNS trigger AS $check_bin_nmu_number$ BEGIN IF NEW.bin_nmu = 0 THEN NEW.bin_nmu = NULL; -- Avoid two values with same meaning ELSIF NEW.bin_nmu < 0 THEN RAISE EXCEPTION 'Invalid value for "bin_nmu" column: %', NEW.bin_nmu; END IF; RETURN NEW; END; $check_bin_nmu_number$ LANGUAGE plpgsql; CREATE TRIGGER check_bin_nmu BEFORE INSERT OR UPDATE ON build_status FOR EACH ROW EXECUTE PROCEDURE check_bin_nmu_number(); COMMENT ON TRIGGER check_bin_nmu ON build_status IS 'Ensure "bin_nmu" is a positive integer, or set it to NULL if 0'; CREATE TRIGGER set_or_update_ctime BEFORE INSERT OR UPDATE ON build_status FOR EACH ROW EXECUTE PROCEDURE set_ctime(); COMMENT ON TRIGGER set_or_update_ctime ON build_status IS 'Set or update the "ctime" column to now()'; CREATE OR REPLACE FUNCTION update_status_history() RETURNS trigger AS $update_status_history$ BEGIN INSERT INTO build_status_history (source, source_version, arch, suite, bin_nmu, user_name, builder, status, ctime) VALUES (NEW.source, NEW.source_version, NEW.arch, NEW.suite, NEW.bin_nmu, NEW.user_name, NEW.builder, NEW.status, NEW.ctime); RETURN NULL; END; $update_status_history$ LANGUAGE plpgsql; CREATE TRIGGER update_history AFTER INSERT OR UPDATE ON build_status FOR EACH ROW EXECUTE PROCEDURE update_status_history(); COMMENT ON TRIGGER update_history ON build_status IS 'Insert a record of the status change into build_status_history'; sbuild-0.67.0/db/PaxHeaders.4860/archive.sql0000644000000000000000000000013212565554441015306 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136984.257760106 sbuild-0.67.0/db/archive.sql0000644000175000017500000002225412565554441016133 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2008-2009 Roger Leigh --- Copyright © 2008-2009 Marc 'HE' Brockschmidt --- Copyright © 2008-2009 Adeodato Simó --- --- 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, see --- . CREATE TABLE architectures ( arch text CONSTRAINT arch_pkey PRIMARY KEY ); COMMENT ON TABLE architectures IS 'Architectures known by this wanna-build instance'; COMMENT ON COLUMN architectures.arch IS 'Architecture name'; CREATE TABLE suites ( suite text CONSTRAINT suite_pkey PRIMARY KEY, priority integer, depwait boolean DEFAULT 't', hidden boolean DEFAULT 'f' ); COMMENT ON TABLE suites IS 'Valid suites'; COMMENT ON COLUMN suites.suite IS 'Suite name'; COMMENT ON COLUMN suites.priority IS 'Sorting order (lower is higher priority)'; COMMENT ON COLUMN suites.depwait IS 'Automatically wait on dependencies?'; COMMENT ON COLUMN suites.hidden IS 'Hide suite from public view (e.g. for -security)?'; CREATE TABLE suite_arches ( suite text NOT NULL CONSTRAINT suite_arches_suite_fkey REFERENCES suites(suite), arch text NOT NULL CONSTRAINT suite_arches_arch_fkey REFERENCES architectures(arch), CONSTRAINT suite_arches_pkey PRIMARY KEY (suite, arch) ); COMMENT ON TABLE suite_arches IS 'List of architectures in each suite'; COMMENT ON COLUMN suite_arches.suite IS 'Suite name'; COMMENT ON COLUMN suite_arches.arch IS 'Architecture name'; CREATE TABLE components ( component text CONSTRAINT component_pkey PRIMARY KEY ); COMMENT ON TABLE components IS 'Valid archive components'; COMMENT ON COLUMN components.component IS 'Component name'; CREATE TABLE package_types ( type text CONSTRAINT pkg_tpe_pkey PRIMARY KEY ); COMMENT ON TABLE package_types IS 'Valid types for binary packages'; COMMENT ON COLUMN package_types.type IS 'Type name'; CREATE TABLE package_architectures ( arch text CONSTRAINT pkg_arch_pkey PRIMARY KEY ); COMMENT ON TABLE package_architectures IS 'Possible values for the Architecture field'; COMMENT ON COLUMN package_architectures.arch IS 'Architecture name'; CREATE TABLE package_priorities ( pkg_prio text CONSTRAINT pkg_pri_pkey PRIMARY KEY, prio_val integer DEFAULT 0 ); COMMENT ON TABLE package_priorities IS 'Valid package priorities'; COMMENT ON COLUMN package_priorities.pkg_prio IS 'Priority name'; COMMENT ON COLUMN package_priorities.prio_val IS 'Integer value for sorting priorities'; CREATE TABLE package_sections ( section text CONSTRAINT pkg_sect_pkey PRIMARY KEY ); COMMENT ON TABLE package_sections IS 'Valid package sections'; COMMENT ON COLUMN package_sections.section IS 'Section name'; CREATE TABLE sources ( source text NOT NULL, source_version debversion NOT NULL, component text CONSTRAINT source_comp_fkey REFERENCES components(component) ON DELETE CASCADE NOT NULL, section text CONSTRAINT source_section_fkey REFERENCES package_sections(section) NOT NULL, pkg_prio text CONSTRAINT source_pkg_prio_fkey REFERENCES package_priorities(pkg_prio) NOT NULL, maintainer text NOT NULL, build_dep text, build_dep_indep text, build_confl text, build_confl_indep text, stdver text, CONSTRAINT sources_pkey PRIMARY KEY (source, source_version) ); CREATE INDEX sources_pkg_idx ON sources (source); COMMENT ON TABLE sources IS 'Source packages common to all architectures (from Sources)'; COMMENT ON COLUMN sources.source IS 'Package name'; COMMENT ON COLUMN sources.source_version IS 'Package version number'; COMMENT ON COLUMN sources.component IS 'Archive component'; COMMENT ON COLUMN sources.section IS 'Package section'; COMMENT ON COLUMN sources.pkg_prio IS 'Package priority'; COMMENT ON COLUMN sources.maintainer IS 'Package maintainer name'; COMMENT ON COLUMN sources.build_dep IS 'Package build dependencies (architecture dependent)'; COMMENT ON COLUMN sources.build_dep_indep IS 'Package build dependencies (architecture independent)'; COMMENT ON COLUMN sources.build_confl IS 'Package build conflicts (architecture dependent)'; COMMENT ON COLUMN sources.build_confl_indep IS 'Package build conflicts (architecture independent)'; COMMENT ON COLUMN sources.stdver IS 'Debian Standards (policy) version number'; CREATE TABLE source_architectures ( source text NOT NULL, source_version debversion NOT NULL, arch text CONSTRAINT source_arch_arch_fkey REFERENCES package_architectures(arch) ON DELETE CASCADE NOT NULL, UNIQUE (source, source_version, arch), CONSTRAINT source_arch_source_fkey FOREIGN KEY (source, source_version) REFERENCES sources (source, source_version) ON DELETE CASCADE ); COMMENT ON TABLE source_architectures IS 'Source package architectures (from Sources)'; COMMENT ON COLUMN source_architectures.source IS 'Package name'; COMMENT ON COLUMN source_architectures.source_version IS 'Package version number'; COMMENT ON COLUMN source_architectures.arch IS 'Architecture name'; CREATE TABLE uploaders ( source text NOT NULL, source_version debversion NOT NULL, uploader text NOT NULL, UNIQUE (source, source_version, uploader), CONSTRAINT uploader_source_fkey FOREIGN KEY (source, source_version) REFERENCES sources (source, source_version) ON DELETE CASCADE ); COMMENT ON TABLE uploaders IS 'Uploader names for source packages'; COMMENT ON COLUMN uploaders.source IS 'Package name'; COMMENT ON COLUMN uploaders.source_version IS 'Package version number'; COMMENT ON COLUMN uploaders.uploader IS 'Uploader name and address'; CREATE TABLE binaries ( -- PostgreSQL won't allow "binary" as column name package text NOT NULL, version debversion NOT NULL, arch text CONSTRAINT bin_arch_fkey REFERENCES package_architectures(arch) ON DELETE CASCADE NOT NULL, source text NOT NULL, source_version debversion NOT NULL, section text CONSTRAINT bin_section_fkey REFERENCES package_sections(section) NOT NULL, type text CONSTRAINT bin_pkg_type_fkey REFERENCES package_types(type) NOT NULL, pkg_prio text CONSTRAINT bin_pkg_prio_fkey REFERENCES package_priorities(pkg_prio) NOT NULL, CONSTRAINT bin_pkey PRIMARY KEY (package, version, arch), CONSTRAINT bin_src_fkey FOREIGN KEY (source, source_version) REFERENCES sources (source, source_version) ON DELETE CASCADE ); COMMENT ON TABLE binaries IS 'Binary packages specific to single architectures (from Packages)'; COMMENT ON COLUMN binaries.package IS 'Binary package name'; COMMENT ON COLUMN binaries.version IS 'Binary package version number'; COMMENT ON COLUMN binaries.arch IS 'Architecture name'; COMMENT ON COLUMN binaries.source IS 'Source package name'; COMMENT ON COLUMN binaries.source_version IS 'Source package version number'; COMMENT ON COLUMN binaries.section IS 'Package section'; COMMENT ON COLUMN binaries.pkg_prio IS 'Package priority'; CREATE TABLE suite_sources ( source text NOT NULL, source_version debversion NOT NULL, suite text CONSTRAINT suite_sources_suite_fkey REFERENCES suites(suite) ON DELETE CASCADE NOT NULL, CONSTRAINT suite_sources_pkey PRIMARY KEY (source, suite), CONSTRAINT suite_sources_src_fkey FOREIGN KEY (source, source_version) REFERENCES sources (source, source_version) ON DELETE CASCADE ); CREATE INDEX suite_sources_src_ver_idx ON suite_sources (source, source_version); COMMENT ON TABLE suite_sources IS 'Source packages contained within a suite'; COMMENT ON COLUMN suite_sources.source IS 'Source package name'; COMMENT ON COLUMN suite_sources.source_version IS 'Source package version number'; COMMENT ON COLUMN suite_sources.suite IS 'Suite name'; CREATE TABLE suite_binaries ( package text NOT NULL, version debversion NOT NULL, arch text CONSTRAINT suite_bin_arch_fkey REFERENCES package_architectures(arch) ON DELETE CASCADE NOT NULL, suite text CONSTRAINT suite_bin_suite_fkey REFERENCES suites(suite) ON DELETE CASCADE NOT NULL, CONSTRAINT suite_bin_pkey PRIMARY KEY (package, arch, suite), CONSTRAINT suite_bin_bin_fkey FOREIGN KEY (package, version, arch) REFERENCES binaries (package, version, arch) ON DELETE CASCADE, CONSTRAINT suite_bin_suite_arch_fkey FOREIGN KEY (suite, arch) REFERENCES suite_arches (suite, arch) ON DELETE CASCADE ); CREATE INDEX suite_binaries_pkg_ver_idx ON suite_binaries (package, version); COMMENT ON TABLE suite_binaries IS 'Binary packages contained within a suite'; COMMENT ON COLUMN suite_binaries.package IS 'Binary package name'; COMMENT ON COLUMN suite_binaries.version IS 'Binary package version number'; COMMENT ON COLUMN suite_binaries.arch IS 'Architecture name'; COMMENT ON COLUMN suite_binaries.suite IS 'Suite name'; sbuild-0.67.0/db/PaxHeaders.4860/archive-data.sql0000644000000000000000000000013212565554441016215 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136984.257760106 sbuild-0.67.0/db/archive-data.sql0000644000175000017500000000623512565554441017043 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2008-2009 Roger Leigh --- Copyright © 2008-2009 Marc 'HE' Brockschmidt --- Copyright © 2008-2009 Adeodato Simó --- --- 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, see --- . INSERT INTO architectures (arch) VALUES ('alpha'), ('amd64'), ('arm'), ('armel'), ('hppa'), ('hurd-i386'), ('i386'), ('ia64'), ('m68k'), ('mips'), ('mipsel'), ('powerpc'), ('s390'), ('sparc'); INSERT INTO suites (suite, priority) VALUES ('oldstable', 1), ('stable', 1), ('testing', 2), ('unstable', 3), ('experimental', 4); INSERT INTO suites (suite, priority, depwait, hidden) VALUES ('oldstable-security', 1, 'f', 't'), ('stable-security', 1, 'f', 't'), ('testing-security', 2, 'f', 't'); INSERT INTO suite_arches (suite, arch) VALUES ('oldstable', 'alpha'), ('oldstable', 'amd64'), ('oldstable', 'arm'), ('oldstable', 'hppa'), ('oldstable', 'i386'), ('oldstable', 'ia64'), ('oldstable', 'mips'), ('oldstable', 'mipsel'), ('oldstable', 'powerpc'), ('oldstable', 's390'), ('oldstable', 'sparc'), ('stable', 'alpha'), ('stable', 'amd64'), ('stable', 'arm'), ('stable', 'armel'), ('stable', 'hppa'), ('stable', 'i386'), ('stable', 'ia64'), ('stable', 'mips'), ('stable', 'mipsel'), ('stable', 'powerpc'), ('stable', 's390'), ('stable', 'sparc'), ('testing', 'alpha'), ('testing', 'amd64'), ('testing', 'armel'), ('testing', 'hppa'), ('testing', 'i386'), ('testing', 'ia64'), ('testing', 'mips'), ('testing', 'mipsel'), ('testing', 'powerpc'), ('testing', 's390'), ('testing', 'sparc'), ('unstable', 'alpha'), ('unstable', 'amd64'), ('unstable', 'armel'), ('unstable', 'hppa'), ('unstable', 'i386'), ('unstable', 'ia64'), ('unstable', 'mips'), ('unstable', 'mipsel'), ('unstable', 'powerpc'), ('unstable', 's390'), ('unstable', 'sparc'), ('experimental', 'alpha'), ('experimental', 'amd64'), ('experimental', 'armel'), ('experimental', 'hppa'), ('experimental', 'i386'), ('experimental', 'ia64'), ('experimental', 'mips'), ('experimental', 'mipsel'), ('experimental', 'powerpc'), ('experimental', 's390'), ('experimental', 'sparc'); INSERT INTO components (component) VALUES ('main'), ('contrib'), ('non-free'); INSERT INTO package_types (type) VALUES ('deb'), ('udeb'); INSERT INTO package_priorities (pkg_prio, prio_val) VALUES ('required', 1), ('standard', 2), ('important', 3), ('optional', 4), ('extra', 5); sbuild-0.67.0/db/PaxHeaders.4860/Makefile.in0000644000000000000000000000013012637513665015212 xustar0030 mtime=1451136949.397714115 30 atime=1451136977.841751623 28 ctime=1451136984.2537601 sbuild-0.67.0/db/Makefile.in0000644000175000017500000003666512637513665016054 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2009 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am subdir = db ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(sqldir)" DATA = $(sql_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) sqldir = $(datadir)/wanna-build/postgresql/install SQL = \ archive-data.sql \ archive.sql \ build-data.sql \ build.sql \ functions.sql \ install.sql \ language.sql \ schema.sql sql_DATA = \ $(SQL) \ db.sql CLEANFILES = \ db.sql EXTRA_DIST = \ $(SQL) \ db.sql.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu db/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu db/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-sqlDATA: $(sql_DATA) @$(NORMAL_INSTALL) @list='$(sql_DATA)'; test -n "$(sqldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sqldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sqldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sqldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sqldir)" || exit $$?; \ done uninstall-sqlDATA: @$(NORMAL_UNINSTALL) @list='$(sql_DATA)'; test -n "$(sqldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sqldir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(sqldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-sqlDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-sqlDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-sqlDATA install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-sqlDATA db.sql: db.sql.in sqlpath=$$(echo "$(sqldir)"); \ sqlpath=$$(echo "$$sqlpath" | sed -e 's/\//\\\//g'); \ sed "s,SQL_PATHNAME,$$sqlpath,g" $< >$@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/db/PaxHeaders.4860/Makefile.am0000644000000000000000000000013012627410514015165 xustar0030 mtime=1449005388.459402735 30 atime=1451136876.801619086 28 ctime=1451136984.2537601 sbuild-0.67.0/db/Makefile.am0000644000175000017500000000236612627410514016016 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2009 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk sqldir = $(datadir)/wanna-build/postgresql/install SQL = \ archive-data.sql \ archive.sql \ build-data.sql \ build.sql \ functions.sql \ install.sql \ language.sql \ schema.sql sql_DATA = \ $(SQL) \ db.sql db.sql: db.sql.in sqlpath=$$(echo "$(sqldir)"); \ sqlpath=$$(echo "$$sqlpath" | sed -e 's/\//\\\//g'); \ sed "s,SQL_PATHNAME,$$sqlpath,g" $< >$@ CLEANFILES = \ db.sql EXTRA_DIST = \ $(SQL) \ db.sql.in sbuild-0.67.0/db/PaxHeaders.4860/build-data.sql0000644000000000000000000000013212565554441015673 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136984.257760106 sbuild-0.67.0/db/build-data.sql0000644000175000017500000000255012565554441016515 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2008-2009 Roger Leigh --- Copyright © 2008-2009 Marc 'HE' Brockschmidt --- Copyright © 2008-2009 Adeodato Simó --- --- 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, see --- . INSERT INTO package_states (name) VALUES ('build-attempted'), ('building'), ('built'), ('dep-wait'), ('dep-wait-removed'), ('failed'), ('failed-removed'), ('install-wait'), ('installed'), ('needs-build'), ('not-for-us'), ('old-failed'), ('reupload-wait'), ('state'), ('uploaded'); INSERT INTO build_log_result (result, is_success) VALUES ('maybe-failed', 'f'), ('maybe-successful', 't'), ('skipped', 'f'); sbuild-0.67.0/db/PaxHeaders.4860/language.sql0000644000000000000000000000013112565554441015447 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 29 ctime=1451136984.26176011 sbuild-0.67.0/db/language.sql0000644000175000017500000000251312565554441016271 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2008-2009 Roger Leigh --- Copyright © 2008-2009 Marc 'HE' Brockschmidt --- Copyright © 2008-2009 Adeodato Simó --- --- 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, see --- . CREATE OR REPLACE FUNCTION create_plpgsql_language () RETURNS TEXT AS $$ CREATE LANGUAGE plpgsql; SELECT 'language plpgsql created'::TEXT; $$ LANGUAGE SQL; SELECT CASE WHEN (SELECT 't'::boolean FROM pg_language WHERE lanname='plpgsql') THEN (SELECT 'language plpgsql already installed'::TEXT) ELSE (SELECT create_plpgsql_language()) END; DROP FUNCTION create_plpgsql_language(); sbuild-0.67.0/db/PaxHeaders.4860/db.sql.in0000644000000000000000000000013212565554441014657 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136984.265760116 sbuild-0.67.0/db/db.sql.in0000644000175000017500000000231212565554441015475 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2008-2009 Roger Leigh --- Copyright © 2008-2009 Marc 'HE' Brockschmidt --- Copyright © 2008-2009 Adeodato Simó --- --- 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, see --- . \i /usr/share/postgresql/8.3/contrib/debversion.sql SET search_path = public; \i SQL_PATHNAME/language.sql \i SQL_PATHNAME/schema.sql \i SQL_PATHNAME/archive.sql \i SQL_PATHNAME/build.sql \i SQL_PATHNAME/functions.sql \i SQL_PATHNAME/archive-data.sql \i SQL_PATHNAME/build-data.sql sbuild-0.67.0/db/PaxHeaders.4860/install.sql0000644000000000000000000000013112565554441015332 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 29 ctime=1451136984.26176011 sbuild-0.67.0/db/install.sql0000644000175000017500000000213512565554441016154 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2008-2009 Roger Leigh --- Copyright © 2008-2009 Marc 'HE' Brockschmidt --- Copyright © 2008-2009 Adeodato Simó --- --- 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, see --- . CREATE DATABASE "sbuild-packages" ENCODING 'UTF8'; COMMENT ON DATABASE "sbuild-packages" IS 'Debian source builder package state management'; \c "sbuild-packages" \i db.sql sbuild-0.67.0/db/PaxHeaders.4860/schema.sql0000644000000000000000000000013212565554441015125 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136984.265760116 sbuild-0.67.0/db/schema.sql0000644000175000017500000000210412565554441015742 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2009 Roger Leigh --- --- 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, see --- . CREATE TABLE schema ( version integer CONSTRAINT schema_pkey PRIMARY KEY, description text NOT NULL ); COMMENT ON TABLE schema IS 'Schema revision history'; COMMENT ON COLUMN schema.version IS 'Schema version'; COMMENT ON COLUMN schema.description IS 'Schema change description'; sbuild-0.67.0/db/PaxHeaders.4860/build.sql0000644000000000000000000000013212565554441014764 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136984.257760106 sbuild-0.67.0/db/build.sql0000644000175000017500000002133012565554441015603 0ustar00joschjosch00000000000000--- Debian Source Builder: Database Schema for PostgreSQL -*- sql -*- --- --- Copyright © 2008-2009 Roger Leigh --- Copyright © 2008-2009 Marc 'HE' Brockschmidt --- Copyright © 2008-2009 Adeodato Simó --- --- 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, see --- . CREATE TABLE builders ( builder text CONSTRAINT builder_pkey PRIMARY KEY, arch text CONSTRAINT builder_arch_fkey REFERENCES architectures(arch) NOT NULL, address text NOT NULL ); COMMENT ON TABLE builders IS 'buildd usernames (database users from _userinfo in old MLDBM db format)'; COMMENT ON COLUMN builders.builder IS 'Username'; COMMENT ON COLUMN builders.arch IS 'Buildd architecture'; COMMENT ON COLUMN builders.address IS 'Remote e-mail address of the buildd user'; CREATE TABLE package_states ( name text CONSTRAINT state_pkey PRIMARY KEY ); COMMENT ON TABLE package_states IS 'Package states'; COMMENT ON COLUMN package_states.name IS 'State name'; CREATE TABLE build_status ( source text NOT NULL, source_version debversion NOT NULL, arch text CONSTRAINT build_status_arch_fkey REFERENCES architectures(arch) ON DELETE CASCADE NOT NULL, suite text CONSTRAINT build_status_suite_fkey REFERENCES suites(suite) ON DELETE CASCADE NOT NULL, bin_nmu integer, user_name text NOT NULL DEFAULT CURRENT_USER, builder text -- Can be NULL in case of states set up manually by people. CONSTRAINT build_status_builder_fkey REFERENCES builders(builder), status text CONSTRAINT build_status_status_fkey REFERENCES package_states(name) NOT NULL, ctime timestamp with time zone NOT NULL DEFAULT 'epoch'::timestamp, CONSTRAINT build_status_pkey PRIMARY KEY (source, arch, suite), CONSTRAINT build_status_src_fkey FOREIGN KEY(source, source_version) REFERENCES sources(source, source_version) ON DELETE CASCADE, CONSTRAINT suite_bin_suite_arch_fkey FOREIGN KEY (suite, arch) REFERENCES suite_arches (suite, arch) ON DELETE CASCADE ); CREATE INDEX build_status_source ON build_status (source); COMMENT ON TABLE build_status IS 'Build status for each package'; COMMENT ON COLUMN build_status.source IS 'Source package name'; COMMENT ON COLUMN build_status.source_version IS 'Source package version number'; COMMENT ON COLUMN build_status.arch IS 'Architecture name'; COMMENT ON COLUMN build_status.suite IS 'Suite name'; COMMENT ON COLUMN build_status.bin_nmu IS 'Scheduled binary NMU version, if any'; COMMENT ON COLUMN build_status.user_name IS 'User making this change (username)'; COMMENT ON COLUMN build_status.builder IS 'Build dæmon making this change (username)'; COMMENT ON COLUMN build_status.status IS 'Status name'; COMMENT ON COLUMN build_status.ctime IS 'Stage change time'; CREATE TABLE build_status_history ( source text NOT NULL, source_version debversion NOT NULL, arch text CONSTRAINT build_status_history_arch_fkey REFERENCES architectures(arch) ON DELETE CASCADE NOT NULL, suite text CONSTRAINT build_status_history_suite_fkey REFERENCES suites(suite) ON DELETE CASCADE NOT NULL, bin_nmu integer, user_name text NOT NULL DEFAULT CURRENT_USER, builder text CONSTRAINT build_status_history_builder_fkey REFERENCES builders(builder), status text CONSTRAINT build_status_history_status_fkey REFERENCES package_states(name) NOT NULL, ctime timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX build_status_history_source ON build_status_history (source); CREATE INDEX build_status_history_ctime ON build_status_history (ctime); COMMENT ON TABLE build_status_history IS 'Build status history for each package'; COMMENT ON COLUMN build_status_history.source IS 'Source package name'; COMMENT ON COLUMN build_status_history.source_version IS 'Source package version number'; COMMENT ON COLUMN build_status_history.arch IS 'Architecture name'; COMMENT ON COLUMN build_status_history.suite IS 'Suite name'; COMMENT ON COLUMN build_status_history.bin_nmu IS 'Scheduled binary NMU version, if any'; COMMENT ON COLUMN build_status_history.user_name IS 'User making this change (username)'; COMMENT ON COLUMN build_status_history.builder IS 'Build dæmon making this change (username)'; COMMENT ON COLUMN build_status_history.status IS 'Status name'; COMMENT ON COLUMN build_status_history.ctime IS 'Stage change time'; CREATE TABLE build_status_properties ( source text NOT NULL, arch text NOT NULL, source suite NOT NULL, prop_name text NOT NULL, prop_value text NOT NULL, CONSTRAINT build_status_properties_fkey FOREIGN KEY(source, arch) REFERENCES build_status(id) ON DELETE CASCADE, CONSTRAINT build_status_properties_unique UNIQUE (source, arch, prop_name) ); COMMENT ON TABLE build_status_properties IS 'Additional package-specific properties (e.g. For PermBuildPri/BuildPri/Binary-NMU-(Version|ChangeLog)/Notes)'; COMMENT ON COLUMN build_status_properties.source IS 'Source package name'; COMMENT ON COLUMN build_status_properties.arch IS 'Architecture name'; COMMENT ON COLUMN build_status_properties.suite IS 'Suite name'; COMMENT ON COLUMN build_status_properties.prop_name IS 'Property name'; COMMENT ON COLUMN build_status_properties.prop_value IS 'Property value'; -- Make this a table because in the future we may have more fine-grained -- result states. CREATE TABLE build_log_result ( result text CONSTRAINT build_log_result_pkey PRIMARY KEY, is_success boolean DEFAULT 'f' ); COMMENT ON TABLE build_log_result IS 'Possible results states of a build log'; COMMENT ON COLUMN build_log_result.result IS 'Meaningful and short name for the result'; COMMENT ON COLUMN build_log_result.is_success IS 'Whether the result of the build is successful'; CREATE TABLE build_logs ( source text NOT NULL, source_version debversion NOT NULL, arch text CONSTRAINT build_logs_arch_fkey REFERENCES architectures(arch) NOT NULL, suite text CONSTRAINT build_logs_suite_fkey REFERENCES suites(suite) NOT NULL, date timestamp with time zone NOT NULL, result text CONSTRAINT build_logs_result_fkey REFERENCES build_log_result(result) NOT NULL, build_time interval, used_space integer, path text CONSTRAINT build_logs_pkey PRIMARY KEY ); CREATE INDEX build_logs_source_idx ON build_logs (source); COMMENT ON TABLE build_logs IS 'Available build logs'; COMMENT ON COLUMN build_logs.source IS 'Source package name'; COMMENT ON COLUMN build_logs.source_version IS 'Source package version'; COMMENT ON COLUMN build_logs.arch IS 'Architecture name'; COMMENT ON COLUMN build_logs.suite IS 'Suite name'; COMMENT ON COLUMN build_logs.date IS 'Date of the log'; COMMENT ON COLUMN build_logs.result IS 'Result state'; COMMENT ON COLUMN build_logs.build_time IS 'Time needed by the build'; COMMENT ON COLUMN build_logs.used_space IS 'Space needed by the build'; COMMENT ON COLUMN build_logs.path IS 'Relative path to the log file'; CREATE TABLE log ( time timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP, username text NOT NULL DEFAULT CURRENT_USER, message text NOT NULL ); CREATE INDEX log_idx ON log (time); COMMENT ON TABLE log IS 'Log messages'; COMMENT ON COLUMN log.time IS 'Log entry time'; COMMENT ON COLUMN log.username IS 'Log user name'; COMMENT ON COLUMN log.message IS 'Log entry message'; CREATE TABLE people ( login text CONSTRAINT people_pkey PRIMARY KEY, full_name text NOT NULL, address text NOT NULL ); COMMENT ON TABLE people IS 'People wanna-build should know about'; COMMENT ON COLUMN people.login IS 'Debian login'; COMMENT ON COLUMN people.full_name IS 'Full name'; COMMENT ON COLUMN people.address IS 'E-mail address'; CREATE TABLE buildd_admins ( builder text CONSTRAINT buildd_admin_builder_fkey REFERENCES builders(builder) ON DELETE CASCADE NOT NULL, admin text CONSTRAINT buildd_admin_admin_fkey REFERENCES people(login) ON DELETE CASCADE NOT NULL, backup boolean DEFAULT 'f', UNIQUE (builder, admin) ); COMMENT ON TABLE buildd_admins IS 'Admins for each buildd'; COMMENT ON COLUMN buildd_admins.builder IS 'The buildd'; COMMENT ON COLUMN buildd_admins.admin IS 'The admin login'; COMMENT ON COLUMN buildd_admins.backup IS 'Whether this is only a backup admin'; sbuild-0.67.0/PaxHeaders.4860/lisp0000644000000000000000000000013212361663370013445 xustar0030 mtime=1405576952.305596564 30 atime=1451136984.349760227 30 ctime=1451136983.925759666 sbuild-0.67.0/lisp/0000755000175000017500000000000012361663370014342 5ustar00joschjosch00000000000000sbuild-0.67.0/lisp/PaxHeaders.4860/buildd-reply.el0000644000000000000000000000013212361663370016440 xustar0030 mtime=1405576952.305596564 30 atime=1451044743.162752739 30 ctime=1451136983.925759666 sbuild-0.67.0/lisp/buildd-reply.el0000644000175000017500000003144112361663370017263 0ustar00joschjosch00000000000000;;;!/bin/sh -e ;;; ;;; buildd-reply.el: Some utility functions to reply to buildd mails ;;; Copyright © 1998 Roman Hodek ;;; ;;; 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, see ;;; . ;;; ;;; This file is not part of GNU Emacs. (defun buildd-prepare-mail (label send-now &rest ins) (if label (rmail-set-label label t)) (rmail-reply t) (goto-char (point-max)) (while ins (insert (car ins)) (setq ins (cdr ins))) (if send-now (mail-send-and-exit nil))) ;; Reply to buildd logs with a signed .changes file (which must be ;; extracted from the mail) (defun buildd-reply-ok () (interactive) (save-excursion (let (beg end str) (goto-char (point-max)) (if (not (re-search-backward "^[^ ]*\\.changes:$")) (error "Can't find .changes: line")) (forward-line 1) (beginning-of-line) (setq beg (point)) (if (not (re-search-forward "^Files: $")) (error "Can't find Files: line")) (beginning-of-line) (forward-line 1) (while (looking-at "^ ") (forward-line 1)) (setq end (point)) (setq str (buffer-substring beg end)) (rmail-set-label "ok" t) (rmail-reply t) (goto-char (point-max)) (setq beg (point)) (insert str) (goto-char (point-max)) (setq end (point)) (mc-sign-region 0 beg end) (mail-send-and-exit nil)))) (defun buildd-reply-newversion () (interactive) (save-excursion (let (str) (goto-char (point-min)) (if (not (re-search-forward "only different version \\([^ ]*\\) found")) (error "Can't find version")) (setq str (buffer-substring (match-beginning 1) (match-end 1))) (buildd-prepare-mail "newv" t "newvers " str "\n")))) (defun buildd-reply-retry () (interactive) (save-excursion (buildd-prepare-mail "retry" t "retry\n"))) (defun buildd-reply-depretry () (interactive) (save-excursion (let ((deps "")) (goto-char (point-min)) (while (re-search-forward "^E: Package \\([^ ]*\\) has no installation candidate$" (point-max) t) (if (> (length deps) 0) (setq deps (concat deps ", "))) (setq deps (concat deps (buffer-substring (match-beginning 1) (match-end 1))))) (goto-char (point-min)) (while (re-search-forward "^E: Couldn't find package \\([^ ]*\\)$" (point-max) t) (if (> (length deps) 0) (setq deps (concat deps ", "))) (setq deps (concat deps (buffer-substring (match-beginning 1) (match-end 1))))) (goto-char (point-min)) (if (re-search-forward "^After installing, the following source dependencies" (point-max) t) (progn (forward-line 1) (while (re-search-forward "\\([^ (]*\\)(inst [^ ]* ! \\([<>=]*\\) wanted \\([^ ]*\\))" (point-max) t) (if (> (length deps) 0) (setq deps (concat deps ", "))) (setq deps (concat deps (buffer-substring (match-beginning 1) (match-end 1)) " (" (buffer-substring (match-beginning 2) (match-end 2)) " " (buffer-substring (match-beginning 3) (match-end 3)) ")"))))) (buildd-prepare-mail "dretry" nil "dep-retry " deps "\n") (forward-line -1) (end-of-line)))) (defun buildd-reply-giveback () (interactive) (save-excursion (buildd-prepare-mail "giveback" t "giveback\n"))) (defun buildd-reply-notforus () (interactive) (save-excursion (buildd-prepare-mail "not-for-us" t "not-for-us\n"))) (defun buildd-reply-manual () (interactive) (save-excursion (buildd-prepare-mail "manual" t "manual\n"))) (defun buildd-reply-purge () (interactive) (save-excursion (buildd-prepare-mail "purge" t "purge\n"))) (defun buildd-reply-fail () (interactive) (save-excursion (buildd-prepare-mail "failed" nil "fail\n") (goto-char (point-max)))) (defvar buildd-log-base-addr "http://m68k.debian.org/buildd/logs/") (defun buildd-bug () (interactive) (save-excursion (let (pkgv pkg vers dist time) (goto-char (point-min)) (if (not (re-search-forward "^Subject: Log for .* build of \\([^ ][^ ]*\\)_\\([^ ][^ ]*\\) (dist=\\([a-z]*\\))")) (error "Can't find package+version in subject")) (setq pkg (buffer-substring (match-beginning 1) (match-end 1)) vers (buffer-substring (match-beginning 2) (match-end 2)) dist (buffer-substring (match-beginning 3) (match-end 3))) (setq pkgv (concat pkg "_" vers)) (if (not (re-search-forward "^Build started at \\([0-9-]*\\)")) (error "Can't find package+version in subject")) (setq time (buffer-substring (match-beginning 1) (match-end 1))) (rmail-set-label "bug" t) (rmail-mail) (goto-char (point-min)) (end-of-line) (insert "submit@bugs.debian.org") (forward-line 1) (end-of-line) (insert (concat pkgv "(" dist "): ")) (goto-char (point-max)) (insert (concat "Package: " pkg "\nVersion: " vers "\nSeverity: important\n\n\n" "A complete build log can be found at\n" buildd-log-base-addr pkgv "_" time "\n")) (goto-char (point-min)) (forward-line 1) (end-of-line)))) (defvar buildd-mail-addr "buildd") (defun buildd-bug-ack-append (edit-addr) (interactive "P") (save-excursion (let (bugno pkgv pkg vers dist beg end) (goto-char (point-min)) (if (not (re-search-forward "^Subject: Bug#\\([0-9]*\\): Acknowledgement (\\([^ ][^ ]*\\)_\\([^ ][^ ]*\\)(\\([a-z]*\\)): ")) (error "Can't find bug#, package+version, and/or dist in subject")) (setq bugno (buffer-substring (match-beginning 1) (match-end 1)) pkg (buffer-substring (match-beginning 2) (match-end 2)) vers (buffer-substring (match-beginning 3) (match-end 3)) dist (buffer-substring (match-beginning 4) (match-end 4))) (setq pkgv (concat pkg "_" vers)) (rmail-mail) (goto-char (point-min)) (end-of-line) (insert buildd-mail-addr) (forward-line 1) (end-of-line) (insert (concat "Re: Log for failed build of " pkgv " (dist=" dist ")")) (goto-char (point-max)) (insert (concat "fail\n(see #" bugno ")\n")) (if (null edit-addr) (mail-send-and-exit nil) (progn (goto-char (point-min)) (forward-word 2) (forward-word -1)))))) (defun buildd-bug-comment () (interactive) (save-excursion (let (pkgv pkg vers dist) (goto-char (point-min)) (if (not (re-search-forward "^Subject: \\(Re:[ ]*\\)?Bug#\\([0-9]*\\): \\([^ ][^ ]*\\)_\\([^ ][^ ]*\\)(\\([a-z]*\\)")) (error "Can't find bug#, package+version, and/or dist in subject")) (setq pkg (buffer-substring (match-beginning 3) (match-end 3)) vers (buffer-substring (match-beginning 4) (match-end 4)) dist (buffer-substring (match-beginning 5) (match-end 5))) (setq pkgv (concat pkg "_" vers)) (rmail-mail) (goto-char (point-min)) (end-of-line) (insert buildd-mail-addr) (forward-line 1) (end-of-line) (insert (concat "Re: Log for failed build of " pkgv " (dist=" dist ")")) (goto-char (point-max)) (insert "fail\n") (call-process "date" nil t nil "+%m/%d/%y") (forward-char -1) (insert ": ")))) (defun buildd-bug-change-category (edit-addr) (interactive "P") (save-excursion (let (cat pkgv pkg vers dist) (goto-char (point-min)) (if (not (re-search-forward "^Subject: \\(Re:[ ]*\\)?Bug#\\([0-9]*\\): \\([^ ][^ ]*\\)_\\([^ ][^ ]*\\)(\\([a-z]*\\)")) (error "Can't find bug#, package+version, and/or dist in subject")) (setq pkg (buffer-substring (match-beginning 3) (match-end 3)) vers (buffer-substring (match-beginning 4) (match-end 4)) dist (buffer-substring (match-beginning 5) (match-end 5))) (setq pkgv (concat pkg "_" vers)) (setq cat (completing-read "New bug category: " (mapcar (function (lambda (x) (cons x t))) '("fix-expected" "reminder-sent" "nmu-offered" "easy" "medium" "hard" "compiler-error" "uploaded-fixed-pkg")) nil t nil)) (rmail-mail) (goto-char (point-min)) (end-of-line) (insert buildd-mail-addr) (forward-line 1) (end-of-line) (insert (concat "Re: Log for failed build of " pkgv " (dist=" dist ")")) (goto-char (point-max)) (insert (concat "fail\n[" cat "]\n")) (if (null edit-addr) (mail-send-and-exit nil) (progn (goto-char (point-min)) (forward-word 2) (forward-word -1)))))) (defun buildd-reopen-bug (bugno) (interactive "nBug Number: ") (save-excursion (rmail-set-label "bug" t) (rmail-mail) (goto-char (point-min)) (end-of-line) (insert (concat "control@bugs.debian.org, " bugno "@bugs.debian.org")) (forward-line 1) (end-of-line) (insert (concat "Re: Bug#" bugno ": ")) (goto-char (point-max)) (insert (concat "reopen " bugno "\nstop\n\n")))) (defvar manual-source-deps-file-pattern "wanna-build/andrea/madd_sd-") ;; Used by buildd-edit-manual-source-deps. (defun buildd-find-place-for-new-source-dep (package) (let ((this-package "") (found-place nil)) (beginning-of-buffer) ; Skip the comments and jump to the source deps (re-search-forward "^[a-zA-Z0-9]* => ") (beginning-of-line) (forward-line -1) ; Find the first higher (alphabetically later) package name (while (and (< (point) (point-max)) (not found-place)) (progn (re-search-forward "^\\([^=|]*[ \t]*|[ \t]*\\)?\\([a-zA-Z0-9.+-]*\\) => ") (setq this-package (buffer-substring (match-beginning 2) (match-end 2))) (if (string-lessp package this-package) (setq found-place t)))) ; Should never happen (assuming no source package is > `zephyr') (if (not found-place) (error "Couldn't find place for package %s" package)) ; Insert the package name, ready for the user to add the first source dep (beginning-of-line) (insert (format "%s => \n" package)) (forward-char -1))) ;; Brings up a buffer with source-dependencies.manual file in it and ;; jumps to the right place. (defun buildd-edit-manual-source-deps () (interactive) (save-excursion (goto-char (point-min)) (if (not (re-search-forward "Subject: Log for \\(failed\\|successful\\) build of \\([a-zA-Z0-9.+-]*\\)_[^ ]* (dist=\\([a-z]*\\)")) (error "Can't find valid subject")) (setq package (buffer-substring (match-beginning 2) (match-end 2))) (setq dist (buffer-substring (match-beginning 3) (match-end 3)))) (setq buf (find-file-noselect (concat manual-source-deps-file-pattern dist))) (pop-to-buffer buf) (goto-char (point-min)) (if (re-search-forward (format "^\\([^=|]*[ \t]*|[ \t]*\\)?%s => " package) nil t) (progn (end-of-line) (insert ", ")) (buildd-find-place-for-new-source-dep package))) (defvar manual-sd-map-file "wanna-build/andrea/sd_map-unstable") (defun buildd-add-sd-map (package) (interactive "sMap: ") (if (not (string= (substring (buffer-name) 0 7) "sd_map-")) (progn (setq buf (find-file-noselect manual-sd-map-file)) (pop-to-buffer buf))) (goto-char (point-min)) (goto-char (point-min)) (if (re-search-forward (format "^\\([^=|]*[ \t]*|[ \t]*\\)?%s => " package) nil t) (progn (end-of-line) (insert ", ")) (buildd-find-place-for-new-source-dep package))) (require 'rmail) (add-hook 'rmail-mode-hook (lambda () (define-key rmail-mode-map "\C-c\C-o" 'buildd-reply-ok) (define-key rmail-mode-map "\C-c\C-n" 'buildd-reply-newversion) (define-key rmail-mode-map "\C-c\C-r" 'buildd-reply-retry) (define-key rmail-mode-map "\C-c\C-d" 'buildd-reply-depretry) (define-key rmail-mode-map "\C-c\C-m" 'buildd-reply-manual) (define-key rmail-mode-map "\C-c\C-p" 'buildd-reply-purge) (define-key rmail-mode-map "\C-c\C-f" 'buildd-reply-fail) (define-key rmail-mode-map "\C-c\M-g" 'buildd-reply-giveback) (define-key rmail-mode-map "\C-c\M-n" 'buildd-reply-notforus) (define-key rmail-mode-map "\C-c\C-s" 'buildd-edit-manual-source-deps) (define-key rmail-mode-map "\C-c\C-b" 'buildd-bug) (define-key rmail-mode-map "\C-c\M-b" 'buildd-reopen-bug) (define-key rmail-mode-map "\C-c\C-a\C-n" 'buildd-bug-ack-append) (define-key rmail-mode-map "\C-c\C-a\C-a" 'buildd-bug-comment) (define-key rmail-mode-map "\C-c\C-a\C-c" 'buildd-bug-change-category))) (global-set-key "\C-c\C-v" 'buildd-add-sd-map) sbuild-0.67.0/PaxHeaders.4860/ChangeLog-buildd0000644000000000000000000000013212361663370015566 xustar0030 mtime=1405576952.281596563 30 atime=1451044743.162752739 30 ctime=1451136983.925759666 sbuild-0.67.0/ChangeLog-buildd0000644000175000017500000005171512361663370016417 0ustar00joschjosch000000000000002008-01-06 Roger Leigh * wanna-build.conf.local: Remove. * wanna-build.conf: Update with a complete list of settings, including those from wanna-build.conf.local, removing unused variables. * wanna-build: Use WannaBuild::Conf. Check if $conf::log_mail is defined. * do-merge-quinn: Use WannaBuild::Conf. Check if $conf::stat_mail is defined. * do-merge-packages: Use WannaBuild::Conf. * WannaBuild/Conf.pm: Module to load wanna-build.conf, created from common code in wanna-build and do-merge-*, modelled on Sbuild::Conf. This contains a complete list of default settings. 2008-01-06 Roger Leigh * Replace all references to /var/debbuild (or /var/state/debbuild or /usr/local/var/debbuild) with /var/lib/wanna-build for FHS compliance. * Initial buildd packaging. * abort-current-build: Re-add. * buildd: Log command-line arguments. Thanks to Florian Lohoff. Use --auto-give-back arguments correctly with newer sbuild option parser. Thanks to Florian Lohoff. * wanna-build: Move @distributions and %dist_order into conf package. Thanks to Florian Lohoff. * wanna-build.conf: Add @distributions and %dist_order. 2007-02-03 Roger Leigh * README.chroot-building: Refer to modern buildd chroot creation script in README.chroot-building. Merge from upstream SVN cset 106. 2007-02-03 Roger Leigh * wb-ssh-wrapper: New file. Merge from upstream SVN cset 105. 2007-02-03 Roger Leigh * buildd-make-chroot: Fix typos, and add some additional setup that the debootstrap backport on d.o doesn't currently do. Merge from upstream SVN cset 104. 2007-02-03 Roger Leigh * buildd-uploader: Really fix for new dpkg. Merge from upstream SVN cset 103. 2007-02-03 Roger Leigh * buildd-uploader: Update version regexes for new dpkg. Merge from upstream SVN cset 102. 2007-02-03 Roger Leigh * wanna-build-catdb: Rename from catdb. * buildd-vlog: Rename from vlog. * buildd-update-chroots: Rename from update_chroot. 2007-02-03 Roger Leigh * buildd-make-chroot: Merge from upstream SVN cset 101. 2006-08-26 Roger Leigh * debian/changelog: Initial version. * debian/control: Update package descriptions. * debian/copyright: Update with new download location and maintainers. * debian/sbuild.postinst: Remove. 2006-08-01 Roger Leigh * ChangeLog: New file. Generate from subversion history. 2006-06-09 Roger Leigh * Remove sbuild package. 2006-06-09 Roger Leigh * Remove files already in the sbuild package. 2006-06-06 Ryan Murray * fix typo detected by lintian 2006-03-18 Ryan Murray * complain on _all.udeb files built when they shouldn't be, too. 2006-02-24 Ryan Murray * Remove \n from pkg_file filename, pointed out by rleigh@d.o 2006-02-24 Ryan Murray * Update svn:ignore for everything a debian package build produces 2006-02-17 Ryan Murray * Remove \n from strftime calls. Suggested by bod@d.o after going over the sbuild segfault on mips and arm in gdb. 2006-02-13 Ryan Murray * save some backtracking. Thanks to bod@d.o 2006-01-30 Ryan Murray * add DEBIAN_FRONTEND to sudoers example defaults 2006-01-30 Ryan Murray * As buildd-uploader now calls dupload with a single changes file, any error return from dupload most likely means that the job failed, so we treat it as such. 2006-01-30 Ryan Murray * Add comments of the needed sudoers entries, including Defaults entry needed for the stable security update 2006-01-08 Ryan Murray * Fix to delete symlinks, too 2006-01-08 Ryan Murray * update version 2006-01-08 Ryan Murray * setup_system: don't bother with /etc/source-dependencies-* anymore * sbuild.postinst: remove obsolete /etc/source-dependencies-* files. 2006-01-08 Ryan Murray * remove unmaintained rbuilder 2006-01-08 Ryan Murray * don't install update-sourcedeps in the sbuild package anymore 2006-01-08 Ryan Murray * make existance of source-dependencies optional * move username to end of su command 2005-12-12 Ryan Murray * make the sources.list more column-ized, use the mirror specified for initial install in the generated sources.list, fix up security related entries. 2005-12-02 Ryan Murray * remove Binary-NMU fields when a Dep-Wait'd package has a new sourceful version uploaded. 2005-11-29 Ryan Murray * Fix Revision output to just have the revision * Forget binNMU info when a new source comes along. * Warn on packages that are in state Installed, but the version installed is less than the source version in w-b. * If a package is in state Installed, but it doesn't have binaries from the current source version in parse_quinn, also move to Needs-Build. 2005-11-28 Ryan Murray * watch for EOF from STDIN when reading failure messages * update the source version if it's less than the packages in parse_packages (fixing the "why does that buildd build what was uploaded with the source?" problem) 2005-11-23 Ryan Murray * Fix duplicate copy of binNMU_version function for new versioning 2005-11-15 Ryan Murray * (sbuild): Delete binary-all packages that we didn't ask to be built. * (buildd): specify a username when asking what's to be built (needs new wanna-build) * (wanna-build): store last seen timestamp for each buildd * update changelog version 2005-11-15 Ryan Murray * Include more setup commands. Lay out chroot's by codename, for future auto suite-switching code (hopefully for etch release) 2005-11-15 Ryan Murray * change defaults for security to use security-master 2005-11-15 Ryan Murray * move parse_date here from wanna-build binary. * change binNMU numbering to be {sourceversion}+b{binNMUnumber} 2005-11-04 Ryan Murray * add pwd infront of target if not specified, so the fstab entries will always work 2005-10-13 Ryan Murray * fix typo of database name 2005-10-12 Ryan Murray * fix already building binNMU error message output what database w-b is running on when run with -v on the version line 2005-10-11 Ryan Murray * Add regex for failure to connect to the ssh socket for newer openssh versions 2005-10-11 Ryan Murray * Add optional admin_users array that lists which users are allowed to use overall database admin commands such as --merge-*, --import, and --manual-edit * Ensure to-be registered binNMU version is newer than the currently installed version. 2005-10-03 Ryan Murray * Fix broken pkg_version_eq calls 2005-10-02 Ryan Murray * (wanna-build): add support for storing binary NMUs in the wanna-build db with --binNMU=# where # is the binNMU number to create. You will be asked for the changelog entry if not specified with -m. The Version field of the database entry will always track the source version from the sources files now, rather than the Packages files. Version numbers for binNMUs can be specified as either the source version, or the full binNMU version number. * (buildd): add support for taking binNMUs from wanna-build, passing them to sbuild, and adding them to REDO. Older buildds will delete binNMU redo lines from the redo file as being invalid, and will take binNMUs, but not attempt to build them. BinNMUs are scheduled ahead of regular builds, and are always taken one-at-a-time, like weak_no_autobuild. binNMUs show in the logfile as !#!pkg_ver, where # is the binNMU version number. * (sbuild): Add REDO support for binNMUs. binNMU packages will only appear in the progress file as their binNMU version number while actually building, so buildd-vlog continues to work. Otherwise, it will be the source version. * (buildd-uploader): Large rewrite to work better for buildds with slow or intermittent links. The logfile is no longer locked the whole time buildd-uploader runs, so mail can still be processed. Each package is uploaded in a seperate dupload process, and wanna-build state updated right after the upload is successful. This also has the effect that one stalled upload will not prevent attempts at uploading the other packages. Ensure that no more than one buildd-uploader can run at once; previously, after 15 minutes, buildd-uploader would run anyways, possibly uploading duplicates. Take distribution field from changes files, rather than requiring the distribution field to be in a hardcoded list. * (buildd): removed stats generation for build time. * (sbuild): add stats generation for download+install, build, and remove times. * (buildd-watcher): output new time stats. These won't be fully accurate from when one upgrades until the next stats generation, after which, they should reflect the full stats time period (one week by default) * (debian/control): update dependencies to indicate that buildd and sbuild need the latest versions of each other, due to the REDO format change and time stats changes. * (sbuild): disassociate from the controlling terminal and make stdin /dev/null for the dpkg-buildpackage process. buildd already does this, but you didn't get that when run from the command line. * (sbuild): don't create entries to the sbuild log when a package claims to build an _all.deb, but doesn't. Instead, warn to the build log. * (sbuild): workaround race condition while apt-ftparchive is running on the archive host. The signed Release file doesn't match what is downloaded, so current apt deletes the list. These cases are now given-back, rather than failed. * (abort-current-build): use a sudo'd perl to kill the dpkg-buildpackage process, incase sudo is being used by sbuild * (buildd): report errors while waiting for sbuild, and don't keep waiting for it if there are no children at all. * (sbuild.conf): default watch list to empty, most buildds run with clean chroots * (sbuild.conf): update alternatives, remove some ancient ones that aren't used anymore * (wanna-build): remove db entries that don't have any binary packages in the Packages files anymore. If something is added to P-a-s, and the binaries removed, it was still showing as "installed" with the last built version. * (setup_system): add additional commented out adduser command for when you already have a buildd group * (setup_system): update chroot build command I: * (buildd-make-chroot): create /etc/hosts file in chroot * (buildd-make-chroot): Update debootstrap call to work with modern debootstrap that pull Build-Essential from the packages files. * (buildd-make-chroot): support etch * (many): Update FSF address again. 2005-08-22 Ryan Murray * add missing $change++ in parse_quinn so that changes will actually be committed. 2005-08-22 Ryan Murray * really fix --uploaded with current buildd-uploader arbitrary priorities can be specified for a package. It will apply to the current package for Needs-Build, Building, and Uploaded. It will apply to the next version of the package for Failed and Dep-Wait. The priority will be reverted after that build. There is also a permanent priority setting, to change the default that the package will be returned to. 2005-08-20 Ryan Murray * ensure --uploaded works with existing buildd-uploaders and epochs 2005-08-19 Ryan Murray * AutoDepWait V1. Catches the package (>= version) and (>> version) cases. Only applies to packages just moved to Needs-Build by the quinn merge, so there is a way to get out from behind them, if they are wrong for whatever reason. * split WB version compare functions to seperate perl module use them from sbuild instead of forking dpkg for each comparison further MLDBM optimizations and fixes 2005-08-05 Ryan Murray * fix small error in dupload strings update 2005-07-19 Ryan Murray * more removal of non-US. * also check the security upload dir for deletions in one more place 2005-07-19 Ryan Murray * update dupload error strings for modern dupload 2005-07-15 Ryan Murray * parameters weren't being passed to pretend_avail() 2005-07-13 Ryan Murray * Treat "-" in quinn-diff priority fields as "unknown", rather than "-" 2005-07-10 Ryan Murray * Ensure a hash exists before a reference is passed to change_state, or the state change won't be recorded. 2005-07-10 Ryan Murray * disable strict refs for now 2005-07-10 Ryan Murray * Patch from Brendan O'Dea for version comparisons to support ~ correctly. 2005-07-10 Ryan Murray * And the big efficiency rewrite required by MLDBM. It actually works now :) 2005-07-10 Ryan Murray * fix strftime calls * add --merge-all option to take exactly one of Packages, quinn-diff, and Sources. Import them all, then clean the db. Saves multiple opens of the database for daily maintenance. 2005-07-10 Ryan Murray * use strftime instead of `date`, don't set a default arch (only used for parsing packages, which should always be specified), and only call hostname if we actually send mail. 2005-07-10 Ryan Murray * switch to Storable for MLDBM, as this is faster than the default of Data::Dumper. 2005-07-10 Ryan Murray Replace wanna-build's WrapDB class with MLDBM, resulting in a 3x speed improvement on database accesses. This change requires you to first --export your database with the old version, and then --import with the new one. 2005-07-06 Ryan Murray * Fix ~ support in versions. 2005-07-06 Ryan Murray * set DEBIAN_FRONTEND to noninteractive when purging packages, too. 2005-07-06 Ryan Murray * commented out example of chroot_only option 2005-07-06 Ryan Murray * add chroot_only mode, where sbuild will die if it's not building inside a chroot, rather than using the root 2005-07-06 Ryan Murray * fix buildd-watcher to correctly report old files in chroots, too. 2005-07-06 Ryan Murray * update $no_warn_pattern for ssh socket. 2005-06-06 Ryan Murray * don't bother creating upload-non-US anymore 2005-06-02 Ryan Murray * Update version 2005-06-01 Ryan Murray * sync with newraff, pointed out by Lamont. 2005-06-01 Ryan Murray * From Lamont: allow arch: all packages to be built when $main::build_arch_all is true. 2005-06-01 Ryan Murray * Make sbuild more resilient about cruft in the status file (again), without undoing the provides and real package at the same time fix. 2005-06-01 Ryan Murray * fix typo in fallback code 2005-06-01 Ryan Murray * use /var/debbuild/apt.conf if it exists. If it doesn't exist, try to create it with the Dir ""; directive for the chroot. If it can't be created, use the existing logic. This fixes the problem of the root's /etc/apt/apt.conf and /etc/apt/apt.conf.d directories being used, while the chroot's are ignored. 2005-06-01 Ryan Murray * make it "work" 2005-05-28 Ryan Murray * remove buildd incoming dir from testing chroots 2005-05-16 Ryan Murray * output commands to add to fstab 2005-05-16 Ryan Murray * update line break code for the longest size mutt likes: 989. 2005-05-05 Ryan Murray * update version 2005-05-01 Ryan Murray * remove use of external utilities where we already have functions imported that do the same thing 2005-05-01 Ryan Murray * install buildd-make-chroot in /usr/sbin, rather than /usr/bin 2005-04-28 Ryan Murray * check EXIT-DAEMON-PLEASE in check_restart() instead of at the top of mainloop. 2005-04-25 Ryan Murray * fix for versioned depends with both provided and actual package installed; The versioned depends should always happen off the actual package. 2005-04-21 Ryan Murray * include buildd-make-chroot in the sbuild package 2005-03-26 Ryan Murray * update version 2005-03-26 Ryan Murray * output purged packages line by line like other external processes, rather than outputting everything all at once after the process finishes. 2005-03-26 Ryan Murray * move unset_env call to read_config, remove from all the binaries. Environment is unset before reading the config, so that any binaries referenced in the config with ` will have the sanitized environment. 2005-03-26 Ryan Murray * always purge packages if we're building in a chroot. 2005-03-25 Ryan Murray * move environment cleansing to Buildd.pm unset_env cleanse environment from buildd-mail, buildd-watcher, and buildd-uploader, too. 2005-03-25 Ryan Murray * change length limit in changes to 990. The RFC says 998, postfix's default is 990, and others are somewhere in the 998-1000 range, or don't care... 2005-03-22 Ryan Murray * update version 2005-03-22 Ryan Murray * re-append the slave option after the config is reloaded 2005-03-20 Ryan Murray * setup master link before doing rebuilds, incase they auto-giveback 2005-03-20 Ryan Murray * unset all locale related environment variables at startup kill ssh with TERM (which is caught) instead of HUP (which isn't) watch for the error message when the master is dead and the socket is left behind (Connection refused). 2005-03-20 Ryan Murray * update version 2005-03-20 Ryan Murray * Always show versions of installed build dependencies. 2005-03-19 Ryan Murray * add support for passing the buildd sshsocket to sbuild for autogivebacks. 2005-03-19 Ryan Murray * Make the mailing of rotated logs optional. 2005-03-19 Ryan Murray * finish conversion of weak_no_auto to be per-dist 2005-03-19 Ryan Murray * add comment indicating that the socket must be a relative path 2005-03-18 Ryan Murray * fix case where $conf::should_build_msgs is off to only build the prevfailed package once. 2005-03-16 Ryan Murray * fix kill parameters and check for existence of the socket before starting a new master. 2005-03-16 Ryan Murray * fix missing package qualifiers 2005-03-16 Ryan Murray * kill the ssh process before exiting or shutting down 2005-03-16 Ryan Murray * Revert wait-for-sbuild test, the extra check for ssh isn't needed. * Add socket support to buildd-mail and buildd-uploader 2005-03-16 Ryan Murray * add support for ssh 3.9's -M and -S options. set $conf::sshsocket to the filename for the socket. Requires ssh 3.9 on both ends, and doesn't attempt to fall back if you have an older version installed. 2005-03-16 Ryan Murray * fix $conf::should_build_msgs and setting $conf::nice_level to 0 2005-03-16 Ryan Murray * build weak_no_auto packages at the end of each dist, rather than after all dists, making it useful for security buildds. 2005-03-16 Ryan Murray * add missing file handle 2005-03-16 Ryan Murray * Split changes files sent in the log correctly, every 1000 characters, to better behave the mail RFCs. 2005-03-16 Ryan Murray * Misc cleanups to the source: * Add license to repository. * Update FSF address. * Update Copyright. * Set svn:eol-style to LF for all files * Set svn:keywords to appropriate values for files that use them. * Remove $Log$ keyword and contents where used (see revision 1 for the log) * Set svn:mime-type for several files 2005-03-15 Ryan Murray * initial import to svn sbuild-0.67.0/PaxHeaders.4860/COPYING0000644000000000000000000000013112361663370013605 xustar0030 mtime=1405576952.281596563 30 atime=1451044743.162752739 29 ctime=1451136983.91375965 sbuild-0.67.0/COPYING0000644000175000017500000004310512361663370014431 0ustar00joschjosch00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 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. Copyright (C) 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 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. , 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. sbuild-0.67.0/PaxHeaders.4860/tools0000644000000000000000000000013212637513730013636 xustar0030 mtime=1451136984.013759783 30 atime=1451136984.349760227 30 ctime=1451136984.013759783 sbuild-0.67.0/tools/0000755000175000017500000000000012637513730014533 5ustar00joschjosch00000000000000sbuild-0.67.0/tools/PaxHeaders.4860/sbuild-dumpconfig0000644000000000000000000000013112637266600017251 xustar0030 mtime=1451060608.614723316 29 atime=1451060625.31875086 30 ctime=1451136984.013759783 sbuild-0.67.0/tools/sbuild-dumpconfig0000755000175000017500000001071212637266600020076 0ustar00joschjosch00000000000000#!/usr/bin/perl # # sbuild: build packages, obeying source dependencies # Copyright © 1998-2000 Roman Hodek # Copyright © 2005 Ryan Murray # Copyright © 2005-2009 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### use strict; use warnings; use Sbuild::Conf qw(); use Buildd::Conf qw(); use Sbuild::Sysconfig; use Text::Wrap; use Data::Dumper; die "Usage: $0 sbuild|buildd config|man" if @ARGV != 2; my $program = $ARGV[0]; my $output = $ARGV[1]; $Sbuild::Sysconfig::paths{'SBUILD_CONF'} = '/invalid'; $Sbuild::Sysconfig::paths{'BUILDD_CONF'} = '/invalid'; $Data::Dumper::Sortkeys = 1; my $conf; if ($program eq "sbuild") { $conf = Sbuild::Conf::new(CHECK=>0); } elsif ($program eq "buildd") { $conf = Buildd::Conf::new(CHECK=>0); } else { die "Unsupported configuration type $program"; } exit 1 if !defined($conf); die "Unsupported output type $output" if ($output ne "config" && $output ne "man"); my @keys = sort $conf->get_keys(); # print "KEYS: " . join(", ", @keys) . "\n"; my %tmpgroups; foreach my $key (@keys) { # print "KEY: $key, GROUP: " . $conf->_get_group($key) . "\n"; $tmpgroups{$conf->_get_group($key)} = 1; } my @groups = sort keys %tmpgroups; # print "GROUPS: " . join(",\n", @groups) . "\n"; my $header = "# ${program}.conf: ${program} settings. -*- Perl -*-\n"; $header .= <_get_group($key) eq $group) { my $type = $conf->_get_type($key); my $varname = $conf->_get_varname($key); my $help = $conf->_get_help($key); my $default = $conf->_get_default($key); my $ignore_default = $conf->_get_ignore_default($key); if ($output eq "config") { print "# $key\n"; print "# Type: $type\n"; if ($help) { print wrap("# ", "# ", "$help\n"); } my $example = $conf->_get_example($key); if ($example) { foreach my $line (split("\n", $example)) { print "# $line\n"; } } if ($ignore_default) { print wrap("#", "#", "$varname = ...;"); print("\n"); } else { print wrap("#", "#", Data::Dumper->Dump([$default], ["$varname"])); } print("\n"); } elsif ($output eq "man") { print ".TP\n"; print ".BR $key\n"; print "$type type.\n"; if ($help) { print "$help\n"; # print wrap("", "", "$help\n"); } my $example = $conf->_get_example($key); if ($example) { print "Example:\n"; print ".PP\n"; print ".RS\n"; foreach my $line (split("\n", $example)) { print "\\f[CR]$line\\fP\n"; print ".br\n" } print ".RE\n"; } if ($ignore_default) { print ".PP\n"; print ".RS\n"; print "\\f[CR]$varname = ...;\\fP\n"; print ".br\n"; print ".RE\n"; } else { print ".IP\n"; print "Default:\n"; print ".PP\n"; print ".RS\n"; foreach my $line (split("\n", Data::Dumper->Dump([$default], ["$varname"]))) { print "\\f[CR]$line\\fP\n"; print ".br\n" } print ".RE\n"; } } } } } if ($output eq "config") { print "1;\n"; } sbuild-0.67.0/tools/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665015767 xustar0030 mtime=1451136949.581714357 30 atime=1451136978.053751903 30 ctime=1451136984.013759783 sbuild-0.67.0/tools/Makefile.in0000644000175000017500000003172512637513665016617 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am subdir = tools ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SCRIPTS = $(noinst_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) noinst_SCRIPTS = \ sbuild-dumpconfig EXTRA_DIST = \ $(noinst_SCRIPTS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tools/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/tools/PaxHeaders.4860/Makefile.am0000644000000000000000000000013212565554441015753 xustar0030 mtime=1440143649.648952144 30 atime=1451136876.989619331 30 ctime=1451136984.013759783 sbuild-0.67.0/tools/Makefile.am0000644000175000017500000000161412565554441016575 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk noinst_SCRIPTS = \ sbuild-dumpconfig EXTRA_DIST = \ $(noinst_SCRIPTS) sbuild-0.67.0/PaxHeaders.4860/VERSION0000644000000000000000000000013212637513662013627 xustar0030 mtime=1451136946.757710641 30 atime=1451136948.209712551 30 ctime=1451136983.933759677 sbuild-0.67.0/VERSION0000644000175000017500000000023012637513662014442 0ustar00joschjosch00000000000000Package: sbuild Version: 0.67.0 Release-Date: 26 Dec 2015 Released-By: Johannes 'josch' Schauer Git-Tag: release/sbuild-0.67.0 sbuild-0.67.0/PaxHeaders.4860/README.chroot-building0000644000000000000000000000013212361663370016523 xustar0030 mtime=1405576952.285596563 30 atime=1451044743.162752739 30 ctime=1451136983.933759677 sbuild-0.67.0/README.chroot-building0000644000175000017500000001013212361663370017340 0ustar00joschjosch00000000000000 -*- mode: indented-text -*- Building in chroot environments with sbuild ------------------------------------------- Roman Hodek, June 7th 2000 Starting with revision 1.133, sbuild can build packages also in a chroot environment. (You also need buildd-addpkg >= 1.5). There are different such environments for each distribution. The advantages of this are: - You can build for different distributions on the same machine without headaches about shared library version or the like. - Badly programmed build procedures can't modify files on the build host. - The access time check for binaries used without a source dependency becomes a bit more reliable, because normal user activities can't cause an atime change. It works like in the following outline: - For each distribution (stable, frozen, unstable), there's a separate installation in (e.g.) /usr/local/chroot/DIST. (This path isn't hardwired, but used in this documentation.) - The chroot environment can be prepared with buildd-setup-chroot. - If in the build directory a symlink chroot-DIST exists (and the build is for DIST), then sbuild will unpack the sources in chroot-DIST/build/USERNAME and build the package there. dpkg-buildpackage will be called under chroot, so that the whole build process can't access files outside the build root. - All apt and dpkg and similar operations are also chroot-ed, so only the chroot environment for that distribution is affected. That way, different shared lib versions can coexist on the same machine and the like. (It also reduces waiting time for parallel builds: If they're for different distributions, installations can happen at the same time and don't need to wait for each other.) Ok, now a bit more slowly: Best you prepare your chroot environments with the script buildd-make-chroot. It does lots of things automatically. However, manual fixes may be required. buildd-make-chroot is usually called as: sudo buildd-make-chroot buildd DIST chroot-DIST http://optional.nearby.mirror/debian This will call debootstrap 0.3.2 or higher to create a new chroot, and then set it up for the buildd user specified. Ok, after the chroot environments for all the distributions you want are set up, you can start building in them. sbuild recognizes the chroot environments by the existance of a chroot-DIST symlink in its build directory (the dir where sbuild is started). If such a link doesn't exist for the requested distribution, a normal build in the host filesystem is performed like you're used to. If, however, the symlink exists, it should point to the root of the chroot environment. Sources are unpacked in chroot-DIST/build/USERNAME. (The username is appended so that multiple users can utilize the chroot environment at the same time without mixing the source trees.) All checks for packages and package installations are performed --of course-- in the chroot. After building, the .debs and the .changes file are moved back to the normal build directory. (If a build fails, the source tree isn't moved back but remains in chroot-DIST/build/USERNAME.) One point still worth mentioning is how the AddPkg directories are handled. Those directories contain freshly built packages that might be needed for building other packages before they're installed in the archive. Since revision 1.5 of buildd-addpkg, the AddPkg packages are separated by distribution, which is necessary to export them selectivly into the chroot environments. For example, in the frozen chroot, only AddPkg/stable and AddPkg/frozen will be mounted but not AddPkg/unstable, because unstable packages may not be used for building frozen packages. Likewise the stable chroot mounts only AddPkg/stable, and the unstable one mounts all three. The access from inside the chroot environments to the AddPkg packages works over the local NFS mounts described above. The appropriate deb lines in sources.list should have been created by buildd-setup-chroot. The installation into an AddPkg directory by sbuild and buildd-addpkg is done from outside the chroot environment. sbuild-0.67.0/PaxHeaders.4860/configure0000644000000000000000000000013112637513664014464 xustar0029 mtime=1451136948.79371332 30 atime=1451136976.621750011 30 ctime=1451136983.909759645 sbuild-0.67.0/configure0000755000175000017500000046262512637513664015327 0ustar00joschjosch00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for sbuild 0.67.0. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright © 2004-2008 Roger Leigh # # Parts of this configure script come from the 'configure.ac' file, and # are not based on freely-redistributable m4 macros; 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 3 of the License, or (at your option) any later version. # # This software 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, see . # ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: buildd-tools-devel@lists.alioth.debian.org about your $0: system, including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sbuild' PACKAGE_TARNAME='sbuild' PACKAGE_VERSION='0.67.0' PACKAGE_STRING='sbuild 0.67.0' PACKAGE_BUGREPORT='buildd-tools-devel@lists.alioth.debian.org' PACKAGE_URL='' ac_unique_file="bin/sbuild-createchroot" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS SBUILD_DATA_DIR SCHROOT_CONF SCHROOT_SYSCONF_DIR BUILDD_CONF BUILDD_SYSCONF_DIR SBUILD_CONF SBUILD_SYSCONF_DIR SBUILD_LIBEXEC_DIR PERL_MODULE_DIR PLATFORM_FREEBSD_FALSE PLATFORM_FREEBSD_TRUE PLATFORM_LINUX_FALSE PLATFORM_LINUX_TRUE PLATFORM_GENERIC_FALSE PLATFORM_GENERIC_TRUE PLATFORM host_os host_vendor host_cpu host build_os build_vendor build_cpu build am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX SBUILD_CHROOT_CHECKS_FALSE SBUILD_CHROOT_CHECKS_TRUE SBUILD_CHROOT_CHECKS SBUILD_COMPAT_FALSE SBUILD_COMPAT_TRUE SBUILD_COMPAT RELEASE_DATE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_debug enable_compat enable_chroot_checks enable_dependency_tracking ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures sbuild 0.67.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/sbuild] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of sbuild 0.67.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-debug Enable debugging messages --enable-compat Enable compatibililty features, for building on older Debian stable releases --enable-chroot-checks Enable additional chroot checks in testsuite (requires "unstable" chroot) --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF sbuild configure 0.67.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright © 2004-2008 Roger Leigh Parts of this configure script come from the 'configure.ac' file, and are not based on freely-redistributable m4 macros; 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 3 of the License, or (at your option) any later version. This software 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, see . _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by sbuild $as_me 0.67.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in scripts "$srcdir"/scripts; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" am__api_version='1.14' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='sbuild' VERSION='0.67.0' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 $as_echo_n "checking how to create a pax tar archive... " >&6; } # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_pax-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done am__tar="$_am_tar --format=posix -chf - "'"$$tardir"' am__tar_="$_am_tar --format=posix -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x pax -w "$$tardir"' am__tar_='pax -L -x pax -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H pax -L' am__tar_='find "$tardir" -print | cpio -o -H pax -L' am__untar='cpio -i -H pax -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_pax}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -rf conftest.dir if test -s conftest.tar; then { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 (cat conftest.dir/file) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir if ${am_cv_prog_tar_pax+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_pax=$_am_tool fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 $as_echo "$am_cv_prog_tar_pax" >&6; } # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' RELEASE_DATE='26 Dec 2015' RELEASE_DATE_S='1451084400' cat >>confdefs.h <<_ACEOF #define RELEASE_DATE "$RELEASE_DATE_S" _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debugging messages" >&5 $as_echo_n "checking whether to enable debugging messages... " >&6; } # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; case "${enableval}" in yes) enable_debug="yes" ;; no) enable_debug="no" ;; unset) enable_debug="no" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;; esac else enable_debug="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debug" >&5 $as_echo "$enable_debug" >&6; } if test "$enable_debug" = "yes"; then cat >>confdefs.h <<_ACEOF #define SBUILD_DEBUG 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compatibility features" >&5 $as_echo_n "checking whether to enable compatibility features... " >&6; } # Check whether --enable-compat was given. if test "${enable_compat+set}" = set; then : enableval=$enable_compat; case "${enableval}" in yes) enable_compat="yes" ;; no) enable_compat="no" ;; unset) enable_compat="no" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } as_fn_error $? "bad value ${enableval} for --enable-compat" "$LINENO" 5 ;; esac else enable_compat="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_compat" >&5 $as_echo "$enable_compat" >&6; } compat=0 if test "$enable_compat" = "yes"; then compat=1 fi cat >>confdefs.h <<_ACEOF #define SBUILD_COMPAT $compat _ACEOF SBUILD_COMPAT=$compat if test "$enable_compat" = "yes"; then SBUILD_COMPAT_TRUE= SBUILD_COMPAT_FALSE='#' else SBUILD_COMPAT_TRUE='#' SBUILD_COMPAT_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compatibility features" >&5 $as_echo_n "checking whether to enable compatibility features... " >&6; } # Check whether --enable-chroot_checks was given. if test "${enable_chroot_checks+set}" = set; then : enableval=$enable_chroot_checks; case "${enableval}" in yes) enable_chroot_checks="yes" ;; no) enable_chroot_checks="no" ;; unset) enable_chroot_checks="no" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } as_fn_error $? "bad value ${enableval} for --enable-chroot-checks" "$LINENO" 5 ;; esac else enable_chroot_checks="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_chroot_checks" >&5 $as_echo "$enable_chroot_checks" >&6; } chroot_checks=0 if test "$enable_chroot_checks" = "yes"; then chroot_checks=1 fi cat >>confdefs.h <<_ACEOF #define SBUILD_CHROOT_CHECKS $chroot_checks _ACEOF SBUILD_CHROOT_CHECKS=$chroot_checks if test "$enable_chroot_checks" = "yes"; then SBUILD_CHROOT_CHECKS_TRUE= SBUILD_CHROOT_CHECKS_FALSE='#' else SBUILD_CHROOT_CHECKS_TRUE='#' SBUILD_CHROOT_CHECKS_FALSE= fi # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C++ compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # Check for host platform # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported host platform type" >&5 $as_echo_n "checking for supported host platform type... " >&6; } PLATFORM="generic" case $host_os in linux*): PLATFORM="linux";; freebsd* | k*bsd*-gnu) : PLATFORM="freebsd";; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PLATFORM" >&5 $as_echo "$PLATFORM" >&6; } PLATFORM=$PLATFORM if test "$PLATFORM" = "generic"; then PLATFORM_GENERIC_TRUE= PLATFORM_GENERIC_FALSE='#' else PLATFORM_GENERIC_TRUE='#' PLATFORM_GENERIC_FALSE= fi if test "$PLATFORM" = "linux"; then PLATFORM_LINUX_TRUE= PLATFORM_LINUX_FALSE='#' else PLATFORM_LINUX_TRUE='#' PLATFORM_LINUX_FALSE= fi if test "$PLATFORM" = "freebsd"; then PLATFORM_FREEBSD_TRUE= PLATFORM_FREEBSD_FALSE='#' else PLATFORM_FREEBSD_TRUE='#' PLATFORM_FREEBSD_FALSE= fi cat >>confdefs.h <<_ACEOF #define SBUILD_PLATFORM "$PLATFORM" _ACEOF cat >>confdefs.h <<_ACEOF #define SBUILD_HOST "$host" _ACEOF cat >>confdefs.h <<_ACEOF #define SBUILD_HOST_OS "$host_os" _ACEOF cat >>confdefs.h <<_ACEOF #define SBUILD_HOST_VENDOR "$host_vendor" _ACEOF cat >>confdefs.h <<_ACEOF #define SBUILD_HOST_CPU "$host_cpu" _ACEOF if test "x${prefix}" = "xNONE"; then cat >>confdefs.h <<_ACEOF #define PACKAGE_LOCALE_DIR "${ac_default_prefix}/share/locale" _ACEOF else cat >>confdefs.h <<_ACEOF #define PACKAGE_LOCALE_DIR "${prefix}/share/locale" _ACEOF fi if test "x${datadir}" = 'x${prefix}/share' || test "x${datadir}" = 'x${datarootdir}'; then if test "x${prefix}" = "xNONE"; then PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}" else PACKAGE_DATA_DIR="${prefix}/share/${PACKAGE}" fi else PACKAGE_DATA_DIR="${datadir}/${PACKAGE}" fi cat >>confdefs.h <<_ACEOF #define PACKAGE_DATA_DIR "${PACKAGE_DATA_DIR}" _ACEOF PERL_MODULE_DIR="${datadir}/perl5" if test "x${libdir}" = 'x${exec_prefix}/lib'; then if test "x${exec_prefix}" = "xNONE"; then if test "x${prefix}" = "xNONE"; then PACKAGE_LIB_DIR="${ac_default_prefix}/lib/${PACKAGE}" else PACKAGE_LIB_DIR="${prefix}/lib/${PACKAGE}" fi else PACKAGE_LIB_DIR="${exec_prefix}/lib/${PACKAGE}" fi else PACKAGE_LIB_DIR="${libdir}/${PACKAGE}" fi if test "x${libexecdir}" = 'x${exec_prefix}/libexec'; then if test "x${exec_prefix}" = "xNONE"; then if test "x${prefix}" = "xNONE"; then PACKAGE_LIBEXEC_DIR="${ac_default_prefix}/libexec" else PACKAGE_LIBEXEC_DIR="${prefix}/libexec" fi else PACKAGE_LIBEXEC_DIR="${exec_prefix}/libexec" fi else PACKAGE_LIBEXEC_DIR="${libexecdir}" fi SBUILD_LIBEXEC_DIR="${PACKAGE_LIBEXEC_DIR}/sbuild" cat >>confdefs.h <<_ACEOF #define SBUILD_LIBEXEC_DIR "$SBUILD_LIBEXEC_DIR" _ACEOF if test "x${localstatedir}" = 'x${prefix}/var'; then if test "x${prefix}" = "xNONE"; then if test "x${prefix}" = "xNONE"; then PACKAGE_LOCALSTATE_DIR="${ac_default_prefix}/var" else PACKAGE_LOCALSTATE_DIR="${prefix}/var" fi else PACKAGE_LOCALSTATE_DIR="${prefix}/var" fi else PACKAGE_LOCALSTATE_DIR="${localstatedir}" fi if test "x${sysconfdir}" = 'x${prefix}/etc'; then if test "x${prefix}" = "xNONE"; then SBUILD_SYSCONF_DIR="${ac_default_prefix}/etc" else SBUILD_SYSCONF_DIR="${prefix}/etc" fi else SBUILD_SYSCONF_DIR="${sysconfdir}" fi SBUILD_SYSCONF_DIR="${SBUILD_SYSCONF_DIR}/sbuild" cat >>confdefs.h <<_ACEOF #define SBUILD_SYSCONF_DIR "$SBUILD_SYSCONF_DIR" _ACEOF SBUILD_CONF="${SBUILD_SYSCONF_DIR}/sbuild.conf" cat >>confdefs.h <<_ACEOF #define SBUILD_CONF "$SBUILD_CONF" _ACEOF if test "x${sysconfdir}" = 'x${prefix}/etc'; then if test "x${prefix}" = "xNONE"; then BUILDD_SYSCONF_DIR="${ac_default_prefix}/etc" else BUILDD_SYSCONF_DIR="${prefix}/etc" fi else BUILDD_SYSCONF_DIR="${sysconfdir}" fi BUILDD_SYSCONF_DIR="${BUILDD_SYSCONF_DIR}/buildd" cat >>confdefs.h <<_ACEOF #define BUILDD_SYSCONF_DIR "$BUILDD_SYSCONF_DIR" _ACEOF BUILDD_CONF="${BUILDD_SYSCONF_DIR}/buildd.conf" if test "x${sysconfdir}" = 'x${prefix}/etc'; then if test "x${prefix}" = "xNONE"; then SCHROOT_SYSCONF_DIR="${ac_default_prefix}/etc" else SCHROOT_SYSCONF_DIR="${prefix}/etc" fi else SCHROOT_SYSCONF_DIR="${sysconfdir}" fi SCHROOT_SYSCONF_DIR="${SCHROOT_SYSCONF_DIR}/schroot" cat >>confdefs.h <<_ACEOF #define SCHROOT_SYSCONF_DIR "$SCHROOT_SYSCONF_DIR" _ACEOF SCHROOT_CONF="${SCHROOT_SYSCONF_DIR}/schroot.conf" cat >>confdefs.h <<_ACEOF #define BUILDD_CONF "$BUILDD_CONF" _ACEOF if test "x${datadir}" = 'x${prefix}/share' || test "x${datadir}" = 'x${datarootdir}'; then if test "x${prefix}" = "xNONE"; then SBUILD_DATA_DIR="${ac_default_prefix}/share/sbuild" else SBUILD_DATA_DIR="${prefix}/share/sbuild" fi else SBUILD_DATA_DIR="${datadir}/sbuild" fi cat >>confdefs.h <<_ACEOF #define SBUILD_DATA_DIR "$SBUILD_DATA_DIR" _ACEOF ac_config_files="$ac_config_files Makefile" ac_config_files="$ac_config_files bin/Makefile" ac_config_files="$ac_config_files configs/Makefile" ac_config_files="$ac_config_files db/Makefile" ac_config_files="$ac_config_files etc/Makefile" ac_config_files="$ac_config_files lib/Makefile" ac_config_files="$ac_config_files lib/Buildd/Makefile" ac_config_files="$ac_config_files lib/Sbuild/Makefile" ac_config_files="$ac_config_files lib/Sbuild/Sysconfig.pm" ac_config_files="$ac_config_files man/Makefile" ac_config_files="$ac_config_files man/defs.man" ac_config_files="$ac_config_files test/Makefile" ac_config_files="$ac_config_files test/perl-syntax" ac_config_files="$ac_config_files test/sbuild-checkpackages" ac_config_files="$ac_config_files test/sbuild-hold" ac_config_files="$ac_config_files test/sbuild-update" ac_config_files="$ac_config_files test/sbuild-upgrade" ac_config_files="$ac_config_files test/sbuild-distupgrade" ac_config_files="$ac_config_files test/sbuild-clean" ac_config_files="$ac_config_files test/sbuild" ac_config_files="$ac_config_files tools/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${SBUILD_COMPAT_TRUE}" && test -z "${SBUILD_COMPAT_FALSE}"; then as_fn_error $? "conditional \"SBUILD_COMPAT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SBUILD_CHROOT_CHECKS_TRUE}" && test -z "${SBUILD_CHROOT_CHECKS_FALSE}"; then as_fn_error $? "conditional \"SBUILD_CHROOT_CHECKS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${PLATFORM_GENERIC_TRUE}" && test -z "${PLATFORM_GENERIC_FALSE}"; then as_fn_error $? "conditional \"PLATFORM_GENERIC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${PLATFORM_LINUX_TRUE}" && test -z "${PLATFORM_LINUX_FALSE}"; then as_fn_error $? "conditional \"PLATFORM_LINUX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${PLATFORM_FREEBSD_TRUE}" && test -z "${PLATFORM_FREEBSD_FALSE}"; then as_fn_error $? "conditional \"PLATFORM_FREEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by sbuild $as_me 0.67.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ sbuild config.status 0.67.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;; "configs/Makefile") CONFIG_FILES="$CONFIG_FILES configs/Makefile" ;; "db/Makefile") CONFIG_FILES="$CONFIG_FILES db/Makefile" ;; "etc/Makefile") CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "lib/Buildd/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Buildd/Makefile" ;; "lib/Sbuild/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Sbuild/Makefile" ;; "lib/Sbuild/Sysconfig.pm") CONFIG_FILES="$CONFIG_FILES lib/Sbuild/Sysconfig.pm" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "man/defs.man") CONFIG_FILES="$CONFIG_FILES man/defs.man" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/perl-syntax") CONFIG_FILES="$CONFIG_FILES test/perl-syntax" ;; "test/sbuild-checkpackages") CONFIG_FILES="$CONFIG_FILES test/sbuild-checkpackages" ;; "test/sbuild-hold") CONFIG_FILES="$CONFIG_FILES test/sbuild-hold" ;; "test/sbuild-update") CONFIG_FILES="$CONFIG_FILES test/sbuild-update" ;; "test/sbuild-upgrade") CONFIG_FILES="$CONFIG_FILES test/sbuild-upgrade" ;; "test/sbuild-distupgrade") CONFIG_FILES="$CONFIG_FILES test/sbuild-distupgrade" ;; "test/sbuild-clean") CONFIG_FILES="$CONFIG_FILES test/sbuild-clean" ;; "test/sbuild") CONFIG_FILES="$CONFIG_FILES test/sbuild" ;; "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "test/perl-syntax":F) chmod +x test/perl-syntax ;; "test/sbuild-checkpackages":F) chmod +x test/sbuild-checkpackages ;; "test/sbuild-hold":F) chmod +x test/sbuild-hold ;; "test/sbuild-update":F) chmod +x test/sbuild-update ;; "test/sbuild-upgrade":F) chmod +x test/sbuild-upgrade ;; "test/sbuild-distupgrade":F) chmod +x test/sbuild-distupgrade ;; "test/sbuild-clean":F) chmod +x test/sbuild-clean ;; "test/sbuild":F) chmod +x test/sbuild ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi sbuild-0.67.0/PaxHeaders.4860/etc0000644000000000000000000000013212637513730013251 xustar0030 mtime=1451136984.073759862 30 atime=1451136984.349760227 30 ctime=1451136984.073759862 sbuild-0.67.0/etc/0000755000175000017500000000000012637513730014146 5ustar00joschjosch00000000000000sbuild-0.67.0/etc/PaxHeaders.4860/apt-keys0000644000000000000000000000013212565554441015012 xustar0030 mtime=1440143649.640952212 30 atime=1451136984.349760227 30 ctime=1451136984.073759862 sbuild-0.67.0/etc/apt-keys/0000755000175000017500000000000012565554441015707 5ustar00joschjosch00000000000000sbuild-0.67.0/etc/apt-keys/PaxHeaders.4860/debian-edu.asc0000644000000000000000000000013212565554441017554 xustar0030 mtime=1440143649.640952212 30 atime=1451044743.162752739 30 ctime=1451136984.073759862 sbuild-0.67.0/etc/apt-keys/debian-edu.asc0000644000175000017500000000324312565554441020376 0ustar00joschjosch00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.10 (GNU/Linux) mQGiBEP85RERBAC0fnZhm7YFpweJPqGbA50mPhdheyjm84+f6yO84EbpFnJsq7xx LCi1ryD/q9XVoaYRtm1J38BA5GkwKVkhXJNSKlnrB6ODIfXaE+H+AYvivwbblpij T1q06lt7/dAaJABZ00fTVwleOz+PLSfqwAu+HBNvKaRUDwk02x9gv5wfYwCgiMFI ceMgGRUn36CZR94iMrE7BkcEAJMlc3HhB8XtEDxuN++9/QArXbLwBO+PyMUIRij3 lOlLsJsBZGCR3JAfRAg0EdTz+rhrrphW5XauAP5NWxaxfaMn+3/plCKh6eCkxq3F T916s4mgSzH56kfptmmgBcoF0gVJmlhud+jjm2QnE43XzuUIA0rItAQpcZEQMnhN InvBA/9mRj93h2af1QUhAc05C7EOA0alzFvsSyUpUiw2I7CCv2FzxdHaCaO0C4ue 108b/rgYxQga4UpKTOZkEpZCZ+0IYg0m5iMUd9V8ekC2xhPeCMdimtIF8RwuApOh gD3tdIg9TsZge6yTRhRy6dlPNa8STV5k3t4eJSYvS1PCRIA+HbRDU2tvbGVsaW51 eCBBcmNoaXZlIEF1dG9tYXRpYyBTaWduaW5nIEtleSA8ZnRwbWFzdGVyQHNrb2xl bGludXgub3JnPohGBBARAgAGBQJD/OYFAAoJEEk++45dZPhwDkEAn168tqCxSKTX 3wXDz/q1FwIPG/DnAKCLcqqS7OUoxRue/XkpK20UuDn904hGBBARAgAGBQJD/OmN AAoJEOts1sWJP60HHRkAnjAR/QAoJR9hgV7jinXmroXwhMKqAKCeiq40xZqwLtPR ca3tO85oIiiDNohmBBMRAgAmBQJD/OURAhsDBQkPCZwABgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQ/rGZmKJv9FbJQQCeLZeBlsN/zs//AndV1NbE+ExE4mQAn11z iJb5GaogS5qK0OzgSgxBjUJOiEwEEBECAAwFAkP9yP4Fgw8IuBMACgkQUHLQNqxY NSDAFwCfas1RDxuQWoMbb6KOglIwh6t/5GsAoKOYdkUkqYlusxCi2+9cF1OKqp3M uQENBEP85RIQBADOnu4wfGW+sM1oklDYsMo4o0CPQ2laBiEsbp6bc1vG89TlAcaE 6YXVfm15nPKvk2KnYBnvIQ/QE9W5EXGoRN66xQRo3sKp79QNCZuClcyu45HGSUl0 L/LZLVnur77fyC06s8rkYLXGodvPg6kgAJithsRVr/THkRKHKQwC006ZqwADBQP6 A29DmRFynHzC29t/K6AP+gL890b9ii6akgiI1xe0qfJgfFqW1rwt4SrF7J241kVH oRyge5Ez5vh99LXt4n4rD4EcrN8exjR920ARDInqIB/EBM2efFEOzqyq3txyAZhP 2UWaalYbSt+kyX498XKMo9QICzTb3nBcskvdA3fgLiGITwQYEQIADwUCQ/zlEgIb DAUJDwmcAAAKCRD+sZmYom/0VkKfAJ0dqoe/3ZtGMYYMDaQETHoTriSVVQCfVnsx kn7heBXxaUKhgepRKseB+fc= =lMBC -----END PGP PUBLIC KEY BLOCK----- sbuild-0.67.0/etc/apt-keys/PaxHeaders.4860/backports.org.asc0000644000000000000000000000013212565554441020335 xustar0030 mtime=1440143649.640952212 30 atime=1451044743.162752739 30 ctime=1451136984.073759862 sbuild-0.67.0/etc/apt-keys/backports.org.asc0000644000175000017500000000426212565554441021161 0ustar00joschjosch00000000000000-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.9 (GNU/Linux) mQGiBEMIgw4RBADueqAzlq+rQT9JYSSWnNzo6C+9crI8lzW/fcl2Q3PO97MOQTOx Qsf/lOh0Ku7O+VdBa+BwVPuUkSw6wTY5Ku1y/6r1BQzJ9oHkryDDJXsHzKhpdyFc /lD4hNGqRkiNg5ulwAI0O1eqffPWDmeR9ZzSsqM40f1U4TNLfPAu1viWxwCgnbWz onY6RqSYlRsDQaPsNTwieVEEAJeX2FGgNepD1SvfEremAkWCrYYlSZI76iTIf6bd kGkWqIT0vJyE2MNenhDJ2ebbHJVFmL9x8S3m1daC4Zwnacm7aoCY/QgMJ+Js1Fex Acev48W9KHgpVbFMd1t8KAwRbmFcQf0C/FZUbE7xScpTxS4z3SsMOuRyfnGpDOi6 m/SnA/9wpquf3pPwbPykzKWNJEDouiJgt0zaFLauKDPeyTWeJ6htaAPDglArewdq bJ9M8QgLFtzjhg/fBQlRRUk7YP4OYtp1OdPkg2D/1rPQNySWlDf21T3N/K8ydKhR bYi+AsPuJLQUi3d+lVTFOebaL9felePvDC2/Eod7PSD1/rnkZ7Q0QmFja3BvcnRz Lm9yZyBBcmNoaXZlIEtleSA8ZnRwLW1hc3RlckBiYWNrcG9ydHMub3JnPohGBBAR AgAGBQJDgImkAAoJEHFe1qB+e4rJ2x4An2oI4xJpDvOx8uDIo9ihG1M0MpUqAJ9S cqVUmiyYSPtu8MwcZecy9kmOIYheBBMRAgAeBQJDCIMOAhsDBgsJCAcDAgMVAgMD FgIBAh4BAheAAAoJEOqOiyEWuhNsDt4AniaEBvlr4oVFMrGgPiye7iE/jv68AJ48 OkIfwcKJt7N8ImPAboeimFvWgIheBBMRAgAeBQJDCIMOAhsDBgsJCAcDAgMVAgMD FgIBAh4BAheAAAoJEOqOiyEWuhNsDt4AnjdB14rGa/rzz1ohwsi1oEnDRYuyAJ44 Nv8MTPjOaeEZArQ0flg8OXwF34hGBBARAgAGBQJEeI+KAAoJEHvDNTBle/A9pDwA mwVpbaoH1hebV4MgXIpRvTQiL2keAJ9ryd2LvhbPd5EZM1C3Nsar2/2CgIhGBBAR AgAGBQJHE7HYAAoJEGvFvIY3KyPVlwEAoJyGuJ/SsJTlyIVbulWYp3U/uZQTAJ4l 40SrE/wwDeSIrhWNkmmNPbnz54hGBBARAgAGBQJHKneLAAoJEBRrPPJWJbOATcsA n3I8y3pJN6jkmnhUQepfa7jJoDY2AKClHVXYuNZpc2jZKyruwgwck+jCabkCDQRD CIMREAgAzXu6DGSDAz4JH+mlthtiQwNZFU8bjWanGT3DL6zubxwc3ZQmRaMOiVuv JUuaJv8fdGRSvp09dP2/x5mzq2rACiEnDwZssNSK5sigxgy2W9zeO9bOtg6bhqZL wlsL8Y2xZhyGL3qGeP4zL1QbXZ1QdJuO90Xu7GWYS6Wsj+Y6dUsZFYvTZwSiLkEm gFUTxkNue3DQtZ/KNkwoKc+aqU+S7gDNStQDvTNtR6IV11KbKcY1iQ0B2bkh4zSh WwloIr83V6huAhfH8GA7UW6saRJAof5DJWUb+PRmU2TAOOlyZoM4nMH+sFFDPOeG 8fbecwlox5BRTMqcCB5ELbQXoVZT+wADBQf/ffI9R53f9USQkhsSak+k82JjRo9h qKAvPwBv3fDhMYqX3XRmwgNeax2y6Ub0AQkDhIC6eJILP5hTb2gjpmYYP7YE/7F1 h37lUg7dDYeyPQF54mUXPnIg3uQ/V9HBTY+ZW8rsVe1KRvPAuVFU77FfCvIFdLSX Vi1HSUcGv9Y7Kk4Tkr7vzKshlcIp6zZrO0Y3t/+ekBwTTQqEoUylVYkCSt3z6bjp VWbepkL88rbqJnPueTATw9shjbFYaND8cXZox9tQmlOIZ6gDeH1YvFf7ObRLxULm 7C6hwik6agtXWkNABVXSxM6MB4hcP9QC+FEhK6y/7wC3SyNRBuFujDG1aohJBBgR AgAJBQJDCIMRAhsMAAoJEOqOiyEWuhNsVVMAoJ1gbL0PHVf7yDwMjO3HuJBErxLd AJ4v9ojJnvJu2yUl4W586soBm+wsLg== =n4L0 -----END PGP PUBLIC KEY BLOCK----- sbuild-0.67.0/etc/PaxHeaders.4860/99builddsourceslist0000644000000000000000000000013212627410514017171 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136984.069759857 sbuild-0.67.0/etc/99builddsourceslist0000755000175000017500000003405512627410514020023 0ustar00joschjosch00000000000000#!/bin/bash # vim:set et ts=4 sw=4: # Copyright © 2010 Marc Brockschmidt # Copyright © 2010 Andreas Barth # Copyright © 2010 Philipp Kern # # buildd 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. # # buildd 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, see # . # ##################################################################### set -e shopt -s extglob [ "$CHROOT_PROFILE" = "buildd" ] || exit 0 . "$SETUP_DATA_DIR/common-data" . "$SETUP_DATA_DIR/common-functions" . "$SETUP_DATA_DIR/common-config" # The test below tries to determine if a source chroot is being used. # The apt configuration is generated only for non-source chroots. # # It originally tested CHROOT_SESSION_PURGE, but while it works for # LVM based chroots, it doesn't for tar based chroots which always # needed to be purged. # # Future versions of schroot will implement CHROOT_SESSION_SOURCE for # a more robust way to check for source chroots. # # See bug#718127 for more details. if ! echo "$CHROOT_DESCRIPTION" | grep -q '(source chroot)' ; then CHROOT_ALIAS="${CHROOT_ALIAS/#experimental-/sid-experimental-}" case $CHROOT_ALIAS in +([^-])-kfreebsd-+([^-])-kfreebsd-*-sbuild*) SUITE_BASE=$(echo $CHROOT_ALIAS | cut -f1-2 -d-) SUITE_VARIANT=$(echo $CHROOT_ALIAS | cut -f3 -d-) ;; +([^-])-kfreebsd-kfreebsd-*-sbuild*) SUITE_BASE=$(echo $CHROOT_ALIAS | cut -f1-2 -d-) if [ ${SUITE_BASE} != "sid" ]; then SUITE_VARIANT="proposed-updates" fi ;; +([^-])-+([^-])-@(kfreebsd|hurd)-*-sbuild*) SUITE_BASE=$(echo $CHROOT_ALIAS | cut -f1 -d-) SUITE_VARIANT=$(echo $CHROOT_ALIAS | cut -f2 -d-) ;; *-*-*-*-sbuild*) SUITE_BASE=$(echo $CHROOT_ALIAS | cut -f1 -d-) SUITE_VARIANT=$(echo $CHROOT_ALIAS | cut -f2,3 -d-) ;; +([^-])-@(kfreebsd|hurd)-*-sbuild*) SUITE_BASE=$(echo $CHROOT_ALIAS | cut -f1 -d-) if [ ${SUITE_BASE} != "sid" ]; then SUITE_VARIANT="proposed-updates" fi ;; *-*-*-sbuild*) SUITE_BASE=$(echo $CHROOT_ALIAS | cut -f1 -d-) SUITE_VARIANT=$(echo $CHROOT_ALIAS | cut -f2 -d-) ;; *-*-sbuild*) SUITE_BASE=$(echo $CHROOT_ALIAS | cut -f1 -d-) if [ ${SUITE_BASE} != "sid" ]; then SUITE_VARIANT="proposed-updates" fi ;; esac fi VERBOSE="" if [ "$AUTH_VERBOSITY" = "verbose" ]; then VERBOSE="--verbose" fi if [ -f /etc/schroot/dsa/default-mirror ]; then debian_mirror=$(cat /etc/schroot/dsa/default-mirror) elif [ -f /etc/schroot/conf.buildd ]; then . /etc/schroot/conf.buildd fi function domirror() { for SUITE in ${SUITES:-SUITE}; do echo deb $1 | sed -e "s,COMPONENT,${COMPONENT}," -e "s,SUITE,${SUITE}," >> $2 echo deb-src $1 | sed -e "s,COMPONENT,${COMPONENT_SRC}," -e "s,SUITE,${SUITE}," >> $2 done } if [ "$1" = "setup-start" ] || [ "$1" = "setup-recover" ]; then if [ -n "${SUITE_BASE}" ] && ( [ -f /etc/schroot/conf.buildd ] || [ -f /etc/schroot/dsa/default-mirror ] ); then APT_LIST="${CHROOT_PATH}/etc/apt/sources.buildd.list" APT_CONF="${CHROOT_PATH}/etc/apt/apt.conf.d/99buildd.conf" APT_KEYS="" rm -f "${APT_LIST}" "${APT_CONF}" COMPONENT="main contrib" COMPONENT_SRC="main contrib non-free" if [ "${SUITE_VARIANT}" = 'proposed-updates' ]; then SUITES="${SUITE_BASE} ${SUITE_BASE}-proposed-updates" [ -n "${debian_mirror}" ] && domirror "${debian_mirror} SUITE COMPONENT" ${APT_LIST} domirror "http://ftp.debian.org/debian SUITE COMPONENT" ${APT_LIST} if [ "${debian_incoming}" != 'no' ]; then SUITES="${SUITE_BASE}-proposed-updates" domirror "http://incoming.debian.org/debian-buildd buildd-SUITE COMPONENT" ${APT_LIST} fi elif [ "${SUITE_VARIANT}" = 'lts' ]; then SUITES="${SUITE_BASE} ${SUITE_BASE}-lts" [ -n "${debian_mirror}" ] && domirror "${debian_mirror} SUITE COMPONENT" ${APT_LIST} domirror "http://ftp.debian.org/debian SUITE COMPONENT" ${APT_LIST} if [ "${debian_incoming}" != 'no' ]; then SUITES="${SUITE_BASE}-lts" domirror "http://incoming.debian.org/debian-buildd buildd-SUITE COMPONENT" ${APT_LIST} fi elif [ "${SUITE_VARIANT}" = 'security' ]; then SUITES="${SUITE_BASE}" [ -n "${debian_mirror}" ] && domirror "${debian_mirror} ${SUITE_BASE} COMPONENT" ${APT_LIST} domirror "http://ftp.debian.org/debian ${SUITE_BASE} COMPONENT" ${APT_LIST} [ -n "${security_mirror}" ] && domirror "${security_mirror} ${SUITE_BASE}/updates COMPONENT" ${APT_LIST} domirror "http://security-master.debian.org/debian-security ${SUITE_BASE}/updates COMPONENT" ${APT_LIST} domirror "http://security-master.debian.org/debian-security-buildd buildd-${SUITE_BASE}/updates COMPONENT" ${APT_LIST} elif [ "${SUITE_VARIANT%%-sloppy}" = 'backports' ]; then SUITES="${SUITE_BASE}" [ -n "${debian_mirror}" ] && domirror "${debian_mirror} SUITE COMPONENT" ${APT_LIST} domirror "http://ftp.debian.org/debian SUITE COMPONENT" ${APT_LIST} if [ "$SUITE" != "squeeze" ]; then [ -n "${debian_mirror}" ] && domirror "${debian_mirror} SUITE-backports COMPONENT" ${APT_LIST} domirror "http://ftp.debian.org/debian SUITE-backports COMPONENT" ${APT_LIST} else [ -n "${backports_mirror}" ] && domirror "${backports_mirror} SUITE COMPONENT" ${APT_LIST} domirror "http://backports.debian.org/debian-backports/ SUITE-backports COMPONENT" ${APT_LIST} fi if [ "${debian_incoming}" != 'no' ]; then domirror "http://incoming.debian.org/debian-buildd buildd-SUITE-backports COMPONENT" ${APT_LIST} fi if [ "$(echo ${SUITE_VARIANT} | cut -d - -f 2)" = "sloppy" ]; then if [ "$SUITE" != "squeeze" ]; then [ -n "${debian_mirror}" ] && domirror "${debian_mirror} SUITE-backports-sloppy COMPONENT" ${APT_LIST} domirror "http://ftp.debian.org/debian SUITE-backports-sloppy COMPONENT" ${APT_LIST} else [ -n "${backports_mirror}" ] && domirror "${backports_mirror} SUITE-backports-sloppy COMPONENT" ${APT_LIST} domirror "http://backports.debian.org/debian-backports/ SUITE-backports-sloppy COMPONENT" ${APT_LIST} fi if [ "${debian_incoming}" != 'no' ]; then domirror "http://incoming.debian.org/debian-buildd buildd-SUITE-backports-sloppy COMPONENT" ${APT_LIST} fi fi elif [ "${SUITE_VARIANT}" = 'edu' ]; then SUITES="${SUITE_BASE} ${SUITE_BASE}-proposed-updates" [ -n "${debian_mirror}" ] && domirror "${debian_mirror} SUITE COMPONENT" ${APT_LIST} domirror "http://ftp.debian.org/debian SUITE COMPONENT" ${APT_LIST} SUITES="${SUITE_BASE} ${SUITE_BASE}-test" [ -n "${edu_mirror}" ] && domirror "${edu_mirror} SUITE local" ${APT_LIST} domirror "http://ftp.skolelinux.no/skolelinux/ SUITE local" ${APT_LIST} APT_KEYS="${APT_KEYS} debian-edu" elif [ "${SUITE_BASE}" = 'sid' ]; then SUITES="unstable" if [ "${SUITE_VARIANT}" = "experimental" ]; then SUITES="unstable experimental" fi [ -n "${debian_mirror}" ] && domirror "${debian_mirror} SUITE COMPONENT" ${APT_LIST} domirror "http://ftp.debian.org/debian SUITE COMPONENT" ${APT_LIST} if [ "${debian_incoming}" != 'no' ]; then domirror "http://incoming.debian.org/debian-buildd buildd-SUITE COMPONENT" ${APT_LIST} fi else echo "ERROR: cannot adjust sources.list: ${SUITE_BASE}/${SUITE_VARIANT} unknown - exiting" exit 1 fi echo 'Acquire::PDiffs "false";' >> ${APT_CONF} echo 'APT::Install-Recommends 0;' >> ${APT_CONF} echo 'Dir::Etc::SourceList "sources.buildd.list";' >> ${APT_CONF} echo 'Acquire::Languages "none";' >> ${APT_CONF} if [ -n "${APT_KEYS}" ]; then for KEY in ${APT_KEYS}; do if [ -f /usr/share/buildd/${KEY}.asc ]; then chroot ${CHROOT_PATH} apt-key add - < /usr/share/buildd/${KEY}.asc >&2 else echo W: should add apt key ${KEY} but not found >&2 fi done fi else if [ -n "$SUITE_VARIANT" ]; then SOURCES_FILE_NAME="${SUITE_BASE}-${SUITE_VARIANT}.sources" SOURCES_FILE_PATH="/etc/schroot/buildd.d/${SOURCES_FILE_NAME}" APT_LIST_AUTO="${CHROOT_PATH}/etc/apt/sources.list.d/auto.list" if [ -f "$SOURCES_FILE_PATH" ]; then cp $VERBOSE ${SOURCES_FILE_PATH} "${CHROOT_PATH}/etc/apt/sources.list.d/${SOURCES_FILE_NAME}.list" elif [ ${SUITE_VARIANT} = 'security' ]; then : > ${APT_LIST_AUTO} if [ -n "${security_mirror}" ]; then echo deb ${security_mirror} ${SUITE_BASE}/updates main contrib >> ${APT_LIST_AUTO} echo deb-src ${security_mirror} ${SUITE_BASE}/updates main contrib >> ${APT_LIST_AUTO} fi echo deb http://security-master.debian.org/debian-security ${SUITE_BASE}/updates main contrib >> ${APT_LIST_AUTO} echo deb-src http://security-master.debian.org/debian-security ${SUITE_BASE}/updates main contrib >> ${APT_LIST_AUTO} echo deb http://security-master.debian.org/debian-security-buildd buildd-${SUITE_BASE}/updates main contrib >> ${APT_LIST_AUTO} echo deb-src http://security-master.debian.org/debian-security-buildd buildd-${SUITE_BASE}/updates main contrib >> ${APT_LIST_AUTO} elif [ ${SUITE_VARIANT%%-sloppy} = 'backports' ]; then : > ${APT_LIST_AUTO} if [ -n "${backports_mirror}" ]; then echo deb ${backports_mirror} ${SUITE_BASE}-backports main contrib >> ${APT_LIST_AUTO} echo deb-src ${backports_mirror} ${SUITE_BASE}-backports main contrib non-free >> ${APT_LIST_AUTO} fi echo deb http://backports.debian.org/debian-backports/ ${SUITE_BASE}-backports main contrib >> ${APT_LIST_AUTO} echo deb-src http://backports.debian.org/debian-backports/ ${SUITE_BASE}-backports main contrib non-free >> ${APT_LIST_AUTO} echo deb http://backports-master.debian.org/buildd/${SUITE_BASE}-backports / >> ${APT_LIST_AUTO} echo deb-src http://backports-master.debian.org/buildd/${SUITE_BASE}-backports / >> ${APT_LIST_AUTO} if [ "$(echo ${SUITE_VARIANT} | cut -d - -f 2)" = "sloppy" ]; then if [ -n "${backports_mirror}" ]; then echo deb ${backports_mirror} ${SUITE_BASE}-backports-sloppy main contrib >> ${APT_LIST_AUTO} echo deb-src ${backports_mirror} ${SUITE_BASE}-backports-sloppy main contrib non-free >> ${APT_LIST_AUTO} fi echo deb http://backports.debian.org/debian-backports/ ${SUITE_BASE}-backports-sloppy main contrib >> ${APT_LIST_AUTO} echo deb-src http://backports.debian.org/debian-backports/ ${SUITE_BASE}-backports-sloppy main contrib non-free >> ${APT_LIST_AUTO} echo deb http://backports-master.debian.org/buildd/${SUITE_BASE}-backports-sloppy / >> ${APT_LIST_AUTO} echo deb-src http://backports-master.debian.org/buildd/${SUITE_BASE}-backports-sloppy / >> ${APT_LIST_AUTO} fi elif [ ${SUITE_VARIANT} = 'experimental' ]; then : > ${APT_LIST_AUTO} if [ -n "${debian_mirror}" ]; then echo deb ${debian_mirror} experimental main contrib >> ${APT_LIST_AUTO} echo deb-src ${debian_mirror} experimental main contrib non-free >> ${APT_LIST_AUTO} fi echo deb http://ftp.debian.org/debian experimental main contrib >> ${APT_LIST_AUTO} echo deb-src http://ftp.debian.org/debian experimental main contrib non-free >> ${APT_LIST_AUTO} echo deb http://incoming.debian.org/debian-buildd buildd-experimental main contrib >> ${APT_LIST_AUTO} echo deb-src http://incoming.debian.org/debian-buildd buildd-experimental main contrib non-free >> ${APT_LIST_AUTO} fi fi fi elif [ "$1" = "setup-stop" ]; then if [ -n "${SUITE_BASE}" ] && ( [ -f /etc/schroot/conf.buildd ] || [ -f /etc/schroot/dsa/default-mirror ] ); then APT_LIST="${CHROOT_PATH}/etc/apt/sources.buildd.list" APT_CONF="${CHROOT_PATH}/etc/apt/apt.conf.d/99buildd.conf" rm -f "${APT_LIST}" "${APT_CONF}" else if [ -n "$SUITE_VARIANT" ]; then SOURCES_FILE_NAME="${SUITE_BASE}-${SUITE_VARIANT}.sources" SOURCES_FILE_PATH="/etc/schroot/buildd.d/${SOURCES_FILE_NAME}" if [ -f "$SOURCES_FILE_PATH" ]; then rm -f $VERBOSE "${CHROOT_PATH}/etc/apt/sources.list.d/${SOURCES_FILE_NAME}.list" elif [ ${SUITE_VARIANT} = 'security' ] || [ ${SUITE_VARIANT} = 'backports' ] || [ ${SUITE_VARIANT} = 'experimental' ] ; then rm -f $VERBOSE "${CHROOT_PATH}/etc/apt/sources.list.d/auto.list" fi fi fi fi sbuild-0.67.0/etc/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665015402 xustar0030 mtime=1451136949.421714146 30 atime=1451136977.853751639 30 ctime=1451136984.065759851 sbuild-0.67.0/etc/Makefile.in0000644000175000017500000004745712637513665016243 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am subdir = etc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(schrootsetupdir)" \ "$(DESTDIR)$(builddsysconfdir)" "$(DESTDIR)$(exampleconfdir)" \ "$(DESTDIR)$(sbuildsysconfdir)" SCRIPTS = $(schrootsetup_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(builddsysconf_DATA) $(exampleconf_DATA) $(sbuildsysconf_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) sbuildsysconfdir = $(SBUILD_SYSCONF_DIR) sbuildsysconf_DATA = sbuild.conf builddsysconfdir = $(BUILDD_SYSCONF_DIR) builddsysconf_DATA = buildd.conf exampleconfdir = $(docdir)/examples exampleconf_DATA = example.sbuildrc COMPAT_SETUP = 99builddsourceslist SETUP = schrootsetupdir = $(SCHROOT_SYSCONF_DIR)/setup.d @SBUILD_COMPAT_FALSE@schrootsetup_SCRIPTS = $(SETUP) @SBUILD_COMPAT_TRUE@schrootsetup_SCRIPTS = $(COMPAT_SETUP) $(SETUP) CLEANFILES = \ sbuild.conf \ buildd.conf EXTRA_DIST = \ $(exampleconf_DATA) \ $(COMPAT_SETUP) \ $(SETUP) \ apt-keys \ sbuild-debuild.conf all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu etc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu etc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-schrootsetupSCRIPTS: $(schrootsetup_SCRIPTS) @$(NORMAL_INSTALL) @list='$(schrootsetup_SCRIPTS)'; test -n "$(schrootsetupdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(schrootsetupdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(schrootsetupdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(schrootsetupdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(schrootsetupdir)$$dir" || exit $$?; \ } \ ; done uninstall-schrootsetupSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(schrootsetup_SCRIPTS)'; test -n "$(schrootsetupdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(schrootsetupdir)'; $(am__uninstall_files_from_dir) install-builddsysconfDATA: $(builddsysconf_DATA) @$(NORMAL_INSTALL) @list='$(builddsysconf_DATA)'; test -n "$(builddsysconfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(builddsysconfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(builddsysconfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(builddsysconfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(builddsysconfdir)" || exit $$?; \ done uninstall-builddsysconfDATA: @$(NORMAL_UNINSTALL) @list='$(builddsysconf_DATA)'; test -n "$(builddsysconfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(builddsysconfdir)'; $(am__uninstall_files_from_dir) install-exampleconfDATA: $(exampleconf_DATA) @$(NORMAL_INSTALL) @list='$(exampleconf_DATA)'; test -n "$(exampleconfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(exampleconfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(exampleconfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(exampleconfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(exampleconfdir)" || exit $$?; \ done uninstall-exampleconfDATA: @$(NORMAL_UNINSTALL) @list='$(exampleconf_DATA)'; test -n "$(exampleconfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(exampleconfdir)'; $(am__uninstall_files_from_dir) install-sbuildsysconfDATA: $(sbuildsysconf_DATA) @$(NORMAL_INSTALL) @list='$(sbuildsysconf_DATA)'; test -n "$(sbuildsysconfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sbuildsysconfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sbuildsysconfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sbuildsysconfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sbuildsysconfdir)" || exit $$?; \ done uninstall-sbuildsysconfDATA: @$(NORMAL_UNINSTALL) @list='$(sbuildsysconf_DATA)'; test -n "$(sbuildsysconfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sbuildsysconfdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(schrootsetupdir)" "$(DESTDIR)$(builddsysconfdir)" "$(DESTDIR)$(exampleconfdir)" "$(DESTDIR)$(sbuildsysconfdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-builddsysconfDATA install-exampleconfDATA \ install-sbuildsysconfDATA install-schrootsetupSCRIPTS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-builddsysconfDATA uninstall-exampleconfDATA \ uninstall-sbuildsysconfDATA uninstall-schrootsetupSCRIPTS .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am \ install-builddsysconfDATA install-data install-data-am \ install-dvi install-dvi-am install-exampleconfDATA \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am \ install-sbuildsysconfDATA install-schrootsetupSCRIPTS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-builddsysconfDATA \ uninstall-exampleconfDATA uninstall-sbuildsysconfDATA \ uninstall-schrootsetupSCRIPTS sbuild.conf: $(abs_top_srcdir)/tools/sbuild-dumpconfig PERL5LIB=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib \ $< sbuild config > $@ buildd.conf: $(abs_top_srcdir)/tools/sbuild-dumpconfig PERL5LIB=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib \ $< buildd config > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/etc/PaxHeaders.4860/Makefile.am0000644000000000000000000000013212627410514015355 xustar0030 mtime=1449005388.459402735 30 atime=1451136876.825619117 30 ctime=1451136984.065759851 sbuild-0.67.0/etc/Makefile.am0000644000175000017500000000322412627410514016176 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk sbuildsysconfdir = $(SBUILD_SYSCONF_DIR) sbuildsysconf_DATA = sbuild.conf builddsysconfdir = $(BUILDD_SYSCONF_DIR) builddsysconf_DATA = buildd.conf exampleconfdir = $(docdir)/examples exampleconf_DATA = example.sbuildrc COMPAT_SETUP = 99builddsourceslist SETUP = sbuild.conf: $(abs_top_srcdir)/tools/sbuild-dumpconfig PERL5LIB=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib \ $< sbuild config > $@ buildd.conf: $(abs_top_srcdir)/tools/sbuild-dumpconfig PERL5LIB=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib \ $< buildd config > $@ schrootsetupdir = $(SCHROOT_SYSCONF_DIR)/setup.d if SBUILD_COMPAT schrootsetup_SCRIPTS = $(COMPAT_SETUP) $(SETUP) else schrootsetup_SCRIPTS = $(SETUP) endif CLEANFILES = \ sbuild.conf \ buildd.conf EXTRA_DIST = \ $(exampleconf_DATA) \ $(COMPAT_SETUP) \ $(SETUP) \ apt-keys \ sbuild-debuild.conf sbuild-0.67.0/etc/PaxHeaders.4860/sbuild-debuild.conf0000644000000000000000000000013212565554441017071 xustar0030 mtime=1440143649.640952212 30 atime=1451044743.162752739 30 ctime=1451136984.073759862 sbuild-0.67.0/etc/sbuild-debuild.conf0000644000175000017500000000073712565554441017720 0ustar00joschjosch00000000000000# sbuild-debuild.conf: global sbuild-debuild settings. -*- Perl -*- # Various options with their defaults used with sbuild-debuild # $dpkg_buildpackage_opts = ['-S','-us','-uc',]; # $dpkg_buildpackage_extra_opts = []; # $sbuild_opts = []; # $sbuild_extra_opts = []; # $lintian_opts = []; # $lintian_extra_opts = []; # $no_lintian = 0; # $pre_dpkg_buildpackage_commands = []; # $pre_sbuild_commands = []; # $pre_lintian_commands = []; # $pre_exit_commands = []; 1; sbuild-0.67.0/etc/PaxHeaders.4860/example.sbuildrc0000644000000000000000000000013212565554441016516 xustar0030 mtime=1440143649.640952212 30 atime=1451044743.162752739 30 ctime=1451136984.069759857 sbuild-0.67.0/etc/example.sbuildrc0000644000175000017500000000770512565554441017347 0ustar00joschjosch00000000000000# example for ~/.sbuildrc. (Also see /etc/sbuild/sbuild.conf.) -*- Perl -*- # # Default settings are commented out. # Additional options found in /etc/sbuild/sbuild.conf may be # overridden here. ## ## DPKG-BUILDPACKAGE OPTIONS ## # Name to use as override in .changes files for the Maintainer: field # Defaults to the DEBEMAIL environment variable, if set, or else the # Maintainer: field will not be overridden unless set here. #$maintainer_name='Francesco Paolo Lovergine '; # Name to use as override in .changes file for the Changed-By: field. #$uploader_name='Francesco Paolo Lovergine '; # Key ID to use in .changes for the current upload. # It overrides both $maintainer_name and $uploader_name #$key_id='Francesco Paolo Lovergine '; # PGP-related option to pass to dpkg-buildpackage. Usually neither .dsc # nor .changes files shall be signed automatically. #$pgp_options = ['-us', '-uc']; # By default, do not build a source package (binary only build). # Set to 1 to force creation of a source package, but note that # this is inappropriate for binary NMUs, where the option will # always be disabled. #$build_source = 0; # By default, the -s option only includes the .orig.tar.gz when needed # (i.e. when the Debian revision is 0 or 1). By setting this option # to 1, the .orig.tar.gz will always be included when -s is used. # This is equivalent to --force-orig-source. #$force_orig_source = 0; # PATH to set when running dpkg-buildpackage. #$path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/games"; # This command is run with the dpkg-buildpackage command line passed to it # (in the chroot, if doing a chrooted build). It is used by the sparc buildd # (which is sparc64) to call the wrapper script that sets the environment to # sparc (32-bit). It could be used for other build environment setup scripts # #$build_env_cmnd = ""; ## ## SBUILD BEHAVIOUR ## # Default distribution. By default, no distribution is defined, and # the user must specify it with the -d option. However, a default may # be configured here if desired. Users must take care not to upload # to the wrong distribution when this option is set, for example # experimental packages will be built for upload to unstable when this # is not what is required. #$distribution = 'unstable'; # Default chroot (defaults to distribution[-arch][-sbuild]) #$chroot = 'unstable-powerpc-sbuild'; # When to purge the build directory afterwards; possible values are "never", # "successful", and "always" #$purge_build_directory="successful"; # sbuild behaviour; possible values are "user" (exit status reports # build failures) and "buildd" (exit status does not report build # failures) for use in a buildd setup. #$sbuild_mode = "user"; ## ## TIMEOUTS ## # Time to wait for a source dependency lock. The default is 1 minute. #$srcdep_lock_wait = 1; # 1 minute # Time (in minutes) of inactivity after which a build is terminated. Activity # is measured by output to the log file. #$stalled_pkg_timeout = 150; # Some packages may exceed the general timeout (e.g. redirecting output to # a file) and need a different timeout. Below are some examples. #%individual_stalled_pkg_timeout = (smalleiffel => 300, # jade => 300, # atlas => 300, # glibc => 1000, # 'gcc-3.3' => 300, # kwave => 600); # ## ## FILE AND DIRECTORY LOCATIONS ## # This option is deprecated. Directory for chroot symlinks and sbuild # logs. Defaults to the current directory if unspecified. It is used # as the location of chroot symlinks (obsolete) and for current build # log symlinks and some build logs. There is no default; if unset, it # defaults to the current working directory. $HOME/build is another # common configuration. #$build_dir = undef; # Directory for writing build logs to #$log_dir = "$HOME/logs"; # Directory for writing build statistics to #$stats_dir = "$HOME/stats"; # don't remove this, Perl needs it: 1; sbuild-0.67.0/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665014627 xustar0030 mtime=1451136949.321714015 30 atime=1451136977.805751576 30 ctime=1451136983.909759645 sbuild-0.67.0/Makefile.in0000644000175000017500000006547112637513665015464 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk INSTALL NEWS README \ AUTHORS ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in COPYING TODO scripts/config.guess \ scripts/config.sub scripts/install-sh scripts/missing \ $(top_srcdir)/scripts/config.guess \ $(top_srcdir)/scripts/config.sub \ $(top_srcdir)/scripts/install-sh $(top_srcdir)/scripts/missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) SUBDIRS = bin tools configs etc lib man db test EXTRA_DIST = \ bootstrap \ lisp \ scripts/git-tag-release \ scripts/git-version \ ChangeLog-buildd \ HACKING \ Makefile-buildd \ NEWS-buildd \ README.buildd-admin \ README.chroot-building \ VERSION all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) @case `sed 15q $(srcdir)/NEWS` in \ *"$(VERSION)"*) : ;; \ *) \ echo "NEWS not updated; not releasing" 1>&2; \ exit 1;; \ esac $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf-am: ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic distclean-hdr \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am dist-hook: # Remove junk from the generated tarball. $(FIND) $(distdir) -name '.*' -print | $(XARGS) xargs $(RM) -rf $(FIND) $(distdir) -name '#*' -print | $(XARGS) $(RM) -rf $(FIND) $(distdir) -name '*~' -print | $(XARGS) $(RM) -rf # Generate ChangeLog if [ -d .git ]; then \ git log > $(distdir)/ChangeLog; \ fi ps: $(MAKE) -C doc sbuild.ps pdf: $(MAKE) -C doc sbuild.pdf .PHONY: ps pdf # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/PaxHeaders.4860/Makefile.am0000644000000000000000000000013212627410514014602 xustar0030 mtime=1449005388.459402735 30 atime=1451136874.257615774 30 ctime=1451136983.909759645 sbuild-0.67.0/Makefile.am0000644000175000017500000000275112627410514015427 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk SUBDIRS = bin tools configs etc lib man db test dist-hook: # Remove junk from the generated tarball. $(FIND) $(distdir) -name '.*' -print | $(XARGS) xargs $(RM) -rf $(FIND) $(distdir) -name '#*' -print | $(XARGS) $(RM) -rf $(FIND) $(distdir) -name '*~' -print | $(XARGS) $(RM) -rf # Generate ChangeLog if [ -d .git ]; then \ git log > $(distdir)/ChangeLog; \ fi EXTRA_DIST = \ bootstrap \ lisp \ scripts/git-tag-release \ scripts/git-version \ ChangeLog-buildd \ HACKING \ Makefile-buildd \ NEWS-buildd \ README.buildd-admin \ README.chroot-building \ VERSION ps: $(MAKE) -C doc sbuild.ps pdf: $(MAKE) -C doc sbuild.pdf .PHONY: ps pdf sbuild-0.67.0/PaxHeaders.4860/HACKING0000644000000000000000000000013212627410514013535 xustar0030 mtime=1449005388.459402735 30 atime=1451136428.817056045 30 ctime=1451136983.929759671 sbuild-0.67.0/HACKING0000644000175000017500000000563112627410514014362 0ustar00joschjosch00000000000000Working on sbuild -*- text -*- ═════════════════ This document is a short guide to the conventions used in the buildd-tools sbuild project. Coding ────── The style should be apparent from the source. It is the default Emacs perl-mode style. Documentation ───────────── All the documentation is in UNIX manual page format. GNU roff extensions are permitted, as is use of tbl. Make sure the printed output is as good as terminal display. Run "make ps" or "make pdf" to build the printed documentation. The following styles are used: Style Formatting Syntax -------------------------------------------------------------------- New term Bold .B or \fB Option definition Bold, args in italic .BR and \fI Option reference Italic .I or \fI File definition Bold italic \f[BI] File reference Italic .I or \fI Config key definition Courier bold italic \f[CBI] Config key reference Courier italic \f[CI] Values Single quotes \[oq] and \[cq] Example text Double quotes \[lq] and \[rq] Cross references Italics in double quotes \[lq]\fI...\fP\[rq] Verbatim examples Courier \f[CR] Verbatim user input Courier bold \f[CB] Releasing ───────── New upstream releases: • The code must pass the testsuite (run 'sudo make check' after ./configure --enable-chroot-checks). This requires a local schroot called 'unstable' setup. These checks can take some time to run. Plain "./configure; ./bootstrap; make check" runs only the checks that can be done without schroot, which are very quick. • The NEWS file must be up to date, and have the current version number present on the line starting with "Welcome to sbuild .". • Run scripts/git-tag-release which will tag the git repository and prompt for a GPG passphrase to sign the tag with your GPG public key. This is essential to get a correct version number in the release in the next step, and can not be skipped. • Run ./bootstrap to create the VERSION file and regenerate the configure script with the new version number. This uses the last release tag (generated with git-tag-release) to get the package name and version number. • Run ./configure and then "make dist" to generate the release tarball. New Debian releases: • Run debian/git-tag-debian in the git source to tag the debian release. • Copy the upstream (make dist) release tarball out of the build dir, rename it to sbuild_.orig.tar.gz then unpack it and use it to build the Debian release (with the usual tools such as dpkg-buildpackage, or sbuild). sbuild-0.67.0/PaxHeaders.4860/test0000644000000000000000000000013212637513730013455 xustar0030 mtime=1451136984.301760163 30 atime=1451136984.349760227 30 ctime=1451136984.301760163 sbuild-0.67.0/test/0000755000175000017500000000000012637513730014352 5ustar00joschjosch00000000000000sbuild-0.67.0/test/PaxHeaders.4860/sbuild-checkpackages.in0000644000000000000000000000013112637513655020123 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.293760153 sbuild-0.67.0/test/sbuild-checkpackages.in0000755000175000017500000000175412637513655020756 0ustar00joschjosch00000000000000#!/bin/sh # # sbuild-checkpackages: Test sbuild-checkpackages # Copyright © 2010 Roger Leigh . # ####################################################################### set -e for dist in unstable; do for opt in --list --set --list; do PERL5LIB="@abs_top_srcdir@/lib" "@abs_top_srcdir@/bin/sbuild-checkpackages" "$opt" "$dist" done done sbuild-0.67.0/test/PaxHeaders.4860/perl-syntax.in0000644000000000000000000000013112637513655016355 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.289760148 sbuild-0.67.0/test/perl-syntax.in0000755000175000017500000000202712637513655017202 0ustar00joschjosch00000000000000#!/bin/sh # # perl-syntax: Check validity of perl syntax in programs # Copyright © 2010 Roger Leigh . # ####################################################################### set -e for program in "@abs_top_srcdir@/bin/"* do if grep '#!/usr/bin/perl' "$program" 2>&1 >/dev/null; then echo "Checking $program" PERL5LIB="@abs_top_srcdir@/lib" /usr/bin/perl -cw "$program" fi done sbuild-0.67.0/test/PaxHeaders.4860/logging0000644000000000000000000000013112637513655015110 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.301760163 sbuild-0.67.0/test/logging0000644000175000017500000000026312637513655015732 0ustar00joschjosch00000000000000Logging test combinations: user mode with no log dir set user mode with log dir set buildd mode (log dir always set) direct download dsc source in cwd source in other directory sbuild-0.67.0/test/PaxHeaders.4860/sbuild-update.in0000644000000000000000000000013112637513655016631 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.293760153 sbuild-0.67.0/test/sbuild-update.in0000755000175000017500000000201612637513655017454 0ustar00joschjosch00000000000000#!/bin/sh # # sbuild-update: Test sbuild-update # Copyright © 2010 Roger Leigh . # ####################################################################### set -e for dist in unstable; do for opt in --update --upgrade --dist-upgrade --clean --autoclean --autoremove -ugdcar; do PERL5LIB="@abs_top_srcdir@/lib" "@abs_top_srcdir@/bin/sbuild-update" "$opt" "$dist" done done sbuild-0.67.0/test/PaxHeaders.4860/sbuild-clean.in0000644000000000000000000000013112637513655016431 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.297760158 sbuild-0.67.0/test/sbuild-clean.in0000644000175000017500000000170212637513655017252 0ustar00joschjosch00000000000000#!/bin/sh # # sbuild-clean: Test sbuild-clean # Copyright © 2010 Roger Leigh . # ####################################################################### set -e for dist in unstable; do PATH="@abs_top_srcdir@/bin:$PATH" PERL5LIB="@abs_top_srcdir@/lib" "@abs_top_srcdir@/bin/sbuild-clean" "$dist" done sbuild-0.67.0/test/PaxHeaders.4860/sbuild-hold.in0000644000000000000000000000013112637513655016275 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.293760153 sbuild-0.67.0/test/sbuild-hold.in0000755000175000017500000000174612637513655017131 0ustar00joschjosch00000000000000#!/bin/sh # # sbuild-hold: Test sbuild-hold and sbuild-unhold # Copyright © 2010 Roger Leigh . # ####################################################################### set -e for dist in unstable; do for prog in sbuild-hold sbuild-unhold; do PERL5LIB="@abs_top_srcdir@/lib" "@abs_top_srcdir@/bin/$prog" "$dist" bash apt done done sbuild-0.67.0/test/PaxHeaders.4860/sbuild-upgrade.in0000644000000000000000000000013112637513655016776 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.293760153 sbuild-0.67.0/test/sbuild-upgrade.in0000755000175000017500000000171012637513655017621 0ustar00joschjosch00000000000000#!/bin/sh # # sbuild-upgrade: Test sbuild-upgrade # Copyright © 2010 Roger Leigh . # ####################################################################### set -e for dist in unstable; do PATH="@abs_top_srcdir@/bin:$PATH" PERL5LIB="@abs_top_srcdir@/lib" "@abs_top_srcdir@/bin/sbuild-upgrade" "$dist" done sbuild-0.67.0/test/PaxHeaders.4860/wanna-build0000644000000000000000000000013112637513655015663 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.301760163 sbuild-0.67.0/test/wanna-build0000755000175000017500000000737212637513655016520 0ustar00joschjosch00000000000000#!/usr/bin/perl # # This is a fake wanna-build. Its sole purpose is to provide a means # to test buildd in isolation, without a full wanna-build database and # associated intrastructure. This currently only permits testing of # buildd, and not buildd-mail or buildd-uploader. # use strict; use warnings; use Getopt::Long qw(:config no_ignore_case auto_abbrev gnu_getopt); our $api = 1; our $arch = "amd64"; our $list = undef; our $dist = "unstable"; our $verbose = 0; our $command = "take"; our $user = "buildd"; our $database = "db"; my @options = ( 'api=i' => \$api, 'arch|A=s' => \$arch, 'list|l=s' => sub { $command="list"; $list=$_[1]; }, 'dist|d=s' => \$dist, 'verbose|v' => \$verbose, 'building|take' => sub { $command="take" }, 'built' => sub { $command="built" }, 'attempted' => sub { $command="attempted" }, 'needs-build|give-back' => sub { $command="needs-build" }, 'info|i' => sub { $command="info" }, 'user=s' => \$user, 'database=s' => \$database ); GetOptions(@options); my $output = "unknown output for action\n"; if ($command eq "take") { if ($verbose) { $output = <<"EOF"; wanna-build c9531211e54a03cff965eebc3fe617ea8539f7ba for sid on amd64 - bash: - status: ok - pkg-ver: bash_4.2-1 - archive: ftp-master uupdate transactions: bash sid 4.1-3 --take Installed Building rleigh rleigh \$VAR1 = { 'state_days' => '52', 'priority' => 'source', 'rel' => undef, 'state_change' => '2012 Jan 21 16:19:15', 'successtime' => 694, 'permbuildpri' => undef, 'extra_depends' => undef, 'section' => 'shells', 'failed' => undef, 'buildpri' => undef, 'state' => 'Building', 'binary_nmu_changelog' => undef, 'anytime' => 694, 'bd_problem' => undef, 'state_time' => '4510370', 'build_arch_all' => 0, 'version' => '4.1-3', 'package' => 'bash', 'distribution' => 'sid', 'extra_conflicts' => undef, 'installed_version' => '4.2-1', 'notes' => 'out-of-date', 'do_state_change' => 1, 'builder' => 'rleigh', 'old_failed' => undef, 'binary_nmu_version' => undef, 'previous_state' => 'Installed', 'depends' => undef }; EOF } else { $output = <<"EOF"; - bash: - status: ok - pkg-ver: bash_4.2-1 - archive: ftp-master update transactions: bash sid 4.2-1 --take Needs-Build Building rleigh rleigh EOF } } elsif ($command eq "built") { $output = <<"EOF"; update transactions: bash sid 4.2-1 --built Building Built rleigh rleigh EOF } elsif ($command eq "attempted") { $output = <<"EOF"; update transactions: bash sid 4.2-1 --attempted Building Build-Attempted rleigh rleigh EOF } elsif ($command eq "needs-build") { $output = <<"EOF"; update transactions: bash sid 4.2-1 --give-back Building BD-Uninstallable rleigh rleigh EOF } elsif ($command eq "info") { $output = <<"EOF"; bash: Package : bash Version : 4.2-1 Builder : buildd_amd64-barber State : Needs-Build Section : shells Priority : source Installed-Version : 4.1-3 Previous-State : Installed State-Change : 2011-11-30 11:26:24.40323 Build-time : 694 Build-Arch-All : 0 CalculatedPri : 52 component : main Distribution : sid Notes : out-of-date State-Days : 52 State-Time : 4510444 Success-build-time : 694 EOF } elsif ($command eq "list" && $list eq "needs-build") { $output = <<"EOF"; libs/bash_4.2-1 [optional:out-of-date:calprio{49}:days{0}] Total 1 package(s) EOF } print "$output"; sbuild-0.67.0/test/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665015606 xustar0030 mtime=1451136949.557714325 30 atime=1451136977.941751755 30 ctime=1451136984.289760148 sbuild-0.67.0/test/Makefile.in0000644000175000017500000007444712637513665016446 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(srcdir)/perl-syntax.in \ $(srcdir)/sbuild-checkpackages.in $(srcdir)/sbuild-hold.in \ $(srcdir)/sbuild-update.in $(srcdir)/sbuild-upgrade.in \ $(srcdir)/sbuild-distupgrade.in $(srcdir)/sbuild-clean.in \ $(srcdir)/sbuild.in $(top_srcdir)/scripts/test-driver subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = perl-syntax sbuild-checkpackages sbuild-hold \ sbuild-update sbuild-upgrade sbuild-distupgrade sbuild-clean \ sbuild CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/scripts/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/scripts/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) TESTS = \ perl-syntax \ $(chroot_checks) @SBUILD_CHROOT_CHECKS_TRUE@chroot_checks = \ @SBUILD_CHROOT_CHECKS_TRUE@ sbuild-hold \ @SBUILD_CHROOT_CHECKS_TRUE@ sbuild-update \ @SBUILD_CHROOT_CHECKS_TRUE@ sbuild-upgrade \ @SBUILD_CHROOT_CHECKS_TRUE@ sbuild-distupgrade \ @SBUILD_CHROOT_CHECKS_TRUE@ sbuild-clean \ @SBUILD_CHROOT_CHECKS_TRUE@ sbuild-checkpackages \ @SBUILD_CHROOT_CHECKS_TRUE@ sbuild EXTRA_DIST = \ logging \ perl-syntax.in \ sbuild-update.in \ sbuild-upgrade.in \ sbuild-distupgrade.in \ sbuild-clean.in \ sbuild-hold.in \ sbuild-checkpackages.in \ sbuild.in \ wanna-build all: all-am .SUFFIXES: .SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): perl-syntax: $(top_builddir)/config.status $(srcdir)/perl-syntax.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ sbuild-checkpackages: $(top_builddir)/config.status $(srcdir)/sbuild-checkpackages.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ sbuild-hold: $(top_builddir)/config.status $(srcdir)/sbuild-hold.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ sbuild-update: $(top_builddir)/config.status $(srcdir)/sbuild-update.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ sbuild-upgrade: $(top_builddir)/config.status $(srcdir)/sbuild-upgrade.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ sbuild-distupgrade: $(top_builddir)/config.status $(srcdir)/sbuild-distupgrade.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ sbuild-clean: $(top_builddir)/config.status $(srcdir)/sbuild-clean.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ sbuild: $(top_builddir)/config.status $(srcdir)/sbuild.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? perl-syntax.log: perl-syntax @p='perl-syntax'; \ b='perl-syntax'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) sbuild-hold.log: sbuild-hold @p='sbuild-hold'; \ b='sbuild-hold'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) sbuild-update.log: sbuild-update @p='sbuild-update'; \ b='sbuild-update'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) sbuild-upgrade.log: sbuild-upgrade @p='sbuild-upgrade'; \ b='sbuild-upgrade'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) sbuild-distupgrade.log: sbuild-distupgrade @p='sbuild-distupgrade'; \ b='sbuild-distupgrade'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) sbuild-clean.log: sbuild-clean @p='sbuild-clean'; \ b='sbuild-clean'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) sbuild-checkpackages.log: sbuild-checkpackages @p='sbuild-checkpackages'; \ b='sbuild-checkpackages'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) sbuild.log: sbuild @p='sbuild'; \ b='sbuild'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: all all-am check check-TESTS check-am clean clean-generic \ cscopelist-am ctags-am distclean distclean-generic distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am recheck tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/test/PaxHeaders.4860/Makefile.am0000644000000000000000000000013112637513655015573 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.289760148 sbuild-0.67.0/test/Makefile.am0000644000175000017500000000235412637513655016420 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk TESTS = \ perl-syntax \ $(chroot_checks) if SBUILD_CHROOT_CHECKS chroot_checks = \ sbuild-hold \ sbuild-update \ sbuild-upgrade \ sbuild-distupgrade \ sbuild-clean \ sbuild-checkpackages \ sbuild endif EXTRA_DIST = \ logging \ perl-syntax.in \ sbuild-update.in \ sbuild-upgrade.in \ sbuild-distupgrade.in \ sbuild-clean.in \ sbuild-hold.in \ sbuild-checkpackages.in \ sbuild.in \ wanna-build sbuild-0.67.0/test/PaxHeaders.4860/sbuild-distupgrade.in0000644000000000000000000000013112637513655017662 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.297760158 sbuild-0.67.0/test/sbuild-distupgrade.in0000644000175000017500000000172412637513655020507 0ustar00joschjosch00000000000000#!/bin/sh # # sbuild-distupgrade: Test sbuild-distupgrade # Copyright © 2010 Roger Leigh . # ####################################################################### set -e for dist in unstable; do PATH="@abs_top_srcdir@/bin:$PATH" PERL5LIB="@abs_top_srcdir@/lib" "@abs_top_srcdir@/bin/sbuild-distupgrade" "$dist" done sbuild-0.67.0/test/PaxHeaders.4860/sbuild.in0000644000000000000000000000013112637513655015351 xustar0030 mtime=1451136941.893704245 29 atime=1451136942.91770559 30 ctime=1451136984.297760158 sbuild-0.67.0/test/sbuild.in0000755000175000017500000000423112637513655016175 0ustar00joschjosch00000000000000#!/bin/sh # # sbuild: Test package building # Copyright © 2010 Roger Leigh . # ####################################################################### set -e for dist in unstable; do schrootdist="$dist-$(dpkg-architecture -qDEB_HOST_ARCH)-sbuild" # General build checks for pkg in bash dadadodo time pong2; do ver="$(schroot --directory=/tmp -c "$schrootdist" -- apt-cache showsrc "$pkg" | grep ^Version: | head -n 1 | sed -e 's/^Version:[[:space:]]*\(.*\)$/\1/')" PATH="@abs_top_srcdir@/bin:$PATH" PERL5LIB="@abs_top_srcdir@/lib" SBUILD_CONFIG="@abs_top_srcdir@/etc/example.sbuildrc" "@abs_top_srcdir@/bin/sbuild" -s -A -d"$dist" "${pkg}_${ver}" done # Test batch mode for pkg in bash dadadodo; do ver="$(schroot --directory=/tmp -c "$schrootdist" -- apt-cache showsrc "$pkg" | grep ^Version: | head -n 1 | sed -e 's/^Version:[[:space:]]*\(.*\)$/\1/')" PATH="@abs_top_srcdir@/bin:$PATH" PERL5LIB="@abs_top_srcdir@/lib" SBUILD_CONFIG="@abs_top_srcdir@/etc/example.sbuildrc" "@abs_top_srcdir@/bin/sbuild" --batch -s -A -d"$dist" "${pkg}_${ver}" done # Test source building (note: no epoch or revision) for pkg in debianutils; do { ver="$(apt-cache policy "$pkg" | grep "\*\*\*" | awk '{ print $2 }' | sed -e 's/^Version:[[:space:]]*\(.*\)$/\1/')" apt-get source $pkg cd "${pkg}-${ver}" PATH="@abs_top_srcdir@/bin:$PATH" PERL5LIB="@abs_top_srcdir@/lib" SBUILD_CONFIG="@abs_top_srcdir@/etc/example.sbuildrc" "@abs_top_srcdir@/bin/sbuild" --batch -s -A -d"$dist" } done done sbuild-0.67.0/PaxHeaders.4860/bin0000644000000000000000000000013212637513727013254 xustar0030 mtime=1451136983.989759751 30 atime=1451136984.349760227 30 ctime=1451136983.989759751 sbuild-0.67.0/bin/0000755000175000017500000000000012637513727014151 5ustar00joschjosch00000000000000sbuild-0.67.0/bin/PaxHeaders.4860/buildd-mail0000644000000000000000000000013112565554441015434 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 30 ctime=1451136983.969759724 sbuild-0.67.0/bin/buildd-mail0000755000175000017500000000246712565554441016271 0ustar00joschjosch00000000000000#!/usr/bin/perl # # buildd-mail: mail answer processor for buildd # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### use strict; use warnings; use Buildd::Conf qw(); use Buildd::Mail; use Sbuild::OptionsBase; my $conf = Buildd::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "buildd-mail", "1"); exit 1 if !defined($options); my $mail = Buildd::Mail->new($conf); exit 1 if !defined($mail); my $status = $mail->run(); $mail->close_log(); exit $status; sbuild-0.67.0/bin/PaxHeaders.4860/dobuildlog0000644000000000000000000000013112361663370015371 xustar0030 mtime=1405576952.289596563 30 atime=1451044743.162752739 29 ctime=1451136983.98175974 sbuild-0.67.0/bin/dobuildlog0000755000175000017500000000553112361663370016221 0ustar00joschjosch00000000000000#!/bin/bash -e # # Copyright © 2002 Rick Younie # # 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, see # . # ####################################################################### # # craft a bug report or fail/success reply to a buildd log mail # using vim, mutt and optionally quintuple-agent: # mutt # 'f'orward the message # (may require autoedit & edit_headers .muttrc settings) # vim # map :%!~buildd/bin/dobuildlog agpg # map :%!~buildd/bin/dobuildlog gpg # map :%!~buildd/bin/dobuildlog bug # these require setting by the user SIGNOPTS='--clearsign --default-key younie@debian.org' FROM="$EMAIL" # "Your Name " ARCH=m68k # for the bug report log link print_header () { echo "From: $FROM" sed -n ' /^-----/,/^Automatic/ { s/From: /To: /p s/^Subject: Log/Subject: Re: Log/p }' echo } fail_options () { cat << EOF failed this one takes a comment, multi-line, indenting optional dep-wait - usage: dep-wait some-package (>= version), another-package (>> version) giveback manual newvers not-for-us purge - purges the source tree from the chroot retry upload-rem EOF } success_fail () { STATUS=$(sed -n '/^-----/,/^Automatic/ s/^Subject: Log for \([^ ]*\) build .*/\1/p') case "$STATUS" in successful ) print_header sed -n '/\.changes:$/,$ { /^Format: /,/^$/p }' |$SIGNPRG 2>/dev/null ;; failed ) print_header fail_options sed -n '/^Automatic build of/,$p' ;; * ) echo "..this doesn't appear to be a buildd success/fail message" exit 1 ;; esac } bug_report () { PKG=$1 VERS=$2 cat << EOF From: $FROM To: submit@bugs.debian.org Subject: $PKG_VERS: fails to build Package: $PKG Version: $VERS Severity: serious Hi, EOF sed -n '/^Automatic build of/,/^Build needed/ s/^/| /p' cat <&2 exit 1 fi usage() { message=$1 if [ ! -z "$message" ] then echo "E: $message" >&2 fi echo "Usage: $0 [http://some.debian.mirror/debian] [--arch=arch] suite [vgname lvsize]" >&2 echo "Valid suites: oldstable, stable, testing, unstable, experimental," >&2 echo " oldstable-security, stable-security, testing-security," >&2 echo " oldstable-backports, stable-backports," >&2 echo " oldstable-edu, stable-edu, testing-edu" >&2 echo "If vgname is given, the script will setup schroot" >&2 echo "to use snapshots based on a source lv." >&2 exit 1 } error() { message=$1 echo "E: ${message}" >&2 exit 1 } if [ -f /etc/schroot/conf.buildd ] ; then set +e . /etc/schroot/conf.buildd set -e fi if echo "$1" | egrep -q '^(ht|f)tp://'; then MIRROR="$1" shift else MIRROR="${debian_mirror}" [ -z ${MIRROR} ] && error "no mirror specified (neither on command line nor in /etc/schroot/conf.buildd)" fi ARCH="$(dpkg --print-architecture)" if echo "$1" | egrep -q '^--arch='; then ARCH=${1:7} shift fi SUITE="$1" VGNAME="$2" LVSIZE="$3" # This might need an adjustment if you are creating chroots different # from the host architecture. (Not tested.) if [ -z "$MIRROR" ] then usage "No mirror specified!" fi if [ -z "$SUITE" ] then usage "No suite specified!" fi if ! [ -z "$VGNAME" ] && [ -z "$LVSIZE" ] then usage "You need to specifiy a source lv size!" fi BASE="$SUITE" OLDSTABLE="squeeze" STABLE="wheezy" TESTING="jessie" case "$SUITE" in oldstable) BASE=$OLDSTABLE ;; oldstable-security) BASE=$OLDSTABLE; VARIANT="security" ;; oldstable-backports) BASE=$OLDSTABLE; VARIANT="backports" ;; oldstable-edu) BASE=$OLDSTABLE; VARIANT="edu" ;; stable) BASE=$STABLE ;; stable-security) BASE=$STABLE; VARIANT="security" ;; stable-backports) BASE=$STABLE; VARIANT="backports" ;; stable-edu) BASE=$STABLE; VARIANT="edu" ;; testing) BASE=$TESTING ;; testing-security) BASE=$TESTING; VARIANT="security" ;; testing-edu) BASE=$TESTING; VARIANT="edu" ;; unstable) BASE="sid" ;; experimental) BASE="sid"; VARIANT="experimental";; *) usage "Invalid suite specified (must be symbolic, e.g. 'stable')!" ;; esac echo "I: Building environment for $SUITE" echo "I: Mirror: $MIRROR" echo "I: Base suite: $BASE" if [ ! -z "$VARIANT" ] then echo "I: Variant: $VARIANT" IDENTIFIER="$BASE-$VARIANT" else IDENTIFIER="$BASE" fi TARGET=~buildd/chroots/$IDENTIFIER echo "I: Chroot target: $TARGET" check_prerequisites() { echo "I: Checking prerequisites..." [ -d /etc/schroot/chroot.d ] || \ error "/etc/schroot/chroot.d not found, schroot not installed?" [ ! -d $TARGET ] || error "Target $TARGET already exists." ! schroot -l | grep ^${IDENTIFIER}-${ARCH}-sbuild$ -q || error "schroot target ${IDENTIFIER}-${ARCH}-sbuild exists" if [ "${SUITE}" = experimental ]; then ! schroot -l | grep ^${SUITE}-${ARCH}-sbuild$ -q || error "schroot target ${SUITE}-${ARCH}-sbuild exists" fi [ ! -f "/etc/schroot/chroot.d/buildd-${IDENTIFIER}-${ARCH}" ] || error "schroot file /etc/schroot/chroot.d/buildd-${IDENTIFIER}-${ARCH} already exists" if [ -z "$VGNAME" ]; then mkdir -p ~buildd/chroots fi mkdir -p ~buildd/build-trees } do_debootstrap() { ensure_target_mounted echo "I: Running debootstrap..." echo sudo debootstrap \ --arch=$ARCH \ --variant=buildd \ --include=fakeroot,build-essential,debfoster,apt \ $BASE \ $TARGET \ $MIRROR echo echo "I: Creating a policy-rc.d to prevent daemon startups..." TEMPFILE="$(mktemp)" cat > "${TEMPFILE}" <&2 exit 101 EOT sudo mv "${TEMPFILE}" "${TARGET}/usr/sbin/policy-rc.d" sudo chown root: "${TARGET}/usr/sbin/policy-rc.d" sudo chmod 0755 "${TARGET}/usr/sbin/policy-rc.d" # With wheezy and up /dev/shm is a symlink to /run/shm; because all # suites share the same setup scripts, this needs to be reverted. echo "I: Switching /dev/shm to a real directory..." if [ -L "${TARGET}/dev/shm" ] then sudo rm "${TARGET}/dev/shm" sudo mkdir "${TARGET}/dev/shm" sudo chmod a+w,o+t "${TARGET}/dev/shm" fi ensure_target_unmounted } setup_schroot() { echo "I: Setting up schroot configuration..." TEMPFILE="$(mktemp)" cat > "${TEMPFILE}" <> "${TEMPFILE}" fi if [ -z "$VGNAME" ]; then echo "type=directory" >> "${TEMPFILE}" echo "directory=${TARGET}" >> "${TEMPFILE}" SCHROOT="schroot -c ${IDENTIFIER}-${ARCH}-sbuild -u root -d /root --" else cat >>"${TEMPFILE}" <>"${TEMPFILE}" fi sudo mv "${TEMPFILE}" "/etc/schroot/chroot.d/buildd-${IDENTIFIER}${EXTRA}-${ARCH}" sudo chown root: "/etc/schroot/chroot.d/buildd-${IDENTIFIER}${EXTRA}-${ARCH}" sudo chmod 0644 "/etc/schroot/chroot.d/buildd-${IDENTIFIER}${EXTRA}-${ARCH}" } setup_schroot_variant() { echo VARIANT: $EXTRA if ! [ -f "/etc/schroot/chroot.d/buildd-${IDENTIFIER}${EXTRA}-${ARCH}" ] && ! schroot -l | grep ^${IDENTIFIER}${EXTRA}-${ARCH}-sbuild$ -q && ( [ -z "${SUITEEXTRA}" ] || ! schroot -l | grep ^${SUITEEXTRA}-${ARCH}-sbuild$ -q ) ; then setup_schroot fi } setup_sources() { echo "I: Setting up sources..." TEMPFILE="$(mktemp)" cat > "${TEMPFILE}" <> "${TEMPFILE}" <> "${TEMPFILE}" <> "${TEMPFILE}" <> "${TEMPFILE}" <> "${TEMPFILE}" <> "${TEMPFILE}" < "${TEMPFILE}" < "${TEMPFILE}" < "${TEMPFILE}" < "${TEMPFILE}" <> "$file" fi } setup_debfoster() { echo "I: Setting up debfoster's keepers file..." TEMPFILE="$(mktemp)" cat > "$TEMPFILE" < /etc/schroot/conf.buildd" fi do_debootstrap setup_schroot if ! [ -z "$VGNAME" ] && [ -z "$VARIANT" ]; then variants="security backports" if [ "$ARCH" == "i386" -o "$ARCH" == "amd64" -o "$ARCH" == "powerpc" ]; then variants="${variants} edu" fi if [ "$BASE" == "sid" ]; then variants="experimental"; fi for EXTRA in $variants; do EXTRA=-${EXTRA} SUITEEXTRA="" if [ "$BASE" = "sid" ]; then SUITEEXTRA="experimental"; fi setup_schroot_variant done fi setup_sources adjust_debconf adjust_dpkg setup_sbuild old_sbuild_compat setup_debfoster do_dist_upgrade echo echo "I: The last step is coming up, you can also abort on the apt prompt" echo "I: caused by debfoster!" echo do_debfoster sbuild-0.67.0/bin/PaxHeaders.4860/buildd-update-chroots0000644000000000000000000000013112565554441017453 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 30 ctime=1451136983.973759729 sbuild-0.67.0/bin/buildd-update-chroots0000755000175000017500000000244212565554441020301 0ustar00joschjosch00000000000000#!/bin/sh # # Copyright © 2005 Ryan Murray # Copyright © 2009 Thibaut VARÈNE # # 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, see # . # ####################################################################### cleanup() { rm -f ~/NO-DAEMON-PLEASE } touch ~/NO-DAEMON-PLEASE trap cleanup 0 touch ~/EXIT-DAEMON-PLEASE echo -n Waiting for sbuild and buildd to exit... while [ -f ~/EXIT-DAEMON-PLEASE ]; do sleep 10 done echo . schroot -a -u root -d /root -- apt-get update echo Upgrading chroots: schroot -a -u root -d /root -- apt-get dist-upgrade -y echo Cleaning chroots: schroot -a -u root -d /root -- apt-get autoremove -y schroot -a -u root -d /root -- debfoster -f sbuild-0.67.0/bin/PaxHeaders.4860/buildd-make-chroot0000644000000000000000000000013112604171371016712 xustar0030 mtime=1443951353.753107647 30 atime=1451044743.162752739 29 ctime=1451136983.98175974 sbuild-0.67.0/bin/buildd-make-chroot0000755000175000017500000001261612604171371017544 0ustar00joschjosch00000000000000#!/bin/sh -e # # Script that uses debootstrap 0.3.2+ to build a build-essential # chroot for buildd use. # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### # user suite target if [ "$#" -lt "3" ]; then echo "usage: buildd-make-chroot user suite target " exit 1 fi if [ "$#" -gt "4" ]; then echo "usage: buildd-make-chroot user suite target " exit 1 fi USER=$1 SUITE=$2 if echo "$3" | grep -Eq '^/'; then TARGET="$3" else TARGET="`pwd`/$3" fi if [ "$#" -gt "3" ]; then MIRROR=$4 else MIRROR=http://incoming.debian.org/debian fi debootstrap --variant=buildd --include=sudo,fakeroot,build-essential $SUITE $TARGET $MIRROR hostname=`hostname` echo 127.0.0.1 $hostname localhost > $TARGET/etc/hosts echo "# put any local/close mirrors at the top of the file" > $TARGET/etc/apt/sources.list if [ "$#" -gt "3" ]; then echo "deb $4 $SUITE main contrib" >> $TARGET/etc/apt/sources.list fi echo "deb http://incoming.debian.org/debian $SUITE main contrib" >> $TARGET/etc/apt/sources.list echo "deb-src http://incoming.debian.org/debian $SUITE main contrib" >> $TARGET/etc/apt/sources.list case "$2" in sid) echo "deb http://incoming.debian.org/buildd /" >> $TARGET/etc/apt/sources.list echo "deb-src http://incoming.debian.org/buildd /" >> $TARGET/etc/apt/sources.list ;; woody) echo "deb http://non-us.debian.org/debian-non-US $SUITE/non-US main contrib" >> $TARGET/etc/apt/sources.list echo "deb-src http://non-us.debian.org/debian-non-US $SUITE/non-US main contrib" >> $TARGET/etc/apt/sources.list echo "deb http://$hostname:PASSWORD@security-master.debian.org/debian-security $SUITE/updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb-src http://$hostname:PASSWORD@security-master.debian.org/debian-security $SUITE/updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb http://$hostname:PASSWORD@security-master.debian.org/buildd $SUITE/" >> $TARGET/etc/apt/sources.list echo "deb-src http://$hostname:PASSWORD@security-master.debian.org/buildd $SUITE/" >> $TARGET/etc/apt/sources.list echo "deb http://incoming.debian.org/debian $SUITE-proposed-updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb-src http://incoming.debian.org/debian $SUITE-proposed-updates main contrib" >> $TARGET/etc/apt/sources.list ;; sarge) echo "deb http://incoming.debian.org/debian $SUITE-proposed-updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb-src http://incoming.debian.org/debian $SUITE-proposed-updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb http://$hostname:PASSWORD@security-master.debian.org/debian-security $SUITE/updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb-src http://$hostname:PASSWORD@security-master.debian.org/debian-security $SUITE/updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb http://$hostname:PASSWORD@security-master.debian.org/buildd $SUITE/" >> $TARGET/etc/apt/sources.list echo "deb-src http://$hostname:PASSWORD@security-master.debian.org/buildd $SUITE/" >> $TARGET/etc/apt/sources.list ;; etch) echo "deb http://incoming.debian.org/debian $SUITE-proposed-updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb-src http://incoming.debian.org/debian $SUITE-proposed-updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb http://$hostname:PASSWORD@security-master.debian.org/debian-security $SUITE/updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb-src http://$hostname:PASSWORD@security-master.debian.org/debian-security $SUITE/updates main contrib" >> $TARGET/etc/apt/sources.list echo "deb http://$hostname:PASSWORD@security-master.debian.org/buildd $SUITE/" >> $TARGET/etc/apt/sources.list echo "deb-src http://$hostname:PASSWORD@security-master.debian.org/buildd $SUITE/" >> $TARGET/etc/apt/sources.list ;; esac getent passwd $USER | sed -re 's/^([^:]+):x/\1:*/' -e 's/:[^:]+:([^:]+)$/:\/nonexistent:\1/' >> $TARGET/etc/passwd getent group $USER | sed -re 's/^([^:]+):x/\1:*/' >> $TARGET/etc/group echo $USER ALL=NOPASSWD: ALL >> $TARGET/etc/sudoers mkdir -p $TARGET/var/lib/sbuild//srcdep-lock $TARGET/build/$USER chown -R $USER:$USER $TARGET/var/lib/sbuild $TARGET/build/$USER chmod -R 02775 $TARGET/var/lib/sbuild echo include /etc/ld.so.conf.d/*.conf >> $TARGET/etc/ld.so.conf (cd $TARGET/dev ; ./MAKEDEV fd) sudo chroot $TARGET dpkg -P debconf-i18n debconf liblocale-gettext-perl libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl procps makedev echo "Successfully setup chroot for a buildd" echo Possible commands to append to fstab: echo echo $SUITE-proc $TARGET/proc proc defaults 0 0 \>\> /etc/fstab echo echo $SUITE-devpts $TARGET/dev/pts devpts defaults,gid=5,mode=600 0 0 \>\> /etc/fstab sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-checkpackages0000644000000000000000000000013212565554441017306 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.961759714 sbuild-0.67.0/bin/sbuild-checkpackages0000755000175000017500000000400712565554441020132 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # check the package list in a chroot against a reference list. # # Copyright © 2006-2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; our $mode = undef; package Options; use Sbuild::OptionsBase; use Sbuild::Conf qw(); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::OptionsBase); @EXPORT = qw(); } sub set_options { my $self = shift; $self->add_options( "l|list" => sub { $mode = "list"; }, "s|set" => sub { $mode = "set"; }); } package main; use locale; use POSIX qw(locale_h); use Getopt::Long; use Sbuild qw(help_text version_text usage_error check_packages check_group_membership); use Sbuild::Conf qw(); use Sbuild::Utility qw(setup cleanup shutdown); my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Options->new($conf, "sbuild-checkpackages", "1"); exit 1 if !defined($options); check_group_membership(); usage_error("sbuild-checkpackages", "--list or --set must be specified") if (!defined($mode)); usage_error("sbuild-checkpackages", "A chroot must be specified") if (@ARGV != 1); my $chroot = $ARGV[0]; setlocale(LC_COLLATE, "POSIX"); $ENV{'LC_COLLATE'} = "POSIX"; my $session = setup('source', $chroot, $conf) or die "Chroot setup failed"; check_packages($session, $mode); cleanup($conf); exit 0; sbuild-0.67.0/bin/PaxHeaders.4860/finish-build0000644000000000000000000000013212565554441015627 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.985759746 sbuild-0.67.0/bin/finish-build0000755000175000017500000000710412565554441016454 0ustar00joschjosch00000000000000#!/bin/sh # # finish-build: finishes a manually fixed build by running binary-arch # if necessary and generating a .changes file # Copyright © 1999 Roman Hodek # # 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, see # . # ####################################################################### set -e # TODO: Convert to perl and read configuration directly. if [ ! -f debian/rules ]; then echo "This directory doesn't seem to contain a Debian source tree" 1>&2 exit 1 fi logpath=$(cat /etc/sbuild.conf /etc/sbuild.conf.local $HOME/.sbuildrc | \ sed -n '/^\$log_dir/s/.*"\(.*\)".*/\1/p' | tail -1) logpath=`eval echo $logpath` if [ -z "$logpath" ]; then logpath=$HOME/logs fi maintname=$(cat /etc/sbuild.conf /etc/sbuild.conf.local $HOME/.sbuildrc | \ sed -n '/^\$maintainer_name/s/.*"\(.*\)".*/\1/p' | tail -1) maintname=$(echo $maintname | sed 's/\\@/@/g') if [ -z "$maintname" ]; then echo "Can't extract \$maintainer_name variable from sbuild config" 1>&2 exit 1 fi mailto=$(cat /etc/sbuild.conf /etc/sbuild.conf.local $HOME/.sbuildrc | \ sed -n '/^\$mailto/s/.*"\(.*\)".*/\1/p' | tail -1) mailto=$(echo $mailto | sed 's/\\@/@/g') if [ -z "$mailto" ]; then echo "Can't extract \$mailto variable from sbuild config" 1>&2 exit 1 fi setvar () { if [ "x$2" = x ]; then echo "$0: unable to determine $3" exit 1 else eval "$1='$2'" fi } opt_b=0 while [ $# -ge 1 ]; do case "$1" in -b) opt_b=1;; *) echo "Unknown option $1" 1>&2; exit 1;; esac shift done tmpf=/tmp/finish-build.$$ dpkg-parsechangelog > $tmpf setvar package "`sed -n 's/^Source: //p' $tmpf`" "source package" setvar version "`sed -n 's/^Version: //p' $tmpf`" "source version" setvar arch "`dpkg --print-architecture`" "build architecture" rm -f $tmpf sversion=`echo "$version" | perl -pe 's/^\d+://'` changes=${package}_${sversion}_${arch}.changes logpat=${package}_${version} lastlog=`(cd $logpath; ls -1t ${logpat}_* | head -1) 2>/dev/null` if [ -z "$lastlog" ]; then echo "No log file found (pattern ${logpat}_*)" 1>&2 exit 1 else echo " Log file is $lastlog" fi do_binarch=0 if [ ! -f debian/files ]; then echo " debian/files missing -- running binary-arch" do_binarch=1 elif [ $opt_b = 1 ]; then do_binarch=1 fi if [ $do_binarch = 1 ]; then echo " sudo debian/rules binary-arch" sudo debian/rules binary-arch 2>&1 | tee -a $logpath/$lastlog fi if [ ! -s ../$changes ]; then echo " Generating .changes file:" dpkg-genchanges -B -m"$maintname" > ../$changes fi if [ ! -f debian/files ]; then echo "debian/files not found" 1>&2 exit 1 fi files="`cut -d' ' -f1 debian/files`" if [ -z "$files" ]; then echo "No files list" 1>&2 exit 1 fi (cat $logpath/$lastlog; for i in $files; do echo; echo "$i:"; dpkg --info ../$i; done; for i in $files; do echo; echo "$i:"; dpkg --contents ../$i; done; echo; echo "$changes:"; cat ../$changes ) | mail -s "Log for successful build of $logpat (dist=unstable)" $mailto sbuild-0.67.0/bin/PaxHeaders.4860/buildd0000644000000000000000000000013112565554441014514 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 30 ctime=1451136983.969759724 sbuild-0.67.0/bin/buildd0000755000175000017500000000453212565554441015344 0ustar00joschjosch00000000000000#!/usr/bin/perl # # buildd: daemon to automatically build packages # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### use strict; use warnings; use Buildd::Conf qw(); use Buildd::Daemon; use Sbuild::OptionsBase; sub shutdown_fast ($); sub reread_config ($); sub reopen_log ($); my $conf = Buildd::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "buildd", "1"); exit 1 if !defined($options); my $daemon = Buildd::Daemon->new($conf); exit 1 if !defined($daemon); # Global signal handling foreach (qw(QUIT ILL TRAP ABRT BUS FPE USR2 SEGV PIPE XCPU XFSZ)) { $SIG{$_} = \&shutdown_fast; } $SIG{'HUP'} = \&reopen_log; $SIG{'USR1'} = \&reread_config; $SIG{'INT'} = \&shutdown; $SIG{'TERM'} = \&shutdown; exit $daemon->run(); sub shutdown_fast ($) { my $signame = shift; $daemon->log("buildd ($$) killed by SIG$signame\n") if defined($daemon); unlink( $conf->get('PIDFILE') ); exit 1; } sub shutdown ($) { my $signame = shift; if ($daemon) { $daemon->shutdown($signame); } exit 1; } sub reread_config ($) { my $signame = shift; $daemon->log("buildd ($$) received SIG$signame -- rereading configuration\n") if defined($daemon); $Buildd::Conf::reread_config = 1; } sub reopen_log ($) { my $signame = shift; $daemon->log("buildd ($$) received SIG$signame -- reopening logfile\n") if defined($daemon); $daemon->reopen_log(); } END { unlink( $conf->get('PIDFILE') ) if (defined($conf) && defined($daemon) && $daemon->get('Daemon')); } sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-upgrade0000644000000000000000000000013212565554441016161 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.961759714 sbuild-0.67.0/bin/sbuild-upgrade0000755000175000017500000000172112565554441017005 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # # Copyright © 2006-2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; print "$0 is deprecated. Use sbuild-update --upgrade directly instead.\n"; exec("sbuild-update", "--upgrade", @ARGV) or die "Can't run sbuild-update: $!"; sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-abort0000644000000000000000000000013212565554441015641 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.957759708 sbuild-0.67.0/bin/sbuild-abort0000755000175000017500000000432012565554441016463 0ustar00joschjosch00000000000000#!/usr/bin/perl # # Abort the current build. # Copyright © 1998 Roman Hodek # Copyright © 2003 Ryan Murray # Copyright © 2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; use Getopt::Long; use Sbuild qw(help_text version_text usage_error check_group_membership); use Sbuild::Conf qw(); use Sbuild::OptionsBase; my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "sbuild-abort", "1"); exit 1 if !defined($options); check_group_membership(); my $buildcount = 0; my $linecount = 0; my $header = ""; my @detail = (); open (PIPE, "/bin/ps xjww |") or die "Can't run /bin/ps: $!\n"; while() { chomp; if ($linecount == 0) { $header = $_; } elsif (m/\/usr\/bin\/perl \/usr\/bin\/dpkg-buildpackage/) { push @detail, $_; $buildcount++; } $linecount++; } close (PIPE) or die "Can't close /bin/ps pipe: $!\n"; if ($buildcount == 0) { print STDERR "E: No dpkg-buildpackage process found\n"; exit 1; } elsif ($buildcount > 1) { print STDERR "E: More than one dpkg-buildpackage process found:\n"; print "I: $header\n"; foreach (@detail) { print "I: $_\n"; } exit 1; } # Get PGID from saved ps output. my @fields = split(/[[:space:]]+/, $detail[0]); die "Error parsing /bin/ps output" if (@fields < 1); my $pgid = $fields[2]; # Kill process group. print "I: Killing process group $pgid\n"; kill("TERM", -$pgid) or die "Error killing PGID $pgid: $!\n"; exit 0; sbuild-0.67.0/bin/PaxHeaders.4860/setup_system0000644000000000000000000000013212361663370016012 xustar0030 mtime=1405576952.289596563 30 atime=1451044743.162752739 30 ctime=1451136983.989759751 sbuild-0.67.0/bin/setup_system0000755000175000017500000000456712361663370016651 0ustar00joschjosch00000000000000#!/bin/sh # # Copyright © 2005-2006 Ryan Murray # # 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, see # . # ####################################################################### # Needed sudoers entries: #buildd ALL=NOPASSWD: ALL #Defaults:buildd env_keep+="APT_CONFIG DEBIAN_FRONTEND" # # parts to be run as root. # ons of these, depending on whether you have a buildd group or not #sudo adduser --system --shell /bin/sh --uid 60000 --gecos 'Build Daemon' --ingroup buildd --disabled-password buildd sudo adduser --system --shell /bin/sh --uid 60000 --gecos 'Build Daemon' --group --disabled-password buildd sudo chown -R buildd:buildd /var/lib/wanna-build sudo chmod -R 2775 /var/lib/wanna-build # parts to be done as buildd. cd ~buildd zcat /usr/share/doc/buildd/examples/buildd.conf.gz > buildd.conf zcat /usr/share/doc/sbuild/examples/sbuildrc.gz > .sbuildrc mkdir -p .ssh build logs mqueue old-logs stats/graphs upload upload-security chmod o= .ssh upload-security old-logs mqueue logs build echo "|/usr/bin/buildd-mail-wrapper" > .forward ssh-keygen -b 2048 -t rsa -f .ssh/id_rsa -N '' echo I: setup .forward-porters with where you want buildd mail to go. echo I: chroot creation commands: echo buildd-make-chroot buildd sid build/chroot-unstable http://ftp.debian.org/debian echo buildd-make-chroot buildd sarge build/chroot-sarge http://ftp.debian.org/debian echo buildd-make-chroot buildd woody build/chroot-woody http://ftp.debian.org/debian echo buildd-make-chroot buildd etch build/chroot-etch http://ftp.debian.org/debian echo I: Link commands for the chroots: echo ln -s chroot-woody chroot-oldstable-security echo ln -s chroot-sarge chroot-stable echo ln -s chroot-sarge chroot-stable-security echo ln -s chroot-etch chroot-testing echo ln -s chroot-etch chroot-testing-security echo I: Done. exit 0 sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-unhold0000644000000000000000000000013212565554441016023 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.969759724 sbuild-0.67.0/bin/sbuild-unhold0000755000175000017500000000343112565554441016647 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # changes the dpkg status of a package in a chroot to "installed" # # Copyright © 2006,2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; use Getopt::Long; use Sbuild qw(help_text version_text usage_error check_group_membership); use Sbuild::Utility qw(setup cleanup shutdown); use Sbuild::ChrootSetup qw(unhold_packages list_packages); use Sbuild::Conf qw(); use Sbuild::OptionsBase; my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "sbuild-unhold", "1"); exit 1 if !defined($options); check_group_membership(); usage_error("sbuild-unhold", "Incorrect number of options") if (@ARGV < 2); my $chroot = Sbuild::Utility::get_dist($ARGV[0]); my $session = setup('source', $ARGV[0], $conf) or die "Chroot setup failed for $chroot chroot"; print STDOUT "Unholding packages in $chroot chroot:"; shift @ARGV; foreach (@ARGV) { print STDOUT " $_"; } print STDOUT ".\n\n"; my $status = unhold_packages($session, $conf, @ARGV); $status >>= 8; list_packages($session, $conf, @ARGV); cleanup($conf); exit $status; sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-createchroot0000644000000000000000000000013212637466265017222 xustar0030 mtime=1451125941.548607329 30 atime=1451125941.552607342 30 ctime=1451136983.977759735 sbuild-0.67.0/bin/sbuild-createchroot0000755000175000017500000003444212637466265020054 0ustar00joschjosch00000000000000#!/usr/bin/perl # # Run debootstrap and add a few other files needed to create a working # sbuild chroot. # Copyright © 2004 Francesco P. Lovergine . # Copyright © 2007-2010 Roger Leigh . # # 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, see # . # ####################################################################### use strict; use warnings; use Sbuild::AptResolver; package Conf; sub setup { my $conf = shift; my $keyring = ''; $keyring = '/etc/apt/trusted.gpg' if -f '/etc/apt/trusted.gpg'; my %createchroot_keys = ( 'CHROOT_SUFFIX' => { DEFAULT => '-sbuild' }, 'FOREIGN' => { DEFAULT => 0 }, 'INCLUDE' => { DEFAULT => '' }, 'EXCLUDE' => { DEFAULT => '' }, 'COMPONENTS' => { DEFAULT => 'main' }, 'RESOLVE_DEPS' => { DEFAULT => 1 }, 'KEEP_DEBOOTSTRAP_DIR' => { DEFAULT => 0 }, 'DEBOOTSTRAP' => { DEFAULT => 'debootstrap' }, 'KEYRING' => { DEFAULT => undef }, 'SETUP_ONLY' => { DEFAULT => 0 }, 'MAKE_SBUILD_TARBALL' => { DEFAULT => '' }, 'KEEP_SBUILD_CHROOT_DIR' => { DEFAULT => 0 }, ); $conf->set_allowed_keys(\%createchroot_keys); } package Options; use Sbuild::OptionsBase; use Sbuild::Conf qw(); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::OptionsBase); @EXPORT = qw(); } sub set_options { my $self = shift; $self->add_options( "chroot-suffix=s" => sub { $self->set_conf('CHROOT_SUFFIX', $_[1]); }, "arch=s" => sub { $self->set_conf('BUILD_ARCH', $_[1]); }, "foreign" => sub { $self->set_conf('FOREIGN', 1); }, "resolve-deps" => sub { $self->set_conf('RESOLVE_DEPS', 1) }, "no-resolve-deps" => sub { $self->set_conf('RESOLVE_DEPS', 0) }, "keep-debootstrap-dir" => sub { $self->set_conf('KEEP_DEBOOTSTRAP_DIR', 1) }, "debootstrap=s" => sub { $self->set_conf('DEBOOTSTRAP', $_[1]) }, "exclude=s" => sub { $self->set_conf('EXCLUDE', $_[1]); }, "include=s" => sub { $self->set_conf('INCLUDE', $_[1]); }, "components=s" => sub { $self->set_conf('COMPONENTS', $_[1]); }, "keyring=s" => sub { $self->set_conf('KEYRING', $_[1]); }, "setup-only" => sub { $self->set_conf('SETUP_ONLY', 1); }, "make-sbuild-tarball=s" => sub { $self->set_conf('MAKE_SBUILD_TARBALL', $_[1]); }, "keep-sbuild-chroot-dir" => sub { $self->set_conf('KEEP_SBUILD_CHROOT_DIR', 1); }); } package main; use POSIX; use Getopt::Long qw(:config no_ignore_case auto_abbrev gnu_getopt); use Sbuild qw(dump_file help_text version_text usage_error check_packages); use Sbuild::ChrootPlain; use Sbuild::ChrootRoot; use Sbuild::Sysconfig; use Sbuild::Conf qw(); use File::Path qw(mkpath rmtree); use File::Temp qw(tempfile); use File::Copy; use Cwd qw(abs_path); sub add_items ($@); sub makedir ($$); my $conf = Sbuild::Conf::new(); Conf::setup($conf); exit 1 if !defined($conf); my $options = Options->new($conf, "sbuild-createchroot", "8"); exit 1 if !defined($options); usage_error("sbuild-createchroot", "Incorrect number of options") if (@ARGV <3 || @ARGV >4); # Make sure fakeroot and build-essential are installed $conf->set('INCLUDE', add_items($conf->get('INCLUDE'), "fakeroot", "build-essential", "debfoster")); my $suite = $ARGV[0]; # check if schroot name is already in use my $chrootname = "${suite}-" . $conf->get('BUILD_ARCH') . $conf->get('CHROOT_SUFFIX'); open my $pipe, 'schroot -l --all-source-chroots |'; while (my $line = <$pipe>) { $line ne "source:$chrootname\n" or die "chroot with name $chrootname already exists"; } close $pipe; # Create the target directory in advance so abs_path (which is buggy) # won't fail. Remove if abs_path is replaced by something better. makedir($ARGV[1], 0755); my $target = abs_path($ARGV[1]); my $mirror = $ARGV[2]; my $script = undef; $script = $ARGV[3] if $#ARGV == 3; if ($conf->get('VERBOSE')) { print "I: SUITE: $suite\n"; print "I: TARGET: $target\n"; print "I: MIRROR: $mirror\n"; print "I: SCRIPT: $script\n" if (defined($script)); } my @args = ("--arch=" . $conf->get('BUILD_ARCH'), "--variant=buildd"); push @args, "--verbose" if $conf->get('VERBOSE'); push @args, "--foreign" if $conf->get('FOREIGN'); push @args, "--keep-debootstrap-dir" if $conf->get('KEEP_DEBOOTSTRAP_DIR'); push @args, "--include=" . $conf->get('INCLUDE') if $conf->get('INCLUDE'); push @args, "--exclude=" . $conf->get('EXCLUDE') if $conf->get('EXCLUDE'); push @args, "--components=" . $conf->get('COMPONENTS') if $conf->get('COMPONENTS'); push @args, "--keyring=" . $conf->get('KEYRING') if $conf->get('KEYRING'); push @args, "--no-check-gpg" if $conf->get('KEYRING') eq ""; push @args, $conf->get('RESOLVE_DEPS') ? "--resolve-deps" : "--no-resolve-deps"; push @args, "$suite", "$target", "$mirror"; push @args, "$script" if $script; # Set the path to debootstrap my $debootstrap = $conf->get('DEBOOTSTRAP'); # Get the name of the debootstrap binary my $debootstrap_bin = $debootstrap; $debootstrap_bin =~ s/^.*\///s; if ($conf->get('VERBOSE')) { print "I: Running $debootstrap_bin " . join(' ',@args) . "\n"; } # Run debootstrap with specified options. if (!$conf->get('SETUP_ONLY')) { !system($debootstrap, @args) or die "E: Error running $debootstrap_bin"; } # Set up minimal /etc/hosts. my $hosts = "${target}/etc/hosts"; open(HOSTS, ">$hosts") or die "Can't open $hosts for writing"; print HOSTS "127.0.0.1 " . $conf->get('HOSTNAME') . " localhost"; close HOSTS or die "Can't close $hosts"; # Display /etc/hosts. print "I: Configured /etc/hosts:\n"; dump_file("$hosts"); # Set up minimal /usr/sbin/policy-rc.d. my $policy_rc_d = "${target}/usr/sbin/policy-rc.d"; open(POLICY_RC_D, ">$policy_rc_d") or die "Can't open $policy_rc_d for writing"; print POLICY_RC_D <<"EOF"; #!/bin/sh echo "All runlevel operations denied by policy" >&2 exit 101 EOF close POLICY_RC_D or die "Can't close $policy_rc_d"; !system("chown", "root:", "$policy_rc_d") or die "E: Failed to set root: ownership on $policy_rc_d"; !system("chmod", "0775", "$policy_rc_d") or die "E: Failed to set 0755 permissions on $policy_rc_d"; # Display /usr/sbin/policy-rc.d. print "I: Configured /usr/sbin/policy-rc.d:\n"; dump_file("$policy_rc_d"); # Set up minimal /etc/apt/sources.list my $sources = "${target}/etc/apt/sources.list"; my $comps = join(' ',split(/,/,$conf->get('COMPONENTS'))); open(SOURCES, ">$sources") or die "Can't open $sources for writing"; print SOURCES "deb $mirror $suite $comps\n"; print SOURCES "deb-src $mirror $suite $comps\n"; close SOURCES or die "Can't close $sources"; # Display /etc/apt/sources.list. print "I: Configured APT /etc/apt/sources.list:\n"; dump_file("${target}/etc/apt/sources.list"); print "I: Please add any additional APT sources to ${target}/etc/apt/sources.list\n"; # Write out schroot chroot configuration. # Determine the schroot chroot configuration to use. my $config_entry; my $arch = $conf->get('BUILD_ARCH'); if ($conf->get('MAKE_SBUILD_TARBALL')) { my $tarball = $conf->get('MAKE_SBUILD_TARBALL'); # Default to using tar gzip compression if unable to determine compression # mode via file extension. if ($tarball !~ /\.(tgz|tbz|tlz|txz|tar(\.(gz|bz2|lz|xz))?)$/) { print "I: Renaming sbuild tarball '$tarball' to '$tarball.tar.gz'\n"; $tarball .= ".tar.gz"; $conf->set('MAKE_SBUILD_TARBALL', $tarball); } $config_entry = <<"EOF"; [$chrootname] type=file description=Debian $suite/$arch autobuilder file=$tarball groups=root,sbuild root-groups=root,sbuild profile=sbuild EOF } else { $config_entry = <<"EOF"; [$chrootname] type=directory union-type=overlay description=Debian $suite/$arch autobuilder directory=$target groups=root,sbuild root-groups=root,sbuild profile=sbuild EOF } if (-d "/etc/schroot/chroot.d") { # TODO: Don't hardcode path my $SCHROOT_CONF = new File::Temp( TEMPLATE => "$chrootname-XXXXXX", DIR => "/etc/schroot/chroot.d", UNLINK => 0) or die "Can't open schroot configuration file: $!\n"; print $SCHROOT_CONF "$config_entry"; my ($personality, $personality_message); # Detect whether personality might be needed. if ($conf->get('ARCH') ne $conf->get('BUILD_ARCH')) { # Take care of the known case(s). if ($conf->get('BUILD_ARCH') eq 'i386' && $conf->get('ARCH') eq 'amd64') { $personality='linux32'; $personality_message = "I: Added personality=$personality automatically (i386 on amd64).\n"; } else { $personality_message = "W: The selected architecture and the current architecture do not match\n" . "W: (" . $conf->get('BUILD_ARCH') . " versus " . $conf->get('ARCH') . ").\n" . "I: You probably need to add a personality option (see schroot(1)).\n" . "I: You may want to report your use case to the sbuild developers so that\n" . "I: the appropriate option gets automatically added in the future.\n\n"; } } # Add personality if detected. print $SCHROOT_CONF "personality=$personality\n" if $personality; # Needed to display file below. $SCHROOT_CONF->flush(); # Display schroot configuration. print "I: schroot chroot configuration written to $SCHROOT_CONF.\n"; chmod 0644, "$SCHROOT_CONF"; dump_file("$SCHROOT_CONF"); print "I: Please rename and modify this file as required.\n"; print $personality_message if $personality_message; } if (! -d "$Sbuild::Sysconfig::paths{'SBUILD_SYSCONF_DIR'}/chroot") { makedir("$Sbuild::Sysconfig::paths{'SBUILD_SYSCONF_DIR'}/chroot", 0775); } my $chrootlink = "$Sbuild::Sysconfig::paths{'SBUILD_SYSCONF_DIR'}/chroot/$chrootname"; if ((defined $chrootlink) && (! $conf->get('MAKE_SBUILD_TARBALL'))) { if (! -e $chrootlink) { if (symlink($target, $chrootlink)) { print "I: sudo chroot configuration linked as $Sbuild::Sysconfig::paths{'SBUILD_SYSCONF_DIR'}/chroot/$chrootname.\n"; } else { print STDERR "E: Failed to symlink $target to $chrootlink: $!\n"; } } else { print "W: Not creating symlink $target to $chrootlink: file already exists\n"; } } # Add sbuild user and group to chroot system("getent passwd sbuild >> '$target/etc/passwd'"); system("getent group sbuild >> '$target/etc/group'"); if ($conf->get('ARCH') eq $conf->get('HOST_ARCH')) { my $session = Sbuild::ChrootPlain->new($conf, $target); my $host = Sbuild::ChrootRoot->new($conf); if (defined($session)) { $session->set('Log Stream', \*STDOUT); if (!$session->begin_session() || !$host->begin_session()) { print STDERR "E: Error creating chroot session: skipping apt update\n"; } else { my $resolver = Sbuild::AptResolver->new($conf, $session, $host); $resolver->setup(); print "I: Setting reference package list.\n"; check_packages($session, "set"); print "I: Updating chroot.\n"; my $status = $resolver->update(); print "W: Failed to update APT package lists\n" if ($status); $status = $resolver->distupgrade(); print "W: Failed to upgrade chroot\n" if ($status); $resolver->cleanup(); $session->end_session(); $session = undef; } } } else { print "W: The selected architecture and the current architecture do not match\n"; print "W: (" . $conf->get('BUILD_ARCH') . " versus " . $conf->get('ARCH') . ").\n"; print "W: Not automatically updating APT package lists.\n"; print "I: Run \"apt-get update\" and \"apt-get dist-upgrade\" prior to use.\n"; print "I: Run \"sbuild-checkpackages --set\" to set reference package list.\n"; } # This block makes the tarball chroot if one has been requested and delete # the sbuild chroot directory created, unless it's been requested to keep the # directory. if ($conf->get('MAKE_SBUILD_TARBALL')) { my ($tmpfh, $tmpfile) = tempfile("XXXXXX"); my @program_list; # Change program arguments accordingly if ($conf->get('MAKE_SBUILD_TARBALL') =~ /\.tar$/) { @program_list = ("/bin/tar", "-cf", "$tmpfile", "-C", "$target", "./"); } elsif ($conf->get('MAKE_SBUILD_TARBALL') =~ /(\.tar\.gz|\.tgz)$/) { @program_list = ("/bin/tar", "-czf", "$tmpfile", "-C", "$target", "./"); } elsif ($conf->get('MAKE_SBUILD_TARBALL') =~ /(\.tar\.bz2|\.tbz)$/) { @program_list = ("/bin/tar", "-cjf", "$tmpfile", "-C", "$target", "./"); } elsif ($conf->get('MAKE_SBUILD_TARBALL') =~ /(\.tar\.lz|\.tlz)$/) { @program_list = ("/bin/tar", "--lzma", "-cf", "$tmpfile", "-C", "$target", "./"); } elsif ($conf->get('MAKE_SBUILD_TARBALL') =~ /(\.tar\.xz|\.txz)$/) { @program_list = ("/bin/tar", "-cJf", "$tmpfile", "-C", "$target", "./"); } system(@program_list) == 0 or die "Could not create chroot tarball: $?\n"; move("$tmpfile", $conf->get('MAKE_SBUILD_TARBALL')); chmod 0644, $conf->get('MAKE_SBUILD_TARBALL'); if (! $conf->get('KEEP_SBUILD_CHROOT_DIR')) { rmtree("$target"); print "I: chroot $target has been removed.\n"; } else { print "I: chroot $target has been kept.\n"; } } print "I: Successfully set up $suite chroot.\n"; print "I: Run \"sbuild-adduser\" to add new sbuild users.\n"; exit 0; # Add items to the start of a comma-separated list, and remove the # items from later in the list if they were already in the list. sub add_items ($@) { my $items = shift; my @add = @_; my $ret = ''; my %values; foreach (@_) { $values{$_} = ''; $ret .= "$_," } # Only add if not already used, to eliminate duplicates. foreach (split (/,/,$items)) { $ret .= "$_," if (!defined($values{$_})); } # Remove trailing comma. $ret =~ s/,$//; return $ret; } sub makedir ($$) { my $dir = shift; my $perms = shift; mkpath($dir, { mode => $perms, verbose => 1, error => \my $error }); for my $diag (@$error) { my ($file, $message) = each %$diag; print "E: Can't make directory $file: $message\n"; } } sbuild-0.67.0/bin/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665015377 xustar0030 mtime=1451136949.349714052 30 atime=1451136977.817751592 30 ctime=1451136983.957759708 sbuild-0.67.0/bin/Makefile.in0000644000175000017500000005302412637513665016223 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am subdir = bin ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" \ "$(DESTDIR)$(sbuilddatadir)" "$(DESTDIR)$(docdir)" SCRIPTS = $(bin_SCRIPTS) $(sbin_SCRIPTS) $(sbuilddata_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(doc_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) sbuilddatadir = $(SBUILD_DATA_DIR) bin_SCRIPTS = \ sbuild \ sbuild-abort \ sbuild-apt \ sbuild-checkpackages \ sbuild-update \ sbuild-upgrade \ sbuild-distupgrade \ sbuild-clean \ sbuild-shell \ sbuild-hold \ sbuild-unhold \ buildd \ buildd-mail \ buildd-uploader \ buildd-vlog \ buildd-update-chroots \ buildd-watcher sbin_SCRIPTS = \ sbuild-adduser \ sbuild-createchroot sbuilddata_SCRIPTS = \ create-chroot \ dobuildlog doc_DATA = \ README.bins EXTRA_DIST = \ $(bin_SCRIPTS) \ $(sbin_SCRIPTS) \ $(sbuilddata_SCRIPTS) \ $(doc_DATA) \ buildd-make-chroot \ check-old-builds \ finish-build \ sbuild-debuild \ setup_system \ wb-ssh-wrapper all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bin/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) install-sbinSCRIPTS: $(sbin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ } \ ; done uninstall-sbinSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir) install-sbuilddataSCRIPTS: $(sbuilddata_SCRIPTS) @$(NORMAL_INSTALL) @list='$(sbuilddata_SCRIPTS)'; test -n "$(sbuilddatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sbuilddatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sbuilddatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(sbuilddatadir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(sbuilddatadir)$$dir" || exit $$?; \ } \ ; done uninstall-sbuilddataSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(sbuilddata_SCRIPTS)'; test -n "$(sbuilddatadir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(sbuilddatadir)'; $(am__uninstall_files_from_dir) install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbuilddatadir)" "$(DESTDIR)$(docdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-docDATA install-sbuilddataSCRIPTS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binSCRIPTS install-sbinSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-docDATA \ uninstall-sbinSCRIPTS uninstall-sbuilddataSCRIPTS .MAKE: install-am install-exec-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-binSCRIPTS \ install-data install-data-am install-docDATA install-dvi \ install-dvi-am install-exec install-exec-am install-exec-hook \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-sbinSCRIPTS install-sbuilddataSCRIPTS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-binSCRIPTS uninstall-docDATA \ uninstall-sbinSCRIPTS uninstall-sbuilddataSCRIPTS install-exec-hook: # Additional directories $(MKDIR_P) "$(DESTDIR)$(sbuilddatadir)" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/.ssh" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/build" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/build-trees" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/logs" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/mqueue" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/old-logs" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/stats/graphs" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/upload" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/upload-security" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/sbuild" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/sbuild/build" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/sbuild/apt-keys" # Links for compatibility. ln -sf "$(bindir)/buildd-mail" "$(DESTDIR)$(bindir)/buildd-mail-wrapper" ln -sf "$(bindir)/sbuild-abort" "$(DESTDIR)$(bindir)/buildd-abort" # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-adduser0000644000000000000000000000013212605405362016151 xustar0030 mtime=1444285170.644049662 30 atime=1451044743.162752739 30 ctime=1451136983.977759735 sbuild-0.67.0/bin/sbuild-adduser0000755000175000017500000000421612605405362016777 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # # Copyright © 2006-2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; package main; use Getopt::Long; use Sbuild qw(help_text version_text usage_error); use Sbuild::Conf qw(); use Sbuild::OptionsBase; my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "sbuild-adduser", "8"); exit 1 if !defined($options); usage_error("sbuild-adduser", "Incorrect number of options") if (@ARGV < 1); my $status = 0; foreach (@ARGV) { my $user = getpwnam($_); if (defined $user) { $status += system("/usr/sbin/adduser", "$_", "sbuild"); } else { print STDERR "W: User \"$_\" does not exist\n"; $status++; } } if ($status == 0) { print STDOUT < (or "sbuild-apt apt-get -f install" first if the chroot is broken) sbuild -d _ EOF } exit ($status ? 1:0); sbuild-0.67.0/bin/PaxHeaders.4860/Makefile.am0000644000000000000000000000013212627410514015352 xustar0030 mtime=1449005388.459402735 30 atime=1451136876.749619018 30 ctime=1451136983.957759708 sbuild-0.67.0/bin/Makefile.am0000644000175000017500000000502712627410514016176 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2008 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk sbuilddatadir = $(SBUILD_DATA_DIR) bin_SCRIPTS = \ sbuild \ sbuild-abort \ sbuild-apt \ sbuild-checkpackages \ sbuild-update \ sbuild-upgrade \ sbuild-distupgrade \ sbuild-clean \ sbuild-shell \ sbuild-hold \ sbuild-unhold \ buildd \ buildd-mail \ buildd-uploader \ buildd-vlog \ buildd-update-chroots \ buildd-watcher sbin_SCRIPTS = \ sbuild-adduser \ sbuild-createchroot sbuilddata_SCRIPTS = \ create-chroot \ dobuildlog doc_DATA = \ README.bins EXTRA_DIST = \ $(bin_SCRIPTS) \ $(sbin_SCRIPTS) \ $(sbuilddata_SCRIPTS) \ $(doc_DATA) \ buildd-make-chroot \ check-old-builds \ finish-build \ sbuild-debuild \ setup_system \ wb-ssh-wrapper install-exec-hook: # Additional directories $(MKDIR_P) "$(DESTDIR)$(sbuilddatadir)" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/.ssh" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/build" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/build-trees" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/logs" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/mqueue" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/old-logs" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/stats/graphs" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/upload" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/buildd/upload-security" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/sbuild" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/sbuild/build" $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/sbuild/apt-keys" # Links for compatibility. ln -sf "$(bindir)/buildd-mail" "$(DESTDIR)$(bindir)/buildd-mail-wrapper" ln -sf "$(bindir)/sbuild-abort" "$(DESTDIR)$(bindir)/buildd-abort" sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-clean0000644000000000000000000000013212565554441015614 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.965759719 sbuild-0.67.0/bin/sbuild-clean0000755000175000017500000000200212565554441016431 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # # Copyright © 2005-2009 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; print "$0 is deprecated. sbuild-clean functionality has been merged with "; print "sbuild-update. Use sbuild-update instead.\n"; exec("sbuild-update", "--clean", @ARGV) or die "Can't run sbuild-update: $!"; sbuild-0.67.0/bin/PaxHeaders.4860/README.bins0000644000000000000000000000013112361663370015134 xustar0030 mtime=1405576952.285596563 30 atime=1451044743.162752739 29 ctime=1451136983.98175974 sbuild-0.67.0/bin/README.bins0000644000175000017500000000261612361663370015762 0ustar00joschjosch00000000000000 dobuildlog A shell script for mutt & vi to handle the build logs that sbuild mails to you. The "bug" option is generally useful as it massages the build log a little so you can easily file a bug. The other options are for communicating with a build daemon. From the script: # craft a bug report or fail/success reply to a buildd log mail # using vim, mutt and optionally quintuple-agent: # mutt # 'f'orward the message # (may require autoedit & edit_headers .muttrc settings) # vim # map :%!~buildd/bin/dobuildlog agpg # map :%!~buildd/bin/dobuildlog gpg # map :%!~buildd/bin/dobuildlog bug You'll have to change these to your own settings: SIGNOPTS='--clearsign --default-key younie@debian.org' FROM="$EMAIL" # "Your Name " ARCH=m68k # for the bug report log link Please see the comments in the script. ------------------------------------------ ppack in the searchscripts package can be useful, ppack -r unstable -O[q] # shows orphans in the unstable chroot ppack -r un -I[q] '*' # shows installed packages in unstable ppack -r un -a # shows anomalies (holds, misconfigured pkgs) ppack -r st -Lb pkg # urlified a package listing -> browser - this is useful for browsing an installed packages contents. Try "ppack -Lb sbuild" although it may be a little late for that now. :-) sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-distupgrade0000644000000000000000000000013212565554441017045 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.965759719 sbuild-0.67.0/bin/sbuild-distupgrade0000755000175000017500000000173312565554441017674 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # # Copyright © 2006-2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; print "$0 is deprecated. Use sbuild-update --dist-upgrade directly instead.\n"; exec("sbuild-update", "--dist-upgrade", @ARGV) or die "Can't run sbuild-update: $!"; sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-shell0000644000000000000000000000013212565554441015641 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.965759719 sbuild-0.67.0/bin/sbuild-shell0000755000175000017500000000273312565554441016471 0ustar00joschjosch00000000000000#!/usr/bin/perl # # Run a shell in a chroot. # Copyright © 2006 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; use Getopt::Long; use Sbuild qw(help_text version_text usage_error check_group_membership); use Sbuild::Utility qw(setup cleanup); use Sbuild::ChrootSetup qw(shell); use Sbuild::Sysconfig; use Sbuild::Conf qw(); use Sbuild::OptionsBase; my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "sbuild-shell", "1"); exit 1 if !defined($options); check_group_membership(); usage_error("sbuild-shell", "Incorrect number of options") if (@ARGV != 1); my $session = setup('source', $ARGV[0], $conf) or die "Chroot setup failed"; my $status = shell($session, $conf); $status >>= 8; cleanup($conf); exit $status; sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-hold0000644000000000000000000000013212565554441015460 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.969759724 sbuild-0.67.0/bin/sbuild-hold0000755000175000017500000000341212565554441016303 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # changes the dpkg status of a package in a chroot to "hold" # # Copyright © 2006,2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; use Getopt::Long; use Sbuild qw(help_text version_text usage_error check_group_membership); use Sbuild::Utility qw(setup cleanup shutdown); use Sbuild::ChrootSetup qw(hold_packages list_packages); use Sbuild::Conf qw(); use Sbuild::OptionsBase; my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "sbuild-hold", "1"); exit 1 if !defined($options); check_group_membership(); usage_error("sbuild-hold", "Incorrect number of options") if (@ARGV < 2); my $chroot = Sbuild::Utility::get_dist($ARGV[0]); my $session = setup('source', $ARGV[0], $conf) or die "Chroot setup failed for $chroot chroot"; print STDOUT "Holding packages in $chroot chroot:"; shift @ARGV; foreach (@ARGV) { print STDOUT " $_"; } print STDOUT ".\n\n"; my $status = hold_packages($session, $conf, @ARGV); $status >>= 8; list_packages($session, $conf, @ARGV); cleanup($conf); exit $status; sbuild-0.67.0/bin/PaxHeaders.4860/buildd-watcher0000644000000000000000000000013112565554441016147 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 30 ctime=1451136983.977759735 sbuild-0.67.0/bin/buildd-watcher0000755000175000017500000000245612565554441017002 0ustar00joschjosch00000000000000#!/usr/bin/perl # # buildd-watcher: # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### use strict; use warnings; use Buildd::Conf qw(); use Buildd::Watcher; use Sbuild::OptionsBase; my $conf = Buildd::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "buildd-watcher", "1"); exit 1 if !defined($options); my $watcher = Buildd::Watcher->new($conf); exit 1 if !defined($watcher); my $status = $watcher->run(); $watcher->close_log(); exit $status; sbuild-0.67.0/bin/PaxHeaders.4860/wb-ssh-wrapper0000644000000000000000000000013212361663370016127 xustar0030 mtime=1405576952.289596563 30 atime=1451044743.162752739 30 ctime=1451136983.989759751 sbuild-0.67.0/bin/wb-ssh-wrapper0000755000175000017500000000212312361663370016750 0ustar00joschjosch00000000000000#!/bin/bash # # A wrapper script to point ssh at in an authorized_keys file to only allow # access to wanna-build # Copyright © 2006 Ryan Murray # # 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, see # . # ####################################################################### bin=/usr/bin/wanna-build [ -n "$SSH_ORIGINAL_COMMAND" ] || exit 1 set -- $SSH_ORIGINAL_COMMAND bn=$(basename "$1") if [ "$bn" != "wanna-build" ]; then exit 1 fi shift [ -f "$bin" -a -x "$bin" ] || exit 1 exec $bin $@ sbuild-0.67.0/bin/PaxHeaders.4860/buildd-vlog0000644000000000000000000000013112565554441015461 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 30 ctime=1451136983.973759729 sbuild-0.67.0/bin/buildd-vlog0000755000175000017500000000541112565554441016306 0ustar00joschjosch00000000000000#!/usr/bin/perl # # buildd-vlog: little utility to watch the logs written by sbuild # Copyright © 1999 Roman Hodek # Copyright © 2009 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; use POSIX; use Buildd; use Buildd::Conf qw(); use Sbuild::OptionsBase; my $conf = Buildd::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "buildd-vlog", "1"); exit 1 if !defined($options); my $logpath = $conf->get('HOME') . '/logs'; sub read_progress (); sub newest_log ($); sub tail ($); while( 1 ) { my $curr_pkg = read_progress(); if (!$curr_pkg) { print "No build-progress -- waiting\n"; do { sleep 5; } while (!($curr_pkg = read_progress())); } print("package '$curr_pkg'\n"); my $logf = newest_log( "$logpath/${curr_pkg}*" ); if ($logf eq "") { sleep(1); next; } print "\n\n", "="x78, "\n$logf:\n\n"; tail( $logf ); } sub read_progress () { my $f = $conf->get('HOME') . '/build/build-progress'; my $p = ""; my $state = ""; open( F, "<$f" ) || return ""; while( ) { s/_[0-9]+:/_/; ($p,$state) = ($1,$2) if /^(\S+): (\S+)$/; } return "" if ($state ne "building"); close( F ); return $p; } sub newest_log ($) { my $pattern = shift; my @f = glob( $pattern ); my $maxtime = 0; my $f = ""; my @s; foreach (@f) { @s = stat( $_ ); warn "Cannot stat $_: $!", next if !@s; if ($s[9] > $maxtime) { $maxtime = $s[9]; $f = $_; } } return $f; } sub tail ($) { my $f = shift; my @s = stat( $f ); if (!@s) { warn "Cannot stat $f: $!\n"; return; } my $size = $s[7]; if (!open( F, "<$f" )) { warn "Cannot open $f: $!\n"; return; } if ($size > 3*1024) { seek( F, -3*1024, SEEK_END ); my $junk = ; # throw away first incomplete line print $size+3*1024, " bytes skipped...\n"; } while( 1 ) { while( ) { print $_; if (/^Build needed \d\d:\d\d:\d\d/) { close( F ); sleep( 1 ); return; } } sleep( 2 ); } } sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-debuild0000644000000000000000000000013212565554441016142 xustar0030 mtime=1440143649.636952246 30 atime=1451044743.162752739 30 ctime=1451136983.985759746 sbuild-0.67.0/bin/sbuild-debuild0000644000175000017500000002632312565554441016770 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # # Copyright © 2005-2009 Roger Leigh # Copyright © 2009 Andres Mejia # # 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, see # . # ####################################################################### use strict; use warnings; package Conf; sub setup { my $conf = shift; my %update_keys = ( 'DPKG_BUILDPACKAGE_OPTS' => { DEFAULT => ['-S', '-us', '-uc', ] }, 'DPKG_BUILDPACKAGE_EXTRA_OPTS' => { DEFAULT => [] }, 'SBUILD_OPTS' => { DEFAULT => [] }, 'SBUILD_EXTRA_OPTS' => { DEFAULT => [] }, 'LINTIAN_OPTS' => { DEFAULT => [] }, 'LINTIAN_EXTRA_OPTS' => { DEFAULT => [] }, 'NO_LINTIAN' => { DEFAULT => 0 }, 'PRE_DPKG_BUILDPACKAGE_COMMANDS' => { DEFAULT => [] }, 'PRE_SBUILD_COMMANDS' => { DEFAULT => [] }, 'PRE_LINTIAN_COMMANDS' => { DEFAULT => [] }, 'PRE_EXIT_COMMANDS' => { DEFAULT => [] }, ); $conf->set_allowed_keys(\%update_keys); } # This subroutine is used to read a different set of config files for # sbuild-debuild sub read_sbuild_debuild_config { my $self = shift; # Our HOME environment variable. my $HOME = $self->get('HOME'); # Variables are undefined, so config will default to DEFAULT if unset. my $dpkg_buildpackage_opts = undef; my $dpkg_buildpackage_extra_opts = undef; my $sbuild_opts = undef; my $sbuild_extra_opts = undef; my $lintian_opts = undef; my $lintian_extra_opts = undef; my $no_lintian = undef; my $pre_dpkg_buildpackage_commands = undef; my $pre_sbuild_commands = undef; my $pre_lintian_commands = undef; my $pre_exit_commands = undef; foreach ("/etc/sbuild/sbuild-debuild.conf", "$HOME/.sbuild-debuildrc") { if (-r $_) { my $e = eval `cat "$_"`; if (!defined($e)) { print STDERR "E: $_: Errors found in configuration file:\n$@"; exit(1); } } } $self->set('DPKG_BUILDPACKAGE_OPTS', $dpkg_buildpackage_opts) if ($dpkg_buildpackage_opts); push(@{$self->get('DPKG_BUILDPACKAGE_OPTS')}, @{$dpkg_buildpackage_extra_opts}) if ($dpkg_buildpackage_extra_opts); $self->set('SBUILD_OPTS', $sbuild_opts) if ($sbuild_opts); push(@{$self->get('SBUILD_OPTS')}, @{$sbuild_extra_opts}) if ($sbuild_extra_opts); $self->set('LINTIAN_OPTS', $lintian_opts) if ($lintian_opts); push(@{$self->get('LINTIAN_OPTS')}, @{$lintian_extra_opts}) if ($lintian_extra_opts); $self->set('NO_LINTIAN', $no_lintian) if ($no_lintian); $self->set('PRE_DPKG_BUILDPACKAGE_COMMANDS', $pre_dpkg_buildpackage_commands) if ($pre_dpkg_buildpackage_commands); $self->set('PRE_SBUILD_COMMANDS', $pre_sbuild_commands) if ($pre_sbuild_commands); $self->set('PRE_LINTIAN_COMMANDS', $pre_lintian_commands) if ($pre_lintian_commands); $self->set('PRE_EXIT_COMMANDS', $pre_exit_commands) if ($pre_exit_commands); } package Options; use Sbuild::OptionsBase; use Sbuild::Conf; BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::OptionsBase); @EXPORT = qw(); } sub set_options { my $self = shift; $self->add_options( "dpkg-buildpackage-opts=s" => sub { my @opt_values = split(/\s+/,$_[1]); $self->set_conf('DPKG_BUILDPACKAGE_OPTS', \@opt_values); }, "dpkg-buildpackage-extra-opts=s" => sub { my @opt_values = split(/\s+/,$_[1]); push(@{$self->get_conf('DPKG_BUILDPACKAGE_OPTS')}, @opt_values); }, "sbuild-opts=s" => sub { my @opt_values = split(/\s+/,$_[1]); $self->set_conf('SBUILD_OPTS', \@opt_values); }, "sbuild-extra-opts=s" => sub { my @opt_values = split(/\s+/,$_[1]); push(@{$self->get_conf('SBUILD_OPTS')}, @opt_values); }, "lintian-opts=s" => sub { my @opt_values = split(/\s+/,$_[1]); $self->set_conf('LINTIAN_OPTS', \@opt_values); }, "lintian-extra-opts=s" => sub { my @opt_values = split(/\s+/,$_[1]); push(@{$self->get_conf('LINTIAN_OPTS')}, @opt_values); }, "no-lintian" => sub { $self->set_conf('NO_LINTIAN', 1); }, "pre-dpkg-buildpackage-commands=s" => sub { push(@{$self->get_conf('PRE_DPKG_BUILDPACKAGE_COMMANDS')}, $_[1]); }, "pre-sbuild-commands=s" => sub { push(@{$self->get_conf('PRE_SBUILD_COMMANDS')}, $_[1]); }, "pre-lintian-commands=s" => sub { push(@{$self->get_conf('PRE_LINTIAN_COMMANDS')}, $_[1]); }, "pre-exit-commands=s" => sub { push(@{$self->get_conf('PRE_EXIT_COMMANDS')}, $_[1]); }, ); } package main; use Getopt::Long; use Cwd; use File::Basename; use Sbuild qw(help_text version_text usage_error check_group_membership); my $conf = Sbuild::Conf::new(); Conf::setup($conf); exit 1 if !defined($conf); $conf->read_sbuild_debuild_config(); my $options = Options->new($conf, "sbuild-debuild", "1"); exit 1 if !defined($options); check_group_membership(); # This subroutine determines the architecture we're building for. sub detect_arch { # Detect if we're building for another architecture my @values = grep {/--arch=.+/} @{$conf->get('SBUILD_OPTS')}; my $arch_opt = $values[0]; $arch_opt =~ s/--arch=// if ($arch_opt); # Determine the arch using dpkg-architecture my $dpkg_arch_command = '/usr/bin/dpkg-architecture -qDEB_HOST_ARCH'; $dpkg_arch_command .= " -a$arch_opt" if ($arch_opt); # Grab the architecture and return it. We discard output from STDERR # to suppress the "Specified GNU system ... does not match" warning that # may occur from dpkg-architecture my $arch = qx($dpkg_arch_command 2>/dev/null); chomp $arch; return $arch; } # This subroutine determines the package and version we're building for sub detect_package_and_version { my ($build_input) = @_; # chdir into package directories, but not dsc files chdir($build_input) unless ($build_input =~ /.*\.dsc$/); my $output; if ($build_input =~ m/.*\.dsc$/) { # Read the dsc file directly. open($output, '<', $build_input); } else { # Grab the output from dpkg-parsechangelog my $dpkg_parsechangelog = '/usr/bin/dpkg-parsechangelog'; open($output, '-|', $dpkg_parsechangelog); } # Grab the package and version info my ($package, $version); while (<$output>) { $package = $1 if ($_ =~ /^Source: (.*)$/); $version = $1 if ($_ =~ /^Version: (.*)$/); last if (($package) and ($version)); } return ($package, $version); } # This subroutine strips the epoch from a Debian package version. sub strip_epoch { my ($version) = @_; $version =~ s/^[^:]*?://; return $version; } # This subroutine processes the array external ommands to run at the various # stages of sbuild-debuild's run sub process_commands { my ($commands, $dsc, $source_changes, $bin_changes) = @_; # Determine which set of commands to run based on the string $commands my @commands; if ($commands eq "pre_dpkg_buildpackage_commands") { @commands = @{$conf->get('PRE_DPKG_BUILDPACKAGE_COMMANDS')}; } elsif ($commands eq "pre_sbuild_commands") { @commands = @{$conf->get('PRE_SBUILD_COMMANDS')}; } elsif ($commands eq "pre_lintian_commands") { @commands = @{$conf->get('PRE_LINTIAN_COMMANDS')}; } elsif ($commands eq "pre_exit_commands") { @commands = @{$conf->get('PRE_EXIT_COMMANDS')}; } # Run each command, substituting the various @SBUILD_DEBUILD_*@ options from # the commands to run with the appropriate subsitutions. my $returnval = 1; foreach my $command (@commands) { $command =~ s/\@SBUILD_DEBUILD_DSC@/$dsc/; $command =~ s/\@SBUILD_DEBUILD_SOURCE_CHANGES@/$source_changes/; $command =~ s/\@SBUILD_DEBUILD_BIN_CHANGES@/$bin_changes/; my @args = split(/\s+/, $command); print "Running $command\n"; system(@args); if (($? >> 8) != 0) { print "Failed to run command ($command): $?"; $returnval = 0; } } return $returnval; } # Subroutine to determine various files we'll be working with. sub detect_files { my ($build_input) = @_; # Determine the dsc and changes files that we'll use my ($package, $version) = detect_package_and_version($build_input); $version = strip_epoch($version); my $arch = detect_arch(); my ($dsc, $dirname); if ($build_input =~ /.*\.dsc$/) { $dsc = Cwd::abs_path("$build_input"); $dirname = Cwd::abs_path(dirname($build_input)); } else { $dirname = Cwd::abs_path("$build_input/.."); $dsc = "$dirname/" . $package . "_" . "$version.dsc"; } my $source_changes = "$dirname/" . $package . "_$version" . "_source.changes"; my $bin_changes = "$dirname/" . $package . "_$version" . "_$arch.changes"; return ($dsc, $source_changes, $bin_changes); } # Process a debianized package directory or .dsc file. sub process_package { my ($build_input) = @_; # We use this to determine if there was a problem processing the external # commands. my $returnval = 1; # Save the current directory we're in. my $currentdir = getcwd(); # Determine the dsc and changes files that we'll use my ($dsc, $source_changes, $bin_changes) = detect_files($build_input); print "Processing pre dpkg-buildpackage commands.\n"; $returnval = 0 unless process_commands("pre_dpkg_buildpackage_commands", $dsc, $source_changes, $bin_changes); if ($build_input !~ /.*\.dsc$/) { chdir($build_input); print "Running dpkg-buildpackage.\n"; system('/usr/bin/dpkg-buildpackage', @{$conf->get('DPKG_BUILDPACKAGE_OPTS')}); if (($? >> 8) != 0) { print "Running dpkg-buildpckage failed: $?"; chdir($currentdir); return 0; } } print "Processing pre sbuild commands.\n"; $returnval = 0 unless process_commands("pre_sbuild_commands", $dsc, $source_changes, $bin_changes); chdir(dirname($dsc)); print "Running sbuild.\n"; system('/usr/bin/sbuild', @{$conf->get('SBUILD_OPTS')}, $dsc); if (($? >> 8) != 0) { print "Running sbuild failed: $?"; chdir($currentdir); return 0; } print "Processing pre lintian commands.\n"; $returnval = 0 unless process_commands("pre_lintian_commands", $dsc, $source_changes, $bin_changes); if ((!$conf->get('NO_LINTIAN')) && (-x '/usr/bin/lintian')) { print "Running lintian.\n"; system('/usr/bin/lintian', @{$conf->get('LINTIAN_OPTS')}, $bin_changes); if (($? >> 8) != 0) { print "Running lintian failed: $?"; chdir($currentdir); return 0; } } print "Processing commands run before exiting.\n"; $returnval = 0 unless process_commands("pre_exit_commands", $dsc, $source_changes, $bin_changes); # Go back to the directory we were in earlier chdir($currentdir); return $returnval; } # Process each package directory and .dsc file. my $status = 0; if (!@ARGV) { $status = 1 unless process_package(getcwd()); } else { foreach my $arg (@ARGV) { $status = 1 unless process_package($arg); } } exit $status; sbuild-0.67.0/bin/PaxHeaders.4860/sbuild0000644000000000000000000000013212637466265014542 xustar0030 mtime=1451125941.684607753 30 atime=1451125941.688607766 30 ctime=1451136983.957759708 sbuild-0.67.0/bin/sbuild0000755000175000017500000002446612637466265015401 0ustar00joschjosch00000000000000#!/usr/bin/perl # # sbuild: build packages, obeying source dependencies # Copyright © 1998-2000 Roman Hodek # Copyright © 2005 Ryan Murray # Copyright © 2005-2009 Roger Leigh # Copyright © 2008 Simon McVittie # # 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, see # . # ####################################################################### package main; use strict; use warnings; use Cwd qw(:DEFAULT abs_path); use File::Basename qw(basename dirname); use POSIX; use Data::Dumper; use Dpkg::Control; use Sbuild qw(isin check_group_membership $debug_level dsc_files); use Sbuild::Conf qw(); use Sbuild::Sysconfig qw(%programs); use Sbuild::Options; use Sbuild::Build; use Sbuild::Exception; use Sbuild::Utility qw(check_url download); sub main (); sub create_source_package ($); sub download_source_package ($); sub write_jobs_file (); sub status_trigger ($$); sub shutdown ($); sub dump_main_state (); my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::Options->new($conf, "sbuild", "1"); exit 1 if !defined($options); check_group_membership(); if (!$conf->get('MAINTAINER_NAME') && ($conf->get('BIN_NMU') || $conf->get('APPEND_TO_VERSION'))) { die "A maintainer name, uploader name or key ID must be specified in .sbuildrc,\nor use -m, -e or -k, when performing a binNMU or appending a version suffix\n"; } umask(002); # Job state my $job = undef; main(); sub main () { $SIG{'INT'} = \&main::shutdown; $SIG{'TERM'} = \&main::shutdown; $SIG{'ALRM'} = \&main::shutdown; $SIG{'PIPE'} = \&main::shutdown; # If no arguments are supplied, assume we want to process the current dir. push @ARGV, '.' unless (@ARGV); die "Only one build is permitted\n" if (@ARGV != 1); # Create and run job my $status = eval { my $jobname = $ARGV[0]; my $source_dir = 0; if (-e $jobname) { $jobname = abs_path($jobname); } if (-d $jobname) { $jobname = create_source_package($jobname); if ($jobname eq '.') { chdir('..') or Sbuild::Exception::Build->throw( error => "Failed to change directory", failstage => "change-build-dir"); $conf->_set_default('BUILD_DIR', cwd()); } $source_dir = 1; } elsif (($jobname =~ m/\.dsc$/) && # Use apt to download check_url($jobname)) { # Valid URL $jobname = download_source_package($jobname); } # Check after source package build (which might set dist) my $dist = $conf->get('DISTRIBUTION'); if (!defined($dist) || !$dist) { print STDERR "No distribution defined\n"; exit(1); } print "Selected distribution " . $conf->get('DISTRIBUTION') . "\n" if $conf->get('DEBUG'); print "Selected chroot " . $conf->get('CHROOT') . "\n" if $conf->get('DEBUG') and defined $conf->get('CHROOT'); print "Selected host architecture " . $conf->get('HOST_ARCH') . "\n" if $conf->get('DEBUG' && defined($conf->get('HOST_ARCH'))); print "Selected build architecture " . $conf->get('BUILD_ARCH') . "\n" if $conf->get('DEBUG' && defined($conf->get('BUILD_ARCH'))); print "Selected build profiles " . $conf->get('BUILD_PROFILES') . "\n" if $conf->get('DEBUG' && defined($conf->get('BUILD_PROFILES'))); $job = Sbuild::Build->new($jobname, $conf); $job->set('Pkg Status Trigger', \&status_trigger); write_jobs_file(); # Will now update on trigger. # Run job. $job->run(); dump_main_state() if $conf->get('DEBUG'); }; my $e; if ($e = Exception::Class->caught('Sbuild::Exception::Build')) { print STDERR "E: $e\n"; print STDERR "I: " . $e->info . "\n" if ($e->info); if ($debug_level) { #dump_main_state(); #print STDERR $e->trace->as_string, "\n"; } } elsif (!defined($e)) { print STDERR "E: $@\n" if $@; } unlink($conf->get('JOB_FILE')) if $conf->get('BATCH_MODE'); # Until buildd parses status info from sbuild output, skipped must # be treated as a failure. if (defined($job)) { if ($job->get_status() eq "successful" || ($conf->get('SBUILD_MODE') ne "buildd" && $job->get_status() eq "skipped")) { exit 0; } elsif ($job->get_status() eq "attempted") { exit 2; } elsif ($job->get_status() eq "given-back") { #Probably needs a give back: exit 3; } # Unknown status - probably needs a give back, but needs to be # reported to the admin as failure: exit 1; } exit 1; } sub create_source_package ($) { my $dsc = shift; open(my $pipe, '-|', 'dpkg-parsechangelog', '-l' . $dsc . '/debian/changelog') or Sbuild::Exception::Build->throw( error => "Could not parse $dsc/debian/changelog: $!", failstage => "pack-source"); my $pclog = Dpkg::Control->new(type => CTRL_CHANGELOG); if (!$pclog->parse($pipe, 'dpkg-parsechangelog')) { Sbuild::Exception::Build->throw( error => "Could not parse $dsc/debian/changelog: $!", failstage => "pack-source"); } $pipe->close or Sbuild::Exception::Build->throw( error => "dpkg-parsechangelog failed (exit status $?)", failstage => "pack-source"); my $package = $pclog->{'Source'}; my $version = $pclog->{'Version'}; if (!defined($package) || !defined($version)) { Sbuild::Exception::Build->throw( error => "Missing Source or Version in $dsc/debian/changelog", failstage => "pack-source"); } my $dist = $pclog->{'Distribution'}; my $pver = Dpkg::Version->new($version, check => 1); unless (defined $pver) { Sbuild::Exception::Build->throw( error => "Bad version $version in $dsc/debian/changelog", failstage => "pack-source"); } my ($uversion, $dversion); $uversion = $pver->version(); $dversion = "-" . $pver->revision(); $dversion = "" if $pver->{'no_revision'}; if (!defined($conf->get('DISTRIBUTION')) || !$conf->get('DISTRIBUTION')) { $conf->set('DISTRIBUTION', $dist); } my $dir = getcwd(); my $origdir=$dir; my $origdsc=$dsc; my $dscdir=$dir; # Note: need to support cases when invoked from a subdirectory # of the build directory, i.e. $dsc/foo -> $dsc/.. in addition # to $dsc -> $dsc/.. as below. # We won't attempt to build the source package from the source # directory so the source package files will go to the parent dir. $dscdir = abs_path("$dsc/.."); if (index($dir, $dsc, 0) == 0) { $conf->set('BUILD_DIR', $dscdir); } $dsc = "${dscdir}/${package}_${uversion}${dversion}.dsc"; $dir = $origdsc; chdir($dir) or Sbuild::Exception::Build->throw( error => "Failed to change directory", failstage => "pack-source"); if ($conf->get('CLEAN_SOURCE')) { system($conf->get('FAKEROOT'), 'debian/rules', 'clean'); if ($?) { Sbuild::Exception::Build->throw( error => "Failed to clean source directory $dir ($dsc)", failstage => "pack-source"); } } my @dpkg_source_command = ($conf->get('DPKG_SOURCE'), '-b'); push @dpkg_source_command, @{$conf->get('DPKG_SOURCE_OPTIONS')} if ($conf->get('DPKG_SOURCE_OPTIONS')); push @dpkg_source_command, '.'; system(@dpkg_source_command); if ($?) { Sbuild::Exception::Build->throw( error => "Failed to package source directory " . getcwd(), failstage => "pack-source"); } chdir($origdir) or Sbuild::Exception::Build->throw( error => "Failed to change directory", failstage => "pack-source"); return $dsc; } sub download_source_package ($) { my $dsc = shift; my $srcdir = dirname($dsc); my $dscbase = basename($dsc); my @fetched; # Work with a .dsc file. # $file is the name of the downloaded dsc file written in a tempfile. my $file; $file = download($dsc, $dscbase) or Sbuild::Exception::Build->throw( error => "Could not download $dsc", failstage => "download-source"); push(@fetched, $dscbase); my @cwd_files = dsc_files($file); foreach (@cwd_files) { my $subfile = download("$srcdir/$_", $_); if (!$subfile) { # Remove downloaded sources foreach my $rm (@fetched) { unlink($rm); } Sbuild::Exception::Build->throw( error => "Could not download $srcdir/$_", failstage => "download-source"); } push(@fetched, $_); } return $file; } # only called from main loop, but depends on job state. sub write_jobs_file () { if ($conf->get('BATCH_MODE')) { my $file = $conf->get('JOB_FILE'); local( *F ); return if !open( F, ">$file" ); if (defined($job)) { print F $job->get('Package_OVersion') . ": " . $job->get_status() . "\n"; } close( F ); } } sub status_trigger ($$) { my $build = shift; my $status = shift; write_jobs_file(); # Rewrite status if we need to give back or mark attempted # following failure. Note that this must follow the above # function calls because set_status will recursively trigger. if ($status eq "failed" && isin($build->get('Pkg Fail Stage'), qw(fetch-src install-core install-essential install-deps unpack check-unpacked-version check-space hack-binNMU install-deps-env apt-get-clean apt-get-update apt-get-upgrade apt-get-distupgrade))) { $build->set_status('given-back'); } elsif ($status eq "failed" && isin ($build->get('Pkg Fail Stage'), qw(build arch-check))) { $build->set_status('attempted'); } } sub shutdown ($) { my $signame = shift; $SIG{'INT'} = 'IGNORE'; $SIG{'QUIT'} = 'IGNORE'; $SIG{'TERM'} = 'IGNORE'; $SIG{'ALRM'} = 'IGNORE'; $SIG{'PIPE'} = 'IGNORE'; if (defined($job)) { $job->request_abort("Received $signame signal"); } else { exit(1); } $SIG{'INT'} = \&main::shutdown; $SIG{'TERM'} = \&main::shutdown; $SIG{'ALRM'} = \&main::shutdown; $SIG{'PIPE'} = \&main::shutdown; } sub dump_main_state () { print STDERR Data::Dumper->Dump([$job], [qw($job)] ); } sbuild-0.67.0/bin/PaxHeaders.4860/check-old-builds0000644000000000000000000000013112565554441016362 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 30 ctime=1451136983.985759746 sbuild-0.67.0/bin/check-old-builds0000755000175000017500000001022112565554441017202 0ustar00joschjosch00000000000000#!/usr/bin/perl # # check-old-build: check for packages which are in Building for extended time # Copyright © 1998 Roman Hodek # # 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, see # . # ####################################################################### use strict; use warnings; use Time::Local; my $HOME = $ENV{'HOME'} or die "HOME not defined in environment!\n"; sub check (@); sub notify_mail (@); sub parse_date ($); my $reported_file = "$HOME/lib/reported-old-builds"; my $list_cmd = "wanna-build --list=building -v"; my $report_days = 10; my $mailprog = "/usr/sbin/sendmail"; chomp( my $mailname = `cat /etc/mailname` || `hostname` ); my $sender = $ENV{'LOGNAME'} || (getpwuid($<))[0]; my ($pkg, $builder, $date); my %reported; my %seen; my $now = time; my $report_time = $report_days * 24*60*60; my %monname = ('jan', 0, 'feb', 1, 'mar', 2, 'apr', 3, 'may', 4, 'jun', 5, 'jul', 6, 'aug', 7, 'sep', 8, 'oct', 9, 'nov', 10, 'dec', 11 ); if (open( F, "<$reported_file" )) { while( ) { next if !/^(\S+)\s+(\S+)\s+(\d+)$/; $reported{$2}->{$1} = $3; } close( F ); } my $dist; foreach $dist (qw(stable frozen unstable)) { open( PIPE, "$list_cmd --dist=$dist 2>&1 |" ) or die "Cannot spawn $list_cmd: $!\n"; while( ) { next if /^wanna-build Revision/ || /^Total \d+ package/; if (/^Database for \S+ doesn't exist/i) { last; } elsif (m,^\S*/(\S+) by (\S+) \[.*\]$,) { ($pkg, $builder) = ($1, $2); $seen{$dist}->{$pkg} = 1; } elsif (/^\s+Previous state was \S+ until (.*)$/) { $date = parse_date($1); check( $dist, $pkg, $builder, $date ); } elsif (/^Database locked by \S+ -- please wait/ || /^\s/) { # ignore } else { warn "Unexpected output from $list_cmd line $.:\n$_"; } } close( PIPE ); } open( F, ">$reported_file" ) or die "Cannot open $reported_file for writing: $!\n"; foreach $dist (qw(stable frozen unstable)) { foreach (keys %{$reported{$dist}}) { print F "$_ $dist $reported{$dist}->{$_}\n" if $seen{$dist}->{$_}; } } close( F ); exit 0; sub check (@) { my ($dist, $pkg, $builder, $bdate) = @_; my $date = (exists $reported{$dist}->{$pkg}) ? $reported{$dist}->{$pkg} : $bdate; if ($now - $date > $report_time) { notify_mail( $dist, $pkg, $builder, $bdate ); $reported{$dist}->{$pkg} = $now; } } sub notify_mail (@) { my ($dist, $pkg, $to, $_date) = @_; my $date = localtime($date); local( *MAIL ); local $SIG{'PIPE'} = 'IGNORE'; open( MAIL, "| $mailprog -oem $to\@$mailname" ) or die "Can't open pipe to $mailprog: $!\n"; print MAIL <<"EOF"; From: $sender\@$mailname To: $to\@$mailname Subject: Old build of $pkg (dist=$dist) The package $pkg has been taken by you for building in distribution $dist at $date. This is some time ago now, so it could be you have forgotten the build. Can you please check this and --if this is the case-- give back the package or finish it? If you did not call wanna-build --uploaded, it might also be the case that the package is not yet installed in the archive. (This is an automated message.) EOF close( MAIL ); } sub parse_date ($) { my $text = shift; die "Cannot parse date: $text\n" if $text !~ /^(\d{4}) (\w{3}) (\d+) (\d{2}):(\d{2}):(\d{2})$/; my ($year, $mon, $day, $hour, $min, $sec) = ($1, $2, $3, $4, $5, $6); $mon =~ y/A-Z/a-z/; die "Invalid month name $mon" if !exists $monname{$mon}; $mon = $monname{$mon}; return timelocal($sec, $min, $hour, $day, $mon, $year); } sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-update0000644000000000000000000000013212637466265016022 xustar0030 mtime=1451125941.572607403 30 atime=1451125941.576607416 30 ctime=1451136983.961759714 sbuild-0.67.0/bin/sbuild-update0000755000175000017500000001334712637466265016655 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # # Copyright © 2006-2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; use Sbuild::ChrootSetup qw(generate_keys); use Sbuild::ChrootRoot; use Sbuild::Resolver qw(get_resolver); package Conf; sub setup { my $conf = shift; my %update_keys = ( 'COMPAT' => { DEFAULT => 1 }, 'UPDATE' => { DEFAULT => 0 }, 'UPGRADE' => { DEFAULT => 0 }, 'DISTUPGRADE' => { DEFAULT => 0 }, 'CLEAN' => { DEFAULT => 0 }, 'AUTOCLEAN' => { DEFAULT => 0 }, 'AUTOREMOVE' => { DEFAULT => 0 }, 'KEYGEN' => { DEFAULT => 0 }, ); $conf->set_allowed_keys(\%update_keys); } package Options; use Sbuild::OptionsBase; use Sbuild::Conf qw(); BEGIN { use Exporter (); our (@ISA, @EXPORT); @ISA = qw(Exporter Sbuild::OptionsBase); @EXPORT = qw(); } sub set_options { my $self = shift; $self->add_options( "arch=s" => sub { $self->set_conf('ARCH', $_[1]); $self->set_conf('HOST_ARCH', $_[1]); $self->set_conf('BUILD_ARCH', $_[1]); }, "update|u" => sub { $self->set_conf('UPDATE', 1); $self->set_conf('COMPAT', 0); }, "upgrade|g" => sub { $self->set_conf('UPGRADE', 1); $self->set_conf('COMPAT', 0); }, "dist-upgrade|d" => sub { $self->set_conf('DISTUPGRADE', 1); $self->set_conf('COMPAT', 0); }, "clean|c" => sub { $self->set_conf('CLEAN', 1); $self->set_conf('COMPAT', 0); }, "autoclean|a" => sub { $self->set_conf('AUTOCLEAN', 1); $self->set_conf('COMPAT', 0); }, "autoremove|r" => sub { $self->set_conf('AUTOREMOVE', 1); $self->set_conf('COMPAT', 0); }, "keygen|k" => sub { $self->set_conf('KEYGEN', 1); $self->set_conf('COMPAT', 0); }); } package main; use Getopt::Long; use Sbuild qw(help_text version_text usage_error check_group_membership); use Sbuild::Utility qw(setup cleanup); my $conf = Sbuild::Conf::new(); Conf::setup($conf); exit 1 if !defined($conf); my $options = Options->new($conf, "sbuild-update", "1"); exit 1 if !defined($options); check_group_membership(); if ($conf->get('COMPAT')) { my $msg = "$0 will perform apt-get command 'update' now, however this "; $msg .= "may change at a later revision.\n"; print "$msg"; $conf->set('UPDATE', 1); } if (@ARGV >= 1 && $conf->get('KEYGEN')) { usage_error("sbuild-update", "Incorrect number of options"); } if (@ARGV < 1 && !$conf->get('KEYGEN')) { usage_error("sbuild-update", "No chroot was specified"); } my $status = 0; my $host = Sbuild::ChrootRoot->new($conf); if ($conf->get('KEYGEN')) { print "Generating archive key.\n"; my $host = Sbuild::ChrootRoot->new($conf); if (!$host->begin_session()) { die "Chroot setup failed"; } $status = generate_keys($host, $conf); $host->end_session(); $status >>= 8; if ($status) { print STDERR "Exiting from key generation with status $status.\n"; exit($status ? 1 : 0); } exit 0; } foreach (@ARGV) { my $chroot = Sbuild::Utility::get_dist($_); my $session = setup('source', $chroot, $conf) or die "Chroot setup failed"; if (!$host->begin_session()) { die "Chroot setup failed"; } my $resolver = get_resolver($conf, $session, $host); if (!$session->lock_chroot('SBUILD_UPDATE', $$, $conf->get('USERNAME'))) { goto cleanup_unlocked; } $resolver->setup(); if ($conf->get('UPDATE')) { print "$chroot: Performing update.\n"; $status = $resolver->update($session, $conf); $status >>= 8; if ($status) { print STDERR "Exiting from update with status $status.\n"; goto cleanup; } } if ($conf->get('UPGRADE')) { print "$chroot: Performing upgrade.\n"; my $status = $resolver->upgrade($session, $conf); $status >>= 8; if ($status) { print STDERR "Exiting from upgrade with status $status.\n"; goto cleanup; } } if ($conf->get('DISTUPGRADE')) { print "$chroot: Performing dist-upgrade.\n"; my $status = $resolver->distupgrade($session, $conf); $status >>= 8; if ($status) { print STDERR "Exiting from distupgrade with status $status.\n"; goto cleanup; } } if ($conf->get('CLEAN')) { print "$chroot: Performing clean.\n"; my $status = $resolver->clean($session, $conf); $status >>= 8; if ($status) { print STDERR "Exiting from update with status $status.\n"; goto cleanup; } } if ($conf->get('AUTOCLEAN')) { print "$chroot: Performing autoclean.\n"; my $status = $resolver->autoclean($session, $conf); $status >>= 8; if ($status) { print STDERR "Exiting from autoclean with status $status.\n"; goto cleanup; } } if ($conf->get('AUTOREMOVE')) { print "$chroot: Performing autoremove.\n"; my $status = $resolver->autoremove($session, $conf); $status >>= 8; if ($status) { print STDERR "Exiting from autoremove with status $status.\n"; goto cleanup; } } cleanup: $resolver->cleanup(); # Unlock chroot now it's cleaned up and ready for other users. $session->unlock_chroot(); cleanup_unlocked: cleanup($conf); last if $status; } exit($status ? 1 : 0); sbuild-0.67.0/bin/PaxHeaders.4860/sbuild-apt0000644000000000000000000000013212627410514015305 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136983.961759714 sbuild-0.67.0/bin/sbuild-apt0000755000175000017500000000410212627410514016125 0ustar00joschjosch00000000000000#!/usr/bin/perl -w # # Copyright © 2006-2008 Roger Leigh # # 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, see # . # ####################################################################### use strict; use warnings; use Getopt::Long; use Sbuild qw(help_text version_text usage_error check_group_membership); use Sbuild::Utility qw(setup cleanup); use Sbuild::Conf qw(); use Sbuild::OptionsBase; use Sbuild::AptResolver; use Sbuild::ChrootRoot; my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "sbuild-apt", "1"); exit 1 if !defined($options); check_group_membership(); usage_error("sbuild-apt", "Incorrect number of options") if (@ARGV < 2); my $chroot = shift @ARGV; my $command = shift @ARGV; if ($command eq "apt-get") { $command = $conf->get('APT_GET'); } elsif ($command eq "apt-cache") { $command = $conf->get('APT_CACHE'); } else { usage_error("sbuild-apt", "Bad command $command. Allowed commands: apt-get or apt-cache\n"); } my $session = setup('source', $chroot, $conf) or die "Chroot setup failed"; my $host = Sbuild::ChrootRoot->new($conf); $host->begin_session() or die "Chroot setup (host) failed"; my $resolver = Sbuild::AptResolver->new($conf, $session, $host); $resolver->setup(); $resolver->run_apt_command( { COMMAND => [$command, @ARGV], ENV => {'DEBIAN_FRONTEND' => 'noninteractive'}, USER => 'root', PRIORITY => 1, DIR => '/' }); my $status = $? >> 8; cleanup($conf); exit $status; sbuild-0.67.0/bin/PaxHeaders.4860/buildd-uploader0000644000000000000000000000013112565554441016325 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 30 ctime=1451136983.973759729 sbuild-0.67.0/bin/buildd-uploader0000755000175000017500000000310212565554441017145 0ustar00joschjosch00000000000000#!/usr/bin/perl # # buildd-uploader: upload finished packages for buildd # Copyright © 1998 Roman Hodek # Copyright © 2009 Roger Leigh # Copyright © 2005 Ryan Murray # # 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, see # . # ####################################################################### use strict; use warnings; use Buildd qw(unlock_file); use Buildd::Conf qw(); use Buildd::Uploader; use Sbuild::OptionsBase; my $conf = Buildd::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "buildd-uploader", "1"); exit 1 if !defined($options); my $uploader = Buildd::Uploader->new($conf); exit 1 if !defined($uploader); my $status = $uploader->run(); $uploader->close_log(); exit $status; END { unlock_file($conf->get('HOME') . "/buildd-uploader") if (defined($conf) && defined($uploader) && defined($uploader->get('Uploader Lock')) && $uploader->get('Uploader Lock')); } sbuild-0.67.0/PaxHeaders.4860/configure.ac0000644000000000000000000000013212605405362015035 xustar0030 mtime=1444285170.644049662 30 atime=1451136874.257615774 30 ctime=1451136983.909759645 sbuild-0.67.0/configure.ac0000644000175000017500000003046612605405362015666 0ustar00joschjosch00000000000000# -*- Autoconf -*- # Copyright © 2004-2009 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # # Process this file with autoconf to produce a configure script. # ##################################################################### dnl m4 magic from Eric Blake , prior to automake inclusion m4_define([sbuild_m4_chomp], [m4_format([[%.*s]], m4_bregexp(m4_translit([$1], [ ]]m4_dquote(_m4_defn([m4_cr_all]))[, [/]]m4_format([%255s], [])[), [/*$]), [$1])]) m4_define([sbuild_m4_esyscmd_s], [sbuild_m4_chomp(m4_esyscmd([$1]))]) AC_PREREQ(2.59) dnl Quoting the first argument results in a bizarrely corrupted package tarname AC_INIT(sbuild_m4_esyscmd_s([sed -ne '/^Package:/{s/Package:[[:space:]][[:space:]]*//p;q}' VERSION]), [sbuild_m4_esyscmd_s([sed -ne '/^Version:/{s/Version:[[:space:]][[:space:]]*//p;q}' VERSION])], [buildd-tools-devel@lists.alioth.debian.org]) dnl For safety, check we are in the right directory by dnl checking for a known unique file. AC_CONFIG_SRCDIR([bin/sbuild-createchroot]) dnl Place auxilliary scripts here. AC_CONFIG_AUX_DIR([scripts]) dnl Put macro definitions here. AC_CONFIG_HEADER([config.h]) AC_COPYRIGHT( [ Copyright © 2004-2008 Roger Leigh Parts of this configure script come from the 'configure.ac' file, and are not based on freely-redistributable m4 macros; 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 3 of the License, or (at your option) any later version. This software 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, see . ]) dnl Initialise automake stuff. AM_INIT_AUTOMAKE([1.10 gnu check-news tar-pax]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) RELEASE_DATE='sbuild_m4_esyscmd_s([sed -ne '/^Release-Date:/{s/Release-Date:[[:space:]][[:space:]]*//p;q}' VERSION])' RELEASE_DATE_S='sbuild_m4_esyscmd_s(date --date='sbuild_m4_esyscmd_s([sed -ne '/^Release-Date:/{s/Release-Date:[[:space:]][[:space:]]*//p;q}' VERSION])' '+%s')' AC_DEFINE_UNQUOTED([RELEASE_DATE], ["$RELEASE_DATE_S"], [Package release date.]) AC_SUBST([RELEASE_DATE]) AC_MSG_CHECKING([whether to enable debugging messages]) AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [Enable debugging messages])], [ case "${enableval}" in yes) enable_debug="yes" ;; no) enable_debug="no" ;; unset) enable_debug="no" ;; *) AC_MSG_RESULT([unknown]) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;; esac ], [ enable_debug="no" ]) AC_MSG_RESULT([$enable_debug]) if test "$enable_debug" = "yes"; then AC_DEFINE_UNQUOTED([SBUILD_DEBUG], [1], [Enable debugging]) fi AC_MSG_CHECKING([whether to enable compatibility features]) AC_ARG_ENABLE([compat], [AS_HELP_STRING([--enable-compat], [Enable compatibililty features, for building on older Debian stable releases])], [ case "${enableval}" in yes) enable_compat="yes" ;; no) enable_compat="no" ;; unset) enable_compat="no" ;; *) AC_MSG_RESULT([unknown]) AC_MSG_ERROR([bad value ${enableval} for --enable-compat]) ;; esac ], [ enable_compat="no" ]) AC_MSG_RESULT([$enable_compat]) compat=0 if test "$enable_compat" = "yes"; then compat=1 fi AC_DEFINE_UNQUOTED([SBUILD_COMPAT], [$compat], [Enable compatibility features]) AC_SUBST([SBUILD_COMPAT], [$compat]) AM_CONDITIONAL([SBUILD_COMPAT], [test "$enable_compat" = "yes"]) AC_MSG_CHECKING([whether to enable compatibility features]) AC_ARG_ENABLE([chroot_checks], [AS_HELP_STRING([--enable-chroot-checks], [Enable additional chroot checks in testsuite (requires "unstable" chroot)])], [ case "${enableval}" in yes) enable_chroot_checks="yes" ;; no) enable_chroot_checks="no" ;; unset) enable_chroot_checks="no" ;; *) AC_MSG_RESULT([unknown]) AC_MSG_ERROR([bad value ${enableval} for --enable-chroot-checks]) ;; esac ], [ enable_chroot_checks="no" ]) AC_MSG_RESULT([$enable_chroot_checks]) chroot_checks=0 if test "$enable_chroot_checks" = "yes"; then chroot_checks=1 fi AC_DEFINE_UNQUOTED([SBUILD_CHROOT_CHECKS], [$chroot_checks], [Enable additional chroot checks]) AC_SUBST([SBUILD_CHROOT_CHECKS], [$chroot_checks]) AM_CONDITIONAL([SBUILD_CHROOT_CHECKS], [test "$enable_chroot_checks" = "yes"]) # Checks for programs. AC_PROG_CXX AC_LANG([C++]) # Check for host platform AC_CANONICAL_HOST AC_MSG_CHECKING([for supported host platform type]) PLATFORM="generic" case $host_os in linux*): PLATFORM="linux";; freebsd* | k*bsd*-gnu) : PLATFORM="freebsd";; esac AC_MSG_RESULT([$PLATFORM]) AC_SUBST([PLATFORM], [$PLATFORM]) AM_CONDITIONAL([PLATFORM_GENERIC], [test "$PLATFORM" = "generic"]) AM_CONDITIONAL([PLATFORM_LINUX], [test "$PLATFORM" = "linux"]) AM_CONDITIONAL([PLATFORM_FREEBSD], [test "$PLATFORM" = "freebsd"]) AH_TEMPLATE(SBUILD_PLATFORM, [Platform type, used to modify run-time platform-specific behaviour]) AC_DEFINE_UNQUOTED(SBUILD_PLATFORM, ["$PLATFORM"]) AH_TEMPLATE(SBUILD_HOST, [Host GNU architecture triplet]) AH_TEMPLATE(SBUILD_HOST_OS, [Host OS]) AH_TEMPLATE(SBUILD_HOST_VENDOR, [Host vendor]) AH_TEMPLATE(SBUILD_HOST_CPU, [Host CPU]) AC_DEFINE_UNQUOTED(SBUILD_HOST, ["$host"]) AC_DEFINE_UNQUOTED(SBUILD_HOST_OS, ["$host_os"]) AC_DEFINE_UNQUOTED(SBUILD_HOST_VENDOR, ["$host_vendor"]) AC_DEFINE_UNQUOTED(SBUILD_HOST_CPU, ["$host_cpu"]) dnl Set PACKAGE_LOCALE_DIR in config.h AH_TEMPLATE(PACKAGE_LOCALE_DIR, [Package locale directory]) if test "x${prefix}" = "xNONE"; then AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, ["${ac_default_prefix}/share/locale"]) else AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, ["${prefix}/share/locale"]) fi dnl Set PACKAGE_DATA_DIR in config.h. AH_TEMPLATE(PACKAGE_DATA_DIR, [Package data directory]) if test "x${datadir}" = 'x${prefix}/share' || test "x${datadir}" = 'x${datarootdir}'; then if test "x${prefix}" = "xNONE"; then PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}" else PACKAGE_DATA_DIR="${prefix}/share/${PACKAGE}" fi else PACKAGE_DATA_DIR="${datadir}/${PACKAGE}" fi AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${PACKAGE_DATA_DIR}") PERL_MODULE_DIR="${datadir}/perl5" AC_SUBST(PERL_MODULE_DIR) dnl Set PACKAGE_LIB_DIR in config.h. AH_TEMPLATE(PACKAGE_LIB_DIR, [Package lib directory]) if test "x${libdir}" = 'x${exec_prefix}/lib'; then if test "x${exec_prefix}" = "xNONE"; then if test "x${prefix}" = "xNONE"; then PACKAGE_LIB_DIR="${ac_default_prefix}/lib/${PACKAGE}" else PACKAGE_LIB_DIR="${prefix}/lib/${PACKAGE}" fi else PACKAGE_LIB_DIR="${exec_prefix}/lib/${PACKAGE}" fi else PACKAGE_LIB_DIR="${libdir}/${PACKAGE}" fi dnl Set PACKAGE_LIBEXEC_DIR in config.h. AH_TEMPLATE(PACKAGE_LIBEXEC_DIR, [Package libexec directory]) if test "x${libexecdir}" = 'x${exec_prefix}/libexec'; then if test "x${exec_prefix}" = "xNONE"; then if test "x${prefix}" = "xNONE"; then PACKAGE_LIBEXEC_DIR="${ac_default_prefix}/libexec" else PACKAGE_LIBEXEC_DIR="${prefix}/libexec" fi else PACKAGE_LIBEXEC_DIR="${exec_prefix}/libexec" fi else PACKAGE_LIBEXEC_DIR="${libexecdir}" fi SBUILD_LIBEXEC_DIR="${PACKAGE_LIBEXEC_DIR}/sbuild" AC_SUBST(SBUILD_LIBEXEC_DIR) AH_TEMPLATE(SBUILD_LIBEXEC_DIR, [Package libexec directory]) AC_DEFINE_UNQUOTED(SBUILD_LIBEXEC_DIR, ["$SBUILD_LIBEXEC_DIR"]) dnl Set PACKAGE_LOCALSTATE_DIR in config.h. AH_TEMPLATE(PACKAGE_LOCALSTATE_DIR, [Package localstate directory]) if test "x${localstatedir}" = 'x${prefix}/var'; then if test "x${prefix}" = "xNONE"; then if test "x${prefix}" = "xNONE"; then PACKAGE_LOCALSTATE_DIR="${ac_default_prefix}/var" else PACKAGE_LOCALSTATE_DIR="${prefix}/var" fi else PACKAGE_LOCALSTATE_DIR="${prefix}/var" fi else PACKAGE_LOCALSTATE_DIR="${localstatedir}" fi dnl Set SBUILD_SYSCONF_DIR in config.h. AH_TEMPLATE(SBUILD_SYSCONF_DIR, [Package system configuration directory]) if test "x${sysconfdir}" = 'x${prefix}/etc'; then if test "x${prefix}" = "xNONE"; then SBUILD_SYSCONF_DIR="${ac_default_prefix}/etc" else SBUILD_SYSCONF_DIR="${prefix}/etc" fi else SBUILD_SYSCONF_DIR="${sysconfdir}" fi SBUILD_SYSCONF_DIR="${SBUILD_SYSCONF_DIR}/sbuild" AC_DEFINE_UNQUOTED([SBUILD_SYSCONF_DIR], ["$SBUILD_SYSCONF_DIR"]) AC_SUBST([SBUILD_SYSCONF_DIR]) SBUILD_CONF="${SBUILD_SYSCONF_DIR}/sbuild.conf" AC_SUBST([SBUILD_CONF]) AH_TEMPLATE(SBUILD_CONF, [sbuild config file path]) AC_DEFINE_UNQUOTED(SBUILD_CONF, ["$SBUILD_CONF"]) dnl Set BUILDD_SYSCONF_DIR in config.h. AH_TEMPLATE(BUILDD_SYSCONF_DIR, [buildd system configuration directory]) if test "x${sysconfdir}" = 'x${prefix}/etc'; then if test "x${prefix}" = "xNONE"; then BUILDD_SYSCONF_DIR="${ac_default_prefix}/etc" else BUILDD_SYSCONF_DIR="${prefix}/etc" fi else BUILDD_SYSCONF_DIR="${sysconfdir}" fi BUILDD_SYSCONF_DIR="${BUILDD_SYSCONF_DIR}/buildd" AC_DEFINE_UNQUOTED([BUILDD_SYSCONF_DIR], ["$BUILDD_SYSCONF_DIR"]) AC_SUBST([BUILDD_SYSCONF_DIR]) BUILDD_CONF="${BUILDD_SYSCONF_DIR}/buildd.conf" AC_SUBST([BUILDD_CONF]) dnl Set SCHROOT_SYSCONF_DIR in config.h. AH_TEMPLATE(SCHROOT_SYSCONF_DIR, [schroot system configuration directory]) if test "x${sysconfdir}" = 'x${prefix}/etc'; then if test "x${prefix}" = "xNONE"; then SCHROOT_SYSCONF_DIR="${ac_default_prefix}/etc" else SCHROOT_SYSCONF_DIR="${prefix}/etc" fi else SCHROOT_SYSCONF_DIR="${sysconfdir}" fi SCHROOT_SYSCONF_DIR="${SCHROOT_SYSCONF_DIR}/schroot" AC_DEFINE_UNQUOTED([SCHROOT_SYSCONF_DIR], ["$SCHROOT_SYSCONF_DIR"]) AC_SUBST([SCHROOT_SYSCONF_DIR]) SCHROOT_CONF="${SCHROOT_SYSCONF_DIR}/schroot.conf" AC_SUBST([SCHROOT_CONF]) AH_TEMPLATE(BUILDD_CONF, [buildd config file path]) AC_DEFINE_UNQUOTED(BUILDD_CONF, ["$BUILDD_CONF"]) AH_TEMPLATE(SBUILD_DATA_DIR, [Package data directory]) if test "x${datadir}" = 'x${prefix}/share' || test "x${datadir}" = 'x${datarootdir}'; then if test "x${prefix}" = "xNONE"; then SBUILD_DATA_DIR="${ac_default_prefix}/share/sbuild" else SBUILD_DATA_DIR="${prefix}/share/sbuild" fi else SBUILD_DATA_DIR="${datadir}/sbuild" fi AC_SUBST(SBUILD_DATA_DIR) AC_DEFINE_UNQUOTED(SBUILD_DATA_DIR, ["$SBUILD_DATA_DIR"]) dnl Configure which files to generate. AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([bin/Makefile]) AC_CONFIG_FILES([configs/Makefile]) AC_CONFIG_FILES([db/Makefile]) AC_CONFIG_FILES([etc/Makefile]) AC_CONFIG_FILES([lib/Makefile]) AC_CONFIG_FILES([lib/Buildd/Makefile]) AC_CONFIG_FILES([lib/Sbuild/Makefile]) AC_CONFIG_FILES([lib/Sbuild/Sysconfig.pm]) AC_CONFIG_FILES([man/Makefile]) AC_CONFIG_FILES([man/defs.man]) AC_CONFIG_FILES([test/Makefile]) AC_CONFIG_FILES([test/perl-syntax], [chmod +x test/perl-syntax]) AC_CONFIG_FILES([test/sbuild-checkpackages], [chmod +x test/sbuild-checkpackages]) AC_CONFIG_FILES([test/sbuild-hold], [chmod +x test/sbuild-hold]) AC_CONFIG_FILES([test/sbuild-update], [chmod +x test/sbuild-update]) AC_CONFIG_FILES([test/sbuild-upgrade], [chmod +x test/sbuild-upgrade]) AC_CONFIG_FILES([test/sbuild-distupgrade], [chmod +x test/sbuild-distupgrade]) AC_CONFIG_FILES([test/sbuild-clean], [chmod +x test/sbuild-clean]) AC_CONFIG_FILES([test/sbuild], [chmod +x test/sbuild]) AC_CONFIG_FILES([tools/Makefile]) dnl Output the generated config.status script. AC_OUTPUT sbuild-0.67.0/PaxHeaders.4860/bootstrap0000644000000000000000000000013212565554441014517 xustar0030 mtime=1440143649.636952246 30 atime=1451136874.001615442 30 ctime=1451136983.921759661 sbuild-0.67.0/bootstrap0000755000175000017500000000037412565554441015346 0ustar00joschjosch00000000000000#!/bin/sh set -e # Generate version information from git release tag ./scripts/git-version > VERSION # To satisfy automake git log > ChangeLog # Bootstrap autotools autoreconf --verbose --force --install rm -rf autom4te.cache rm -f config.h.in~ sbuild-0.67.0/PaxHeaders.4860/Makefile-buildd0000644000000000000000000000013212361663370015454 xustar0030 mtime=1405576952.285596563 30 atime=1451044743.162752739 30 ctime=1451136983.929759671 sbuild-0.67.0/Makefile-buildd0000644000175000017500000000210012361663370016265 0ustar00joschjosch00000000000000# Makefile # Copyright © 1998-1999 Roman Hodek # # 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, see # . # ####################################################################### CC = gcc CFLAGS = -O2 -Wall -g LD = gcc LDFLAGS = PRGS = wanna-build-mail buildd-mail-wrapper all: $(PRGS) wanna-build-mail: wanna-build-mail.c $(CC) $(CFLAGS) -o $@ $^ strip $@ buildd-mail-wrapper: buildd-mail-wrapper.c $(CC) $(CFLAGS) -o $@ $^ strip $@ clean: rm -f $(PRGS) sbuild-0.67.0/PaxHeaders.4860/configs0000644000000000000000000000013212637513730014126 xustar0030 mtime=1451136984.045759825 30 atime=1451136984.349760227 30 ctime=1451136984.045759825 sbuild-0.67.0/configs/0000755000175000017500000000000012637513730015023 5ustar00joschjosch00000000000000sbuild-0.67.0/configs/PaxHeaders.4860/ref-testing0000644000000000000000000000013212361663370016355 xustar0030 mtime=1405576952.289596563 30 atime=1451044743.162752739 30 ctime=1451136984.041759819 sbuild-0.67.0/configs/ref-testing0000644000175000017500000000124312361663370017175 0ustar00joschjosch00000000000000apt base-files base-passwd bash binutils bsdutils build-essential coreutils cpio cpp cpp-3.3 debianutils diff dpkg dpkg-dev dselect e2fslibs e2fsprogs fakeroot file findutils g++ g++-3.3 gcc gcc-3.3 gcc-3.3-base gettext-base grep gzip hostname initscripts libacl1 libattr1 libblkid1 libc6 libc6-dev libcap1 libcomerr2 libdb1-compat libdb3 libdb4.2 libgcc1 libgdbm3 libmagic1 libncurses5 libpam0g libpam-modules libpam-runtime libss2 libssl0.9.7 libstdc++5 libstdc++5-3.3-dev libuuid1 linux-kernel-headers login make makedev mawk mount ncurses-base ncurses-bin passwd patch perl perl-base perl-modules sed slang1 slang1a-utf8 ssmtp sudo sysvinit sysv-rc tar util-linux zlib1g sbuild-0.67.0/configs/PaxHeaders.4860/ref-oldstable0000644000000000000000000000013212361663370016651 xustar0030 mtime=1405576952.289596563 30 atime=1451044743.162752739 30 ctime=1451136984.041759819 sbuild-0.67.0/configs/ref-oldstable0000644000175000017500000000076512361663370017501 0ustar00joschjosch00000000000000apt base-files base-passwd bash binutils bsdutils build-essential cpio cpp debianutils diff dpkg dpkg-dev e2fsprogs fakeroot fileutils findutils g++ gcc grep gzip hostname ldso libc6 libc6-dev libdb2 libgdbmg1 libncurses5 libpam-modules libpam-runtime libpam0g libreadline4 libstdc++2.10 libstdc++2.10-dev login make makedev mawk modutils mount ncurses-base ncurses-bin passwd patch perl-5.005 perl-5.005-base perl-base procps sed shellutils slang1 ssmtp sudo sysvinit tar textutils update util-linux sbuild-0.67.0/configs/PaxHeaders.4860/Makefile.in0000644000000000000000000000013212637513665016257 xustar0030 mtime=1451136949.373714083 30 atime=1451136977.829751607 30 ctime=1451136984.037759814 sbuild-0.67.0/configs/Makefile.in0000644000175000017500000003644312637513665017111 0ustar00joschjosch00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am README subdir = configs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(exampleconfdir)" DATA = $(exampleconf_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILDD_CONF = @BUILDD_CONF@ BUILDD_SYSCONF_DIR = @BUILDD_SYSCONF_DIR@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL_MODULE_DIR = @PERL_MODULE_DIR@ PLATFORM = @PLATFORM@ RELEASE_DATE = @RELEASE_DATE@ SBUILD_CHROOT_CHECKS = @SBUILD_CHROOT_CHECKS@ SBUILD_COMPAT = @SBUILD_COMPAT@ SBUILD_CONF = @SBUILD_CONF@ SBUILD_DATA_DIR = @SBUILD_DATA_DIR@ SBUILD_LIBEXEC_DIR = @SBUILD_LIBEXEC_DIR@ SBUILD_SYSCONF_DIR = @SBUILD_SYSCONF_DIR@ SCHROOT_CONF = @SCHROOT_CONF@ SCHROOT_SYSCONF_DIR = @SCHROOT_SYSCONF_DIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR) exampleconfdir = $(docdir)/configs exampleconf_DATA = \ README \ ref-oldstable \ ref-stable \ ref-testing \ ref-unstable EXTRA_DIST = \ $(exampleconf_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu configs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu configs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/scripts/global.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-exampleconfDATA: $(exampleconf_DATA) @$(NORMAL_INSTALL) @list='$(exampleconf_DATA)'; test -n "$(exampleconfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(exampleconfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(exampleconfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(exampleconfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(exampleconfdir)" || exit $$?; \ done uninstall-exampleconfDATA: @$(NORMAL_UNINSTALL) @list='$(exampleconf_DATA)'; test -n "$(exampleconfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(exampleconfdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(exampleconfdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-exampleconfDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-exampleconfDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am \ install-exampleconfDATA install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags-am \ uninstall uninstall-am uninstall-exampleconfDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sbuild-0.67.0/configs/PaxHeaders.4860/Makefile.am0000644000000000000000000000013212361663370016237 xustar0030 mtime=1405576952.289596563 30 atime=1451136876.777619055 30 ctime=1451136984.037759814 sbuild-0.67.0/configs/Makefile.am0000644000175000017500000000174212361663370017063 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### include $(top_srcdir)/scripts/global.mk exampleconfdir = $(docdir)/configs exampleconf_DATA = \ README \ ref-oldstable \ ref-stable \ ref-testing \ ref-unstable EXTRA_DIST = \ $(exampleconf_DATA)sbuild-0.67.0/configs/PaxHeaders.4860/ref-unstable0000644000000000000000000000013212361663370016515 xustar0030 mtime=1405576952.289596563 30 atime=1451044743.162752739 30 ctime=1451136984.045759825 sbuild-0.67.0/configs/ref-unstable0000644000175000017500000000131412361663370017334 0ustar00joschjosch00000000000000apt base-files base-passwd bash binutils bison bsdutils build-essential coreutils cpp cpp-3.3 debianutils diff dpkg dpkg-dev dselect e2fslibs e2fsprogs fakeroot file findutils flex g++ g++-3.3 gcc gcc-3.3 gcc-3.3-base gettext-base grep gzip hostname initscripts libacl1 libattr1 libblkid1 libc6 libc6-dev libcap1 libcomerr2 libdb1-compat libdb3 libdb4.2 libgcc1 libgdbm3 libgpmg1 liblocale-gettext-perl libmagic1 libncurses5 libpam0g libpam-modules libpam-runtime libss2 libssl0.9.7 libstdc++5 libstdc++5-3.3-dev libuuid1 linux-kernel-headers login m4 make makedev mawk mount ncurses-base ncurses-bin passwd patch perl perl-base perl-modules sed slang1 slang1a-utf8 ssmtp sudo sysvinit sysv-rc tar util-linux zlib1g sbuild-0.67.0/configs/PaxHeaders.4860/README0000644000000000000000000000013212361663370015063 xustar0030 mtime=1405576952.289596563 30 atime=1451044743.162752739 30 ctime=1451136984.037759814 sbuild-0.67.0/configs/README0000644000175000017500000000077012361663370015707 0ustar00joschjosch00000000000000The ref-* files are used by checkchroot to find unwanted packages in the chroots. # cp ref-* /usr/local/chroot/ - stable-old is potato - stable is woody - different for diff arches - you can basically get the list using something like: grep-available -F priority -e -s package "(required|standard)" $CHROOT/var/lib/dpkg/available| \ awk '{print $2}'|sort - the only extras should be: apt build-essential fakeroot (some arches only use sudo and change $fakeroot config item) ssmtp sudo sbuild-0.67.0/configs/PaxHeaders.4860/ref-stable0000644000000000000000000000013212361663370016152 xustar0030 mtime=1405576952.289596563 30 atime=1451044743.162752739 30 ctime=1451136984.041759819 sbuild-0.67.0/configs/ref-stable0000644000175000017500000000104612361663370016773 0ustar00joschjosch00000000000000apt base-files base-passwd bash binutils bsdutils build-essential cpio cpp cpp-2.95 debconf debianutils diff dpkg dpkg-dev e2fsprogs fakeroot fileutils findutils g++ g++-2.95 gcc gcc-2.95 grep gzip hostname libc6 libc6-dev libcap1 libdb2 libdb3 libgdbmg1 libncurses5 libpam-modules libpam-runtime libpam0g libperl5.6 libreadline4 libstdc++2.10-dev libstdc++2.10-glibc2.2 login make makedev mawk modutils mount ncurses-base ncurses-bin passwd patch perl perl-base perl-modules procps sed shellutils slang1 ssmtp sudo sysvinit tar textutils util-linux sbuild-0.67.0/PaxHeaders.4860/README0000644000000000000000000000013112627410514013425 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 29 ctime=1451136983.90575964 sbuild-0.67.0/README0000644000175000017500000000507412627410514014254 0ustar00joschjosch00000000000000Build-essential and friends =========================== sbuild-createchroot installs build-essentials so your working environment should already be ok. You will only need to add a few more packages in the chroot, using sbuild-apt. eg. sbuild-apt apt-get install sudo fakeroot ssmtp To show what needs to be added or removed from the unstable chroot you can use: sbuild-checkpackages --list To add packages: sbuild-apt apt-get install or if you wish to remove packages: sbuild-apt apt-get --purge remove Alternatively, to enter the chroot and work inside it, use: sbuild-shell With these new tools buildd.chroot has been made obsolete. Possible problems ================= ssmtp won't install and debootstrap will fail if it can't find the hostname. /etc/hosts not copied over? You may need to use the latest debootstrap. You'll have to log in again for you to be in group sbuild. debconf needs to be set noninteractive: $ sbuild-shell ( or "sudo chroot /your/chroot /bin/sh" ) $ dpkg-reconfigure -plow debconf 1. Dialog 2. Readline 3. Gnome 4. Editor 5. Noninteractive What interface should be used for configuring packages? [1] 5 1. critical 2. high 3. medium 4. low Ignore questions with a priority less than.. [3] 1 Show all old questions again and again? [no] md5sum mismatch when building a source package (sbuild --source): - the original tarball has to be in the work directory - $CHROOT/build/ - for a sourceful build or a new orig.tar.gz will be created with an incorrect md5sum. Apt Resolver Archive Keys ========================= The default location for the archive keys used in the apt resolver is at /var/lib/sbuild/apt-keys/sbuild-key.sec for the secret key and /var/lib/sbuild/apt-keys/sbuild-key.pub for the public key. Sbuild will generate these keys if either of these keys are missing at these locations. The keys are generated using a parameter file with the following entries. Key-Type: RSA Key-Length: 1024 Name-Real: Sbuild Signer Name-Comment: Sbuild Build Dependency Archive Key Name-Email: buildd-tools-devel@lists.alioth.debian.org Expire-Date: 0 %secring /var/lib/sbuild/apt-keys/sbuild-key.sec %pubring /var/lib/sbuild/apt-keys/sbuild-key.pub %commit Key generation requires entropy (usually gathered by keyboard/mouse movement). For installations of sbuild on machines where entropy gathering is minimal (such as a headless server), it is recommended the keys are generated by other means and installed in the appropriate location as mentioned above. sbuild-0.67.0/PaxHeaders.4860/scripts0000644000000000000000000000013212637513730014165 xustar0030 mtime=1451136984.301760163 30 atime=1451136984.349760227 30 ctime=1451136984.301760163 sbuild-0.67.0/scripts/0000755000175000017500000000000012637513730015062 5ustar00joschjosch00000000000000sbuild-0.67.0/scripts/PaxHeaders.4860/config.sub0000644000000000000000000000013212637513665016231 xustar0030 mtime=1451136949.281713962 30 atime=1451136977.049750577 30 ctime=1451136983.917759656 sbuild-0.67.0/scripts/config.sub0000755000175000017500000010577512637513665017073 0ustar00joschjosch00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2014 Free Software Foundation, Inc. timestamp='2014-09-11' # This file 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 3 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, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: sbuild-0.67.0/scripts/PaxHeaders.4860/missing0000644000000000000000000000013212637513665015645 xustar0030 mtime=1451136949.285713967 30 atime=1451136976.733750159 30 ctime=1451136983.921759661 sbuild-0.67.0/scripts/missing0000755000175000017500000001533012637513665016472 0ustar00joschjosch00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sbuild-0.67.0/scripts/PaxHeaders.4860/git-version0000644000000000000000000000013212565554441016437 xustar0030 mtime=1440143649.648952144 30 atime=1451136874.001615442 30 ctime=1451136983.925759666 sbuild-0.67.0/scripts/git-version0000755000175000017500000000212012565554441017255 0ustar00joschjosch00000000000000#!/bin/sh # date needs to use C for date (LC_TIME) formatting, so ensure it's # not overridden. export LANGUAGE=C export LANG=C export LC_TIME=C export LC_ALL=C PACKAGE="$(sed -ne '/^Welcome to /{s/Welcome to[[:space:]][[:space:]]*\([[:alnum:]][[:alnum:]]*\)[[:space:]][[:space:]]*\([[:alnum:]][[:alnum:].-]*\)\..*/\1/p;q}' < NEWS)" VERSION="$(sed -ne '/^Welcome to /{s/Welcome to[[:space:]][[:space:]]*\([[:alnum:]][[:alnum:]]*\)[[:space:]][[:space:]]*\([[:alnum:]][[:alnum:].-]*\)\..*/\2/p;q}' < NEWS)" TAG="release/${PACKAGE}-${VERSION}" COMMIT="$(git rev-parse "$TAG^{}")" 2>/dev/null || COMMIT="" if [ -n "$COMMIT" ]; then COMMIT_DATE="$(git log -1 "$COMMIT" --pretty="format:%ai")" RELEASE_DATE="$(date --date="$COMMIT_DATE" '+%d %b %Y')" RELEASE_BY="$(git show "$TAG" | sed -ne '/^Tagger:/{s/Tagger:[[:space:]][[:space:]]*//p;q}')" else RELEASE_DATE="$(date '+%d %b %Y')" RELEASE_BY="Unreleased" fi echo "Package: $PACKAGE" echo "Version: $VERSION" echo "Release-Date: $RELEASE_DATE" echo "Released-By: $RELEASE_BY" if [ -n "$COMMIT" ]; then echo "Git-Tag: $TAG" fi sbuild-0.67.0/scripts/PaxHeaders.4860/test-driver0000644000000000000000000000013012637513665016442 xustar0029 mtime=1451136949.54571431 29 atime=1451136949.54571431 30 ctime=1451136984.301760163 sbuild-0.67.0/scripts/test-driver0000755000175000017500000001027712637513665017276 0ustar00joschjosch00000000000000#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2013-07-13.22; # UTC # Copyright (C) 2011-2013 Free Software Foundation, Inc. # # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then estatus=1 fi case $estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sbuild-0.67.0/scripts/PaxHeaders.4860/git-tag-release0000644000000000000000000000013212637513566017146 xustar0030 mtime=1451136886.681631959 30 atime=1451136932.545691965 30 ctime=1451136983.925759666 sbuild-0.67.0/scripts/git-tag-release0000755000175000017500000000120112637513566017763 0ustar00joschjosch00000000000000#!/bin/sh set -e PACKAGE="$(sed -ne '/^Welcome to /{s/Welcome to[[:space:]][[:space:]]*\([[:alnum:]][[:alnum:]]*\)[[:space:]][[:space:]]*\([[:alnum:]][[:alnum:].-]*\)\..*/\1/p;q}' < NEWS)" VERSION="$(sed -ne '/^Welcome to /{s/Welcome to[[:space:]][[:space:]]*\([[:alnum:]][[:alnum:]]*\)[[:space:]][[:space:]]*\([[:alnum:]][[:alnum:].-]*\)\..*/\2/p;q}' < NEWS)" if [ -z "$PACKAGE" ] || [ -z "$VERSION" ]; then echo "Error parsing package name and version from NEWS" exit 1 fi echo "Tagging ${PACKAGE} version ${VERSION} as 'release/${PACKAGE}-${VERSION}'" git tag -s "release/${PACKAGE}-${VERSION}" -m "${PACKAGE} version ${VERSION}" sbuild-0.67.0/scripts/PaxHeaders.4860/global.mk0000644000000000000000000000013212361663370016033 xustar0030 mtime=1405576952.309596564 30 atime=1451136876.713618972 30 ctime=1451136983.897759629 sbuild-0.67.0/scripts/global.mk0000644000175000017500000000153612361663370016660 0ustar00joschjosch00000000000000# sbuild Makefile template # # # Copyright © 2004-2007 Roger Leigh # # sbuild 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 3 of the License, or # (at your option) any later version. # # sbuild 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, see # . # ##################################################################### # Global options for use in all Makefiles. perlmoddir = $(PERL_MODULE_DIR)sbuild-0.67.0/scripts/PaxHeaders.4860/config.guess0000644000000000000000000000013212637513665016566 xustar0030 mtime=1451136949.281713962 30 atime=1451136977.061750593 30 ctime=1451136983.917759656 sbuild-0.67.0/scripts/config.guess0000755000175000017500000012355012637513665017417 0ustar00joschjosch00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2014 Free Software Foundation, Inc. timestamp='2014-03-23' # This file 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 3 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, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: sbuild-0.67.0/scripts/PaxHeaders.4860/install-sh0000644000000000000000000000013212637513665016252 xustar0030 mtime=1451136949.285713967 30 atime=1451136949.285713967 30 ctime=1451136983.917759656 sbuild-0.67.0/scripts/install-sh0000755000175000017500000003325512637513665017105 0ustar00joschjosch00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sbuild-0.67.0/PaxHeaders.4860/NEWS0000644000000000000000000000013212637513347013256 xustar0030 mtime=1451136743.533447317 30 atime=1451136773.353485447 30 ctime=1451136983.901759635 sbuild-0.67.0/NEWS0000644000175000017500000007646012637513347014113 0ustar00joschjosch00000000000000NEWS -*- outline -*- ---- Welcome to sbuild 0.67.0. Please read these release notes carefully. Full installation instructions are provided in the INSTALL file. The README file also contains more specific notes regarding building and configuration. * Major changes in 0.67.0: 1) add --clean-source and --no-clean-source to allow building a package from an unpacked directory without calling debian/rules clean 2) allow changing the user running dpkg-buildpackage inside the chroot 3) sbuild-createchroot: use union-type=overlay for directory chroot 4) Quit processing when external commands fail 5) Add the --no-arch-any and --arch-any options which give a better control over building or not building architecture specific packages than --arch-all-only 6) Set [trusted=yes] for internal dummy repository to make key generation optional * Major changes in 0.66.0: 1) add option --arch-all-only to build arch:all packages 2) environment variable SBUILD_CONFIG allows to specify a custom configuration file 3) add option --build-path to set a deterministic build path 4) fix crossbuild dependency resolution 5) add option --extra-repository-key for extra apt keys 6) add option --build-dep-resolver=aspcud for aspcud based resolver 6) allow complex commands as sbuild hooks 7) add now external command %SBUILD_SHELL produces an interactive shell 8) add options --build-deps-failed-commands, --build-failed-commands and --anything-failed-commands * Major changes in 0.65.2: None. * Major changes in 0.65.1: None. * Major changes in 0.65.0: 1) Add support for build profiles. The specified profile is used in the build if -P or --profiles is passed or the DEB_BUILD_PROFILES environment variable is set. 2) An extra build-time repository and/or individual packages can be made available during the build. See the --extra-repository and --extra-package options. 3) Add more substitution variables for use in External commands: host architecture (%a), chroot directory (%r), build directory inside chroot (%b), and package build directory inside chroot (%p). See man sbuild for details and alternate long names. * Major changes in 0.64.3: 1) Add support for multiarch builds. Explicit build-deps on foreign-arch packages enable that arch for the build. 2) Command hook changes: chroot-setup-commands run as root. 2 new user -command hooks run immediately before/after inner build (--starting-build-commands/--finished-build-commands). * Major changes in 0.64.2: 1) Allow to Define custom debootstrap variant. 2) Allow to define custom suffixes in chroot names. * Major changes in 0.64.1: 1) Bugfixes to work with Perl 5.18; use File::Temp and File::Spec explicitly. 2) Drop autoflush workaround added for Perl 5.10. * Major changes in 0.64.0: 1) The number of times buildd will try to build before sleeping is now configurable with MAX_SBUILD_FAILS. 2) Lintian is now run inside the chroot rather than the host system. 3) binNMUs now set binary-only=yes in the changelog. 4) Cross-building improvements. * Major changes in 0.63.2: 1) New options --no-run-lintian and --no-run-piuparts. If lintian or piuparts are configured to run automatically following a successful build, there options disable this behaviour for the build. 2) New option --purge-build. This behaves identically to the old --purge option. --purge now purges everything (build directory, build dependencies and schroot session) and is equivalent to using --purge-build, --purge-deps and --purge-session together. 3) If building from unpacked sources in the current working directory, logs will be created in '..' rather than '.'. * Major changes in 0.63.1: None. * Major changes in 0.63.0: 1) Support for cross-compiling has been added. This includes the addition of $host and $build configuration variables, with corresponding --host and --build command-line options. This includes the addition of a new 'xapt' dependency resolver. 2) The deprecated 'internal' dependency resolver has been removed, along with the configuration variables $apt_policy, $check_depends_algorithm and $resolve_virtual, and the command-line option --check-depends-algorithm. The 'apt' resolver is the default replacement for 'internal'. 3) Support for watches has been removed. The configuration variables $check_watches, $ignore_watches_no_build_deps and $watches (and obsolete variables @ignore_watches_no_build_deps and %watches) have also been removed. 3) sbuild-stats and support for build time and space statistics recording has been removed. These statistics are recorded in both the build log and are available as build metadata internally. The statistics recorded in the database were not particularly informative; storing the statistics in a proper relational database is recommended. The configuration variables $avg_time_db and $avg_space_db have been removed. * Major changes in 0.62.6: 1) The use of alternatives in Build-Depends and Build-Depends-Indep may be turned on or off by the configuration variable $resolve_alternatives. It may also be enabled or disabled at build time using the --resolve-alternatives and --no-resolve-alternatives options, respectively. 2) The new Build-Depends-Arch and Build-Conflicts-Arch fields in debian/control are now supported. These may be manually set with --add-depends-arch and --add-conflicts-arch, respectively. 3) schroot namespaces are now fully supported, meaning that current 1.5.x schroot versions now work with sbuild. * Major changes in 0.62.5: None. * Major changes in 0.62.4: 1) The distribution in the build summary is coloured yellow if it does not match the distribution in the changelog. This is to indicate that there may be a potential problem, such as potentially uploading a package intended for experimental to unstable by building for unstable by accident. Additionally, lintian test results are also coloured to highlight success and failure. Log colouring may now be disabled using $log_colour. 2) sbuild only permits building one source package at once. Previously sbuild would allow building of more than one package in a single invocation. Making this change means that the exit status will always be the status of the build rather than the last build, and it also means the logging is simplified and may be started earlier. 3) Added new directory /var/lib/sbuild/build to hold build trees for sbuild when building. This will be bind mounted on /build inside the chroot following an update to the schroot sbuild and buildd fstab configuration for schroot. This saves significant amounts of space when using LVM snapshot chroots, and it also makes it easier to preserve build trees for failing builds when using snapshots. 4) Extra environment variables to be set when running dpkg-buildpackage may now be set using $build_environment; these will supplement the existing environment (e.g. PATH, LD_LIBRARY_PATH). These variables will not be subject to filtering with $environment_filter. * Major changes in 0.62.3: 1) The apt and internal resolvers will resolve some alternatives even when resolving alternative dependencies is disabled. For relations involving the same package, the alternative will be permitted when the package names are the same for each alternative. For example, foo (<< x) | foo (>= y) | bar will be reduced to foo (<< x) | foo (>= y) while foo | bar will be reduced to foo 2) The sbuild-schroot wrapper has been removed. This will be moved into the schroot package in its next release. 3) The schroot "buildd" configuration profile has been moved to the schroot package itself. This is due to being generated and being architecture-dependent, and sbuild being an arch-all package (the configuration would only be valid for the architecture sbuild was built on). 4) A new option, "-j", has been added to allow parallel builds. * Major changes in 0.62.2: 1) New options --no-apt-clean, --no-apt-update, --no-apt-upgrade and --no-apt-distupgrade have been added to allow these actions to be disabled even when set as the default in the configuration. 2) --keep-session is replaced by --purge-session=(always|successful|never). This will allow the session to be purged for all, successful and no builds, respectively. 3) $purge_session uses the same purge modes as $purge_build_deps and $purge_build_directory, rather than a boolean value. 4) Log filtering may be disabled using $log_filter = 0 in the configuration. The replacement text is now also surrounded with "«" and "»" so that strings such as CHROOT and BUILDDIR can't be confused with any actual appearance of the same string in the build log. 5) Log colouring may be disabled using $log_colour = 0 in the configuration. * Major changes in 0.62.1: 1) Fixed security issue in the sbuild-schroot wrapper program which did not enforce sbuild group membership in order to allow users to access the chroots as user sbuild. * Major changes in 0.62.0: 1) 'apt' is now the default build dependency resolver. Users should not see any significant changes compared with the old 'internal' resolver. Please note that you may need to generate a GPG key for the local archive created for dependency package installation, if one does not already exist; see sbuild-update (--keygen) for further details. 2) The 'internal' build dependency resolver is deprecated. It is not recommended for future use, and will be removed once it is no longer used by the buildd infrastructure. Please use the 'apt' resolver as a drop-in replacement. 3) The 'aptitude' build dependency resolver will, unlike 'apt' and 'internal', consider alternative dependencies by default, rather than only using the first alternative. This is intended to both preserve backward compatibility, and make the 'aptitude' resolver the preferred choice for more complex situations, such as building for experimental. 4) sbuild.conf and buildd.conf are now automatically generated from the help text and defaults in the source code. This means that the examples will always be syntactically correct, the help text will always be current, and the defaults will always match the defaults in the source code. 5) All of the allowed values in sbuild.conf and buildd.conf are now documented in the new sbuild.conf(5) and buildd.conf(5) manual pages, respectively. Like sbuild.conf, this is entirely generated from the source code, so will always match the defaults for the same sbuild version. 6) Non-scalar (or reference) types are deprecated in sbuild.conf. This is because it is not possible to tell the difference between an empty and an undefined value. Values using array or hash types should use the equivalent array reference or hash reference, which have been supported for some time. The old style array and hash values will remain supported for now, but will be removed in a future release. 7) sbuild now performs an apt dist-upgrade at the start of each build by default, rather than an upgrade. This is to reduce the amount of manual administration required to keep chroots up to date, and is not much more risky than upgrade in this context. 8) A new option, --keep-session, has been added. This prevents the automatic removal of session-managed snapshot chroots. Previously, snapshots would not be deleted if purging of the build directory or build dependencies was disabled, but this was not always desirable, hence it is now configurable separately. 9) Internally, building and other actions in the chroot are performed by the 'sbuild' system user, where previously the user invoking sbuild would be used instead. The aim of this change is to separate privileges to increase security and reduce the chance of accidental or deliberate tampering of the build environment. While the latter is not addressed by these changes, this will be taken care of during future architectural changes. 10) In order to handle errors more robustly, the build code now has initial support for exception handling. Normal operation will not be affected, but fatal errors may be logged in a different order than seen previously. Fatal errors will now be seen at the end of the build log, which should make it easier to spot problems. 11) sbuild now always cleans up fully when receiving a termination signal such as SIGINT or SIGTERM. Note that you may need to wait while the cleanup actions are performed, or the current task is completed prior to initiating cleanup. When running interactively, hitting Ctrl-C will sent SIGINT to the entire process group; doing this while apt-get or aptitude are running will potentially leave dpkg in an inconsistent state, so aborting at this point is not recommended. Sending a SIGTERM to the sbuild process will always work cleanly. 12) Long paths such as the chroot location and the build directory inside the chroot are now filtered in the build log and replaced with small, constant, abbreviations. This makes the build logs comparable between builds with tools such as diff(1). 13) Logging messages have been improved, and important messages are now coloured when running interactively (does not affect log files). Errors, warnings and informational messages are coloured red, yellow and green, respectively. Build status is coloured green for success and red for all failure conditions. 14) The sbuild package build directory created inside the chroot now has a reduced name length. It's now /build/packagename-XXXXXX where XXXXXX are random characters. This helps reduce the chance of hitting path length restrictions on some architectures, particularly when using sockets. 15) Build log mails are now compressed and mailed in MIME format by default, together with a copy of the .changes file. The old behaviour (plain mailing of uncompressed logs) may be restored by setting $mime_build_log_mails=0 in the configuration, and compression may also be disabled in the MIME mails by setting $compress_build_log_mails=0. Note that it is no longer possible to send compressed log mails unless MIME mailing is enabled. 16) The wanna-build database has been removed entirely. This part of the sbuild package was not used, and was not maintained for some time. Users wishing to use wanna-build should investigate the version in the wanna-build.git repository used by the Debian autobuilding infrastructure. This version is actively maintained and in continual use. * Major changes in 0.61.0: 1) The apt and aptitude build dependency resolvers now use only the first alternative in alternative dependencies. The other alternatives are stripped out entirely. This makes the apt and aptitude resolvers behave exactly like the internal resolver. Note that this is configurable with the $resolve_alternatives option, so alternative resolving may be re-enabled with this option if desired. This is useful for e.g. backports, but not for unstable where the strict consistency and reproducibility offered by only using the first alternative is required. * Major changes in 0.60.9: 1) The architecture specified with --arch (defaulting to the host system architecture) must match the chroot architecture. This was previously allowed to be superceded by the chroot architecture. This change is to avoid any abiguity regarding the host/build architecture for the package being built. * Major changes in 0.60.8: None. * Major changes in 0.60.7: None. * Major changes in 0.60.6: 1) sbuild now sanitises the environment when running external commands such as dpkg-buildpackage. The allowed environment variables may be specified with $environment_filter in the configuration. Currently, various DEB* and *FLAGS* environment variables are allowed, similar to debuild's behaviour. 2) sbuild now has a testsuite to do basic regression testing. By default, only Perl syntax is checked. If configured with --enable-chroot-checks, it will run the various sbuild-* helpers and sbuild itself to build a small variety of different packages. These are tested in an "unstable" chroot, which must be present as a prerequisite for running the tests. 3) The apt and aptitude build dependency resolvers now use a temporary local apt archive for installation of the dependency packages. apt-get would previously try to remove the dependency package under certain conditions (apt-get -f install would force removal), whereas using a real archive to install from prevents this. 4) sbuild-update has a new option, --keygen. This generated a GPG key for signing local apt archives. The key will be generated automatically on first use, but if entropy on the build system is scarce, sbuild-update can generate it by hand at a more convenient time, or on another system. 5) sbuild no longer generates the files REDO and SBUILD-REDO-DUMPED upon receiving a termination signal. These were no longer used in buildd mode, and were only useful in a buildd context. * Major changes in 0.60.5: 1) A new resolver, 'apt', has been added. Like the aptitude resolver, this installs a dependency package to install build dependencies and remove build conflicts, but uses apt-get rather than aptitude. This resolver is currently experimental and may not yet perform correctly under all circumstances. Use at your own risk. 2) It is now possible to run piuparts on the build packages with the new --run-piuparts option. * Major changes in 0.60.4: 1) The default dependency resolver has been reverted back to 'internal' for the present. 'aptitude' will become the default again once it has had further testing. Feedback regarding the 'aptitude' resolver would be much appreciated. * Major changes in 0.60.3: 1) The aptitude resolver is now the default resolver. Users wishing to continue to use the old internal resolver should set $build_dep_resolver='internal' in their configuration. The aptitude resolver is far superior to the internal resolver, because it can correctly resolve complex alternative and virtual packages in build dependencies where the internal resolver would fail. 2) The aptitude resolver is now entirely separate from the internal resolver, and greatly simplified. All Build-Depends and -Conflicts are now passed directly to aptitude (with architecture-specific dependencies filtered out). As before, a dummy dependency package is used to install and remove build dependencies and build-conflicts. 3) The sbuild-clean program has been moved into sbuild-update, as for the other sbuild- helper programs. The sbuild-* helper programs now take the sbuild chroot lock used by sbuild to prevent concurrent builds in the same chroot, making it safe to run the maintenance commands while builds are running (they will wait until the build has finished before making any changes). The sbuild-* helper programs now operate on source chroots, where available (for lvm-snapshot and btrfs-snapshot type chroots). 4) The sbuild-createchroot program can now create tarballs from the created chroot, with gzip, bzip2, lzma and xz compression. Use the new --make-sbuild-tarball option for this purpose. 5) sbuild may now be used on an unpacked source directory, in a similar manner to debuild. The directory will be packaged using 'dpkg-source -b' prior to building. If a source package or directory is not specified, sbuild will use the current working directory like debuild. 6) Lintian may now be run after a package build with the --run-lintian option. 7) External commands may now be run before and after a build and during chroot setup and cleanup. These may be used to do additional setup and checking during a build, for example to run piuparts. * Major changes in 0.60.2: 1) Virtual packages may now be used in Build-Depends using the internal resolver. This is very simple, and picks the first package providing the dependency in alphabetical order. The aptitude resolver is rather more sophisticated, and should be used if this is insufficiently clever. 2) Build-Conflicts are correctly removed and reinstalled, and sbuild can now remove packages which depend upon other packages, due to using "apt-get remove" in place of "dpkg --remove". 3) Package build-dependency installation in now preceeded by installation of "core" dependencies (currently build-essential) and "essential" dependencies (essential packages listed in build-essential), to ensure a working build environment. These should, of course, already be installed; this change is an additional consistency check to ensure the build environment is sane. 4) schroot sessions may be preserved on failure (failure to build or failure to install build dependencies), to allow easier troubleshooting. * Major changes in 0.60.1: 1) Improvements in building of dpkg-source v3 source formats. 2) sbuild includes a new option --no-source to disable building of source packages. This is the reciprocal of the existing --source option. * Major changes in 0.60.0: 1) sbuild no longer defaults the distribution to "unstable", and requires setting by hand with --distribution unless configured in .sbuildrc. This is to prevent accidental uploads to the wrong distribution. 2) sbuild now lists all packages (including versions) installed in the build chroot in the package build log. This may aid identifying problems with builds using buggy or outdated package versions. 3) With a recent versions of man-db (>= 2.5.6-4), man-db will be configured not to rebuild its database during package installation and removal in the build chroot. 4) sbuild has added new options to allow APT cleaning, upgrading and dist-upgrading of the build chroot, in addition to the existing updating option. 5) buildd has been synched with the buildd code in use on the Debian buildd infrastructure, and is now in use on most, if not all, running buildds. It has undergone extensive changes since the previous release, and is now suitable for production use. Note that the packaged version of wanna-build is not yet ready for use with buildd. 6) buildd no longer bind mounts /home into the chroot. 7) buildd now handles all wanna-build interaction. All sbuild wanna-build usage has been removed, including the --auto-give-back and --database options. * Major changes in 0.59.0: 1) The wanna-build options --no-propagation and --no-down-propagation have been removed. These options no longer have any effect, and were only present for backward-compatibility with older versions of buildd. buildd no longer uses these options, making it safe to remove them. 2) The wanna-build configuration options used by buildd in buildd.conf have been renamed for better compatibility with future planned sbuild changes. buildd.conf will require updating with the new option names: ┌───────────────────────┬─────────────────────────────────────┐ │ old │ new │ ├───────────────────────┼─────────────────────────────────────┤ │ $wanna_build_dbbase │ $wanna_build_db_name │ │ $wanna_build_user │ $wanna_build_db_user │ │ $ssh_user │ $wanna_build_ssh_user │ │ $ssh_host │ $wanna_build_ssh_host │ │ $ssh_socket │ $wanna_build_ssh_socket │ │ @ssh_options │ $wanna_build_ssh_options (arrayref) │ └───────────────────────┴─────────────────────────────────────┘ 3) sbuild will set the "attempted" and "given-back" states for certain failures. If wanna-build updates are configured with --database and --auto-give-back by buildd, it will set the "built" state on build completion, and "attempted" if the build failed. As before, "given-back" will be set for most other failure conditions. * Major changes in 0.58.6: None. * Major changes in 0.58.5: None. * Major changes in 0.58.4: None. * Major changes in 0.58.3: 1) The broken options --add-depends and --force-depends have been replaced by --add-depends, --add-conflicts, --add-depends-indep and --add-conflicts-indep. These options each take a single dependency, using the same dependency syntax one would use in debian/control. 2) The wanna-build configuration has been moved back to /etc/buildd/wanna-build.conf. However, the option names have been renamed and your configuration will require updating. 3) When reading configuration files, stricter checking is performed. If you see a "Global symbol "$x" requires explicit package name" error, then the option $x is not valid and should be removed from the configuration file indicated. 4) The maintainer name no longer defaults to DEBEMAIL as in most cases the maintainer in the .dsc should be used. * Major changes in 0.58.2: None. * Major changes in 0.58.1: None. * Major changes in 0.58.0: 1) The configuration option @no_auto_upgrade, which was no longer used, has been removed. To prevent packages being upgraded automatically, please use sbuild-hold. See sbuild-hold(1). 2) The configuration option $chroot_mode has been restored, allowing chroot access by both schroot (which remains the default) and sudo. 3) A new configuration option $chroot_split has been added. This allows both schroot and sudo chroot access to be modified to run apt/dpkg on the host system. Note that schroot needs sudo to run commands as root on the host system. 4) Deprecated commands from /usr/lib/sbuild have been removed. Please use the sbuild-* replacements found in /usr/bin. 5) The maintainer name defaults to DEBEMAIL if set in the environment, so no longer needs setting explicitly in .sbuildrc. 6) Unless configured as a buildd ($sbuild_mode), when using sudo chroot access, chroots are searched for in /etc/sbuild/chroots. This directory should contain symlinks to the chroots, with the distribution name being the name of the symlink. Buildd mode will continue to use the old method of current-$distribution symlinks in the current directory. 7) The log format used for build logs has been updated to use a more readable format, and is now encoded in UTF-8 rather than US-ASCII. Code which parses the log file may need to be updated to handle the new format. Further log format changes made in the future. 8) All commands now have a corresponding manual page. 9) The wanna-build configuration has moved from /etc/wanna-build/wanna-build.conf into /etc/sbuild/sbuild.conf as part of ongoing refactoring work. It is expected that this will be split into a separate file in the future once this work is completed. 10) wanna-build can now correctly dump and restore its databases using the --export and --import options. Note that wanna-build-catmldbm and related commands can not correctly dump the current database format, can not be used to restore the dump and will be removed in the future. 11) The wanna-build commands do-merge-packages and do-merge-quinn have been renamed to wanna-build-merge-packages and wanna-build-merge-quinn. 12) wanna-build changes from the official Debian wanna-build installation have been merged. 13) Initial support for a wanna-build PostgreSQL backend backend has been added, but is not currently functional. The database schema is also included, but not yet finalised. * Major changes in 0.57.5: 1) sbuild-createchroot now supports most of the options found in debootstrap. It no longer adds main and contrib to /etc/apt/sources.list in the chroot (the components are now specified with --components instead of being hard-coded). 2) All sbuild commands now support --help and --version options. 3) sbuild-abort and sbuild have been updated to work with the current dpkg-buildpackage and handle build termination gracefully. * Major changes in 0.57.4: None. * Major changes in 0.57.3: None. * Major changes in 0.57.2: 1) The new dpkg source format is now supported. 2) The chroot to build in may be specified independently of the distribution. 3) Purging of files in the chroot has been made more reliable, by putting all of the build files in a single temporary directory which is purged after the build completes. 4) $mailto no longer needs setting in .sbuildrc if not running as a buildd. 5) An option to always update the APT package list has been added ($apt_update in sbuild.conf). 6) wanna-build, the database used to track which packages need rebuilding, has been added as a separate package. * Major changes in 0.57.1: 1) While not used in the Debian packaging, the buildd and wanna-build sources have been merged from the separate buildd.git repository. They will be built as packages in a future release. 2) Helper scripts in the Debian package have been moved from /usr/lib/sbuild back to /usr/share/sbuild, where they were located prior to 0.57.0. 3) schroot "directory" type chroots are now purged correctly following a package build. * Major changes in 0.57.0: 1) All programs have been moved from /usr/share/sbuild to /usr/bin (with the exception of dobuildlog), with an sbuild- prefix. In some cases, the names have been changed. The older programs are still available under /usr/lib/sbuild. 2) All programs (with the exception of dobuildlog) now have manual pages. 3) sbuild now runs apt-get with APT::Install-Recommends set to false. 4) sbuild can be optionally configured to use an alternative algorithm to compute build dependencies, to allow installation of alternative build dependencies. 5) sbuild-createchroot (formerly buildd.chroot) now creates a fully working chroot, with no manual setup required other than adding the schroot configuration. sbuild-0.67.0/PaxHeaders.4860/config.h.in0000644000000000000000000000007212637513665014610 xustar0029 atime=1451136978.06575192 29 ctime=1451136983.91375965 sbuild-0.67.0/config.h.in0000644000175000017500000000345312637513665015432 0ustar00joschjosch00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* buildd config file path */ #undef BUILDD_CONF /* buildd system configuration directory */ #undef BUILDD_SYSCONF_DIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Package data directory */ #undef PACKAGE_DATA_DIR /* Package libexec directory */ #undef PACKAGE_LIBEXEC_DIR /* Package lib directory */ #undef PACKAGE_LIB_DIR /* Package locale directory */ #undef PACKAGE_LOCALE_DIR /* Package localstate directory */ #undef PACKAGE_LOCALSTATE_DIR /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Package release date. */ #undef RELEASE_DATE /* Enable additional chroot checks */ #undef SBUILD_CHROOT_CHECKS /* Enable compatibility features */ #undef SBUILD_COMPAT /* sbuild config file path */ #undef SBUILD_CONF /* Package data directory */ #undef SBUILD_DATA_DIR /* Enable debugging */ #undef SBUILD_DEBUG /* Host GNU architecture triplet */ #undef SBUILD_HOST /* Host CPU */ #undef SBUILD_HOST_CPU /* Host OS */ #undef SBUILD_HOST_OS /* Host vendor */ #undef SBUILD_HOST_VENDOR /* Package libexec directory */ #undef SBUILD_LIBEXEC_DIR /* Platform type, used to modify run-time platform-specific behaviour */ #undef SBUILD_PLATFORM /* Package system configuration directory */ #undef SBUILD_SYSCONF_DIR /* schroot system configuration directory */ #undef SCHROOT_SYSCONF_DIR /* Version number of package */ #undef VERSION sbuild-0.67.0/PaxHeaders.4860/README.buildd-admin0000644000000000000000000000013212627410514015756 xustar0030 mtime=1449005388.459402735 30 atime=1451044743.162752739 30 ctime=1451136983.933759677 sbuild-0.67.0/README.buildd-admin0000644000175000017500000002555512627410514016612 0ustar00joschjosch00000000000000 -*- mode: indented-text -*- Overview of buildd Administration ================================= This document should give you a rough idea how to administer a build daemon, i.e. basics of how it works, and how to reply to the mails sent to you. It does not yet cover configuration of buildd in a proper way, sorry. 1) Overview of Operation ======================== The buildd system consists of the following parts: buildd: This is the daemon itself. It basically runs in a loop, first requesting some package in state Needs-Build from the wanna-build database and then compiling those packages. buildd-mail: This script processes mails directed to buildd, i.e. your answers to build logs etc. buildd-uploader: This script uploads finished jobs regularly and is called by cron. buildd-watcher: This does some regular maintenance stuff, like archiving log files and finding outdated files so that the disk doesn't fill up with them. It also restarts buildd should it have died for some reason. 1.1) buildd ----------- The most important component is of course buildd itself. It runs as a daemon, i.e. all the time, no need to start it by cron or the like. It usually lowers its priority (config var $nice_level), so that other foreground jobs aren't delayed too much. buildd runs in a permanent loop where it tries to compile packages. To do this, it needs to know which packages to build. To determine this, it calls wanna-build --list=needs-build for all distributions (in order stable -> frozen -> unstable) and if the output is non-empty, it takes some of those packages needing rebuilding. You can restrict which distributions to look at with the @take_from_dists config var, and how many packages to take at a time with $max_build. Additionally, there is a file called REDO in ~/build, where some packages are occasionally dumped to be picked up later by buildd. This file is checked before new packages are requested from wanna-build. REDO also contains distributions for the packages, and here again stable has priority before frozen, which has priority over unstable. The rationale is that stable/frozen packages are usually more urgent than unstable ones. If buildd has some packages from wanna-build, it tries to take them for building (wanna-build --take). This should usually go ok, but in rare cases it can happen that somebody else takes the package in the time between listing and taking (race condition). Those packages are ignored. Another exception that can happen are packages that failed in the previous version. To avoid unnecessary work, buildd doesn't immediately start to build those packages but asks its administrator first. This will be discussed in greater length in a following section ("Should I build" mails). If a set of packages are taken (either from wanna-build or from REDO), buildd starts an sbuild run to build all the packages. sbuild will send log mails to the admin, who will (later) send answers, but this doesn't touch buildd anymore. It goes back to the start of the loop and tries to take more packages and build them... Some special notes: buildd automatically detects if either the config file ~/buildd.conf or its binary has been changed while it is running, and it takes appropriate action. So there's no need to restart the daemon or send it some signal. You can interrupt a running buildd by sending it a SIGINT or SIGTERM. It will then kill a subsidiary sbuild process (if currently running). sbuild also has shutdown handling for this, and dumps unfinished jobs into the REDO file, so they'll be retried later. buildd blocks these signals if they could lead to inconsistencies. There is also some way to influence which packages buildd takes (or more precisely) doesn't take to build. The config variable @no_auto_build lists packages that should never be taken by buildd, either because auto-building doesn't work or because they need to much time on this machine, or ... There is also a @weak_no_auto_build for packages that usually are too (time-)expensive to build here, but should be taken nevertheless if the daemon would be idle otherwise. Packages in @weak_no_auto_build are taken only if there are no other packages left in state Needs-Build in any distribution, and also REDO is empty. If sbuild gives back a package to wanna-build (because source couldn't be downloaded or the like), buildd will find the SBUILD-GIVEN-BACK file created by sbuild and it will remember when those give-backs have happened. To avoid trying the same package(s) over and over, such given back packages aren't taken immediately again. They have a waiting period of $delay_after_give_back minutes. 1.2 buildd-mail --------------- buildd-mail is the mail processor of the buildd system. It should be listed in the user buildd's ~/.forward file, e.g.: "|/usr/bin/buildd-mail" The wrapper is necessary to allow setuid-ness, and also queues up incoming mails in ~/mqueue, so that the MTA process can exit and doesn't need to wait for buildd-mail to finish. There's not much to say here about operating buildd-mail, because it just receives your answers to log files etc., and this will be described in more detail in the next section. The only (a bit) special thing is that buildd-mail also receives the "INSTALLED" mails from dinstall and analyzes them. It deletes all files from ~/upload when they're installed in the master archive. It also receives the "new version of ..." mails from wanna-build, that are sent whenever a new version of a package in state Building arrives. There is also a file ~/mail-blacklist that contains a list of (Perl) regular expressions. If a mail arrives from an address that matches one of those patterns, the mail is deleted. This is simply to avoid spam. 1.3 buildd-uploader ------------------- buildd-uploader is started by cron a few times per day and uploads all finished jobs which are in ~/upload. It simply uses dupload, as you would expect. It of course ignores jobs for which an *.upload file already exists, i.e. those which already have been uploaded. After uploading, it calls wanna-build --uploaded for all the packages it processed. The --to option of dupload can be set with the $dupload_to config var; default is "erlangen". In all other respects, dupload is configured with ~/.duploadrc. In case of upload errors it sends a log mail to the admin, who has to fix the situation manually. However, errors should be seldom. The *.upload file of a failed job is deleted, so it's retried as a whole in the next run. 1.4 buildd-watcher ------------------ buildd-watcher performs some regular maintenance tasks: - If checks if buildd is running and restarts it if not. This is meant as a safeguard against spuriously crashing daemons, no manual intervention is required to restart it. If you don't really need to have a daemon running, create a file NO-DAEMON-PLEASE in the daemon's home dir. Then buildd-watcher won't restart buildd. - It purges build directories that are no longer needed. This would be actually the job of buildd-mail, but since the latter is started setuid, it can't use sudo and the build dirs can contain root-owned files. So buildd-mail just appends the name of a directory to delete to ~/build/PURGE, and buildd-watcher reads that file and removes all the directories. - It checks for old files in the build/ and upload/ directories, so that no forgotten files can fill up the disk over time. Files are considered "old" if they're older than $warning_age days. There's additionally a Perl regexp $no_warn_pattern. buildd-watcher doesn't warn about files matching this pattern. So files expected to be there should be included in it, like build/buildd.pid, build/REDO, ... - It archives old log files into ~/old-logs/ and rotates the main log file ~/daemon.log. Files to be archived are: - package logs: logs/* -> old-logs/plog-.tar.gz - sbuild logs: build/build*.log -> old-logs/blog-.tar.gz - daemon logs: old-logs/daemon-*.log.gz -> old-logs/dlog-.tar.gz Additionally daemon.log is renamed to daemon.log.old, and SIGHUP is sent to buildd to open the new log file. If a daemon.log.old already exists, it's compressed and moved to old-logs/daemon-.log.gz. There are several config vars that control long to keep the various log files until they're archived: $pkg_log_keep, $build_log_keep, $daemon_log_rotate, and $daemon_log_keep. All are measured in days. 2) Replying to Mails ==================== You'll receive lots of mail from buildd and its friends, most of it build logs. But there are also some other kinds of mail: "Should I build?" from buildd, dupload errors, and warnings about old files. The latter two are not complicated and are obvious to handle. But the former two require that you reply in a certain way. To make daily administration easier, there is a set of Emacs Lisp functions (for Rmail and Gnus) that allow you to send most answers with two keystrokes. The library is called buildd-reply.el and can be found in the wanna-build Git archive, where other buildd scripts reside. The keystrokes in Emacs are given in square brackets. 2.1) Build Logs --------------- All build log replies are recognized by their subject. It should be of the form Re: Log for (successful|failed) build of PACKAGE_VERSION (dist=DIST) The subject line provides buildd-mail with a lot of needed info: The package name, version, and for which distribution it was compiled. The successful/failed information is ignored. The body of the reply mail is in most cases only a single keyword, sometimes with arguments. Despite this, there should be no excess blank lines or similar. 2.1.1 Successful [C-c C-o] ................ This is the most often used reply, and also different from the others because it does not consist of a single keyword. Instead, you send back a signed version of the .changes file of the package. The .changes can be found at the end of the build log. The Emacs function automatically extracts the .changes from the log and signs it (with mailcrypt). If you do not Emacs, you have to cut the .changes manually somehow (depending on the mailer) and invoke some kind of PGP backend. buildd-mail recognizes "ok" mails by the "--- BEGIN PGP SIGNED MESSAGE" line. If such a mail is received, it first checks that the package isn't outdated. 2.1.2 retry [C-c C-r] ........... 2.1.3 fail [C-c C-f] .......... 2.1.4 dep-wait [C-c C-d] ............. 2.1.5 giveback [C-c M-g] .............. 2.1.6 manual [C-c C-m] ............ 2.1.7 newvers [C-c C-n] ............. 2.1.8 not-for-us [C-c M-n] ................ 2.1.9 upload-remove [C-c C-] ................... 2.1.10 purge [C-c C-p] ............ 2.2 Other Emacs Actions ----------------------- "\C-c\C-s" 'buildd-edit-manual-source-deps "\C-c\C-b" 'buildd-bug "\C-c\C-a" 'buildd-bug-ack-append 3) Log Files ============ sbuild-0.67.0/PaxHeaders.4860/TODO0000644000000000000000000000013212605405362013237 xustar0030 mtime=1444285170.644049662 30 atime=1451044743.162752739 30 ctime=1451136983.917759656 sbuild-0.67.0/TODO0000644000175000017500000000756012605405362014067 0ustar00joschjosch00000000000000Check packages in the alternatives and stalled_pkg_timeout lists in the configuration file and Conf.pm. Make sure they are current and valid. sbuild-createchroot should import most of buildd-make-chroot. (note: only needed for buildd use--accounts and passwords needed for access) Chroot.pm: Move chroot naming out of begin_session. Are 'Build Start Time' and 'Pkg Start Time' different? sbuild-setup references ~/build, even though not required. sbuild-setup should document all files copied by schroot setup scripts. bin/*: Add --help and --version Add a --verbose option to all commands All programs must use Getopt::Long for options parsing sbuild-stats option formatting and option processing perform more than one action at once? Only set mode once? actions have multiple args? sbuild-stats only has a single database. There's no distinguishing between different distributions or architectures. Fix with wannab. buildd-clean-upload hard-codes $HOME/upload. Configure location. All perl programs and modules should - use strict - use warnings - use function prototypes buildd hard-codes config file locations. Used in check_reread_config. buildd hard-codes main::HOME and PATH. Set in ::Conf. buildd-watcher should use strftime in place of own functions sbuild utilities should allow specification of chroot architecture Document and add examples for %mailto. sbuild-adduser should do schroot/sudo-specific setup depending on $chroot_mode. Now done in basesetup(). But, it may be useful to do additional setup here such as user/group database updates for sudo chroots and schroot when using plain chroot type (no automated setup). Use 'dcmd cp' to copy build files Copyright details of new files. Validate programs and paths only if required - programs which only work inside the chroot - programs which only work outside the chroot (if required by config) - programs which may or may not be required inside and/or outside Where did the 0.57.7 debian/changelog go to? buildd-mail: Why do we use lockfiles rather than real fcntl locks? Move locking functions out of Sbuild::Build. Use proper locking in place of lockfiles. Sbuild::Base: Add append method to simplify set(get() . ) idiom. buildd auto-restart isn't useful due to loss of @INC and failure to detect changes in modules. Create init script instead. buildd-mail: %header (to|from|subject|message-id|date) are mandatory. Check for these and bail out if not present. Buildd::Conf: Add Sbuild::Chroot heirarchy-specific configuration keys. - split into separate initialisation function, - split wanna-build config into separate function also. - may be useful to have different config files here or else we get parsing errors if variables aren't defined in the parsing sandbox. buildd: shutdown_* should check if we are a daemon before removing the pidfile, as for END. END blocks should be inside object destructors. buildd-vlog: Rather than tailing the output of sbuild logs, once buildd uses Sbuild::Build directly, the daemon will be able to do its own output (if desired). buildd-mail: Moves built packages directly into the chroot /var/cache/apt/archives. It should use Sbuild::Chroot. This should also update the source chroot. buildd: SIGHUP should reread config, not SIGUSR1. Swap? buildd mails: Statistics start from 01-01-1970 when first started up. Buildd::*: Don't set Host until after object construction, since the Log Stream isn't yet initialised. If log stream opening is moved into Buildd::Base, this can be done automatically. bin/*, lib/*: Kill use of main:: globals Kill main::HOME hardcoding Kill PATH hardcoding Kill LOG/PLOG Kill all globals lib/Buildd: Move logger vfunc into Sbuild::Log as the default logger? Generalise chroot setup logic in Build.pm and Chroot.pm Put all APT and debconf configuration into sbuild.conf. Documentation improvements: - setup of cloned chroots (source-*) sbuild-0.67.0/PaxHeaders.4860/AUTHORS0000644000000000000000000000013012565554441013625 xustar0029 mtime=1440143649.63295228 30 atime=1451044743.162752739 29 ctime=1451136983.90575964 sbuild-0.67.0/AUTHORS0000644000175000017500000000226512565554441014454 0ustar00joschjosch00000000000000The list of contributors, in alphabetical order, is as follows. The principal areas that each contributed to are listed in addition. Ben Collins the "apt patch" for sbuild for finding source Enrico Zini support for disabling APT package authentication Marc 'HE' Brockschmidt buildd and sbuild maintenance Philipp Kern buildd and sbuild maintenance Roman Hodek wanna-build sbuild Roger Leigh schroot support autotools maintenance Andres Mejia sbuild-createchroot improvements sbuild-update and related script improvements sbuild schroot namespace support sbuild debuild-link functionality sbuild source download improvements architecture wildcard support external command and lintian support Ryan Murray modifications for security building maintenance Simon McVittie --chroot option for sbuild Timothy G Abbott support for running "apt-get update" in chroots prior to fetching sources and building sbuild-0.67.0/PaxHeaders.4860/INSTALL0000644000000000000000000000013212637513665013613 xustar0030 mtime=1451136949.297713983 30 atime=1451136949.297713983 30 ctime=1451136983.901759635 sbuild-0.67.0/INSTALL0000644000175000017500000003661012637513665014441 0ustar00joschjosch00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell command `./configure && make && make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. sbuild-0.67.0/PaxHeaders.4860/ChangeLog0000644000000000000000000000013212637513730014325 xustar0030 mtime=1451136984.345760221 30 atime=1451136924.457681354 30 ctime=1451136984.345760221 sbuild-0.67.0/ChangeLog0000644000175000017500000251777612637513730015176 0ustar00joschjosch00000000000000commit 12582197079aaed20c5bac626333b4d328e45be5 Author: Johannes 'josch' Schauer Date: Sat Dec 26 14:32:59 2015 +0100 Bump version to 0.67.0 commit 6c7788954e41ef9cf2474b3ca60ad281282f1b07 Author: Johannes 'josch' Schauer Date: Sat Dec 26 09:34:52 2015 +0100 lib/Sbuild/Build.pm: print $@ after eval() when debug is on commit b63588e7c68d1320eec37d77b452e9e5ed793983 Author: Johannes 'josch' Schauer Date: Wed Dec 23 14:46:44 2015 +0100 lib/Sbuild/Build.pm: make sure regex only matches lines in the Files field (closes: #808560) Previously, the regex would also match lines in the Checksums-Sha1 and Checksums-Sha256 field. This was no problem because prior to Perl 5.22 because the following list slicing would return an empty array when it found an out-of-bounds index. Since Perl 5.22 an array of one undef element is returned instead. More info can be found at: https://rt.perl.org/Public/Bug/Display.html?id=114498 To fix this we modify the regex such that it only matches the lines containing a 32 character checksum which should only happen in the lines of the Files section where the result of calling split() should return an array of sufficient size to not yield an undef when retrieving element 5 from it. commit fff86d4249552d3b668104c98f4d7c408af8c8bc Author: Johannes 'josch' Schauer Date: Thu Dec 24 11:38:20 2015 +0100 lib/Sbuild/ChrootInfo.pm: fix error handling (closes: #808290) commit e3946385202ff2d580d134582ad48e5f730d6b10 Author: Johannes 'josch' Schauer Date: Fri Dec 25 22:55:00 2015 +0100 lib/Sbuild/Chroot.pm: apply environment filter *before* setting environment variables set by sbuild itself (closes: #807488) Before this commit the ENVIRONMENT_FILTER configuration option was able to unset environment variables that were set by the sbuild code itself. This for example undid the setting of the APT_CONFIG environment variable for apt in ResolverBase.pm. The ENVIRONMENT_FILTER variable should be to filter the user environment when they call sbuild. It should still be possible for sbuild itself to enforce an environment variable to be set when calling run_command() or pipe_command(). If an environment variable set by sbuild is wrong or undesirable then ENVIRONMENT_FILTER would be the wrong place to control it. commit c71112dc23843421ba31996d3ecb65f69a6373fa Author: Helmut Grohne Date: Thu Dec 3 06:27:44 2015 +0100 have a default for CROSSBUILD_CORE_DEPENDS (closes: #806931) The current defaults are per-arch and need to be updated for every new architecture. Rather have an architecture-generic default here. commit c1ec0b2439d15a476b10793a05e7fd9a73a186c8 Author: Dima Kogan Date: Fri Nov 13 20:01:19 2015 -0800 run_external_commands(): small cleanup to reduce boilerplate Prior to this patch all calls to run_external_commands() looked like this: $self->run_external_commands("post-build-commands", $self->get_conf('LOG_EXTERNAL_COMMAND_OUTPUT'), $self->get_conf('LOG_EXTERNAL_COMMAND_ERROR')); In particular, the last two arguments were ALWAYS these. This patch moves the get_conf() calls to inside run_external_commands(), so the same call now looks like this: $self->run_external_commands("post-build-commands"); commit aea9a4d9546a2398f8ba0b71c6101d8237d447eb Author: Johannes 'josch' Schauer Date: Fri Dec 25 12:02:31 2015 +0100 Set [trusted=yes] for internal dummy repository to make key generation optional (closes: #801798) commit d15d5ea67b81cde811207ff6853b381c3ebe4b41 Author: Johannes 'josch' Schauer Date: Fri Dec 25 17:01:23 2015 +0100 bin/sbuild: turn path to input dsc or source directory into an absolute path (closes: #801436) commit 0a267a956edb1af5b8a8589715001137fa5ca17d Author: Johannes 'josch' Schauer Date: Fri Dec 25 13:02:01 2015 +0100 lib/Sbuild.pm: improve error message about sbuild group membership (closes: #800317) commit 654432f598c647d49ce47471e276fd72f4bda42d Author: Miguel A. Colón Vélez Date: Tue Sep 29 07:13:11 2015 -0400 Successfully handle a source only build. (Closes: #799056) - Get the *_source.changes file. - Format the email subject like: Log for successful build of foo_1.0 source on i386 (dist=unstable) commit 61ce4a694e463551a582e90f310b8fa6a1e09ece Author: Miguel A. Colón Vélez Date: Tue Sep 29 07:09:53 2015 -0400 Add the --no-arch-any and --arch-any options. - Add the --no-arch-any and --arch-any options. - Update the documentation. commit e3bb6d082a1ab00bf0fea492aa9ac4368f7691f8 Author: Felipe Sateler Date: Thu May 21 17:21:01 2015 -0300 Print better message when no chroot is specified (closes: #786456) commit cf25323869a8969d5c8e9f64500042dad7834ba0 Author: Johannes 'josch' Schauer Date: Thu Dec 24 10:49:34 2015 +0100 bin/sbuild-createchroot: check if chroot already exists before creating a new one (closes: #782534) commit c33e0040724d2e351fa30482e4b4cb39113fd052 Author: Johannes 'josch' Schauer Date: Wed Dec 23 23:28:07 2015 +0100 Quit processing when external commands fail (closes: #774351) commit 2aea210b179901f70777e73777e1088590049cc5 Author: Johannes 'josch' Schauer Date: Wed Dec 23 15:37:30 2015 +0100 sbuild-createchroot: run debootstrap with --no-check-gpg if --keyring="" is passed (closes: #760832) commit 6b644bb83e58c79f40572860f0c3b4110fe6c5ee Author: Johannes 'josch' Schauer Date: Fri Dec 25 12:36:24 2015 +0100 sbuild-createchroot: use union-type=overlay for directory chroot and promote tarball chroot in the manpage (closes: #751732) commit 8a2f3ff87b94633def3c0f2a90ec7e0b309feb0f Author: Jochen Sprickerhof Date: Fri Nov 27 10:48:16 2015 +0100 Fix permission of public key (closes: #726866) commit c3e0e5e55f9f383d52905bb1831f6f91c87a3d4a Author: Johannes 'josch' Schauer Date: Thu Dec 24 00:48:16 2015 +0100 man/sbuild-setup.7.in: correct section 8 for sbuild-createchroot and sbuild-adduser (closes: #713033) commit f2ed2b29c5724c5bad59eaf25a4c1514971ed7b8 Author: Johannes 'josch' Schauer Date: Wed Dec 23 18:09:51 2015 +0100 bin/sbuild-createchroot: honor --foreign (closes: #709864) commit bb356e9d3f2f177163b01447af46bcabf6294f9c Author: Johannes 'josch' Schauer Date: Thu Dec 24 00:42:04 2015 +0100 lib/Sbuild/Build.pm: say --build instead of incorrect --build-arch (closes: #709270) commit 9162dd0d727facb2ebab0ab7008603c5fa8c36a1 Author: Johannes 'josch' Schauer Date: Wed Dec 23 17:39:52 2015 +0100 Check architecture wildcard matching with dpkg inside the chroot to avoid situations in which dpkg outside the chroot doesn't know about a new architecture yet (closes: #691539) commit 3c26878b38de5f934d1365ec39b137dbc8f3a309 Author: Johannes 'josch' Schauer Date: Thu Dec 24 08:55:38 2015 +0100 allow changing the user running dpkg-buildpackage inside the chroot (closes: #661037) commit 6697d08101c86968316fe8976e7350caaf8df050 Author: Johannes 'josch' Schauer Date: Thu Dec 24 12:50:42 2015 +0100 bin/sbuild: add --clean-source and --no-clean-source to allow building a package from an unpacked directory without calling debian/rules clean (closes: #655215) commit a13ed6856287bd42dc87686502f3c04010fe065a Author: Luca Falavigna Date: Tue Dec 1 11:10:00 2015 +0100 Add crossbuild-essential-ppc64el to the list of crossbuild packages commit 3545e1a72b5f89abfd256b7819d2cd00e5e3e340 Author: Johannes 'josch' Schauer Date: Fri Oct 23 07:05:51 2015 +0200 ./man/sbuild.1.in: improve documentation of external commands commit 6456b3da1bf7f3e68b08f62d5d0cb33f4d8caea2 Author: Johannes 'josch' Schauer Date: Fri Oct 16 07:17:29 2015 +0200 Make the results of building sbuild itself equal across different architectures (closes: #801882) - tools/sbuild-dumpconfig: extend the handling of IGNORE_DEFAULT to still print the variable name but not the value - man/defs.man.in: do not add build system specific information into the man pages - lib/Sbuild/ConfBase.pm: add IGNORE_DEFAULT to build_arch and host_arch so that the architecture of the build system does not spill into the created binaries - lib/Buildd/ClientConf.pm: add IGNORE_DEFAULT to wanna_build_built_architecture for the same reason as above and to wanna_build_db_user so that the username of the user building sbuild does not spill into the created binaries commit 297dc84acd5fcb1f981b171cff6e7b63624db0c1 Author: Johannes 'josch' Schauer Date: Wed Oct 14 10:23:07 2015 +0200 Fix regex parsing `schroot --info` output (closes: #801572) - this was a regression introduced by commit 8a3e12c3 - this commit fixes the regression and also improves the regex commit 91229d5a62f4e71bc99348e3c8979ca8f1c0d294 Author: Johannes 'josch' Schauer Date: Tue Oct 13 12:59:46 2015 +0200 lib/Sbuild/Build.pm: use deps_parse() with build_dep => 1 (closes: #801637, #801400) commit 7085eef8ca39bc9de8ccb6ab1b20e68c98c8808c Author: Johannes 'josch' Schauer Date: Sun Oct 4 09:22:33 2015 +0200 Bump version to 0.66.0 commit ec7811f97832d85dd1092eb2fbcbd189fca75155 Author: Johannes 'josch' Schauer Date: Sun Oct 4 09:20:31 2015 +0200 delete ./debian directory to have a separate branch for it commit 49597f2ee5fab8360f40409f3a291d1f84f1a2eb Author: Johannes 'josch' Schauer Date: Mon Sep 28 15:39:14 2015 +0200 lib/Sbuild/AspcudResolver.pm: change aspcud optimization preference The optimization preference used to be -new,-removed,-changed,+sum(solution,apt-pin) But that meant that the first optimization criteria was to minimize the number of newly installed packages even if that would mean to remove many packages or upgrade many. This can lead to the situation where for the sake of finding a solution with the minimal number of new packages, even build-essential and fakeroot are uninstalled as they are not part of the installation request. Furthemore it can happen that the least new packages get installed if some packages get taken from experimental while others get upgraded to their versions in experimental which is also not desired as we only want to use experimental if absolutely necessary. Setting "+sum(solution,apt-pin)" as the first optimization criteria does not help as this would just mean to find a solution that installs as many packages as possible from the distribution with the highest pin value. But we would rather like a small solution. The solution is to use the following preference setting: -removed,-changed,-new,+sum(solution,apt-pin) Since it is assumed that the chroot only contains a base system and build-essential, from which we assume that no package shall be removed, we first minimize the number of removed packages. This means that if there exist solutions that do not remove any packages, then those will be evaluated further. The second optimization criteria is to minimize the number of changed packages. This will take care that no packages of the base system are unnecessarily upgraded to their versions from experimental. It will also avoid any solutions that do need upgrades to the experimental versions and keep the upgrades to a minimum if an upgrade is strictly required. The third criteria minimizes the number of new packages the solution installs. Here it can happen that installing a dependency from experimental instead of unstable will lead to less new packages. But this should only happen if the package in unstable depends on more additional packages compared to the same package in experimental. If the solutions are otherwise equal then as the last criteria, the number of packages from experimental will be minimized by maximizing the sum of the apt-pin values. Since packages from unstable have a higher pin value than those in experimental, this should prefer packages from unstable except if the solution from unstable is so large compared to the one in experimental that their sum of pin values is larger in which case the solution in experimental will be preferred. commit daa4a9fca9e62b0f718c36fd9fdfec14c7d7936f Author: Johannes 'josch' Schauer Date: Thu Oct 1 20:43:04 2015 +0200 test/sbuild.in: now that a custom configuration file can be passed to sbuild, use the default config to reduce influence of the system config on the test cases commit eae087729bf77b8b4d08b24811da45f53eabd9ac Author: Johannes 'josch' Schauer Date: Thu Oct 1 20:42:13 2015 +0200 test/sbuild.in: explicitly set schroot chroot and schroot working directory commit 8a3e12c3edf768ddeb66b29157d3cf1a7ad3d48d Author: Dima Kogan Date: Sat Oct 18 15:41:59 2014 -0700 Replaced all unicode-printed chars with plain ASCII (Closes: #765886, #665847) Yes, it is nearly 2016 and Debian has been using unicode for over a decade. Yes, everybody should be using it by now. What made me (josch) remove unicode characters and revert to back to ASCII is that the only advantage of using unicode characters is: - Slightly more pretty output. I'd say the improvement is so little that I would call it negligible. But on the other hand, there is a disadvantage which I'd call much more practical than maybe having a more visually pleasing output: - sbuild logs are not necessarily only consumed by users of Debian or transmitted with technologies we ship with Debian. They might be copy-pasted to mail messages (read by people with very different clients), personal book keeping programs and web interfaces of services with no unicode support. Yes, all these places *should* know unicode but sbuild logs should also not become less readable if they don't. Given that there is really no hard *requirement* for keeping the unicode characters for pretty drawing (in contrast to a program which, for example, handles asian script), I'm applying Dima's patch. The reason why ASCII output is now the default instead of adding a --ascii option is, that at the time where the build is done, one does not know which places the build logs might reach. The same reasoning goes for why unicode support is not enabled or disabled depending on the capabilities of the terminal sbuild outputs to. Instead, if one is very sure that the log will never be consumed by or transmitted through a medium without unicode support, then there could be a --pretty-unicode option in the future which explicitly enables the pretty boxes again. commit 8b9c2e45edc6ed08ea9a748a7dcc6b0ef6e1899c Author: Johannes 'josch' Schauer Date: Thu Oct 1 07:37:59 2015 +0200 man/sbuild.1.in: update docs for --dist option (Closes: #783135) commit f1a0217b5752bd98f3456f5245c77292d048e80c Author: Dima Kogan Date: Sat Apr 25 12:56:15 2015 -0700 Added --xxx-failed-commands Added several external commands that trigger on failure. The way these are intended to be used is to spawn a shell if something goes wrong so that the user can poke around and find the problem. Most commonly you would do sbuild --anything-failed-commands %s Currently we have --build-deps-failed-commands --build-failed-commands --anything-failed-commands Where --anything-failed-commands simply activates all of the others commit f4330987e564a7ab926f8cc65338a3b34ff00c0a Author: Dima Kogan Date: Tue Apr 21 16:14:42 2015 -0700 external command %SBUILD_SHELL produces an interactive shell (Closes: #783091) commit 2eb53b5150d51b2063544febf35ba92f11abe235 Author: Dima Kogan Date: Mon Apr 20 22:12:56 2015 -0700 external commands are now unparsed strings (Closes: #782672) when handling external commands (--starting-build-commands and others), I now keep the input string as is, and pass it to the shell, instead of splitting it on whitespace and then reassembling it. This reassembling was being done improperly, with shell internals such as < being erroneously escaped. Keeping the string as is allows the user to give the command they want. This is implemented by keeping the COMMAND and INTCOMMAND keys same as they were (array-refs of strings), but adds additional COMMAND_STR and INTCOMMAND_STR keys that have the string representation. The non-STR versions are always populated, and the external command options populate the _STR ones as well. When running the commands, we use the _STR options if we have them, otherwise, we recombine as before. Since the old array-ref-based code path is still there, old commandlines and configurations remain working commit d0cc9b3184349384d32aec7b4adad196f7b68a2a Author: Johannes 'josch' Schauer Date: Thu Sep 3 08:59:37 2015 +0200 add aspcud based resolver commit dce5caaa7bb149032a3fe1777935e2965ff34f86 Author: Miguel A. Colón Vélez Date: Tue Sep 15 06:07:46 2015 -0400 Fix unlink again. - unlink returns an errno so it can't be used before the if statement (x2) - The unlink from the 2nd hunk is also missing. commit ca2a8f7638fc45d84085ed4459aee1ec062e9382 Author: Johannes 'josch' Schauer Date: Thu Sep 17 07:32:55 2015 +0200 ./man/sbuild-shell.1.in: add a note that changes will be persistent commit b095dee3414bfe5e602ddfa1ea27097027658e38 Author: Johannes 'josch' Schauer Date: Tue Sep 15 10:37:30 2015 +0200 fix up last commit (did unlink() too early) commit aba0ffb5e7da37070c4e0e626fe557b538fb0a97 Author: Johannes 'josch' Schauer Date: Sun Sep 13 18:53:18 2015 +0200 lib/Sbuild/ResolverBase.pm: close and unlink temporary files created by File::Temp::tempfile() (Closes: #775091) commit 72dd689d1776e22583d9d98bb66f5bd87f8343bd Author: Christian Kastner Date: Sat Jan 3 23:18:09 2015 +0100 sbuild-createchroot(8): default suffix is -sbuild, not -chroot (Closes: #774521) commit b2726d66049d93225e3dc9b591c4ae7f6c66e29c Author: Johannes 'josch' Schauer Date: Sun Sep 13 15:13:25 2015 +0200 debian/changelog: add note that commit fec82ed7 fixes bug #657392 as commit message omits the closing bug number commit 3f0bca193cdde321ded5114b8cebf880ad9230e7 Author: Johannes 'josch' Schauer Date: Sun Sep 6 08:47:09 2015 +0200 Report a proper error message in case /var/lib/sbuild inside the chroot is not writable (Closes: #797783) - lib/Sbuild/ResolverBase.pm: setup(): * wrap call to File::Temp in eval() block because it croak()s on error * instead of printing to STDERR use $self->log_error * return consistent success/failure - lib/Sbuild/Build.pm: run_chroot_session_locked(): * check the return value of resolver->setup() and throw error * accordingly commit 21662cf4a058f9186d76a77be14d77cb69bd52a9 Author: Dima Kogan Date: Sat Apr 25 16:09:38 2015 -0700 If Build-Depends can't be parsed, I now error loudly (Closes: #783335) Previously it was possible for sbuild to continue with mysterious failures later on commit cdac16a596bf9ffbd069615599a43bc8f14e6cca Author: Johannes 'josch' Schauer Date: Sun Sep 13 14:01:49 2015 +0200 properly setup buildd unstable chroot (Closes: #731062) commit 664c5193f513f05bd0f2aaffac33b295e4b01467 Author: Johannes 'josch' Schauer Date: Sun Sep 13 13:51:53 2015 +0200 Handle $session being undefined properly (Closes: #798568, #745851) - lib/Sbuild/ChrootInfo.pm: throw an Sbuild exception instead of just dying - lib/Sbuild/Build.pm: run_chroot_session() throws an except if $session is undefined - lib/Sbuild/Build.pm: do not try to end the session if $session is undefined commit 15fe6010de397a779012d20760489196f7a64307 Author: Aurelien Jarno Date: Sun Sep 13 13:47:11 2015 +0200 Add documentation for the new --arch-all-only option commit 774707bca7585e047449910e8a5f3a4da2d30f58 Author: Paul Tagliamonte Date: Wed Sep 2 10:41:05 2015 -0400 Add --extra-repository-key flag for extra apt keys (Closes: #796539) This will allow users to specify which OpenPGP key should be added to the trusted keys inside the chroot. This is particularly useful if the target --extra-repository is not signed with a key that's trusted by the base chroot. commit c07f4c08701d7e3a9582b87c2c90b4ce6dad5c23 Author: Johannes 'josch' Schauer Date: Sun Sep 13 12:59:36 2015 +0200 Instead of explicitly requesting core packages of the build architecture, use :native (Closes: #798323) - The problem is, that the BUILD_ARCH configuration variable gets only set from the command line *after* it was already used as an architecture qualifier. The :native qualifier works around this as it is only replaced by the explicit build architecture in a much later stage. commit 6d705b3821a725f483496d0d18bd6c25be847e94 Author: Johannes 'josch' Schauer Date: Fri Aug 21 10:45:05 2015 +0200 make symlink to build log relative if in same directory (Closes: #685416) commit 23a5140c0837a7241aa90bbff65bcebbb9d60414 Author: Johannes 'josch' Schauer Date: Wed Jul 29 11:09:13 2015 +0200 partly revert commit 5ad92654 to look for a BUILD_ARCH chroot instead of HOST_ARCH (Closes: #793951) commit 25ae3f741e32c9de9c5e19bc4a1315f7ee5b531b Author: Johannes 'josch' Schauer Date: Sat Jul 25 18:11:55 2015 +0200 use dpkg --assert-multi-arch to check for multi-arch support (Closes: #793561) commit bb5699b836ab329f9b75c33d9c0b7906a4296bcf Author: Guillem Jover Date: Sat Jul 25 05:31:40 2015 +0200 Sbuild::ResolverBase: Correct inaccurate dpkg Multi-Arch support comment (Closes: #793560) commit 9155357e19cb0aaf62c23316abe078db9ed2086d Author: Luca Falavigna Date: Sat Jul 25 02:06:00 2015 +0200 Fix call to add_foreign_architecture to actually have an effect (Closes: #793359) commit 9f77e6482121afd2bf5c4f1177f4e4023c15478c Author: Johannes 'josch' Schauer Date: Mon Jul 20 20:34:41 2015 +0200 Fix crossbuild dependency resolution for apt and aptitude (Closes: #770407) - do not set APT::Architecture to the host architecture when cross building this just "happens to work" but is wrong. Apt and dpkg should agree on the native architecture. Instead let the dummy package be of the host architecture to properly resolve cross build dependencies - build-essential and crossbuild-essential-* must be installed in the build architecture - do not read /usr/share/doc/build-essential/essential-packages-list because build-essential is already installed in an earlier stage. This only fails during cross building as it tries to install host arch binary packages - aptitude cannot find a package foo if foo is not of the native architecture, so append an architecture qualifier to the dummy package name in the aptitude command line commit b8ec53e09a1dbd5f60c83d350eaf4586f3345809 Author: Johannes 'josch' Schauer Date: Sat Jul 11 19:03:55 2015 +0200 create ~/.gnupg if it did not exist before when running sbuild-update (Closes: #792100) commit 0e5ed36d9d88985c387ecd4b4b3474a11d44e0cd Author: Johannes 'josch' Schauer Date: Sat Jul 11 09:48:26 2015 +0200 use httpredir.debian.org instead of ftp.debian.org or ftp.uk.debian.org in documentation (Closes: #792092) commit d720bb7afe3c7df45f60c3e39a6641a078c726f0 Author: Maria Valentina Marin Rordrigues Date: Sat Jul 11 09:32:12 2015 +0200 add --build-path option and configuration variable to set a deterministic build path (Closes: #790868) commit fb718ea63b35e548f52ce034555f32b88f09a383 Author: Johannes 'josch' Schauer Date: Sat Jul 11 09:18:27 2015 +0200 allow to set custom configuration file through $SBUILD_CONFIG environment variable (Closes: #790354) commit 7780b28af2a8dfb90cf035f534de321e58507507 Author: Johannes 'josch' Schauer Date: Sat Jul 11 09:07:24 2015 +0200 consider stderr as well as stdout before timeout (Closes: #731940) commit 15b290e0187f4bce39d09474e14d25bb1fe93666 Author: Johannes 'josch' Schauer Date: Sat Jul 11 08:59:28 2015 +0200 Move running of pre-build-commands until after 'Chroot Dir' is defined - this prevents the %SBUILD_CHROOT_DIR percentage escape being empty when running the pre-build-commands hook (Closes: #774359) commit 0fbe08075389d7c63d01c184f0e736ad4bcb6a64 Author: Johannes 'josch' Schauer Date: Mon Aug 31 11:28:39 2015 +0200 new debian/changelog entry for 0.65.3 and demote exim4 to Recommends for libsbuild-perl Both are only required if MAILTO is also set. (Closes: #774310) commit c71014345f9750b1b5deef4d172de26b7b4b7551 Author: Johannes 'josch' Schauer Date: Mon Aug 31 11:20:55 2015 +0200 make exim4 or mail-transport-agent optional by only validating if sendmail exists if MAILTO is set commit a0a5449570311d214dd09a1b89f9eac1c007f1f1 Author: Aurelien Jarno Date: Wed Aug 12 21:19:45 2015 +0200 Cleanup uploader code Signed-off-by: Aurelien Jarno commit d6f12f0c373e6a9ce12ee712ebc025416b58646b Author: Aurelien Jarno Date: Wed Aug 12 17:17:38 2015 +0200 Use --arch-all-only when building an arch:all package Signed-off-by: Aurelien Jarno commit fec82ed70d7efdfe17f676c60e1114bd8bb4a888 Author: Aurelien Jarno Date: Wed Aug 12 15:23:55 2015 +0200 Add a new --arch-all-only option Used to build arch:all packages or only the arch:all packages of all+any package. Signed-off-by: Aurelien Jarno commit b5234f1d9fd8311b716364dff68e598e09db54b2 Author: Aurelien Jarno Date: Tue Aug 11 11:25:21 2015 +0200 Pass the correct architecture to wanna-build when uploading packages Signed-off-by: Aurelien Jarno commit 367395490888ab6fdac8a7d4ce151d0018d74355 Author: Christoph Egger Date: Thu Jul 30 10:55:48 2015 +0200 Add support for jessie-kfreebsd suites Update the $CHROOT_ALIAS globs to match jessie-kfreebsd suite (which have one extra dash in them compared to the relative "normal" suites) Signed-off-by: Héctor Orón Martínez commit 60806e10ea34d61f69de1c8c457e8c96aa338d38 Author: Colin Watson Date: Mon Jul 13 12:34:12 2015 +0100 sbuild: Autoflush stdout even in --nolog mode The output from sbuild --nolog may be sent to a log file in some other way, and in such cases it's useful for it to be autoflushed rather than block-buffered so that the log file remains current. commit 1efcd10bfdb3ecf256934b4bbd3c6bf1fa33a5c9 Author: Colin Watson Date: Wed Apr 15 11:25:40 2015 -0500 sbuild: Fix handling of exceptions while setting up chroot If chroot setup fails before creating the dependency resolver, then foreign-architecture information will not be available and attempting to fetch it in generate_stats will crash, causing sbuild to hang. Handle this case. commit 9619d42ac2a4a904d1851a9044c6c0c1da1434a1 Author: Colin Watson Date: Tue Apr 14 09:29:28 2015 -0500 sbuild: Don't sign dummy archive if apt_allow_unauthenticated is set In this mode, apt isn't going to check the signature anyway, so there's no point requiring key generation. commit e09b55bf011bc3e7f803b34a45c0d797d66c0f42 Author: Aurelien Jarno Date: Tue Mar 24 14:21:50 2015 +0100 changelog for 0.65.2-1 commit 7ec60100ee315e130e8771d4268debc3eaeff9af Author: Aurelien Jarno Date: Tue Mar 24 10:08:33 2015 +0100 lib/Sbuild/Build.pm: only list content for deb/udeb files. commit 7d6ae7a65a491e2c4c3d0d7d19aff348da5bd69f Author: Ansgar Burchardt Date: Wed Mar 18 23:45:23 2015 +0100 Update changelog. commit 2a00172fd8b83fc4db32443c4fe06ec0852d5ea2 Author: Ansgar Burchardt Date: Wed Mar 18 23:42:50 2015 +0100 sbuild-createchroot: set profile=sbuild also for tar-based chroots Bug: https://bugs.debian.org/769289 commit 7b38c2c95c87b6c1184114491ad186824e134eec Author: Ansgar Burchardt Date: Wed Feb 25 20:56:04 2015 +0100 Update changelog. commit 07c04c8f6d7c5b78cdf42bf3499da6477b3e5e3f Author: Ansgar Burchardt Date: Wed Feb 25 20:48:56 2015 +0100 sbuild-dumpconfig: sort keys of dumped hashes With the patch the generated configuration file and man page no longer change with each invokation of sbuild-dumpconfig. Thanks to Reiner Herrmann for the patch. Bug: https://bugs.debian.org/778482 Bug: https://bugs.debian.org/764504 commit ec40e3698d197564617a003c279696e130439333 Author: Ansgar Burchardt Date: Wed Feb 25 20:42:54 2015 +0100 NEWS: Bump version to 0.65.2. commit aac4bb664cc83f462fba7852ce5c2419ddaaa4f2 Author: Ansgar Burchardt Date: Tue Feb 24 23:14:20 2015 +0100 db/Makefile.am: Add missing backslash. commit b3401647eea5ba00f951d39a3a89cfb36c5aedaf Author: Ansgar Burchardt Date: Tue Feb 24 23:01:06 2015 +0100 changelog for 0.65.1-1 commit 5802ca035a774f7d9fc870a45a47fd0d2525f702 Author: Ansgar Burchardt Date: Tue Feb 24 18:22:36 2015 +0100 sbuild.1: document --mailfrom and --sbuild-mode options The new options were introduced in ce90f5414edf267dc14282cd04caeda2c2ede8e9 commit edb450c668e85ef06f899f624b4c4663f14ba325 Author: Ansgar Burchardt Date: Thu Feb 19 23:19:34 2015 +0100 Include all files in the distribution tarball. commit d4c137190b44e510f8c1f27ea3a6f6a08b5268b7 Author: Johannes Schauer Date: Fri Feb 6 14:37:11 2015 +0100 handle native arch qualifiers in build-deps sbuild turns build dependencies into the dependencies of a dummy binary package. Since binary package dependencies do not support the :native architecture qualifier, these have to either be removed during native compilation or replaced by the build (native) architecture during cross building. Reference: https://bugs.debian.org/777216 commit b109a9de75c5db13d8ba989df042a65c0e825ff0 Author: Ansgar Burchardt Date: Thu Feb 12 22:34:53 2015 +0100 debian/control: Do not (Build-)Depend on perl-modules The perl-modules package is an implementation detail of the perl packaging. Packages should not depend on it, but only on perl itself. commit 63749d9d9cd27f6721fb15e45505d11fbf9322fc Merge: 8b8b078 7a5163e Author: Ansgar Burchardt Date: Thu Feb 12 22:11:44 2015 +0100 Merge branch 'features' commit 8b8b0787d7f35baf0ec4fbe598e406263782406e Merge: 448e45c 9cc9ccc Author: Ansgar Burchardt Date: Thu Feb 12 22:11:19 2015 +0100 Merge branch 'updates-to-maintainer-scripts' commit 448e45c571a8f75caa87b1c6bb6c2480b7521f4e Merge: e0d10b3 ea8ad2e Author: Ansgar Burchardt Date: Thu Feb 12 00:28:56 2015 +0100 Merge branch 'updates-to-create-chroot' commit e0d10b3e3e2ed302048dcb686f7555d8add36537 Merge: a67baea d60caa9 Author: Ansgar Burchardt Date: Thu Feb 12 00:28:43 2015 +0100 Merge branch 'updates-to-99builddsourceslist' commit d60caa9cf4ff6d1c97a7c12606154a0b751773c9 Author: Ansgar Burchardt Date: Wed Feb 11 23:43:04 2015 +0100 Do not install 99builddsourceslist This file is very specific to Debian and not helpful in general. commit 7a5163e28d396413a82759eabd37147078fdae2d Author: Ansgar Burchardt Date: Wed Feb 11 23:38:50 2015 +0100 Remove changelog entries from uploads to private buildd archive commit 9760c6a3a4f815f6336bef071469749c915f5f63 Author: Andreas Barth Date: Thu May 23 22:24:02 2013 +0200 don't force mailto to be set in .sbuildrc (cherry picked from commit c173a94e4f48bc28dbf2c356e6b6f5f4a6227884) commit d7bd88a6395312377f659098348e445dc8482dcc Author: Ansgar Burchardt Date: Wed Feb 11 23:01:34 2015 +0100 Require schroot version 1.6.0 or later. Taken from commit d3ab9d32809fbf2d4d5dfd504f81423198f24775 commit ce90f5414edf267dc14282cd04caeda2c2ede8e9 Author: Andreas Barth Date: Sun Jun 2 10:49:05 2013 +0200 allow to set maintainer_name and mailfrom in the distribution setting in .builddrc (or in $default), and always set sbuild_mode=buildd, so .sbuildrc doesn't need to exist (unless it contains %individual_stalled_pkg_timeout ) (cherry picked from commit a775c5af792f492a7fd6367715f70fbe30a59175) commit 5ccb3559b0ccbbac7c359c74d6a71321d8d5f9b9 Author: Andreas Barth Date: Tue May 21 00:18:12 2013 +0200 get mail targets from wanna-build, and allow to set mail_log_also for additional recipients (cherry picked from commit bf209107a75670284a8bde455282ce238456a41a) commit 5827300296528fb6c2e650022215a5cd32985d10 Author: Andreas Barth Date: Mon May 20 23:44:47 2013 +0200 allow to specify minimum age of packages (cherry picked from commit 62593e06d33d93282d3b460eb750d2102d92516f) commit 9cc9ccc557c14089d2ba93835b5e4a4c2876fef6 Author: Andreas Barth Date: Sun May 19 20:16:56 2013 +0200 auto-upgrade the buildd chroot configuration during upgrade (cherry picked from commit 78fc946a6dc3a67539044c7275a30af376af7697) commit 10927b857c3eac10b8001c0ece0fc020408b26ad Author: Andreas Barth Date: Sun May 19 20:05:40 2013 +0200 succesfully (un)install the package if the account database is not local (cherry picked from commit d2a56b4486602fc00219c51466e184f3608cc7bc) commit a70de7a7ea1d7f227a211c83a8ce5ca3a0d6b3c2 Author: Philipp Kern Date: Sat Mar 19 14:48:31 2011 +0100 debian: Update buildd maintainer scripts (cherry picked from commit 55325edec90d132a65d8af682bb06d637a57648e) commit ea8ad2e2f42efc61569193a58391c24e0ed5c615 Author: Aurelien Jarno Date: Tue Aug 19 02:10:13 2014 +0200 bin/create-chroot: don't add sudo in debfoster keepers (cherry picked from commit 9859cfd32d6ef36f8bc18c2a0f7dcf949e630c94) commit 14139873686d79e08d0f84393b25b6cc7f25f9ed Author: Aurelien Jarno Date: Mon Aug 18 18:22:53 2014 +0200 bin/create-chroot: don't install sudo in the chroot, we now use fakeroot by default (cherry picked from commit 7241b6b3792a0166aaaf401c1d26983b930492bf) commit 1dff84941e8294158a1a4346996556d39bcf8d3c Author: Philipp Kern Date: Sun Dec 29 14:58:09 2013 +0100 bin/create-chroot: use ext4 instead of ext3 (cherry picked from commit 27d8c4be472c38d784cd768f60981d4d6f898a4e) commit 7998cd0a6ba9ff57bb350a86a163a23c1461e506 Author: Andreas Barth Date: Tue May 21 19:33:24 2013 +0200 remove suite aliases on chroot creation except for experimental (cherry picked from commit 9107f1b3f05e2cdd84b2f6d1e27e54e328dda8a7) commit 87647714443aa6b4e9fb83d632d9176d517c66b9 Author: Andreas Barth Date: Sun May 19 22:25:28 2013 +0200 bin/create-chroot: remove lenny / volatile remainings (cherry picked from commit 68318e9841342ac5e71b4523b908d46f5d2becdd) Conflicts: bin/create-chroot commit 737cc1d3797fea4dd7403ed5a2ef63bc40cc8e2f Author: Roger Leigh Date: Thu May 16 22:19:56 2013 +0100 bin/create-chroot: Add (cherry picked from commit 288b3147b38ab441f44b205b9e38957efe99277f) commit 3ac05c1d8f0303ef12d5036fb2edaaf75727e86b Author: Ansgar Burchardt Date: Wed Feb 11 22:16:45 2015 +0100 Remove changelog entry from upload to private buildd archive commit c7f8f1b4f7f1f5f1c759b034b8d7d9cd6c95ce1c Author: Ansgar Burchardt Date: Wed Aug 13 17:45:58 2014 +0200 99builddsourceslist: stop using incoming.debian.org/debian (cherry picked from commit a2e085c8f2114adc9e3058cca616bf5fe622f335) commit 8544d5c032459163780849480b044ad69bdef590 Author: Ansgar Burchardt Date: Wed Aug 13 18:53:43 2014 +0200 99builddsourceslist: add +([^-])-kfreebsd-*-sbuild* sid-kfreebsd-amd64-sbuild would be matched by *-*-*-sbuild*, but is not of the form SUITE-proposed-updates-sbuild*. Adding an extra case avoids this. (cherry picked from commit b4a653e2b43de1e3fd81d61b59e3ca5a93ee8060) commit b933985a9665f6a349e822a1f838c73a1154b160 Author: Aurelien Jarno Date: Thu Aug 14 21:04:47 2014 +0200 etc/99buildsourceslist: check for the English version of the chroot name, not the French one. (cherry picked from commit b8f9de5f60f4046cb73783a2582b26ab401d616f) commit 5c797ae088a558e9a247218e2a447df6bd5bf850 Author: Aurelien Jarno Date: Sun Jul 13 16:50:47 2014 +0200 etc/99buildsourceslist: check for source chroot by looking at CHROOT_DESCRIPTION instead of CHROOT_SESSION_PURGE, which also works on tar based chroots. (cherry picked from commit 7efe96be022a6faf85dcf3ab66997a4ae55bb4d3) commit 4a92c3148d3fa0c1832f78f0e9f9fa3127c57220 Author: Aurelien Jarno Date: Sun Jul 13 16:42:19 2014 +0200 etc/99builddsourceslist: look in priority for mirrors in /etc/schroot/dsa/default-mirror, which is used on DSAed machines. (cherry picked from commit e100ec65b0c15a0f511ccc469b762f597b61604b) commit d6fed69f70c57fa0cb6d5977c8f2b0159b28c826 Author: Aurelien Jarno Date: Sun Jul 13 16:39:41 2014 +0200 etc/99builddsourceslist: don't run for non "buildd" profiles This way porterbox scripts can be co-installed with the buildd ones on DSA machines. (cherry picked from commit 6dffe75026fdc958380453c2488c87ffc0bfbaa1) commit 4fe6f4539cd4f0bcacd184ba77957f9f4b7542ec Author: Philipp Kern Date: Sun Apr 13 15:28:28 2014 +0200 etc/99builddsourceslist: add support for squeeze-lts (cherry picked from commit 0d062701373fbd8a6a0a5bec6b1113cb9822833b) commit b81ba9738c4d423e17daf9acb1b082c82279cf65 Author: Ansgar Burchardt Date: Tue Jul 9 16:23:29 2013 +0200 etc/99builddsourceslist: fix entry for backports.debian.org (cherry picked from commit c44fcd195a8f76ab46c827ae1c7e8a54dc55fb12) commit 94b0c2fd529cd0ad53d08bb135a29b1a9028adec Author: Andreas Barth Date: Sun May 19 21:37:28 2013 +0200 remove reminders of using lenny chroots (and apts) (cherry picked from commit 0ff6adb1503afa2838561865ea093db854c73f1d) commit 89b62119cb100b09ce37dc3f812247d313b61945 Author: Andreas Barth Date: Sun May 19 21:32:20 2013 +0200 99builddsourceslist: adjust for new locations for buildds at incoming / security-master (cherry picked from commit 27834f412b2627d15992bedfac66db22c70f03d4) commit 8c5582c479bc5b416cd465576fee519153910077 Author: Andreas Barth Date: Sun May 19 20:17:58 2013 +0200 install 99builddsourceslist again and update it for new schroot config (cherry picked from commit b6fd9235e7f645a8a334179025f5ad489d102a78) commit 8b4f2cc4a7395f0611d0fe8876b02559db36e5f2 Author: Roger Leigh Date: Sun May 19 17:00:46 2013 +0100 etc/99builddsourceslist: Update from buildd-0.61.0 (cherry picked from commit 93d4a212b1cd70201dd9c228fffa6f14feb74b7f) commit 211b7a2647838d3a1a3e45dc005f7e26142f0630 Author: Roger Leigh Date: Sun May 19 16:53:23 2013 +0100 etc/99builddsourceslist: Update from buildd-0.61.0 (cherry picked from commit 3c539dcb8f5abcccca640c607005475828d4019d) commit 92679c9ed7531d98d249059b7365173f3ecf8712 Author: Roger Leigh Date: Thu May 16 22:19:23 2013 +0100 etc/99builddsourceslist: Add (cherry picked from commit f17ef5b7efe641cfe731b8d9d9835734c744d298) commit a67baeaa85e7d9982ea32a24a57b60cf5c4791c4 Author: Roger Leigh Date: Sun Nov 30 22:51:03 2014 +0000 debian: Close #771235 commit f3641ab121bd9d458d684f9e1b6a68c56aa940c9 Author: Lennart Sorensen Date: Sun Nov 30 22:49:13 2014 +0000 Build::Build: Build arch-all packages when other architectures are in the arch list commit 26678e5a4b53c8d83b067770020765495d16467b Author: Roger Leigh Date: Sun Nov 30 22:47:03 2014 +0000 debian: Bump version to 0.65.1-1 commit 441d788e6d51e0071c7fc02c4c0d7a81cd548f19 Author: Roger Leigh Date: Sun Nov 30 22:46:49 2014 +0000 NEWS: Bump version to 0.65.1 commit ebd769ff20658519e55d886b1d50089de2e50d0d Author: Wookey Date: Fri Oct 17 17:21:15 2014 +0100 Make release 0.65.0 commit 98fee63d5ccb54774ae066946f906be344429f54 Author: Wookey Date: Fri Oct 17 12:45:37 2014 +0100 Typo fix for release commit 8ec1e6bf1cb8b0f567c99a7bed4e8fe4bc1bb7bf Author: Benjamin Drung Date: Thu Oct 16 06:56:29 2014 +0200 Rename build_procenv to build-procenv to fix illegal-runtime-test-name commit e454d9dbd418e9382b009a521a7e4c0c5e2669b1 Author: Benjamin Drung Date: Thu Oct 16 06:48:57 2014 +0200 Make indentation consistant and remove trailing spaces commit 2507e9afa97601bf8eadafc91c6a339e7d793551 Author: Wookey Date: Thu Oct 16 03:55:34 2014 +0100 Only print foreign arch info when there is some Neaten Arches/arch/dependencies subsection output commit 22d5969e81b9873197d10ed6d43c4fcd2f64ed86 Author: Wookey Date: Thu Oct 16 03:36:43 2014 +0100 Ensure 'Build Profiles' is empty not undef to avoid warnings commit c5d52d03f86f3d13c6135323556b1ae684bf1813 Author: Wookey Date: Thu Oct 16 00:30:31 2014 +0100 Make the multiarch-related functionality squeeze-chroot compatible. Only issue multiarch-related dpkg commands if the dpkg in the chroot understands them. commit 28195062efb2e2e792cfa6db694e3835859d2a70 Author: Benjamin Drung Date: Wed Oct 15 13:55:02 2014 +0200 Update debian/changelog commit af3563cfeaa45972ba8da93b2a2e2ce66f46c00e Author: Benjamin Drung Date: Wed Oct 15 13:41:08 2014 +0200 Fix broken man page symlinks in buildd package commit abee3b2b90a3f947c416ccc26760b34cb380f3a1 Author: Benjamin Drung Date: Wed Oct 15 10:08:41 2014 +0200 Fix too long changelog line commit 8ad52a27505d224071a80217b64e48690c1ceaaf Author: Benjamin Drung Date: Wed Oct 15 10:07:48 2014 +0200 Also raise the version of the libdpkg-perl dependency commit 550c214cae48baa25daea585b51797fe6f4f5a0f Author: Wookey Date: Wed Oct 15 02:49:05 2014 +0100 Add %a substition variable for host architecture, for use in external (hook) commands. Fix NEWS file entry for substitution variables commit ab487c50c813083fa22526550d03ad2ef2e813dc Author: Benjamin Drung Date: Tue Oct 14 13:40:59 2014 +0200 Update debian/changelog and re-add removed stanza for 0.64.3-2 commit 0e4d0c57969e8e92931b80a9376d24fd15f81548 Author: Geoffrey Thomas Date: Wed Aug 21 22:11:49 2013 -0700 Sbuild::ChrootSetup: Pass --no-options to gpg commit a285fecd1445cf782f6370208c8b99f8ae829e64 Author: Benjamin Drung Date: Tue Oct 14 13:32:52 2014 +0200 Fix build failure if the package version ends with Debian revision 0. Thanks: Adam Borowski Closes: #679574 commit 684c57b77c5acd22aed833e3bb937cdb8bc6bef6 Author: Benjamin Drung Date: Tue Oct 14 13:30:19 2014 +0200 Fail if dpkg subcommands fail instead of silently ignoring failures Failures of "dpkg --info" and "dpkg --contents" will cause sbuild to fail. Thanks: Christoph Biedl Closes: #745221 commit 1ba39e71bb25b44c188d6972937377d2cb0588ec Author: Benjamin Drung Date: Tue Oct 14 11:14:13 2014 +0200 Remove trailing spaces commit 0cb5afe81c06822a64189e0f3f56a84aa9f5a006 Author: Benjamin Drung Date: Tue Oct 14 11:04:14 2014 +0200 Run wrap-and-sort commit 6220ada95f8047b37797bc9d8cede10669b32ee8 Author: Wookey Date: Mon Oct 13 18:39:32 2014 +0100 Update the NEWS file with new 0.65 user-visible changes commit 8153cbb5ae34b40997bf23e661c89b2f97ad561d Author: Wookey Date: Sat Sep 20 01:15:43 2014 +0100 Add build profiles support commit aec2c0d91e8d4258dd4c24db20825672a877043b Author: Benjamin Drung Date: Thu Oct 9 18:33:41 2014 +0200 Update debian/changelog commit d0c784515d110da3cd0c06231c626a1a7270e460 Author: Benjamin Drung Date: Thu Oct 9 18:28:49 2014 +0200 Add DEP-8 autopkgtest to build procenv. Closes: #705926 commit 586323766f9a673d95953b2f5d848f4566d31cf9 Author: Benjamin Drung Date: Thu Oct 9 18:16:48 2014 +0200 Also unset XDG_SESSION_COOKIE commit bb2731b88f8f3507e7b696df78bb1f1eac188d90 Author: Dmitrijs Ledkovs Date: Thu Nov 7 22:00:08 2013 +0000 Unset more unneeded typical desktop variables. They are mostly harmless, sometimes unit-tests of package under build interracts badly with current session via those variables (e.g. RUNTIME_DIR). commit cc53d8888125fc0cb1408ae56ce3cd83f46538ed Author: Geoffrey Thomas Date: Mon Jun 17 18:44:15 2013 -0700 sbuild: 0 is a valid version number commit 91fbad5ea4bde3dea70c4bf32aa84ca5c46fa6d9 Author: Benjamin Drung Date: Thu Oct 9 16:58:28 2014 +0200 Update debian/changelog commit d4985a1f1ce057bafe2745e9157dc06a44ed8745 Author: Benjamin Drung Date: Thu Oct 9 16:25:23 2014 +0200 Bump Standard-Version to 3.9.6 commit ee46993252d5bececccf6d55aef1dfb2de252232 Author: Benjamin Drung Date: Thu Oct 9 16:21:24 2014 +0200 Fix indentation and remove trailing spaces commit 0d592eb9732b046e31a1d7b4fc9af2f3d0ae1989 Author: Benjamin Drung Date: Thu Oct 9 16:12:50 2014 +0200 Export additional variables to external commands. SBUILD_CHROOT_DIR, SBUILD_BUILD_DIR, and SBUILD_PKGBUILD_DIR are exported to the external commands. commit 996508e5731edf5ae52e060f13691214e3afe902 Author: Geoffrey Thomas Date: Wed Aug 14 15:39:41 2013 -0700 Implement --extra-repository="deb scheme://..." This simply adds another line to the sources.list.d file that lists our dummy archive for build-dependency resolution, making that repository available for providing build-dependencies. The purpose of this option is to make it easier to build packages against a local archive without modifying the source chroot to list that archive. Signed-off-by: Benjamin Drung commit 931340caf9791a0044f80516e10ffec67aafe716 Author: Geoffrey Thomas Date: Wed Feb 13 00:57:56 2013 -0800 Implement --extra-package=package.deb This simply adds a deb on the host system to the existing dummy archive created for the build-dependency resolution metapackage, which makes it available for resolving build dependencies. The purpose of this option is to make it easier to build packages against locally-built build depenencies, without waiting for those packages to enter the main archive, or going through the hassle of maintaining a local archive and making it accessible inside the chroot. This option is named similarly to the EXTRAPACKAGES option in pbuilderrc(5), but note that it takes a .deb, not a package name. Thanks to Emanuele Aina for review! Signed-off-by: Benjamin Drung commit a12d2ab3f1a7a01dcdf3c11d816f7cffcc5f8814 Author: Geoffrey Thomas Date: Wed Jul 3 22:37:27 2013 -0700 Sbuild::ResolverBase: Implement update_archive using apt-get update David Kalnischkies pointed out in bug #714877 a clever way to make apt-get update only affect a single sources.list-format file, using various apt options to override the sources.list and sources.list.d locations, and keep the lists for existing sources. This works "in any apt version", and is cleaner than faking the list operations ourselves. Signed-off-by: Benjamin Drung commit 421e5fb83f01d9add0e505a8cb09f4de0fe72382 Author: Benjamin Drung Date: Thu Oct 9 15:31:54 2014 +0200 Fix vcs-field-not-canonical commit 03589f371ed205ba349391382525d406622e4cf4 Author: Benjamin Drung Date: Thu Oct 9 15:01:00 2014 +0200 Fix copyright-refers-to-symlink-license commit 30401718527c6986100a40e089006720fa684b68 Author: Benjamin Drung Date: Thu Oct 9 14:58:08 2014 +0200 Fix debian-news-entry-uses-asterisk commit f3b66d03f28154fcb3ab1fad1fe9d030d8f5cefa Author: Benjamin Drung Date: Thu Oct 9 14:40:53 2014 +0200 Fix hyphen-used-as-minus-sign commit acfae99937eb14062594324faebc3b719e1df3fa Author: Benjamin Drung Date: Thu Oct 9 13:02:58 2014 +0200 Fix typo: indended -> intended commit 559097777d78e2851ce5286b86f16efdbd4f318f Author: Wookey Date: Wed Oct 8 04:43:55 2014 +0100 Add a source format file (quilt 3.0) for debian releases commit 3ad0be72d287b8e8fbfe8bb9037e83d5e74e8717 Author: Wookey Date: Wed Oct 1 18:15:53 2014 +0100 Ensure foreign-arch info reported correctly in logs (Closes: #763635) Add some more message-quoting rigour commit 6015516643620776d6374c8ee2d5a8e84ae30c99 Author: Wookey Date: Tue Sep 30 18:07:17 2014 +0100 Better document debian release process in HACKING commit d0dd2f6df2078c160875d2a330a3507a04e126e5 Author: Wookey Date: Tue Sep 30 13:45:39 2014 +0100 Fix sbuild test to respect apt policy, otherwise the test can fail because 'apt source foo' downloaded an unexpected version. commit 8e2e1a421bfaf30968033ee2a205c2384df4941d Author: Wookey Date: Tue Sep 30 13:36:09 2014 +0100 Update HACKING with test info commit f4c586aaa3f7f45f8549dd893d06f254e31d2c3d Author: Wookey Date: Mon Sep 29 22:20:46 2014 +0100 Update HACKING file with current release procedure commit 4fdf1e712277a1862e2285cff7de805dc6197855 Author: Wookey Date: Mon Sep 29 14:59:28 2014 +0100 Add wookey to uploaders/team Release 0.64.3 commit 7b6b2b5983d54ff0ab54da5aa7ef2d499b87ad85 Author: Wookey Date: Thu Sep 25 21:04:03 2014 +0100 Merge #760991 and #608840 hook command changes. So chroot setup/cleanup commands are run as root and starting/finished commands are run as user The existing name for chroot-setup-commands is thus retained for backwards comptibility Here is a summary of the resulting command options, in order, showing option, user, internal/external, and point of running: --pre-build-commands root ext after chroot session setup --chroot-setup-commands root int after chroot initialisation, before 'update' --starting-build-commands user int after update and dependency-install, before build --finished-build-commands user int after end of timed build --chroot-cleanup-commands root int after build, before session is closed --post-build-commands root ext after session is shut down commit ccfc7e7a6fda4aea36350b7588b8849901a19789 Author: Wookey Date: Thu Sep 25 17:26:27 2014 +0100 Add changelog entry for multiarch-build feature commit 9fdca933d6264a4a21d63d4fd4b76dafb1ee15a9 Author: Dima Kogan Date: Thu Aug 28 23:55:13 2014 -0700 I'm now removing any foreign architectures that I added commit c599aa5e508d596b79f4130e63f5d197704504f3 Author: Dima Kogan Date: Thu Aug 28 23:16:41 2014 -0700 I now add a foreign arch to support foreign Build-Depends As an example, if a Build-Depends contains libwhatever:armel then I run dpkg --add-architecture armel commit 00bacfb97003422bebf5d6517f62660b574ccbfb Author: Luca Falavigna Date: Fri Sep 12 20:03:02 2014 +0200 debian: Set distribution to unstable commit 061bc7b44d801d2bc942d938b52e67bb75b0ae7d Author: Luca Falavigna Date: Fri Sep 12 20:02:36 2014 +0200 NEWS: Finalise for 0.64.2 commit 031dd51d6b42cec3103314cc5caa87ef07acb2ec Author: Luca Falavigna Date: Sat Aug 9 10:46:14 2014 +0200 Sort output of package content listing commit 54d2d3128229c48b28d65300e1aa6e74c7a00e3b Author: Luca Falavigna Date: Sat Aug 9 10:44:46 2014 +0200 Allow to Define custom debootstrap variant commit 59f138dcf6568db56abc1edd1443968da970f71d Author: Luca Falavigna Date: Thu Jun 19 08:29:35 2014 +0200 Allow to define custom suffixes in chroot names commit 73a4ef2423980e6981356956b41a8b205118970d Author: Colin Watson Date: Fri Oct 18 12:47:35 2013 +0100 debian: Document locale environment variable changes commit 28a24d0d6eaf4ecf3c1d33d6c407bb2783ff8fe5 Author: Colin Watson Date: Fri Oct 18 12:42:40 2013 +0100 Buildd: Unset some more locale environment variables Also sort these in the same order as the output of locale(1), to make it easier to compare visually. commit 295f8a47b99cf01f4db5548f888e92d7e25f3868 Author: Roger Leigh Date: Sun Oct 13 20:47:17 2013 +0100 debian: Set distribution to unstable commit 01fcea5556e18b211b7a5d653e94aa837c66c191 Author: Roger Leigh Date: Sun Oct 13 20:46:57 2013 +0100 NEWS: Finalise for 0.64.1 commit edec86529f6100386d435d4a4694d70806d033a0 Author: Roger Leigh Date: Sun Oct 13 20:19:33 2013 +0100 debian: Document autoflush workaround removal commit c906219b9060cae5e6413dfcfd16965c3180a2e4 Author: Roger Leigh Date: Sun Oct 13 20:18:33 2013 +0100 Sbuild::Build: Remove perl 5.10 autoflush workaround commit 733220ece292b785491f45484563dded812b228c Author: Roger Leigh Date: Sun Oct 13 19:55:56 2013 +0100 debian: Also thank Václav Ovsík for #724858 patch commit 73ef01ce6551b4545373c3d7b13325da4e285897 Author: Roger Leigh Date: Sun Oct 13 19:54:25 2013 +0100 sbuild-createchroot: Remove package from tempfile usage commit bb4814ba5dfc0ef851d35232f0b6a95e51e85311 Author: Roger Leigh Date: Sun Oct 13 19:47:28 2013 +0100 debian: Close #722012 commit 40bb2ad7942a7f8ad78c8fa7f907bfb47d49aa1a Author: Vaclav Ovsik Date: Sun Oct 13 19:46:22 2013 +0100 Sbuild::Conf: Add missing File::Spec commit 497713d146b711b789e3a8b5e74fbfe56b60deec Author: Roger Leigh Date: Sun Oct 13 19:44:24 2013 +0100 debian: Also thank Paul Elliott for #724858 patch commit 28922812df0114e59f8cb2cfe19fb56daf33459b Author: Roger Leigh Date: Sun Oct 13 19:38:15 2013 +0100 debian: Bump version to 0.64.1-1 and Close #724858 commit f31d0dfbb6cd1aa06892c520e2e473d1f099d06b Author: Roger Leigh Date: Sun Oct 13 19:37:34 2013 +0100 NEWS: Bump version to 0.64.1 commit 4cba82f909b46b69cf271b656e13e3c03898ec64 Author: Alexander Chernyakhovsky Date: Sat Sep 28 16:07:44 2013 -0400 Fix sbuild-createschroot on jessie/sid commit d7f31eddcec5db5f5d0419daf520f9f19b857b5e Author: Roger Leigh Date: Fri May 17 23:31:10 2013 +0100 debian: Remove buildd preinst and correct init script dependencies commit 05251cb18583d605d573b34bd782c1c28e1fd494 Author: Roger Leigh Date: Fri May 17 23:28:32 2013 +0100 debian: Upgrade to Standards-Version 3.9.4 commit c439aad0bdfcd03d925b656593539574a9527996 Author: Roger Leigh Date: Fri May 17 23:10:12 2013 +0100 NEWS: Bump version to 0.64.0 and document main changes commit 1f9aecf124173808ed4e9bf67fe99c91de3010b8 Author: Roger Leigh Date: Fri May 17 23:09:43 2013 +0100 debian: Bump changelog version to 0.64.0 commit a25baa48fe5813bffe6c51aa86eb90c190f8a682 Author: Geoffrey Thomas Date: Tue Feb 12 17:36:36 2013 -0800 debian: Close #672711 commit a319744b9fa1d2e6d98ef89e1a9ce7adbbb2a33f Author: Geoffrey Thomas Date: Tue Feb 12 17:34:04 2013 -0800 Sbuild::Build: Add "binary-only=yes" to binNMU changelog entries When we add a changelog entry for a binNMU or for an appended version number, mark that entry with "binary-only=yes", so that new versions of dpkg-gencontrol know to use the previous changelog entry as the source version. commit b6afed5937e32a0bc86d22c01ef5caa0e558ea6b Author: Roger Leigh Date: Fri May 17 22:56:44 2013 +0100 Sbuild::Build: Run lintian before moving the build files commit 1b040f9f3e92b15bfc6bf3d36646e95430b5c21c Author: Roger Leigh Date: Fri May 17 22:30:02 2013 +0100 debian: Close #626361 commit 61656cfd7e24316b2d00ad14a0bafc6539be9b7e Author: Reinhard Tartler Date: Fri May 17 22:28:10 2013 +0100 Sbuild::Build: Run lintian from inside the chroot Running lintian from inside the chroot supports use-cases with several chroots (oldstable, unstable, testing, lucid, natty, etc), where using the system lintian might not give the best results. By using the lintian version from the chroot, sbuild uses always the version that matches the distro version that the package is being built for. commit 0a7c7f5218479aebfd08ee239f1c6256e94593c9 Author: Roger Leigh Date: Fri May 17 22:26:13 2013 +0100 debian: Close #686509 commit 4f9a42f94f029ef4b3812f780184c476a447342b Author: Roger Leigh Date: Fri May 17 22:23:30 2013 +0100 Sbuild::Build: Compute changes filename correctly Based upon initial work by Daniel Dehennin with additional changes for robustness when building inside a source tree. commit fe47c7d7a2dd4abda9526789f36aecca188cc58b Author: Roger Leigh Date: Fri May 17 21:20:33 2013 +0100 debian: Close #699903 commit d2a8373eef3ad8112fbb680db488f87426e7c27e Author: Stephan Sürken Date: Fri May 17 21:17:50 2013 +0100 Sbuild::Build: Remove stray exit from copy_to_chroot This prevents sbuild waiting forever on 'Failed to copy'. commit e7a822a1597610501562cae0e69329c828d28302 Author: Roger Leigh Date: Fri May 17 20:48:09 2013 +0100 debian: Document forward-ported buildd patches commit d5b99c2752566c3b25ddc57cb48222cda246c8b5 Author: Philipp Kern Date: Thu May 16 22:13:10 2013 +0100 Fix SSH control master restart commit 3283e5c5147cec8eededee2407e451bee916862c Author: Philipp Kern Date: Thu May 16 22:10:14 2013 +0100 [Sbuild::DB::Client] do not change the cwd commit 4b05f6f1344b8ca03473fe41d7368795e7b94ebb Merge: 11fe624 7aed101 Author: Roger Leigh Date: Thu May 16 20:28:38 2013 +0100 Merge remote-tracking branch 'origin/master' Conflicts: debian/changelog commit 7aed1015ae16873618024f7bb89a04c7e59dc107 Author: Colin Watson Date: Wed Feb 6 02:30:50 2013 +0000 Buildd::Conf: Fix typo commit 11fe624f2a0bdc2360e969eae3e5e024a2660d39 Author: Roland Stigge Date: Tue Feb 5 21:00:32 2013 +0000 Apply patch for 0.63.2-1.1 NMU commit 86d9f34554c1b90163cff5ff184a07c265ce9d31 Author: Colin Watson Date: Wed Jan 9 10:53:44 2013 +0000 debian: Document sbuild failure count fix commit e41cccc2d4e7122bda4c73772f58a4b12789ea9b Author: Colin Watson Date: Wed Jan 9 10:53:18 2013 +0000 Buildd::Daemon: Reset sbuild failure count after sleeping commit 746c269b1d1c413b685ff4bc7d218f4149abe7cd Author: Adam Conrad Date: Mon Jan 7 11:18:50 2013 -0700 debian: Close #695273 commit 5ad92654ae45bf3196b9d22f47838993d6991534 Author: Adam Conrad Date: Mon Jan 7 11:15:34 2013 -0700 Fix and improve cross-build chroot detection Update ChrootInfo.pm to allow for chroots named $dist-$build-$host to avoid namespace clashes with native chroots, and fix Build.pm to default to looking for the chroot at HOST_ARCH. Improve documentation for the above in the sbuild.1 manpage. commit 8b510e5f4417eadc92c4d13f8e996fad8cfde764 Author: Colin Watson Date: Mon Jan 7 12:52:05 2013 +0000 debian: Close #695203 commit 9aaa06de161ecb0a5422dc48805215211590c2f9 Author: Colin Watson Date: Mon Jan 7 12:51:44 2013 +0000 sbuild: Resolve cross-build-dependencies from package being built commit 8851c91d4351db3f2e5ea727420c68c3ce421ae8 Author: Roger Leigh Date: Thu Jan 3 23:24:59 2013 +0000 debian: Close #697298 commit dc49ae794f5f6c9b5b4903b4fae5feb4ed7e6276 Author: Colin Watson Date: Thu Jan 3 23:23:18 2013 +0000 ResolverBase: Pass correct options to deps_parse for :native deps commit b0b469da801b54c4441fd16a9c85faa6a6b2362d Author: Roger Leigh Date: Thu Jan 3 21:36:50 2013 +0000 Buildd::Conf: Enable $distributions and $upload_queues These were in the example syntax, but didn't work. Allow in addition to @distributions and @upload_queues, and warn if the @ form is used since this doesn't match use for all other configuration values. commit a3b867ff94720cccd707f0aa88b0148cf0bfa3ce Author: Roger Leigh Date: Sun Dec 30 16:58:22 2012 +0000 Build::Conf: Revert incorrect documentation change commit 134223e35d4bea3c58a4764d5ee4944598f67e25 Author: Thorsten Glaser Date: Sun Dec 30 00:07:29 2012 +0000 avoid dereferencing MAILTO_HASH if it is undefined commit a346f00792def8e5b4181e14fe958efd4448f43b Author: Thorsten Glaser Date: Sun Dec 30 00:05:14 2012 +0000 change sample configuration entries from $foo=[]; to @foo=(); for now, this is required so they actually work; later, both methods may be allowed, but right now, only the latter works also, fix a missing parenthesis that gets jupp's find matching brace functionality confused commit c8ccc72f0894cc8a4fec5ac8ca65bf4c08e34cdc Author: Thorsten Glaser Date: Sun Dec 30 00:00:21 2012 +0000 debian: Close #636477 by adding changelog entry for the previous commit commit fbd76de128aefe983eb8d981e061fc4051432c7f Author: Arnaud Patard Date: Tue Jul 19 09:44:41 2011 +0200 Fix get_db_handle Commit 72f987c0a03e58358ea616628514efa0113f0332 moved Client class from Sbuild::DB to Buildd:: and now, when uploading, there are errors in the log: Can't locate object method "new" via package "Buildd::Client" (perhaps you forgot to load "Buildd::Client"?) at /usr/share/perl5/Buildd/Base.pm line 120 (#1) Adding a "use Buildd:Client;" cures the problem for me. Signed-off-by: Arnaud Patard commit c73c97774dd63bc0db999b324b521fef54d07fb0 Author: Roger Leigh Date: Mon Dec 10 00:04:10 2012 +0000 debian: Close #693790 commit 444dfa6f947c89d6587f6877fcbe32cb7fe3f8ac Author: Roger Leigh Date: Mon Dec 10 00:03:03 2012 +0000 buildd: Make sbuild failure count configurable with MAX_SBUILD_FAILS commit d3b674303c8b8f99ccf6197fbfed3cf299968a11 Author: Roger Leigh Date: Sun Dec 9 23:55:36 2012 +0000 debian: Close #693788 commit 0a0d30972d357959e863f58ffca4fdce714b9eba Author: Colin Watson Date: Sun Dec 9 23:53:54 2012 +0000 Sbuild::Build: cross build-dep installation failure throws exception commit 6e87a316d85417d38e3fbe0d8fe8700020ad71f1 Author: Roger Leigh Date: Sun Dec 9 23:50:49 2012 +0000 debian: Close #695513 and bump version commit 521290bf1e2b5b1c2013a187a4369a8ccfcde6fa Author: Roger Leigh Date: Sun Dec 9 23:49:43 2012 +0000 debian: Remove duplicate stop function from buildd init script commit 752ee22db84da27f10c25520dbfba66d866fa1a7 Author: Roland Stigge Date: Sat Dec 8 23:03:00 2012 +0000 Fix building packages with revision "0" commit c360e45618b901662cfea5044df4b55ad0e236c3 Author: Roger Leigh Date: Tue Sep 4 17:39:12 2012 +0100 man: Add --no to piuparts option commit af05d7dffb90abf4ed0fe1676b902f452bc11d44 Author: Roger Leigh Date: Tue Aug 28 23:55:53 2012 +0100 sbuild: Move http downloads to executable wrapper This permits the .dsc to not match the standard naming conventions providing that the contents are correct. The main goal is to only have the core code accept .dsc or package_version for download using apt-get. This is a prerequisite for proper privilege separation and simplification of the core code. commit d299f7eee5f7ea908e0b37ac44886be0aa33ca36 Author: Roger Leigh Date: Sat Aug 18 13:49:18 2012 +0100 debian: Fix changelog for release commit cd0dcdacd2a1a15c8debbe4449aff72965ec9686 Author: Roger Leigh Date: Sat Aug 18 13:42:41 2012 +0100 NEWS: Document logging bugfix commit b98743d6487d8c667f3ab19c2e974077f1d7c340 Author: Roger Leigh Date: Sat Aug 18 13:42:14 2012 +0100 debian: Close #676834 commit 89dab349762a9f0839136ab80c9d3b4794aee372 Author: Roger Leigh Date: Sat Aug 18 13:37:26 2012 +0100 test: Add logging testing scenarios commit b196a2e2075147e4cbe4e48c15b9fd0b5d210572 Author: Roger Leigh Date: Sat Aug 18 13:14:05 2012 +0100 sbuild: Don't open logs in the build directory when packing sources If building directing in the CWD, log in .. Implement this behaviour by setting BUILD_DIR to .. Also set LOG_DIR to BUILD_DIR in user mode so LOG_DIR is also not defaulting to CWD. commit 350efb25e0ac914e932858c3c4809b2922c79fd8 Author: Roger Leigh Date: Sat Aug 18 13:13:28 2012 +0100 Sbuild::ConfBase: Remove unused CWD variable commit 82aeef2adbaef49b56677d9860b32b4b36ea4968 Author: Roger Leigh Date: Thu Jul 5 00:13:40 2012 +0100 Sbuild::Conf: Remove additional bracket commit 94ee5c5df3fbffdcd09781903e13fa4388bad16f Author: Roger Leigh Date: Wed Jul 4 23:57:05 2012 +0100 debian: Close #673009 commit dd273ea0ebe95467f5a9cb2623a9ea33fe563f14 Author: Roger Leigh Date: Wed Jul 4 23:55:21 2012 +0100 Sbuild::Conf: Only create log directory in buildd mode commit a2e05139759e72027a063e25f1512c628e05cf0e Author: Roger Leigh Date: Wed Jul 4 23:50:37 2012 +0100 Sbuild::Conf: Don't make log dir if NOLOG is set commit 03d0040f6feeef2808169a63a851470c3fdc7836 Author: Roger Leigh Date: Wed Jul 4 23:14:37 2012 +0100 debian: Close #662785 commit 942a97018e1024f9caee462f8a345cdf12ed0fa1 Author: Roger Leigh Date: Wed Jul 4 23:13:10 2012 +0100 debian: Close #676834 commit 9c8d93868c1379c8137ba76119703c95f8a16332 Author: Roger Leigh Date: Wed Jul 4 23:10:33 2012 +0100 sbuild: Build source directories correctly - If inside the directory, log outside - Clean and package correctly with dpkg-source whether sbuild was run from from inside or outside the source tree commit ea79546910ec9f14b114b4500aa252484c93ba46 Author: Roger Leigh Date: Wed Jul 4 21:10:20 2012 +0100 debian: Close #637931 commit bf557dc70a2feb9b87cc31d659bf8c15c0d9c1e7 Author: Roger Leigh Date: Wed Jul 4 21:08:47 2012 +0100 Sbuild::Utility: Fix logging in download function commit e34275c39235eb573d2a096be3a8499f33878a0a Author: Roger Leigh Date: Wed Jul 4 20:35:02 2012 +0100 debian: Close #674669 commit 1e88a1b18bc0358a03fe5f85cb83c204b00047a5 Author: Roger Leigh Date: Wed Jul 4 20:32:50 2012 +0100 Sbuild::Build: Factor out finding changes into get_changes() commit ec022e746e2d23556d6f58dfef1434fb560a3c05 Author: Daniel Dehennin Date: Wed Jul 4 20:03:40 2012 +0100 Sbuild::Build: Find _all.changes as well as _arch.changes commit f29ce90bce6e74dedd85a26a883c5138e28afac8 Author: Roger Leigh Date: Wed Jul 4 20:03:24 2012 +0100 debian: Close #675861 commit 7afefbf558f783735624577a246b7912912f6da3 Author: Roger Leigh Date: Thu Jun 28 23:01:30 2012 +0100 debian: Close #673676 commit 4bc2072701dddf7aa5e3680ded77de0bf6f75f02 Author: Roger Leigh Date: Thu Jun 28 23:00:30 2012 +0100 sbuild-createchroot: Don't use --keyring unless set by user commit cb47de2a0e1cc6e501e0044b04b17dc2357a5b58 Author: Roger Leigh Date: Thu Jun 28 22:53:15 2012 +0100 debian: Close #665215 commit 0df61e1b81d24c9a4a035a028ce4be8c4e79744e Author: Roger Leigh Date: Thu Jun 28 22:25:14 2012 +0100 debian: Close #676475 commit fe7f0e7c5ac20f7153b136489c40a06579cf44a6 Author: Roger Leigh Date: Thu Jun 28 22:23:18 2012 +0100 Sbuild::Build: Don't run debsign with shell interpretation of $key_id This is badly broken. Use separate arguments with correct quoting, to prevent shell metacharacters such as < and > not being interpreted by the shell. commit 41a825a25eea52097c01a149250b44623c263e40 Author: Roger Leigh Date: Thu Jun 28 22:15:40 2012 +0100 debian: Close #629109 commit 898eb8be3008616e93b9d4f92869d02177a52cae Author: Roger Leigh Date: Thu Jun 28 22:15:34 2012 +0100 NEWS: Document new --purge-build option commit e32faf26f8a013f5d96a24934e9819878a1dace7 Author: Jan-Marek Glogowski Date: Thu Jun 28 22:10:44 2012 +0100 Sbuild::Options: Add --purge-build option This replaces the existing --purge option, which now purges everything (build directory, build dependencies and session). commit 97cd31badb3f28e900ff0ca922366004287ad43b Author: Roger Leigh Date: Thu Jun 28 21:52:56 2012 +0100 debian: Copy options description from NEWS commit c7c485ee40753dafd4d025c92020eed0a48cffb7 Author: Roger Leigh Date: Thu Jun 28 21:52:40 2012 +0100 NEWS: Document --no-run-lintian and --no-run-piuparts commit 89e6d06a9c36e8384ba0db42ce3f093628a1f402 Author: Roger Leigh Date: Thu Jun 28 21:50:51 2012 +0100 debian: Close #665372 commit e069ee987fe96ebf36687980e47c310339b50ea9 Author: Roger Leigh Date: Thu Jun 28 21:49:58 2012 +0100 Sbuild::Options: Add --no-run-piuparts option commit 7d4ca24cd826468908a4a7d830503a22d08f4edf Author: Roger Leigh Date: Thu Jun 28 21:48:01 2012 +0100 Sbuild::Options: Add --no-run-lintian option commit be9e29229f9f78b8f06a97e4d12942b18ec3cdd3 Author: Roger Leigh Date: Thu Jun 28 21:37:07 2012 +0100 debian: Close #663089 commit 4c8de771ad27c61fa0ad57af22ef80f45dede9a1 Author: Roger Leigh Date: Thu Jun 28 21:36:01 2012 +0100 debian: Bump version to 0.63.2-1 commit 70e28a15c7d24747ceb6c151340da382aea4e575 Author: Roger Leigh Date: Thu Jun 28 21:35:16 2012 +0100 NEWS: Bump version to 0.63.2 commit df035c6df4419c0155d58a90cfb5e187b6a16ae3 Author: Roger Leigh Date: Thu Jun 28 21:33:59 2012 +0100 Sbuild::Conf: Fix typo sucess commit 5f2eabf8b43fe96f141b15848210ba44d1bd50c3 Author: Roger Leigh Date: Tue Jun 5 20:18:06 2012 +0100 sbuild-createchroot: use profile= in config This replaces script-config=. commit 0566448375bc8032716f2d8c933d9d6fcea1a4e4 Author: Roger Leigh Date: Thu May 31 22:52:12 2012 +0100 debian: Set distribution to unstable commit a23d645e17600378a3747d12f172828a75ccf23b Author: Roger Leigh Date: Thu May 31 22:11:29 2012 +0100 debian: Close #675349 commit c85ad5f49c398a56a6b8416ee3a4ce2a41e6f2e3 Author: Roger Leigh Date: Thu May 31 22:08:32 2012 +0100 debian: Bump version to 0.61.1-1 and close #675332 and #675354 commit 6ca7311194f162639be7447e5ab96e92229c5858 Author: Roger Leigh Date: Thu May 31 22:07:57 2012 +0100 NEWS: Bump version to 0.63.1 commit ce35f824eaa35d7925520afa605b14723e1f6a8f Author: Jakub Wilk Date: Thu May 31 22:07:32 2012 +0100 Sbuild::Conf: Correct validation of xapt program commit 779e65fac8c1f3488afb1181a07adb835353d109 Author: Roger Leigh Date: Wed May 30 23:10:10 2012 +0100 debian: buildd doesn't install schroot setup scripts Only used on the buildd branch. commit bbf2c5bb7239b16f67009b3a58d71a3cd42b195b Author: Roger Leigh Date: Wed May 30 23:09:33 2012 +0100 debian: Document 25nssdatabases removal commit a1fcce8d93f4e36f168314ae8f45f4d3de083843 Author: Roger Leigh Date: Wed May 30 23:05:05 2012 +0100 etc: Drop long obsolete 25nssdatabases setup script Replaced by 20nssdatabases many years ago. commit e2330e170a525d319a62a33e15a736d61af01dc1 Author: Roger Leigh Date: Wed May 30 22:59:46 2012 +0100 debian: Drop /etc/schroot/setup.d from installation Only used on buildd branch. commit 69c1be7f874f4b3fface40f579f4bc6071684914 Author: Roger Leigh Date: Wed May 30 22:50:04 2012 +0100 debian: Update changelog date commit 08e5a6aa6ca6fb90b723b5a8101cb302201bcb53 Author: Roger Leigh Date: Wed May 30 22:48:50 2012 +0100 Sbuild::ResolverBase: Fix indentation commit aba0b23e35fec286a14f927d4d711eed130f1e40 Merge: 96618cc d798c6e Author: Roger Leigh Date: Wed May 30 22:46:05 2012 +0100 Merge remote-tracking branch 'scratch/cross-build' Conflicts: debian/changelog lib/Sbuild/Conf.pm lib/Sbuild/ResolverBase.pm commit 96618cc9a2d2e2c08f29d083838bea81b0d78f4e Merge: 85f1ffc c479be8 Author: Roger Leigh Date: Wed May 30 22:41:09 2012 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit d798c6eb59446e6cf897f24b89e84d925ef8ebc2 Author: Wookey Date: Wed May 30 12:59:59 2012 +0100 Don't check xapt exists unless it is configured - this config is rarely, if ever, used. commit 09c65b3b46e3bc05e49ff48258d4014e4625a079 Author: Wookey Date: Wed May 30 12:59:58 2012 +0100 Use crossbuild-essential-$arch to gloss over distro differences commit df870cee6ad584c2489648bdcadce82f8e9c4853 Author: Wookey Date: Wed May 30 12:59:57 2012 +0100 Use new dpkg 1.16.2 --add-architecture syntax so sbuild crosses-builds on Debian chroots commit c479be82dc25fe0f2a15efc192920cdd50f48f18 Author: Roger Leigh Date: Thu May 10 00:05:00 2012 +0100 99builddsourceslist: Add initialisation from buildd/config commit 85f1ffc067501a03d086a2fd8c848b831d76ba89 Author: Roger Leigh Date: Sun Jan 29 22:39:01 2012 +0000 build: Don't distribute or install Sbuild/Log.pm commit 507624eb042399824f9f4d7b5e4155a87dbaa994 Author: Philipp Kern Date: Sat Jan 28 14:14:35 2012 +0100 lib/Sbuild.pm, man/sbuild-setup.7.in: fix privilege typo commit c883f7bbc172b6aadb6db750479fed4078855d45 Author: Roger Leigh Date: Wed Jan 25 22:05:00 2012 +0000 Sbuild::Log: Remove Unused, and no functions referenced in any code. commit 9b941b033a9489669efa1169110669d415ea7b8e Author: Max Thoursie Date: Wed Jan 25 11:22:30 2012 +0100 debian: debian/rules runs ./bootstrap when needed To make it possible to build a debian package directly form a clean checkout, debian/rules now run ./bootstrap if ./configure is missing. Signed-off-by: Roger Leigh commit 1fc35fe433366c97bc9ecd912ba0a70bd8488834 Author: Roger Leigh Date: Wed Jan 25 13:08:48 2012 +0000 Sbuild::Build: Add separators around debian/files output commit 9221db153bf8f6c938795e7a225b515edad2b422 Author: Max Thoursie Date: Wed Jan 25 11:20:48 2012 +0100 Sbuild::Build: Output the contents of debian/files w/o a box I don't think drawing a box around the contents of a file is appropriate since: • Boxes are already used for headings which could be confusing if the file only has one line. • It makes cut'n'pasting of the contents harder. Signed-off-by: Roger Leigh commit 7652cced61c7d5d7ed70d3cd0e9e784070512af0 Author: Max Thoursie Date: Wed Jan 25 11:00:57 2012 +0100 Sbuild::Build: Remove double if statements Signed-off-by: Roger Leigh commit d6bfdf46fa3eef639381ef5aa16f2f2a06c5e48e Author: Roger Leigh Date: Sun Jan 22 18:52:17 2012 +0000 debian: Update changelog from NEWS commit a7511c5875b1a4f26c57fc3000eea6f203578a69 Author: Roger Leigh Date: Sun Jan 22 10:49:11 2012 +0000 Buildd::Conf: Correct misused HASH argument in constructor commit 232f2d0e4d4e3bb089c17801f50202c697252961 Author: Roger Leigh Date: Sun Jan 22 10:47:42 2012 +0000 test: Add database option to wanna-build commit 2f1d5517ca65a545339d6b5e4c1a865375c39555 Author: Roger Leigh Date: Sat Jan 21 19:43:53 2012 +0000 test: Add user option to wanna-build commit f895976e6a71e3ffd7c71f0e66fdb98b30fe581a Author: Roger Leigh Date: Sat Jan 21 16:14:59 2012 +0000 test: Add wanna-build test script for buildd This is a fake wanna-build, whose sole purpose is to test buildd without a full wanna-build setup. commit e946eaa65c37229544235655b1179eeafe63a3c3 Author: Roger Leigh Date: Sat Jan 21 14:31:45 2012 +0000 test: Remove sbuild-stats commit 6a903e35b668a11f362793af2ffb706bcad47d87 Author: Roger Leigh Date: Sat Jan 21 14:30:31 2012 +0000 Sbuild::Conf: Fix typo in TOOLCHAIN_REGEX help text commit b295b904a19fc9f6a0041dbe036f32606e849fb5 Merge: a6ef88c cca5d11 Author: Roger Leigh Date: Sat Jan 21 14:21:51 2012 +0000 Merge branch 'cross-build' Conflicts: lib/Sbuild/Build.pm commit cca5d11bba8e47c8e861b7d011f0098ba4ee40b9 Author: Roger Leigh Date: Sat Jan 21 14:18:04 2012 +0000 Sbuild::ResolverBase: Set defaults for host and build arch commit 23fef4539dd0b12108e5ffd1fe0ae5c35ecced67 Author: Roger Leigh Date: Sat Jan 21 13:25:03 2012 +0000 Sbuild: LOG_DIR default depends upon SBUILD_MODE If SBUILD_MODE is user, set to "." If SBUILD_MODE is buildd, set to "$HOME/logs" commit 895c02f94d957103badbf2865af631a941c86cbe Author: Roger Leigh Date: Fri Jan 20 09:55:44 2012 +0000 Sbuild::Build: Don't use dedicated log dir for user mode Create log file in build dir rather than a symlink. Unlink old build log before opening new log. This prevents it following a symlink and overwriting an old log. commit b37df9f6ddcc61651c7031d2a9db2e146ec79df8 Author: Wookey Date: Fri Jan 20 03:07:35 2012 +0000 Sbuild::Conf: Fix string quoting error in cross-build-coredeps config Signed-off-by: Roger Leigh commit c55152933851aa48e27048b2715c01ab25e49e2e Author: Roger Leigh Date: Tue Jan 17 22:42:39 2012 +0000 Sbuild::Build: Include @crosscoredeps in @coredeps commit 1c6929c1b0884b5fd4f950fce48308dbaa686ce0 Author: Wookey Date: Tue Jan 17 03:07:39 2012 +0000 Sbuild::ResolverBase: Set Host and Build arch in resolver object Make names consistent. Part two of using get instead of get_conf for arches commit 07305a6a99374c9168ada65b9713980b89a9e499 Author: Wookey Date: Tue Jan 17 03:07:38 2012 +0000 Sbuild::Build: Set Host and Build Arches in object, then use throughout commit f8e41322c2838808cff1b80d7bf2e8a8792a1955 Author: Wookey Date: Tue Jan 17 03:07:37 2012 +0000 Sbuild::Build: Add log subsection for installing cross-build-deps commit e36baf198d8f716eaf87dbafa1a2a6e71906dc43 Author: Wookey Date: Tue Jan 17 03:07:36 2012 +0000 Sbuild: Correct typos in logging messages for setting cross-arch config commit 89aff1f819e59f608b5b8f648bdcb7fd174a3338 Author: Wookey Date: Tue Jan 17 03:07:35 2012 +0000 Sbuild::ResolverBase: Explicitly use shell in setup_dpkg This is to ensure redirect works properly. commit c29bc4e1a837418ddefe4d5c66cbba6ac6c394df Author: Wookey Date: Tue Jan 17 03:07:34 2012 +0000 Sbuild::Build: Fix run_fetch_install_packages for native builds Fix run_fetch_install_packages so native builds work as well as cross. The issue was that if $crosscoredeps is not defined the code barfs on @{$crosscoredeps->{$self->get_conf('HOST_ARCH')}}, rather than it just being empty. Signed-off-by: Roger Leigh commit b772b185b547d00d08c78536a2e6dca2c03324b6 Author: Roger Leigh Date: Sat Jan 21 13:25:03 2012 +0000 Sbuild: LOG_DIR default depends upon SBUILD_MODE If SBUILD_MODE is user, set to "." If SBUILD_MODE is buildd, set to "$HOME/logs" commit a6ef88c53f427c418b608df38d99effdf4af9ecd Author: Roger Leigh Date: Sat Jan 21 13:25:41 2012 +0000 sbuild-dumpconfig: Don't wrap manpage help text The wrapping can break the troff markup if a leading single quote is wrapped. commit 0acc6c7eb68b163e5a51fd83b01e2a9800bd14e8 Author: Roger Leigh Date: Sat Jan 21 13:25:03 2012 +0000 Sbuild: LOG_DIR default depends upon SBUILD_MODE If SBUILD_MODE is user, set to "." If SBUILD_MODE is buildd, set to "$HOME/logs" commit 3d8a80541aabe677311944191318ca9e620be0cf Author: Roger Leigh Date: Fri Jan 20 09:55:44 2012 +0000 Sbuild::Build: Don't use dedicated log dir for user mode Create log file in build dir rather than a symlink. Unlink old build log before opening new log. This prevents it following a symlink and overwriting an old log. commit 8efcabead98eef9a7fd5254b9b198fa706ece637 Author: Wookey Date: Fri Jan 20 03:07:35 2012 +0000 Fix string quoting error in cross-build-coredeps config Signed-off-by: Roger Leigh commit f573699f80bb7cc14eb703934827fe05316f8af5 Author: Roger Leigh Date: Fri Jan 20 09:55:44 2012 +0000 Sbuild::Build: Unlink old build log before opening new log This prevents it following a symlink and overwriting an old log. commit 19cab17c734794a8723df93a214ea83074be18a6 Author: Roger Leigh Date: Tue Jan 17 22:42:39 2012 +0000 Sbuild::Build: Include @crosscoredeps in @coredeps commit 58ccc02cb5f71f947014d49681c8cc291af49542 Author: Wookey Date: Tue Jan 17 03:07:39 2012 +0000 Set Host and Build arch in resolver object. Make names consistent. Part two of using get instead of get_conf for arches commit 98ddf08398edce9264c5b4cdd7acf8fa0e547079 Author: Wookey Date: Tue Jan 17 03:07:38 2012 +0000 Set Host and Build Arches in object, then use throught commit 4d355f73a45ce436e7f5e7cfe1ae2119178ff1f2 Author: Wookey Date: Tue Jan 17 03:07:37 2012 +0000 Add log subsection for installing cross-build-deps commit ac532fb6222857453cd70efdb703280a1cd4461e Author: Wookey Date: Tue Jan 17 03:07:36 2012 +0000 Correct typos in logging messages for setting cross-arch config commit 7a81734d6d9befd934226e2c7364cb19348e561c Author: Wookey Date: Tue Jan 17 03:07:35 2012 +0000 Explicitly use shell in setup-dpkg to ensure redirect works properly. commit edf53cae8bba196745486b34faa73e4b0a38fda4 Author: Wookey Date: Tue Jan 17 03:07:34 2012 +0000 Fix run_fetch_install_packages so native builds work as well as cross Issue was that if $crosscoredeps is not defined the code barfs on @{$crosscoredeps->{$self->get_conf('HOST_ARCH'), rather than it just being empty. This code can be improved by a competent perl person. Signed-off-by: Roger Leigh commit 9b5160be8d5d838f08232306e6db96c7c4d5d7ce Author: Roger Leigh Date: Thu Dec 22 00:15:54 2011 +0000 Sbuild: Fix cross-build variable mismatches Only use HOST_ARCH and BUILD_ARCH in the configuration object. Drop all references to 'Host Arch' and 'Build Arch' in the individual Build or Resolver objects. commit a69dacfd55980a81c5439b5cffdf174102367d53 Author: Wookey Date: Wed Dec 21 22:41:08 2011 +0000 Sbuild::ResolverBase.pm: Broken indentation tidy commit 6083686e052ddf5a03b9e2475bd99152a9f6e697 Author: Wookey Date: Wed Dec 21 22:41:07 2011 +0000 Sbuild::Build: Cross-building uses apt-get build-dep Use apt-get -a $arch build-dep $package when cross-building instead of a dummy package. commit b15919f444e085f03652ef44d20cedc8320f58b0 Author: Wookey Date: Tue Dec 20 20:37:03 2011 +0000 Sbuild::Build: Set environment variables for cross-building commit fe563f73d9fe2798f5e556bb68ed114fbb8da995 Author: Wookey Date: Mon Dec 19 19:29:52 2011 +0000 Sbuild::ResolverBase: Use build arch for dummy deps package Do not use the host arch. commit c9bf452a075f0d8abda6d4dce73f5bda027846a0 Author: Wookey Date: Mon Dec 19 12:53:18 2011 +0000 Sbuild::Build Add CROSSBUILD_CORE_DEPENDS{arch} to core deps commit c89125965a155fe9f810aae18ee316382bd6cbcb Author: Wookey Date: Mon Dec 19 12:53:15 2011 +0000 Sbuild::ResolverBase: Configure dpkg foreign-architecture Add setup-dpkg function to set dpkg foreign-architecture. Set dpkg multiarch cross-config; use the shell so that echo command is redirected properly. Add apt-config option to set apt to use $HOST package files Add reminder to tidy up sbuild foreign-arch config so the next build can be for a different architecture. commit 82c87298b15f373ea33c5ae1d09274fb6bf3fcbb Author: Wookey Date: Mon Dec 19 12:53:14 2011 +0000 Sbuild::Conf: Add dpkg-cross and pkg-config link to arm cross packages commit 9fbe4b3b9b2fa89ae82ee0cd1498448db6699888 Author: Wookey Date: Wed Dec 21 22:30:39 2011 +0000 Sbuild::Build: Further clarification of build/host architecture Not clear if this should be $self->get('Host Arch') or $self->get_conf('HOST_ARCH') throughout. commit aca7ffb653e507d27dc68291f8804ca04617463b Author: Roger Leigh Date: Sat Dec 17 00:36:31 2011 +0000 NEWS: Document sbuild-stats removal commit 5fee46565c4229c71528f26853142cda7d4da1a6 Author: Roger Leigh Date: Sat Dec 17 00:36:16 2011 +0000 sbuild-stats: Remove commit c19435e3de029bdf0f5accb19846b589dd525400 Author: Roger Leigh Date: Sat Dec 17 00:19:45 2011 +0000 NEWS: Document watches removal commit 71edcfde524cc4e05c26a54b74ea427489ceec9b Author: Roger Leigh Date: Sat Dec 17 00:16:55 2011 +0000 Sbuild: Remove watches Unused for several years, and no longer useful now we have package build dependencies and cloned minimal chroot environments. commit fa4b379987e4ae1dcc938006bc0d0504f77101d5 Author: Roger Leigh Date: Fri Dec 16 11:52:51 2011 +0000 NEWS: Document cross-build addition and internal removal commit 68c7a10cad9d319f6fa45ff19803df2eb7e174a3 Author: Roger Leigh Date: Fri Dec 16 11:52:35 2011 +0000 Sbuild: Remove internal resolver commit 42795b34d5cf5b54fd96dba6e8751a6ae7bc737f Author: Wookey Date: Tue Dec 13 02:37:40 2011 +0000 debian: Add changelog entry for cross-build changes Signed-off-by: Roger Leigh commit 85274fe89e62a711b83b7275b10cdfc6f9d1b2b8 Author: Wookey Date: Tue Dec 13 02:37:42 2011 +0000 Sbuild::Conf: Add MULTIARCH_CORE_DEPENDENCIES table Signed-off-by: Roger Leigh commit ffea1bc4be4e4ead2399ad220feeff614c2eafd0 Author: Hector Oron Date: Tue Dec 13 02:37:33 2011 +0000 Sbuild: Add Xapt as a dependency resolver Signed-off-by: Hector Oron Signed-off-by: Roger Leigh commit 50821b892c348a4ba1ff273c82ba84ad0bcbb4de Author: Hector Oron Date: Tue Dec 13 02:37:26 2011 +0000 Sbuild: Initial support for cross-building Use BUILD_ARCH and HOST_ARCH throughout to permit cross-building. Sbuild::Build: Add dpkg-buildpackage -a option when cross building. This patch was originally written by Hector Oron with bugfixes and changes from Wookey and Roger Leigh. Signed-off-by: Hector Oron Signed-off-by: Roger Leigh commit 6f95db6318458c4f7dde44d388fbba48a3ea1ed2 Author: Roger Leigh Date: Wed Dec 7 20:42:14 2011 +0000 debian: Document forward-port of buildd-0.61.0 changes commit 252eaf85f3cca1c45fa9848cb988c1c387f16c02 Author: Philipp Kern Date: Sun Nov 6 16:09:05 2011 +0100 etc/99builddsourceslist: fix a typo commit 882d64afd5bb9b5363a8e97aab9e5a43cf778d51 Author: Philipp Kern Date: Sun Sep 11 23:45:06 2011 +0200 create-chroot: use directory in schroot snippet, not location commit 0ba357185e76fde311e8ee1f571fca4ee42008b6 Author: Philipp Kern Date: Sun Jun 26 22:14:08 2011 +0200 etc/99builddsourceslist: use backports.d.o for main bpo archive commit 4deabd9763c630992b00042824a838a45eeb7dc5 Author: Philipp Kern Date: Wed Jun 1 00:01:45 2011 +0200 create-chroot: create /var/lock/sbuild in the chroot commit 9634ef81025880f3c93201bbfd0b087a6965c9ef Author: Roger Leigh Date: Wed Dec 7 13:59:36 2011 +0000 NEWS: Document Build-Depends-Arch and Build-Conflicts-Arch commit 5f35abb2a5764c6592ac8bc6bbf14b98c383c689 Author: Roger Leigh Date: Wed Dec 7 13:56:56 2011 +0000 debian: Document addition of Build-Depends-Arch and Build-Conflicts-Arch commit 89ac7f291407d198c6f229e289867f90254e1bd8 Author: Roger Leigh Date: Wed Dec 7 13:55:15 2011 +0000 Sbuild: Support Build-Depends-Arch and Build-Depends-Indep commit 5d9d8894cd34f923736e9832ec0be8dd505b1ace Author: Roger Leigh Date: Sun Nov 27 21:53:17 2011 +0000 NEWS: Document schroot namespace fix commit 5d094074764799a936e0b95ef3c4ed587a33f4eb Author: Roger Leigh Date: Sun Nov 27 21:47:02 2011 +0000 debian: Close #612630 commit f082ad9fa12d61ec8c42ba0d979d37d60ee1c908 Author: Roger Leigh Date: Sun Nov 27 21:44:20 2011 +0000 Sbuild::ChrootInfoSchroot: Support session namespace Attempt to get session information using a session: prefix. If this fails, fall back to the old-style unprefixed session identifier, to support older schroot versions. commit fc085b97e1ee4acfd21206625093f24c3d1e5b64 Author: Philipp Kern Date: Sat Sep 3 13:35:13 2011 +0200 bin/create-chroot: add s390 to the linux32 architectures commit 8e56f027a0ac5f9958b258bc2a201f48f7555160 Merge: 44bd1e7 4ce195a Author: Philipp Kern Date: Sat Sep 3 13:34:18 2011 +0200 Merge branch 'master' of git://anonscm.debian.org/git/buildd-tools/sbuild commit 4ce195a64edc7785ac85fa7d2474b82914b09899 Author: Roger Leigh Date: Sun Aug 28 10:30:18 2011 +0100 Sbuild::Chroot: Remove apostrophes from perl code run via sudo commit 44bd1e7b7967928a22f06fdbbd5290de14b218dc Author: Philipp Kern Date: Tue Aug 23 07:31:03 2011 +0200 [Sbuild::Build] specify UTF-8 encoding in the .changes's MIME part (Closes: #638928) Thanks to James Vega for the report. commit 2943ba47ef805a04029aa46036e03e1fa3bff4c3 Author: Roger Leigh Date: Tue Aug 2 21:09:04 2011 +0100 NEWS: Document alternative resolving commit 48b1e75b42c092410a09a40b2c19461d20ded747 Author: Roger Leigh Date: Tue Aug 2 21:08:46 2011 +0100 debian: Document alternative resolving commit b015217c8d760720c582f77b5b07dba39dd08197 Author: Roger Leigh Date: Tue Aug 2 21:08:26 2011 +0100 Sbuild: Allow configuration of alternative resolving commit 7522366f83a44065a300350ac5e219dcd3715cbc Author: Roger Leigh Date: Sun Jul 24 12:46:22 2011 +0100 debian: Close #635250 commit 05ba5bf17cda2f072f22cc44d75cb76f3efd7a80 Author: Roger Leigh Date: Sun Jul 24 12:45:27 2011 +0100 Sbuild::Options: Add --jobs as an alias for -j commit 50091683e7007ae559ba759e3ceca218457e17d4 Author: Roger Leigh Date: Sat Jul 23 21:18:03 2011 +0100 debian: Close #635203 commit c1694ba41d9e27c3fd55ad0048c8743bc034e334 Author: Roger Leigh Date: Sat Jul 23 21:17:10 2011 +0100 debian: Bump version to 0.62.6-1 commit 74a1253f63cf881fa1c88eaad0f69f03d1a9bef4 Author: Roger Leigh Date: Sat Jul 23 21:17:00 2011 +0100 NEWS: Bump version to 0.62.6 commit a551a6f37ae7ffee3efc9c67d16ceb2531ff5614 Author: Roger Leigh Date: Sat Jul 23 21:16:06 2011 +0100 man: Add --chroot to synopsis commit b586962d4e3d148c51ce2b166e43259eb3486b85 Author: Roger Leigh Date: Wed Jul 13 19:57:32 2011 +0100 debian: Version 0.62.5-1 commit c6ab7925278f889a05995a42e445c08401305f37 Author: Roger Leigh Date: Wed Jul 13 19:55:50 2011 +0100 NEWS: Bump version to 0.62.5 commit 187b08800407178af052c37b04636259413c30a1 Author: Roger Leigh Date: Wed Jul 13 19:54:06 2011 +0100 test: Add checks for building from a source tree commit a8a60964f28b23fbaae73a61303505f7dad61aa4 Author: Roger Leigh Date: Mon Jul 11 16:06:52 2011 +0100 test: Test sbuild batch mode commit 277b539a40bb3f29e414df2edce7bc552e6e976c Author: Roger Leigh Date: Mon Jul 11 15:36:25 2011 +0100 test: Use generic paths commit 5f59d15bcc21f3b88c61017526684aaf98bf3b97 Author: Roger Leigh Date: Mon Jul 11 15:29:00 2011 +0100 sbuild: Build using any source directory name, not just package-version commit 0783ea3f44e160782e47cbd5221da04369a91e8f Author: Roger Leigh Date: Mon Jul 11 15:06:07 2011 +0100 Ensure that Dpkg::Version epoch and revision defaults are used correctly Set to 0 if absent for correct version comparison, but we need to check if that's the real value when using in filenames and other version strings. commit 159ee505ca7bba13565466880eac95664c949583 Author: Sebastian Andrzej Siewior Date: Mon Jun 27 22:19:32 2011 +0200 the mail-wrapper script is longer in home/buildd/bin This is the actual content for the .forward file Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Roger Leigh commit 40a1e33c24d589c616c435344d6b5b80c9eb7fa3 Author: Sebastian Andrzej Siewior Date: Mon Jun 27 22:19:31 2011 +0200 Make NO-DAEMON-PLEASE work with home in /var/lib/buildd buildd's home moved "recently" from /home/ to /var/lib. The init script was not updated. While in here, add a space after the name so the warning message is not squeezed. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Roger Leigh commit 59e10bdd5bb649f4631943e5b1de0f0f55d7f989 Author: Roger Leigh Date: Sat Jun 25 14:06:26 2011 +0100 Sbuild: Remove unused code commit 4d80969823ed8c8736c1347cb886664be8e7e33b Author: Roger Leigh Date: Sat Jun 25 11:41:07 2011 +0100 debian: Document use of more Dpkg modules commit 17f1cab30105897532fc85405660781e7625b371 Author: Roger Leigh Date: Sat Jun 25 11:39:20 2011 +0100 debian: Document lintian log colouring and $log_colour commit 5aeb3ea8065c4f5b32fd3e3ead58afaf0a218e75 Author: Roger Leigh Date: Sat Jun 25 11:39:01 2011 +0100 NEWS: Document log colouring for lintian and $log_colour commit a4cbee0b3951afb03de98a33d5b60630bfa57531 Author: Roger Leigh Date: Sat Jun 25 11:29:44 2011 +0100 debian: Close #631595 commit bb9312d265d809f75350905505111885e666ac19 Author: Roger Leigh Date: Sat Jun 25 11:29:35 2011 +0100 NEWS: Document $build_environment commit 41a49935d56602be093cae339147094e74de6db0 Author: Roger Leigh Date: Sat Jun 25 11:29:20 2011 +0100 Sbuild::Conf: Note lack of filtering of build environment commit 8ed34327528953d31f3a5e621c17e28ddffba159 Author: Roger Leigh Date: Sat Jun 25 11:23:17 2011 +0100 Sbuild::Conf: Add BUILD_ENVIRONMENT configuration key This allows addition of specific environment variables to the dpkg-buildpackage environment. commit f9f84cbca5716a292757e3be428240928d1269ea Author: Roger Leigh Date: Sat Jun 25 11:21:18 2011 +0100 Sbuild::Chroot: Add ENV_FILTER to allow customisation of filter Previous was set via the ENVIRONMENT_FILTER configuration key, but this is global, not per-invocation. Set default ENV_FILTER from ENVIRONMENT_FILTER. commit c83797d5380c0082cd48ef8facb332a8017ba70a Author: Roger Leigh Date: Fri Jun 24 22:52:58 2011 +0100 debian: Document /var/lib/sbuild/build commit 6deb6e8e3872df446c8e3d60b4aa992ea17e6f0d Author: Roger Leigh Date: Fri Jun 24 22:52:42 2011 +0100 NEWS: Document /var/lib/sbuild/build commit d2cb1f6913b82b7615d1fa289a596c5163d44c16 Author: Roger Leigh Date: Fri Jun 24 22:39:15 2011 +0100 man: Update description of /var/lib/sbuild commit 491807fa128f710de23eb161a67517e11d43d5a7 Author: Roger Leigh Date: Fri Jun 24 22:37:37 2011 +0100 build: Install /var/lib/sbuild/build Add directory for holding build trees; this can be bind mounted by schroot when starting a new session. This makes it easier to get at builds when using snapshot chroots, and also means the space for the build doesn't need to be in the chroot when using LVM snapshots, which would otherwise waste disc space. commit 882527190b01c0271767c2b1ca8923dcc3596a2e Author: Roger Leigh Date: Fri Jun 24 22:33:59 2011 +0100 Sbuild: drop unused split_version commit f4dd2a1dde292f190195a96ba361da6679c86a68 Author: Roger Leigh Date: Fri Jun 24 22:33:02 2011 +0100 sbuild: Use Dpkg::Version in place of split_version commit 8ab5cae5f3d01063aab147b0d3d528233d3c5122 Author: Roger Leigh Date: Fri Jun 24 20:29:51 2011 +0100 Sbuild::Build: Use Dpkg::Version rather than regexes and split_version commit dc71b36486b98077bca35026549e8d5057f33049 Author: Roger Leigh Date: Fri Jun 24 20:27:06 2011 +0100 Sbuild::Build: Set HOME to /sbuild-nonexistent in the chroot /nonexistent is the home directory of the nobody user; change to /sbuild-nonexistent to make it explictly clear that the directory does not exist, and this was done deliberately by sbuild, to avoid confusion with the nobody user. Thanks to Marc Haber. commit 7e2fc735d9b7986bc443fcc9ece5a2c70ceb06e1 Author: Roger Leigh Date: Fri Jun 24 19:43:59 2011 +0100 Sbuild: Replace built in version comparison with Dpkg::Version Part of patch set to remove duplicated logic and use libdpkg-perl. commit 0d8468a4b9b4dd1ce428310b3c86502c2b2a8c1b Author: Roger Leigh Date: Thu Jun 23 19:04:21 2011 +0100 sbuild: Remove obsolete and unused SBUILD-FINISHED logic commit 76277b346397ad03f451768efd893500c288292a Author: Roger Leigh Date: Thu Jun 23 18:50:58 2011 +0100 Sbuild: Implement dsc_files in terms of Dpkg::Control and Dpkg::Checksums Remove parse_file. The role of this function is now completely replaced in all code by Dpkg::Control and its related modules. commit a81a0e9b4e6f16bf6bd111b5faa26e477e347448 Author: Roger Leigh Date: Wed Jun 22 17:45:36 2011 +0100 sbuild: Use Dpkg::Control in place of parse_file commit 77c8cf80bcb746ff1b8232cac0cc6df85d0d2d92 Author: Roger Leigh Date: Wed Jun 22 15:19:00 2011 +0100 debian: Close #612324 commit 601af3d6f3a7028b88e1b88e7e3afeeeef4877bb Author: Roger Leigh Date: Wed Jun 22 15:13:39 2011 +0100 sbuild: Generate source package prior to real build So that the code code only operates on .dsc files either locally or via download, package directories with dpkg-source -b before instantiating and using Sbuild::Build. This additionally means there's a single codepath for downloading sources rather than a separate building path as well, simplifying the logic overall. commit 06b2db93d292b602cf19aae62d992a7c24d93deb Author: Roger Leigh Date: Mon Jun 20 23:29:25 2011 +0100 Sbuild::Build: Only log to one logfile, dropping build log Only create the package build log, dropping the main build log (which would only ever be used to log errors prior to a build commencing, following which all output would be redirected to the package build log). This removes a layer of I/O redirection, which complicated the logging code, and added an extra layer of hairy complexity. commit 81a63301893120ddfe5ed98cc809d050149763e6 Author: Roger Leigh Date: Mon Jun 20 20:56:28 2011 +0100 sbuild: Only create and run a single job commit d98f2963e35d5c9178a72d0b68a446c7c737ecc5 Author: Roger Leigh Date: Mon Jun 20 20:35:17 2011 +0100 debian: Document sbuild building a single package only. commit 218be9a06a99d1f27cc4f601d2182dba3cc9c85d Author: Roger Leigh Date: Mon Jun 20 20:35:00 2011 +0100 NEWS: Document sbuild building a single package only. commit 34ebcd92526ee67531d2360eedf89f062bf1e606 Author: Roger Leigh Date: Mon Jun 20 20:34:43 2011 +0100 man: Document sbuild only building a single package commit 570be3c49e966d786578bf4d5980879e47a648b8 Author: Roger Leigh Date: Mon Jun 20 20:26:51 2011 +0100 sbuild: Only permit one build at once commit 540747d0b7b14a62ff75b8371af6aedcd7a7ff56 Author: Roger Leigh Date: Mon Jun 20 20:26:30 2011 +0100 Sbuild::Build: Tidy log colouring and reduce verbosity commit 0ec4080e2a737238a0786e832a5b3b744a7801e2 Author: Roger Leigh Date: Mon Jun 20 19:41:25 2011 +0100 debian: Close #630791 commit 098afec7fa6d7e60989b3b99c08533ffd6000d33 Author: Roger Leigh Date: Mon Jun 20 19:35:23 2011 +0100 sbuild-adduser: Use current options commit b5fc26f99086fcbc4e291730a19bf057856507ab Author: Roger Leigh Date: Sun Jun 19 22:34:24 2011 +0100 debian: Document log colouring commit 4f55b085b686a215578ec3d8eb8dfe0cca3ed936 Author: Roger Leigh Date: Sun Jun 19 22:34:15 2011 +0100 NEWS: Document log colouring commit 3ed62fdb8a61c6492e7dfae3288efced0446f541 Author: Roger Leigh Date: Sun Jun 19 22:31:38 2011 +0100 Sbuild::Build: Colour distribution if different from changelog In order to make it clear that there may be a problem e.g. if building an upload for experimental in an unstable chroot, colour yellow if different. commit 5762ea37d88b89891e1f67fb21548144d39541f3 Author: Roger Leigh Date: Sun Jun 19 22:30:34 2011 +0100 Sbuild::Build: Make log colouring generic Colour lines based upon regex matches. Make the regexes configurable using the same mechanism as for log filtering. Also make colouring configurable as for log filtering. commit e371d7ff4343c9a82550ef94bfaaed9238f8de61 Author: Roger Leigh Date: Sun Jun 19 20:42:45 2011 +0100 debian: Close #631060 commit 7e87fe6cf3e20ce4a2397659c12d2c257cc4e6a5 Author: Roger Leigh Date: Sun Jun 19 20:42:23 2011 +0100 Sbuild::Build: Highlight lintian results in red/green commit 5252ea9dce7b876c5b59c439f650ee45709560f5 Author: Roger Leigh Date: Sun Jun 19 20:41:22 2011 +0100 debian: Bump version to 0.62.4-1 commit dc3a4b77f23a769cbac977d650d14a926cd24b62 Author: Roger Leigh Date: Sun Jun 19 20:41:09 2011 +0100 Bump version to 0.62.4 commit 868715d47b7dff0682bb602407b5d4742e34ac45 Author: Roger Leigh Date: Wed Jun 15 12:55:38 2011 +0100 Sbuild::Conf: Sync signing options from buildd-0.62.3 commit 4b004185bfb2264e21d650cce3ad091f22cc324b Author: Roger Leigh Date: Sat Jun 11 15:50:55 2011 +0100 Sbuild: Set HOME=/nonexistent in the build environment Sbuild::Conf: Allow HOME in environment Sbuild::Build: Set HOME=/nonexistent This additionally ensures that HOME is set when current sbuild versions are used with older (1.2.x) versions of schroot where HOME is not set when the -p option is used to preserve the user environment. commit 99406aec96b0952e1b548ed816ba6e99e296b8ee Author: Roger Leigh Date: Sat Jun 4 00:08:29 2011 +0100 debian: Close #629005 commit a0f6242a2822bcb055386c51bd8630abb46bbd25 Author: Roger Leigh Date: Sat Jun 4 00:00:50 2011 +0100 Sbuild::Utility: Only end session if one exists commit ac44b441b5a5f881bda829a56918b0d97de7d6e8 Author: Roger Leigh Date: Fri Jun 3 23:56:12 2011 +0100 Sbuild::Build: Missing lsb-release is not an error commit 7a1fe3d277b02f13e06b831166f235947373125b Author: Roger Leigh Date: Wed Jun 1 19:39:19 2011 +0100 Sbuild::Build: Add 'Build Dir' to replace 'Chroot Build Dir' In order to reduce direct access to the build chroot from the host, add 'Build Dir' to store the path to the build inside the chroot, to replace 'Chroot Build dir', which stores the path to the build from the host. commit e9fa79621c10803f076c7ec3261f87112592369c Merge: b293b44 f5c642e Author: Roger Leigh Date: Wed Jun 1 11:39:13 2011 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit b293b44bc97e4d9c5e72d544b0d7d839634c8e02 Author: Roger Leigh Date: Wed Jun 1 11:37:05 2011 +0100 Sbuild::Chroot: Create chroot lock inside chroot To avoid issues with /var/lock being an absolute symlink to /run/lock on the host (which may or may not exist depending upon which Debian version the host is running, and which causes the chroot lock to be shared amongst multiple build chroots), the chroot lock is created and removed inside the chroot. Inside the chroot, absolute symlinks will always point inside the chroot, so /var/lock will always be a valid (and unshared) location. commit acae84866e28613ccbfe3dbb501c5f300ddd819c Author: Roger Leigh Date: Wed Jun 1 11:35:02 2011 +0100 debian: sbuild needs apt-utils for dependency package commit 398c51c569099c201383b0b34aef59abdf1b7853 Author: Roger Leigh Date: Wed Jun 1 11:34:41 2011 +0100 Sbuild::Build: Filter package build directory in log commit f5c642e0786356ccb58d141dda0dbebf0778227a Author: Philipp Kern Date: Tue May 31 23:31:30 2011 +0200 create-chroot: set check intervals to 0 for the new filesystem commit 0c0eefab62b93e98ff5fc204dbb7fe8b8051075d Author: Roger Leigh Date: Mon May 30 16:18:13 2011 +0100 debian: Document environment logging commit 1d76274e548eb1da41101cb000c1369cfad65102 Author: Roger Leigh Date: Mon May 30 12:39:11 2011 +0100 Sbuild::Build: Log build environment prior to building commit 6c2060a7420b700e81cd33a78abd981a5567d7d6 Author: Roger Leigh Date: Mon May 30 11:02:05 2011 +0100 debian: Close #608416 commit 1a64639219183889f44142cb68d308776b4de602 Author: Roger Leigh Date: Mon May 30 11:00:57 2011 +0100 sbuild-createchroot: Don't overwrite sudo symlink commit 60d0fe5fde49afaeaf71877a73edce6bd29ddedb Author: Roger Leigh Date: Sun May 29 17:02:41 2011 +0100 NEWS: Document -j commit 8a94f8327bdee954deb62ed12e4969cd4dd5b2fb Author: Roger Leigh Date: Sun May 29 17:01:57 2011 +0100 debian: Close #626357 commit f3da9667e5763d1f6ba13b7a572c344f5ef80b86 Author: Roger Leigh Date: Sun May 29 17:01:19 2011 +0100 Sbuild::Options: Add -j option to run parallel builds commit e631f871e0ec70fc41f93802ca168f3e13b94da2 Author: Roger Leigh Date: Sun May 29 16:22:25 2011 +0100 Sbuild::Build: Simplify lintian status codes commit a05e7a6a14e67f21987905b3ca37a0cf5b988c63 Author: Roger Leigh Date: Sun May 29 16:22:10 2011 +0100 debian: Don't package removed files commit 7584c86cb333e5457cc31c9261bab89911335f12 Author: Roger Leigh Date: Sun May 29 14:29:27 2011 +0100 debian: Document requirement for schroot >= 1.4.22 commit 6cc2097c04d1ecac9c28d6e84e9d607dbe10caea Author: Roger Leigh Date: Sun May 29 14:28:34 2011 +0100 debian: Bump minimum schroot version 1.4.22 is required for the buildd profile. commit 68591471252f9fb7f9cdcd5ce34b2ce84912512f Author: Roger Leigh Date: Sun May 29 14:27:29 2011 +0100 NEWS: Document buildd profile move to schroot commit 84ad6f46421f6b5f94c30906eafb4dc3f2a6c3f6 Author: Roger Leigh Date: Sun May 29 14:16:10 2011 +0100 debian: sbuild is arch all again commit 1c398a4498172d25db29128cfca7415c16c354ad Author: Roger Leigh Date: Sun May 29 14:23:07 2011 +0100 NEWS: Remove sbuild-schroot wrapper commit fe86c4d70da50a03a4376cfec9f3c14200a591c3 Author: Roger Leigh Date: Sun May 29 14:22:56 2011 +0100 debian: Remove sbuild-schroot wrapper commit b5f31a7c6afec45c6036acb48ad6447819ebefad Author: Roger Leigh Date: Sun May 29 14:22:33 2011 +0100 Remove sbuild-schroot wrapper program commit 8ff97c75246b424f19730befab9393173673f43f Author: Roger Leigh Date: Sun May 29 14:17:32 2011 +0100 Sbuild::Conf: Use plain schroot binary rather than wrapper commit 3b5850556d93a7e587d4d45c9f322e86b6680353 Author: Roger Leigh Date: Sun May 29 14:15:48 2011 +0100 Sbuild::ConfBase: Default BUILD_USER to current user commit 1242f671fd267319028602f79b8ac1923787baed Author: Roger Leigh Date: Sun May 29 14:16:54 2011 +0100 Sbuild: Use BUILD_USER rather than hardcoding sbuild commit af7c63329c4b6d0c9cd68e04e000e830107027d2 Author: Roger Leigh Date: Sun May 29 13:44:11 2011 +0100 debian: Close #617450 commit a569394e3734f5d532f2c7eaa297b22727abfa6b Author: Roger Leigh Date: Sun May 29 13:43:13 2011 +0100 Sbuild::Build: Add lintian and piuparts status to summary commit 5efb94d1696c80d88f28627e8897fe4edc290930 Author: Roger Leigh Date: Sun May 29 13:22:31 2011 +0100 debian: Close #626826 commit d1e199f2c2b666c477be01ebed872f2bdb298704 Author: Roger Leigh Date: Sun May 29 13:19:48 2011 +0100 Sbuild::Chroot: Use /var/lib/sbuild/chroot-lock /var/lock may be a symlink to /run/lock on the host, which makes direct access using $target/var/lock impossible from the host. Switch to using /var/lib/sbuild which is guaranteed to be a real directory. commit 152b9de5e3fe9f9e638000bd278385c8c5da893f Author: Roger Leigh Date: Sun May 29 13:06:46 2011 +0100 debian: Close #619892 commit 625fb4583dd4400b812a24f7ee91c3f22df54f5c Author: Roger Leigh Date: Sun May 29 13:05:27 2011 +0100 debian: Lock rather than delete accounts On purge, lock accounts. On installation, unlock. commit 531a6a9380d2ec7b6b242d60488b8c8fdee7cf02 Author: Roger Leigh Date: Sun May 29 11:02:07 2011 +0100 debian: Close #622735 commit b0042a56435c4ff1d1e6892c3adfb418bc81ce0e Author: Roger Leigh Date: Sun May 29 11:01:18 2011 +0100 sbuild-createchroot: Add sbuild user and group before updating basesetup() requires the presence of the sbuild user and group to chown various files/directories. commit f7c772fa45deaa41bbc35503e4568102cad5daf5 Author: Roger Leigh Date: Sun May 29 10:16:43 2011 +0100 debian: Close #627641 commit 377c53c2943b841e311919e30abc13a9e316cd7c Author: Daniel Baumann Date: Mon May 23 08:04:52 2011 +0200 Correcting sbuild.postrm to not fail if /etc/sbuild/chroot does not exist (Closes: #627641). Signed-off-by: Roger Leigh commit 04a8737ac4d95d3826ea4c4e9bdce9f93bf8c195 Author: Roger Leigh Date: Thu May 26 17:27:30 2011 +0100 debian: Close #627854 commit c09e21745d4e45b5eaa1ed5b3b80cc3a8e0a8873 Author: Samuel Thibault Date: Thu May 26 17:22:22 2011 +0100 Buildd::Mail: Remove empty newline from .changes ftp-master started refusing .changes files which have a trailing empty line (after the GPG end of signature). It happens that mutt introduces one when signing GPG in traditional mode. Other tools probably do too. buildd-mail-wrapper should probably drop it automatically. Signed-off-by: Roger Leigh commit 36614d123b4cff61896d815b882e717a76bb9f5e Author: Roger Leigh Date: Sun May 15 17:46:01 2011 +0100 debian: Document buildd init script runlevels commit 8a9bb2dfa8147a7437e67d4b0caf71bd13c71fee Author: Roger Leigh Date: Sun May 15 17:44:57 2011 +0100 debian: buildd init scripts uses standard runlevels Start buildd in 2-5, not S. Stop in 0, 1 and 6. commit 20440d40b9a40f01908798549d09bca346da14b9 Author: Roger Leigh Date: Sun May 15 16:05:13 2011 +0100 debian: Document buildd profile removal commit 3d33c55f3a2787c9e515cd8d3609cf01c73addf6 Author: Roger Leigh Date: Sun May 15 16:03:27 2011 +0100 sbuild: Remove buildd profile (moved to schroot) Because sbuild is arch-all and the profiles are arch-any, they need generating in an arch-any package in order to be useful. Additionally, all the other profiles are in the schroot package, so it makes sense to keep them together so they can all be maintained as a set. commit d73e2a25e145237c384950fd84789e2cd578510f Author: Roger Leigh Date: Tue Apr 19 12:02:28 2011 +0100 debian: Bump version to 0.62.3-1 and Close #622832 commit 6a40432c0ccf3846018efa93ff62e8db6535c381 Author: Roger Leigh Date: Tue Apr 19 12:02:02 2011 +0100 NEWS: Bump version to 0.62.3 and document alternatives change commit d4ff9f89a8d86a5350aa9f1dafdc6d1add9f2234 Author: Roger Leigh Date: Tue Apr 19 11:25:54 2011 +0100 Sbuild::ResolverBase: Allow alternative dependencies for same package Currently, when alternative dependencies are not allowed, only the first alternative is used. Here, this rule is relaxed when the alternative dependency or dependencies are for the same package name, i.e. foo (rel x) | foo (rel y) [ ... foo (rel z) ] since while these are separate dependencies, they are in reality a single logical dependency. commit fd9c9216f5c33d20d5b5011655be0f273ee010e7 Author: Roger Leigh Date: Tue Apr 5 10:46:54 2011 +0100 debian: Log colouring is configurable commit 4e4a7c90dd158394e67611c1880af05807ed6d47 Author: Roger Leigh Date: Tue Apr 5 10:46:15 2011 +0100 NEWS: Log colouring is configurable commit 6f8534d2e503245903ce5f0cd81c888f396918ee Author: Roger Leigh Date: Tue Apr 5 10:45:57 2011 +0100 Sbuild: Allow log colouring to be disabled commit 64ff82618b84282a98398ddb3c2d59991e3eeef6 Author: Roger Leigh Date: Tue Apr 5 00:26:50 2011 +0100 debian: Close #620758 commit 9f395ee14caf33352957728a28a2b90ecf7851e1 Author: Roger Leigh Date: Tue Apr 5 00:25:18 2011 +0100 Sbuild::ConfBase: Set MAILTO from hash in DISTRIBUTION SET trigger commit 6d45c877df377f2cc09ea4e62111dc149cde8226 Author: Roger Leigh Date: Tue Apr 5 00:24:39 2011 +0100 Sbuild::Conf: Set maintainer name in trigger commit 328b2f05918edf99d1db8cf8664e00805d7f2579 Author: Roger Leigh Date: Tue Apr 5 00:21:44 2011 +0100 sbuild: Move binNMU check to top level Must be done after processing options, or else it will never work. commit 9af4466c20cfb9a31f99cb50a132a433e58cceed Author: Roger Leigh Date: Tue Apr 5 00:05:19 2011 +0100 debian: Merge buildd-0.61.0 changes commit 4bb4614487f3eb2dfcf410121c50406a5dd514ce Author: Philipp Kern Date: Sat Apr 2 13:43:14 2011 +0200 [Buildd::Daemon] move_to_upload: fix binNMU uploading commit b8fba2de0b2c273d2983007135502cc3edc196bc Author: Philipp Kern Date: Tue Mar 29 20:11:12 2011 +0200 [Buildd::Daemon] support autosigning of binNMUs commit 3382ef353c61963d9983a2892731db4f6c9c2f0a Author: Philipp Kern Date: Mon Mar 28 21:50:39 2011 +0200 [Sbuild::Conf] adjust ENVIRONMENT_FILTER to be sane commit b20bb0f6848f8f0b17414ac47f53b523607dc20e Author: Philipp Kern Date: Mon Apr 4 23:46:13 2011 +0100 Sbuild::Build: Forward port build autosigning Sbuild::Conf: Put SIGNING_OPTIONS into an array instead of overwriting values. Sbuild::Conf: Handle command-line signing options correctly. Sbuild::Build: Invoke debsign post-build. Passing -k to dpkg-buildpackage involves the chroot having access to key material. Invoking debsign post-build outside of the chroot seems to make much more sense. It might be interactive at this point but at least for the buildd.d.o case that's not going to happen, so that's ignored in this design. Sbuild::Build: Only try to invoke debsign on successful builds. commit 6f9df8381a31b9d4ca8928fe8e6f0cdaec9c3d60 Author: Roger Leigh Date: Mon Apr 4 23:18:01 2011 +0100 Sbuild::Build: Add extra checks when doing binNMU If the maintainer name is unset, this can lead to errors. Note that this should be detected earlier, but check here as well to ensure we never use maintainer name undefined. commit 5d822d9f99c1601c281cd9cedc337ffeec097beb Author: Roger Leigh Date: Mon Apr 4 22:02:59 2011 +0100 debian: Close #620112 commit 961752291078ffa5f5dcea15be508917dfa0d15d Author: Anders Kaseorg Date: Mon Apr 4 21:57:36 2011 +0100 Sbuild::Build: Improve binNMU changelog handling According to https://wiki.ubuntu.com/MultiarchSpec#Binary%20NMUs , although a Multi-Arch: same package may not be binNMU’d on individual architectures, it should be possible to schedule a binNMU on all architectures at once, and have the resulting packages remain co-installable. However, this does not quite work right now for a silly reason: sbuild generates a different timestamp for the binNMU changelog entry in each build, and the differing changelog.gz files break co-installability. This fixes the problem by generating the timestamp in a deterministic way: we just copy the timestamp from the previous changelog entry. (Since the source has not changed since that time, it seems like as good a time as any to write into the changelog.) Certain automated backport setups that use --append-to-version are also affected by this issue and require this fix as well. Use dpkg-parsechangelog to parse previous changelog entry to acquire all needed information, including the correct date. Signed-off-by: Roger Leigh commit 40205e7eb6ba199e7a900f27c12c61edd20a6b7c Author: Roger Leigh Date: Mon Apr 4 18:11:12 2011 +0100 debian: Close #620589 commit 9a73da4e5c4b261a549d3942b4469ffe4935bdb3 Author: Roger Leigh Date: Mon Apr 4 18:10:21 2011 +0100 NEWS: Document log filtering changes commit baf300b302d2fab45eaa96c06eea2a95b353600d Author: Roger Leigh Date: Mon Apr 4 18:08:16 2011 +0100 Sbuild::Conf: Add LOG_FILTER Allows disabling of log filtering. commit 7bfce2207291c4299f36c85fada45cdb6e43638f Author: Roger Leigh Date: Mon Apr 4 18:05:45 2011 +0100 Sbuild::Build: Improve clarity of log filtering Surround filter string with "«" and "»" so that strings such as CHROOT and BUILDDIR can't be confused with any actual appearance of the same string in the build log. commit c8e986d023df635dd8e9fc73a4cf45c4b0510765 Author: Roger Leigh Date: Mon Apr 4 17:45:30 2011 +0100 debian: Close #620797 commit cefa705393f0ae4c1f38f8d740eea5f77d0a9a78 Author: Roger Leigh Date: Mon Apr 4 17:42:17 2011 +0100 Sbuild::ResolverBase: sources.list fragments must have 0644 permissions This is needed in order for apt-cache to be able to read them when running as a normal user (not root). commit ead64a7794af0bbac877746c278b41de37ba94a4 Author: Roger Leigh Date: Mon Mar 28 23:51:05 2011 +0100 Revert "man: Document --suppress-successful-logs" This reverts commit c448d24981d6e405e410f40ff83af726a5931edf. commit 1bf2b951365ef04ab4492516e32bc0662b8c3cc6 Author: Roger Leigh Date: Mon Mar 28 23:50:50 2011 +0100 Revert "sbuild: Add new option to suppress log mails for successful builds" This reverts commit 81f4ee05f49275fc0417099a9e3f2bd57b3ac001. commit ef4dc57770f5ef497ace28310bd20abd3a327136 Author: Modestas Vainius Date: Sun Mar 27 00:56:37 2011 +0200 Sbuild::Conf: Rename end_session to purge_session Rename: $end_session -> $purge_session END_SESSION -> PURGE_SESSION for consistency with the rest of similar sbuild.conf settings. Also fix PURGE_SESSION key properties (TYPE, HELP, CHECK) which were forgotten after copy&paste from PURGE_BUILD_DEPS. Signed-off-by: Roger Leigh commit c47a8ab88cedc9423aabad7914bb4374952e9cc4 Author: Roger Leigh Date: Sat Mar 26 20:52:41 2011 +0000 debian: Close #619332 commit c703076f82f400ba29990d7f1aee50499698cf13 Author: Roger Leigh Date: Sat Mar 26 20:50:43 2011 +0000 NEWS: Document --purge-session and $end_session commit edec8e64208bc31f8dac4d16f5b03099d73ea7c6 Author: Roger Leigh Date: Sat Mar 26 20:46:35 2011 +0000 Sbuild::Conf: END_SESSION allows same purge modes as purge options commit 466a633a279268bf74db3a385b40d0a70435d73b Author: Roger Leigh Date: Sat Mar 26 20:23:26 2011 +0000 debian: Close #619526 commit 5df906cd22c7f073edb6a51af8a6d49a5e208aa7 Author: Marc Deslauriers Date: Sat Mar 26 20:20:27 2011 +0000 Sbuild::Build: Add work around for wrong build-essential entry on Ubuntu Lucid Work around Lucid issue that has diff listed in build-essential instead of diffutils. This causes schroots that don't have universe enabled to fail to install dependencies. (LP: #741897). This may be worthwhile for Debian users who want to build packages for Ubuntu. Signed-off-by: Roger Leigh commit e40ed8704cc7858065d2e443785c9381fc1b1c69 Author: Roger Leigh Date: Sat Mar 26 20:18:42 2011 +0000 debian: Close #619002 commit c448d24981d6e405e410f40ff83af726a5931edf Author: Roger Leigh Date: Sat Mar 26 16:28:14 2011 +0000 man: Document --suppress-successful-logs commit 81f4ee05f49275fc0417099a9e3f2bd57b3ac001 Author: Philipp Kern Date: Fri Mar 25 16:19:10 2011 +0100 sbuild: Add new option to suppress log mails for successful builds With autosigning one might just be interested in processing the failed logs as the successful logs do not need any manual handling. commit 00293ecbb9cd4d639f5d2ad69fd973c66b3fe4f8 Author: Philipp Kern Date: Fri Mar 25 15:48:32 2011 +0100 [Buildd::Daemon] add arch_all building support commit f096e18462a2be6117739bab7eadc383a32ec7b5 Author: Philipp Kern Date: Thu Mar 24 21:40:22 2011 +0100 [Sbuild::Build] invoke debsign post-build Passing -k to dpkg-buildpackage involves the chroot having access to key material. Invoking debsign post-build outside of the chroot seems to make much more sense. It might be interactive at this point but at least for the buildd.d.o case that's not going to happen, so that's ignored in this design. commit c725c0a269282654376aa154043c51596205b928 Author: Philipp Kern Date: Thu Mar 24 20:46:12 2011 +0100 [Sbuild::Conf] handle command-line signing options correctly SIGNING_OPTIONS put into an array instead of overwriting values. commit a4d14a3b0b19c120b3ff640badfb8d6ce853cefa Author: Philipp Kern Date: Thu Mar 24 20:42:29 2011 +0100 [Sbuild::Build] check correctly for SIGNING_OPTIONS being an ARRAY commit d8cc7e5bea0d51d7550e2eeb66a36eb75906f365 Author: Philipp Kern Date: Thu Mar 24 19:58:17 2011 +0100 [Buildd::Uploader] make .changes -> .upload substitution clearer commit d0de2ffcf4bd31b3235e04938d8e6c7b20aabb9e Author: Philipp Kern Date: Thu Mar 24 19:22:45 2011 +0100 [Sbuild::Build] attach a .summary file to MIME build logs commit 1f688ed937015682b393862c7d8edaaf0295430e Author: Philipp Kern Date: Thu Mar 24 15:34:26 2011 +0100 [Sbuild::Build] put KEY_ID into the log mail header if set commit 914e22d60ccd95ea8cba4733ed698fa81014bc72 Author: Philipp Kern Date: Thu Mar 24 15:29:48 2011 +0100 [Buildd::Daemon] put signed builds into the upload queue commit 76bb3689f4ebd1c8a38b936d38c1a13c9e08cdca Author: Philipp Kern Date: Thu Mar 24 15:07:25 2011 +0100 [Buildd::Daemon] pass SIGN_WITH as keyid to sbuild commit da7e48b9b33c289b5342e51dfd822f32ae5767b9 Author: Philipp Kern Date: Thu Mar 24 15:02:45 2011 +0100 [Buildd::DistConf] SIGN_WITH added as a new variable commit 7e4e1f96a86c6b624649643fb79657d150a78535 Author: Philipp Kern Date: Thu Mar 24 14:53:43 2011 +0100 [Buildd::Daemon] remove unused read_config function commit 276a761cdbba468d787b4340c5ccec83f76d1a7f Author: Philipp Kern Date: Sat Mar 19 14:48:55 2011 +0100 debian/rules: do not install the init script on buildd builds commit 1759b73076705676e14747c174efe86184928746 Author: Philipp Kern Date: Sat Mar 19 14:44:12 2011 +0100 debian/buildd.*{inst,rm}: remove 0.58.3-1 upgrade code commit 66024919a6f64ecec8873b3bc1a34249f5112b94 Author: Andreas Barth Date: Sat Feb 19 14:03:52 2011 +0100 squeeze released: git rid of etch-only code, change codenames in creat-chroot commit 83012e2f6001c2391c9ebccd339b7e5bed56c1b0 Author: Andreas Barth Date: Sun Mar 13 22:50:09 2011 +0100 take build_dep_resolver from wanna-build if not locally configured commit 90d94ba3b20c9bb84f78b0b4ac03170039df1e05 Author: Roger Leigh Date: Sat Mar 26 15:08:15 2011 +0000 .gitignore: Add newly-generated files commit 1489e252d1479bb60adc6eef590b86191e5ea847 Author: Philipp Kern Date: Fri Mar 25 22:10:35 2011 +0100 [Buildd::Daemon] fix up retry commit 085708fe07458005b4c2495d37af705447b0dbf5 Author: Roger Leigh Date: Wed Mar 23 23:56:58 2011 +0000 Sbuild::Build: Don't log repeated schroot deprecation warnings Log only once, then ignore subsequent messages. commit 65cc424b4e54a8d61a3a451473b750b50b5258dd Author: Roger Leigh Date: Wed Mar 23 23:26:11 2011 +0000 TODO: Update commit faca465524877d3a6e77888e96ca96402b541d08 Author: Roger Leigh Date: Wed Mar 23 23:25:57 2011 +0000 debian: Close #619416 commit e6089d3188af7ff9c24b00f5f310cbf88e8cc62c Author: Roger Leigh Date: Wed Mar 23 23:23:16 2011 +0000 Sbuild::Conf: Don't output BUILD_DIR by default Since it's build-specific, don't use in sbuild.conf or sbuild.conf(5). commit 2b7bf4a4bdaf2819b11a7c267e558c8b1f2746dd Author: Roger Leigh Date: Wed Mar 23 12:50:44 2011 +0000 Sbuild::ConfBase: Warn if $HOME is unset commit f5ea293c906298ffd2b3f7a974d90d072becdad0 Author: Roger Leigh Date: Wed Mar 23 10:40:57 2011 +0000 debian: Close #619288 commit 53f56cc34a416b60573fb7d0f5fb2ad39e4671c6 Author: Roger Leigh Date: Wed Mar 23 10:36:16 2011 +0000 Sbuild::ConfBase: Don't fail if HOME is unset If HOME not set in the environment, fall back to passwd.pw_dir. Fail outright if passwd entry for the current user does not exist, and don't fall back to LOGNAME or USER in the environment, just take it directly from passwd. commit b6f226ff0f7477f939b1c6498da526cc0a8be533 Author: Roger Leigh Date: Mon Mar 21 14:53:30 2011 +0000 debian: Close #619128 commit 45ef2313c76e40cee0bdc13f9405a07217c87f4e Author: Roger Leigh Date: Mon Mar 21 14:52:22 2011 +0000 wrapper: Allow root to bypass sbuild group membership checks commit 7f52bf7c7e7881d49e549b0b3e46d53e6bc806d0 Author: Roger Leigh Date: Mon Mar 21 14:52:02 2011 +0000 debian: Bump version to 0.62.2-1 and document new options commit 7f07ed01fedc85d9ac4c66d4ecfcce4758412333 Author: Roger Leigh Date: Mon Mar 21 14:51:16 2011 +0000 NEWS: Bump version to 0.62.2 and document new options commit b192bfc15d13e4f2d1be9b8ac065c0a4b9b556ba Author: Roger Leigh Date: Mon Mar 21 14:41:32 2011 +0000 Buildd::Daemon: Don't upgrade or distupgrade running sbuild commit f311dfece392534f25b03dace02d75fed6997e86 Author: Roger Leigh Date: Mon Mar 21 11:00:33 2011 +0000 sbuild: Add --no-apt-* options to disable default actions Allows disabling of apt clean, update, upgrade and distupgrade actions. commit 516552e446a47e5908ca3b17dc5ebaa172962066 Author: Roger Leigh Date: Sun Mar 20 23:06:58 2011 +0000 debian: Bump version to 0.62.1-1 and fix sbuild-schroot wrapper commit 767defee367ff548f14c6347aff899307c52e7d5 Author: Roger Leigh Date: Sun Mar 20 23:06:37 2011 +0000 NEWS: Document sbuild-schroot permissions checking fix commit 9607fdaacebe9c4008efbeaaaa7defa5ec36ce56 Author: Roger Leigh Date: Sun Mar 20 22:58:58 2011 +0000 Sbuild::ResolverBase: Remove File::Path dependency commit a4527c3dfc782204b6d1c6b28818e52249aef9f6 Author: Roger Leigh Date: Sun Mar 20 22:36:25 2011 +0000 wrapper: Enforce group access checks commit 07bf64f9c1c9664b2a7562412bacaba316faf802 Author: Roger Leigh Date: Wed Mar 16 18:57:32 2011 +0000 Sbuild::ConfBase: Really permit check disabling during build commit cb626bfbac1d562ac9861a097bba50130e91b42a Author: Roger Leigh Date: Wed Mar 16 18:57:10 2011 +0000 debian: Add missing perl modules for autobuilding commit 0cff4863c1753b16efeaab4a73e693ce2d60493b Author: Roger Leigh Date: Wed Mar 16 16:10:44 2011 +0000 debian: Document MIME and compression of log mails commit 0414e5c0c6828050a6f2cc93f34bc64e8b358b1f Author: Roger Leigh Date: Wed Mar 16 16:10:06 2011 +0000 NEWS: Document MIME and compression of log mails commit 89a5a371ae375f23a7622ee2396f19bde04f77b2 Author: Roger Leigh Date: Wed Mar 16 16:09:46 2011 +0000 Sbuild::Conf: Make MIME and log compression the default commit ecdac9e186cde1f47ca4f656bbf302ac064c6730 Author: Roger Leigh Date: Wed Mar 16 12:52:59 2011 +0000 Sbuild::Chroot: Don't run sudo with -p '-p' leads to $USER being root, and consequent permissions errors when trying to read files under /root. commit f4318e2d2fa499539ae29fbfe6d9a7327b64a1b3 Author: Roger Leigh Date: Wed Mar 16 12:52:15 2011 +0000 Sbuild::ChrootSetup: Enable privilege separation for generating keys commit 7a8d8fc292a3568e338634b7caf899325da55ede Author: Roger Leigh Date: Wed Mar 16 12:51:43 2011 +0000 sbuild-update: Create only one ChrootRoot object commit bb252ed2a5484b420ab14300d1531292ae656129 Author: Roger Leigh Date: Wed Mar 16 11:48:15 2011 +0000 Sbuild::Build: Remove log compression without MIME commit 1fbe5fec065681938d8ee8c106300b48c8a52f64 Author: Roger Leigh Date: Fri Mar 11 09:47:26 2011 +0000 debian: Add lintian override for sbuild setuid wrapper commit 206b6b0f547966ca2363450608403cc31a37c779 Author: Roger Leigh Date: Fri Mar 11 09:45:46 2011 +0000 debian: Fix buildd sbuild dependency for binNMU now it's arch-any commit 347a63f7f8c5895e0e874af17895777ead34e38e Author: Roger Leigh Date: Fri Mar 11 09:41:25 2011 +0000 debian: Bump version to 0.62.0-1 commit ba9f20e072c57651205594b146a48cbca339439a Author: Roger Leigh Date: Fri Mar 11 09:41:06 2011 +0000 NEWS: Bump version to 0.62.0 commit b3a341b7738599a7530641ef99feca411ec7347c Author: Roger Leigh Date: Fri Mar 11 09:39:40 2011 +0000 debian: Tidy changelog commit c1915ab66ddce10766c8f2439b45ba13edcb1eed Author: Roger Leigh Date: Fri Mar 11 09:39:32 2011 +0000 NEWS: Tidy commit 70174465eb0f23caf0f9e99246bb4080e5c43327 Author: Roger Leigh Date: Thu Mar 10 22:39:32 2011 +0000 debian: Document build dir name change commit 937047e1a574e575dcd047ef2ac943ae4c06b789 Author: Roger Leigh Date: Thu Mar 10 22:39:17 2011 +0000 NEWS: Document build dir name change commit 4905add4b224678d0cb82aa124e5a23d56b6af1d Author: Roger Leigh Date: Thu Mar 10 22:34:42 2011 +0000 Sbuild::Build: Shorted chroot build directory. Now /build/packagename-XXXXXX instead of /build-packagename_shortversion-archname-XXXXXX. This will reduce the chance of build failure on some architectures with path length limitations, and also for (buggy) packages using sockets, which also have a very short length limit. commit 94cf8c681f899241da9b97b93c0e5b2c3e286f08 Author: Roger Leigh Date: Thu Mar 10 20:07:01 2011 +0000 debian: Amend wanna-build removal comments commit e9e5d41bffaf712c6d1540c5597716eafaceb218 Author: Roger Leigh Date: Thu Mar 10 20:06:44 2011 +0000 NEWS: Document wanna-build removal commit 72f987c0a03e58358ea616628514efa0113f0332 Author: Roger Leigh Date: Thu Mar 10 19:02:33 2011 +0000 Sbuild::DB::Client*: Rename to Buildd::Client* commit bcb2ba816074de1a97582eff100aa0b0e5658bd5 Author: Roger Leigh Date: Thu Mar 10 18:54:30 2011 +0000 etc: Remove wanna-build.conf commit 087047679e8845e38041224d0f0bf21b83f959a0 Author: Roger Leigh Date: Thu Mar 10 18:50:53 2011 +0000 wanna-build: Remove commit cb5ffa9e11129a822e9ea117adfef266467b0b0b Author: Roger Leigh Date: Thu Mar 10 17:43:10 2011 +0000 debian: Remove wanna-build commit e0d3a270a3b1dfdd59b589a800a0ff424806bba5 Author: Roger Leigh Date: Thu Mar 10 16:37:29 2011 +0000 build: Add uninstall logic commit 23c116163a8fa3f3f77d45f32d76814367c87678 Author: Roger Leigh Date: Thu Mar 10 16:36:57 2011 +0000 Sbuild::Build: Only send mail after the build log has been closed commit d98e17dbccd0846abf2801edbe470aa23f357a3c Author: Roger Leigh Date: Thu Mar 10 16:36:25 2011 +0000 Sbuild::AptitudeResolver: Don't use Dpkg::Deps commit 13cfcfc820f93aeca30f8ee883575889958d462d Author: Roger Leigh Date: Thu Mar 10 15:21:43 2011 +0000 debian: Document coloured messages commit 00569948192cefd57d7ce7517d830b5f18e4a61f Author: Roger Leigh Date: Thu Mar 10 15:21:33 2011 +0000 NEWS: Document coloured messages commit f3c4b06fdc107a82e98edb2596a2b01adcbd2586 Author: Roger Leigh Date: Thu Mar 10 15:17:28 2011 +0000 Sbuild::Build: Colourise logs when logging to a TTY Errors, Warnings and Info messages are coloured red, yellow and green respectively. Build status is also coloured green for success and red for all failures. Note that this does not affect the logfiles or noninteractive log redirection. It is only enabled when running interactively and attached to a TTY. commit a0149d3f01947517ef6e7a300c02af850f9e69f4 Author: Roger Leigh Date: Thu Mar 10 14:42:53 2011 +0000 debian: Close #605763 commit 08c2db2a0c73b15f2cf73e21eb6c68a699053b9e Author: Roger Leigh Date: Thu Mar 10 14:42:43 2011 +0000 NEWS: Document log filtering commit d75049aef03682935686863a487ea65559c47886 Author: Roger Leigh Date: Thu Mar 10 14:28:45 2011 +0000 Sbuild::Build: Filter log messages Add the ability to filter out certain strings in the build log and replace them with a shorter form. This makes the build logs diffable between builds because the temporary chroot and build directory paths are replaced with a constant short name. commit 9d21d901b62e39c9275adbae4e9e2da5f515ebf4 Author: Roger Leigh Date: Thu Mar 10 14:27:58 2011 +0000 Sbuild::Build: Minor logging enhancements commit 3e1be14f06aad40fa59b00466c72d041ef57f124 Author: Roger Leigh Date: Thu Mar 10 14:25:44 2011 +0000 Sbuild::Build Rename abort to request_abort This avoids a name clash with the POSIX::abort function commit cca8c8fa2483bcd2bdb9b040b0fc94231e7d0e50 Author: Roger Leigh Date: Thu Mar 10 12:45:50 2011 +0000 debian: Document signal handling commit 1d48ef90bd8c51ee41aa0bb803065fc56c1f812f Author: Roger Leigh Date: Thu Mar 10 12:45:38 2011 +0000 NEWS: Document signal handling commit e206f9620435f2a18bad2464a7d904c649a42cde Author: Roger Leigh Date: Thu Mar 10 12:39:24 2011 +0000 sbuild: Add safe signal handling Remove all cleanup logic from the shutdown signal handler. The handler now just calls the abort method on the Build object, which sets an ABORT variable containing the reason for aborting. The build sequence calls the check_abort method to poll for an ABORT request at frequent intervals (before every long running job, and for each log line printed when dpkg-buildpackage is being run. The normal cleanup and shutdown logic is used on trapping a signal, so the chroot should always be left clean. Once exception is if hitting C-c from a shell, which may cause SIGINT to be sent to all processes in the process group when apt-get or aptitude are part way through installing packages. This may or may not result in a bad package state inside the chroot (but is more reliable than the existing method). Signals may now also be received multiple times, leading to multiple ABORT requests, but not premature program termination. commit fe05ff0952d19bee8e9eac601eece95772fcc2dc Author: Roger Leigh Date: Thu Mar 10 00:51:31 2011 +0000 debian: Document exceptions and logging commit 9701ec6c0faa8b2cf60e4aef11ac88f6909d8922 Author: Roger Leigh Date: Thu Mar 10 00:51:21 2011 +0000 NEWS: Document exceptions and logging commit 690c24bea7b3ee436ab3947cb166f040da1d6513 Merge: ce5254c 35a80fb Author: Roger Leigh Date: Thu Mar 10 00:46:52 2011 +0000 Merge branch 'master' into exception-handling Conflicts: lib/Sbuild/Build.pm commit 35a80fb0e6ee4c28e4a266abbe2da1281e8a8b25 Author: Roger Leigh Date: Thu Mar 10 00:38:37 2011 +0000 debian: Document sbuild user and privilege separation commit a634b464889693c9170f73c56d03d8c37046d2ac Author: Roger Leigh Date: Thu Mar 10 00:38:19 2011 +0000 NEWS: Document sbuild user and privilege separation commit d2a2d43a7e3ea2d7ce109172299d3e5f7cadf01d Author: Roger Leigh Date: Thu Mar 10 00:29:44 2011 +0000 sbuild: Use sbuild user for building Rather than using the user invoking sbuild, everything inside the chroot is done either as root or sbuild. The intention behind this is to increase the privilege separation between the user and sbuild, with the ultimate aim being the user having no access to the build chroot; all access will be mediated via sbuild. The current change has several implications: - a wrapper program, sbuild-schroot is used to run schroot. This handles switching to the sbuild user inside the chroot. - all files created inside the chroot must be owned and writable by user and group sbuild. The user ownership is required so that the sbuild user can create and delete files. The group ownership is so that the user can create and delete files. - group write access is removed during the build stage, to prevent external tampering. Note that due to the architecture of sbuild, the user may still interfere with the process themselves, and gain root inside the chroot either via schroot or sbuild-schroot. These loopholes will be closed by future changes. The current changes do prevent accidental tampering, but not deliberate interference. commit 5342feb52ef29b803bcccf5a8a56e14017d5ee1d Author: Roger Leigh Date: Wed Mar 9 22:34:11 2011 +0000 debian: Install sbuild-schroot wrapper sbuild is now an arch-any package Also add build-arch/indep and install-arch/indep rules. commit d260a28f26a1ef2693343a7b92bf1d80a6a75bcf Author: Roger Leigh Date: Wed Mar 9 22:31:34 2011 +0000 Sbuild::Conf: Allow consistency checks to be avoided for dumpconfig sbuild-dumpconfig should be able to dump the defaults whether or not the system or user configuration is sane. Here, we don't load the system configuration, and avoid validation of everything else. Also, print 1; at the end of the configuration output to make it valid Perl. commit b485bb3e5a213a4a7bf40547327d6dacc02c3439 Author: Roger Leigh Date: Wed Mar 9 22:30:07 2011 +0000 debian: libexecdir is /usr/lib commit c6887d7e28ceafda86c915dea54379125a3d070f Author: Roger Leigh Date: Wed Mar 9 22:29:16 2011 +0000 build: Use datadir rather than libexecdir for scripts commit ee04dc8f8cff2d7a3ee200c50bd695f2c801a25a Author: Roger Leigh Date: Wed Mar 9 22:14:08 2011 +0000 wrapper: Wrap schroot invocation to run as sbuild user commit ce5254cbf8e2b962b0c4ce2aaf67fbd4977087c4 Author: Roger Leigh Date: Tue Mar 8 23:50:55 2011 +0000 Sbuild::Build: Fail Stage only set in run() functions commit 2e366ac92eb597be2f399fde716f49006a34ac06 Author: Roger Leigh Date: Tue Mar 8 23:48:43 2011 +0000 Sbuild::Build: Throw exceptions doing hack binNMU commit 6d43309aedaf0712f0c79c348bfe0d9b0169382c Author: Roger Leigh Date: Tue Mar 8 23:44:22 2011 +0000 Sbuild::Build: Throw exception in build version check commit 162ce402b1f4ae2346815f1812920380fe0b06e5 Author: Roger Leigh Date: Tue Mar 8 23:37:27 2011 +0000 Sbuild::Build: build does not remove build tree There's no need to remove a dirty tree before unpacking; we now always build in a unique temporary directory, so this is a no longer existing problem. We also don't remove the build tree on failure--this has been taken care of by the top-level cleanup routines for ages. commit 3dd5f7659cb0aa679a5df69c0d4168af9fb90850 Author: Roger Leigh Date: Tue Mar 8 23:35:20 2011 +0000 Sbuild::Build: Throw exceptions in open_build_log and build commit 6d7c7eee0eb496c850ba5b9b6a5ac8249e6760d1 Author: Roger Leigh Date: Tue Mar 8 23:24:52 2011 +0000 Sbuild::Build: chroot_arch throws exception on failure commit 2699a5c80b17b8bb96feb30c9428683ce5951b06 Author: Roger Leigh Date: Tue Mar 8 23:21:09 2011 +0000 Sbuild::Build: Split source packing and chroot update from run() commit a7bcb3b86198aaaecbb161fdef08e8e5913b3ddb Author: Roger Leigh Date: Tue Mar 8 22:49:28 2011 +0000 Sbuild::Build: Add exceptions for arch and space checks commit 6ece8b6899a3d2304983cfe0bbd485fd6aaab38a Author: Roger Leigh Date: Tue Mar 8 22:49:00 2011 +0000 Sbuild::Build: Remove unused 'Pkg Fail Stage' setting commit a6c0a057fe7269d9959b7cf9b8b1c537020901b5 Author: Roger Leigh Date: Tue Mar 8 22:48:18 2011 +0000 Sbuild::Build: Log exceptions prior to closing build log commit 6fe66218642eb128d5ba0e7cc83ac4c007148674 Author: Roger Leigh Date: Tue Mar 8 22:46:29 2011 +0000 Sbuild::Exception: Add status field commit c533951b86d51f8c00e8e5598750a0eadf89209e Author: Roger Leigh Date: Tue Mar 8 21:59:32 2011 +0000 sbuild: Add exception handler around Sbuild::Build::run commit 0580049fa2344260c739371a176aef94e21fbd58 Author: Roger Leigh Date: Tue Mar 8 21:59:12 2011 +0000 Sbuild::Build: set_dsc throws exception on failure commit 06049e6177c2e15ffa74b56eeb607db903af9230 Author: Roger Leigh Date: Tue Mar 8 22:19:38 2011 +0000 Sbuild::Build: Add exceptions to run() run() currently uses a number of gotos and labels to clean up on error. Unfortunately, this logic is both complex and fragile; cleanup tasks need doing in the correct order, or not at all. run() has been split up into separate functions to make the nested logic explicit, and now throws exceptions on failure; cleanup can be done before or inside the exception handlers, and the exceptions may be rethrown to allow cleanup back up the call stack. commit 11c9c7eca504748408c57f96aacbf5f58e51336c Author: Roger Leigh Date: Tue Mar 8 22:12:44 2011 +0000 debian: Build-Depend upon libexception-class-perl commit 99e127e446470810057960b8886288a222be7fa9 Author: Roger Leigh Date: Tue Mar 8 22:19:00 2011 +0000 Sbuild::Exception: New exception classes Add exception classes using Exception::Class. commit 8180f64ddead777c63778c671c417e57799a9b7d Merge: 6befac4 39ac178 Author: Roger Leigh Date: Tue Mar 8 00:23:07 2011 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 6befac4735626faae4192e4fd878aa9123206b92 Author: Roger Leigh Date: Tue Mar 8 00:09:59 2011 +0000 sbuild-apt: Run apt via the resolver commit 6f9ea88265ccaff48ab51d8c331b3fcde7799576 Author: Roger Leigh Date: Mon Mar 7 21:16:41 2011 +0000 debian: Document buildd.conf and buildd.conf(5) commit ded886270586faf49c9085a4783097ff57ef12fa Author: Roger Leigh Date: Mon Mar 7 21:16:28 2011 +0000 debian: Install buildd.conf(5) commit 61ad3b41be09d9b47ed20767070cebdf980f6ef3 Author: Roger Leigh Date: Mon Mar 7 21:16:11 2011 +0000 NEWS: Document buildd.conf and buildd.conf(5) generation commit 2d23287c3d6139089a95c7cbfa12266775e50b85 Author: Roger Leigh Date: Mon Mar 7 21:11:04 2011 +0000 build: Use absolute paths when running scripts commit f80c16669d0c66e7f1e92e2dc824599118ed432c Author: Roger Leigh Date: Mon Mar 7 18:51:38 2011 +0000 Build::Conf: Add metadata and use generic Sbuild::Conf read commit 39ac17865eb723923748b6edac215d983a9b82d1 Merge: 871a916 62ff1e4 Author: Philipp Kern Date: Mon Mar 7 22:02:33 2011 +0100 Merge branch 'buildd-0.61.0' commit 62ff1e479fe132fb7125e62b7a4fd0577396d5a9 Author: Philipp Kern Date: Mon Mar 7 21:59:49 2011 +0100 etc/25nssdatabases: exit cleanly if 20nssdatabases is found By exiting when 20nssdatabases is present we should achieve compatibility with both schroot from lenny (which doesn't ship this script) and squeeze (which has its nssdtabases configuration file format a bit different). commit a098125508ac39c65865db7a78330187eb8bdb29 Author: Philipp Kern Date: Mon Mar 7 21:47:07 2011 +0100 [Buildd::Daemon] only push NICE_LEVEL to sbuild_args if not zero commit 16a72bafe4c0f5dd21d1fd19f66064174578813d Author: Roger Leigh Date: Mon Mar 7 18:49:56 2011 +0000 Sbuild::Conf: Use Sbuild::ConfBase generic read commit 8a3f9d4336abe1a63e33dc3645004b977f4e4095 Author: Roger Leigh Date: Mon Mar 7 18:49:25 2011 +0000 Sbuild::ConfBase: Add generic read function commit 871a916a77cefef550ad6b5886de7b67a724d3e9 Author: Philipp Kern Date: Mon Mar 7 18:22:06 2011 +0100 [Buildd::Uploader] drop unused Sbuild module usage commit ccc1fd505d0bd3dc0edce56743669f1546801598 Merge: 2d2dc6a 8614f40 Author: Philipp Kern Date: Sun Mar 6 23:51:14 2011 +0100 Merge branch 'buildd-0.61.0' * buildd-0.61.0: [Sbuild::Chroot] guard ENVIRONMENT_FILTER usage [Buildd::Daemon] configuration loading is now implicit * Dropped for master (buildd-specific): debian: Bump version to 0.61.0buildd0 debian: Enable compatibility features on buildds commit 8614f407e7b04f68096f577f22edddbdf6186876 Author: Philipp Kern Date: Sun Mar 6 23:30:00 2011 +0100 [Sbuild::Chroot] guard ENVIRONMENT_FILTER usage commit e1f7219828e799941dea5974178f066752b04742 Author: Philipp Kern Date: Sun Mar 6 23:23:08 2011 +0100 [Buildd::Daemon] configuration loading is now implicit commit 2d2dc6abde59abf0ac6940cf35aad7449d6ed564 Merge: 0878859 28f3d0e Author: Philipp Kern Date: Sat Mar 5 11:25:52 2011 +0100 Merge branch 'buildd-0.60.0' Conflicts: debian/control lib/Sbuild.pm lib/Sbuild/Build.pm lib/Sbuild/Conf.pm commit 28f3d0e67853098788e9701e247a96de1911f876 Author: Philipp Kern Date: Fri Mar 4 18:32:37 2011 +0100 Allow MIME encoded build logs. If $mime_build_log_mails is set to 1, then you will get a multipart/mixed mail comprising either one or two parts: the build log is always included as an attached file, the .changes file is attached only if the build completed successfully. If $compress_build_log_mails is set to 1, then the build log will be sent gzip-encoded instead of plain text. Signed-off-by: Philipp Kern commit f1a7d0b06ff02c95b92f4f025450063e5c281e10 Author: Philipp Kern Date: Wed Mar 10 14:31:52 2010 +0000 sbuild: implement build log mail compression commit 08788592fc0000f87504b7ace9c2d4bea9292155 Merge: a3041fc 0f256e9 Author: Philipp Kern Date: Tue Mar 1 22:41:33 2011 +0100 Merge branch 'buildd-0.60.0' commit 0f256e92e6f4e017b60c24aea7895b4d551f1a01 Author: Philipp Kern Date: Tue Mar 1 22:40:42 2011 +0100 [Buildd::Mail] add more logging for check_state retries commit a3041fce9351dad1a9e1ca5b009d4f69afac6d60 Merge: c940aa2 1c08113 Author: Roger Leigh Date: Mon Feb 28 23:03:07 2011 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit c940aa2c73088cf6d2136a0fb84831cdb13238de Author: Roger Leigh Date: Mon Feb 28 22:58:42 2011 +0000 build: Automatically generate sbuild.conf and buildd.conf commit 1675af614617dc19a5e88ee17af32193f72993c4 Author: Roger Leigh Date: Mon Feb 28 22:51:41 2011 +0000 man: Add buildd.conf.5 manpage (generated) commit 3f48017ace6919484c327016a2f44727b5562db8 Author: Roger Leigh Date: Mon Feb 28 22:50:57 2011 +0000 sbuild-dumpconfig: Don't dump ignored defaults for manpages commit edc83413821f2abf44a0ffeac3e471902d15888f Author: Roger Leigh Date: Mon Feb 28 22:45:01 2011 +0000 Buildd::Conf: Ignore correct keys commit 5bcff99b458b591f7dab5beaf84fb87677f3fa79 Author: Roger Leigh Date: Mon Feb 28 22:39:18 2011 +0000 Buildd::Conf: Annotate all configuration keys Ignore DISTRIBUTIONS and UPLOAD_QUEUES because these are complex types that don't currently dump cleanly. commit 1536dff220f92be2209f727cb9ff8593922d6438 Author: Roger Leigh Date: Mon Feb 28 22:39:00 2011 +0000 Sbuild::DB::ClientConf: Annotate all configuration keys commit a6a3b48b083d96ae489df4135ef59ec117553635 Author: Roger Leigh Date: Mon Feb 28 22:38:31 2011 +0000 sbuild-dumpconfig: Allow defaults to be ignored commit 1c08113c274be1d08d87f59145a0583b0d540658 Merge: 4638fbc 81e7444 Author: Philipp Kern Date: Mon Feb 28 21:16:36 2011 +0100 Merge branch 'buildd-0.60.0' Conflicts: lib/Buildd/Mail.pm commit 81e744406835e8ca553d142185219393dc5840fb Author: Philipp Kern Date: Mon Feb 28 20:51:41 2011 +0100 [Buildd::Mail] check_state: back off for 0..120s on db query failure commit f5cccb5808f38a2a66b2c761c0e2905ad1cc8fa5 Author: Philipp Kern Date: Mon Feb 28 19:45:58 2011 +0100 [Buildd::Mail] also import exitstatus from Buildd commit 764cfe9451c2965d387f9371c0eeeec5943c3e35 Author: Philipp Kern Date: Mon Feb 28 19:35:28 2011 +0100 [Buildd::Mail] check_state: check w-b pipe exit status commit 4638fbcf4888008a0fe34a20ea1fd56643b0ebb9 Author: Roger Leigh Date: Sun Feb 27 22:01:19 2011 +0000 debian: Fix typo commit 8cbc575717549801b9b272a66136f6f126fa7d4a Author: Roger Leigh Date: Sun Feb 27 22:00:45 2011 +0000 NEWS: Fix typo commit bc951c6a74b08b58d5de42870e0f3bbefd1e5999 Author: Roger Leigh Date: Sun Feb 27 17:43:49 2011 +0000 Sbuild::ConfBase: Add GET handler for OVERRIDE_DISTRIBUTION commit 2f0206570584a61e24144788ca25fff84ed6510d Author: Roger Leigh Date: Sun Feb 27 17:43:17 2011 +0000 Sbuild::Conf: Handle VERBOSE correctly in interactive sessions commit dd7d4c5461a77e1e333381a452d0af9a1ea94643 Author: Roger Leigh Date: Sun Feb 27 17:42:51 2011 +0000 Sbuild::Conf: Use _get where defaults are useful commit a448fb449644eb9934b06bba800a94065e6e2bae Author: Roger Leigh Date: Sun Feb 27 17:42:16 2011 +0000 Sbuild::Conf: Add GET handler for MAILTO commit 835f9d3f0e9852b2cfeaf5295b148cc81f9f9041 Author: Roger Leigh Date: Sun Feb 27 17:41:18 2011 +0000 Sbuild::Conf: Don't directly set LOG_DIR_AVAILABLE commit 3c0d7efb10f05d9f5db1c78940ad88b3b38dd85e Author: Roger Leigh Date: Sun Feb 27 17:40:14 2011 +0000 Sbuild::ConfBase: Add _get method to get value or default Useful in GET blocks. commit b1c0767264002f26269b6e27ce3b2cc8e5b73a44 Author: Roger Leigh Date: Sun Feb 27 15:48:42 2011 +0000 debian: Close #609658 commit c0674eb4d2abe0819867f5dd2116f7d5d4917535 Author: Roger Leigh Date: Sun Feb 27 15:48:26 2011 +0000 NEWS: Document --keep-session commit a7cf2535290add1a6b7c90fbfc4b534be201bb28 Author: Roger Leigh Date: Sun Feb 27 15:44:36 2011 +0000 Sbuild::Build: Purge options do not affect session ending. Add separate END_SESSION configuration key, which is changed with the --keep-session option. commit 098b2c964c4994a37d0411aa560ff020e8075bb2 Author: Roger Leigh Date: Sun Feb 27 15:34:34 2011 +0000 debian: Document dist-upgrade change commit 2404bd3f88a296361c70d33bcf13bf3f00a0dec9 Author: Roger Leigh Date: Sun Feb 27 15:34:25 2011 +0000 NEWS: Document dist-upgrade change commit 4c29db4de7587e12c3b609e4350408b0280b82c2 Author: Roger Leigh Date: Sun Feb 27 15:31:23 2011 +0000 Sbuild::Conf: Run apt-get dist-upgrade by default Previously, we were running upgrade by default. dist-upgrade is not much more dangerous, and it means that less manual intervention is required to keep chroots up-to-date. commit ae7f064807fa475f36e04fe2b42d92b848d4139b Author: Roger Leigh Date: Sun Feb 27 14:05:44 2011 +0000 debian: Close #610995 commit fcaf31910d4b5cb12c026fe7f02e44fd76e0164c Author: Roger Leigh Date: Sun Feb 27 13:59:58 2011 +0000 debian: Close #576508 and #609932 commit 6dbcbe4489e28ac9954e074efece6df17cb72706 Author: Roger Leigh Date: Sun Feb 27 12:57:16 2011 +0000 debian: Deprecate non scalar types in sbuild.conf commit b468818a6f03baf0443e7b9254c8037ce49ef035 Author: Roger Leigh Date: Sun Feb 27 12:56:58 2011 +0000 NEWS: Deprecate non scalar types in sbuild.conf commit 3fa12596c1004deebb9999a6bbe21bd6ee2d061b Author: Roger Leigh Date: Sun Feb 27 12:52:36 2011 +0000 Sbuild::Conf: Use dynamically generated script to parse configuration This removes the need to hand-maintain the parser. Non-scalar types are special-cased for backward compatibility (and deprecated). commit 0b6cf0e259996e4dccae8f20e2f8c7e1c5810a82 Author: Roger Leigh Date: Sun Feb 27 12:38:34 2011 +0000 Sbuild::ConfBase: Add GET handler for VERBOSE Allows more sensible default interactive/noninteractive behaviour. commit 0983eb261b3805bdb7bffb0dd20a981273075a7d Author: Roger Leigh Date: Sun Feb 27 11:31:42 2011 +0000 debian: Document sbuild.conf and sbuild.conf.5 autogeneration commit 7d3c72d0c013c9bc60dacd2b2eedd3e1979fc6d7 Author: Roger Leigh Date: Sun Feb 27 11:31:21 2011 +0000 NEWS: Document sbuild.conf and sbuild.conf.5 autogeneration commit 9931fc4cafe6a339aec87a69f803aa6a0697e89b Author: Roger Leigh Date: Sun Feb 27 11:25:43 2011 +0000 man: sbuild.1 references sbuild.conf.5 commit b14c66ca327433308abed2bfffe11bc3603c1ee0 Author: Roger Leigh Date: Sun Feb 27 11:25:22 2011 +0000 debian: sbuild includes sbuild.conf.5 commit 73ddeb9d925994c308601a50edcf7cfa5883fa61 Author: Roger Leigh Date: Sun Feb 27 11:25:05 2011 +0000 Ignore sbuild.conf.man commit 93a77758d389f0a07471abaa8c8b0565939271af Author: Roger Leigh Date: Sun Feb 27 11:24:31 2011 +0000 man: Add sbuild.conf.5 manual page commit 7a58e6e66f993a03b6c02769c2894c638b7df40f Author: Roger Leigh Date: Sun Feb 27 10:12:00 2011 +0000 man: All manpages source definitions in defs.man This saves the need to process with config.status, and keeps variable stuff in a single place. commit 64705a3dd0f302c1c87cf7518d1f8f2c02721add Author: Roger Leigh Date: Sun Feb 27 10:10:26 2011 +0000 build: Distribute sbuild-dumpconfig commit 8737643de24d2f8f7faf4bc1d2b7f8dcbc8b62df Author: Roger Leigh Date: Sun Feb 27 00:33:29 2011 +0000 sbuild-dumpconfig: Add support for buildd.conf, and man output commit 98b16659473d07452f84db3472acbe937f24b5c0 Author: Roger Leigh Date: Sat Feb 26 20:17:32 2011 +0000 tools: Add sbuild-dumpconfig sbuild-dumpconfig can dump the Sbuild::Conf class and its default values as a fully documented sbuild.conf, with syntactically correct examples. commit 78bb4e5591df86d677ca60a37c54254a1f05877a Author: Roger Leigh Date: Sat Feb 26 20:11:49 2011 +0000 Sbuild::Conf: Add additional key tags Include TYPE, VARNAME and GROUP tags. This is sufficient information to allow dumping of the entire configuration file as sbuild.conf or a manual page. commit e533066f3ef41580866e81cb286ad9bd9c8507c6 Author: Roger Leigh Date: Sat Feb 26 11:01:11 2011 +0000 Sbuild::Conf: Add help text for all settings commit aa2bea11fe10531251cbd5a69bebb44fc77c1f42 Author: Roger Leigh Date: Thu Feb 24 22:46:57 2011 +0000 debian: Close #403246 commit 681d3beb2e5de58fb282752644b8473ab8313255 Author: Roger Leigh Date: Thu Feb 24 22:31:56 2011 +0000 debian: Document alternative resolving defaults commit e9640a93aeec3e609ab6a9138821548df66c846d Author: Roger Leigh Date: Thu Feb 24 22:31:33 2011 +0000 NEWS: Document alternative resolving defaults commit 126c8c3b42e6504b243b9268eae0342aa205456f Author: Roger Leigh Date: Thu Feb 24 22:27:40 2011 +0000 sbuild.1: Document alternative resolving defaults commit 746c52bf7a99626c3aa043cf8359475ccabdfcd6 Author: Roger Leigh Date: Thu Feb 24 22:22:09 2011 +0000 Sbuild::Conf: Resolve alternatives by default with the aptitude resolver This default may be overridden with $resolve_alternatives. apt and internal do not resolve alternatives by default aptitude resolves alternatives by default commit 328646e1c6ea407df64befdcea30fde1b6b11658 Author: Roger Leigh Date: Thu Feb 24 22:21:46 2011 +0000 Sbuild::Conf: Fix typo in deprecation warning commit f1798273068c33f9c486ef43f103c826e500bc97 Author: Roger Leigh Date: Wed Feb 23 23:08:37 2011 +0000 debian: Document resolver changes from NEWS commit e1eebe2148e7ff24bfd85e7829bc9dfb4262ebef Author: Roger Leigh Date: Wed Feb 23 23:07:34 2011 +0000 NEWS: apt is the default resolver, internal is deprecated commit 813930a1f948beaced1186e1c25ac2073f84f6c9 Author: Roger Leigh Date: Wed Feb 23 23:07:00 2011 +0000 sbuild.conf: Document resolver default commit decf817cf3e5ef8c6e6e7ab61324145c24b1db05 Author: Roger Leigh Date: Wed Feb 23 23:06:43 2011 +0000 sbuild.1: Document resolver default commit 3ec40bc72716d74c2d0617decb83233621fd0c02 Author: Roger Leigh Date: Wed Feb 23 23:06:04 2011 +0000 Sbuild::Conf: Make apt the default resolver Add deprecation warning for the internal resolver. commit 24a7504164a6417695742451c1c3568d9d13b827 Author: Roger Leigh Date: Wed Feb 23 23:05:35 2011 +0000 sbuild-update.1: Add additional guidance for --keygen commit 77f3c862a2c68ebdb4a1d68e3d8b02b18a5f5e2d Author: Roger Leigh Date: Wed Feb 23 22:36:34 2011 +0000 debian: Bump version to 0.61.1-1 commit 7ffd78a5c108d8d6bb470099399844c2f9474e5d Author: Roger Leigh Date: Wed Feb 23 22:36:00 2011 +0000 NEWS: Bump version to 0.61.1 commit e1b1156de3fb1388b13e8d2355a4727371545fa8 Author: Roger Leigh Date: Wed Feb 23 13:43:59 2011 +0000 debian: Bump version to 0.61.0buildd0 commit 46ce90058c2f7c3e0f646680bacf3ca55d9de4c8 Author: Roger Leigh Date: Wed Feb 23 13:42:01 2011 +0000 debian: Enable compatibility features on buildds commit 74d5dada13bc6bf34781d88a9508199c06a08192 Author: Roger Leigh Date: Wed Feb 23 13:10:24 2011 +0000 sbuild.conf: Fix typo in $resolve_alternatives commit c2741662ba7c8d79fb41cdb958c04851ca3ac0f0 Author: Roger Leigh Date: Wed Feb 23 13:09:06 2011 +0000 debian: Tidy changelog commit 794c40b0dee186dbbfa91625b735f8f52af6ab43 Author: Roger Leigh Date: Wed Feb 23 13:07:39 2011 +0000 debian: Document aptitude use of dpkg --force-confold commit a114e0c2245442986c95e901757da834392c2fe7 Author: Roger Leigh Date: Wed Feb 23 13:06:59 2011 +0000 Buildd::DistConf: Don't use init_allowed_keys commit d85946cd004c6dee4262dcafc30beb773a9ba897 Author: Roger Leigh Date: Wed Feb 23 13:00:33 2011 +0000 sbuild.conf: Correct $resolve_alternatives to use proper name commit 570640acf6c31e6c3d7338983b3fdbe36e16e8c9 Author: Roger Leigh Date: Sat Feb 19 12:58:33 2011 +0000 Sbuild::AptitudeResolver: Run dpkg with --force-confold This was already done for apt and internal, and was causing a number of packages to FTBFS, commit d8f453ea7f1414d3a30421e5d7aaca043455fb21 Author: Roger Leigh Date: Wed Feb 23 12:09:50 2011 +0000 debian: Bump version to 0.61.0-1 commit a70e8e2b9c7403a9b06abe440eb55291de0851dd Author: Roger Leigh Date: Wed Feb 23 12:09:22 2011 +0000 NEWS: Bump version to 0.61.0 commit 96efc522f6309d91a08bb76019cd00742570e39d Author: Roger Leigh Date: Wed Feb 23 12:02:10 2011 +0000 Sbuild::ResolverBase: Implement alternative stripping The apt and aptitude resolvers now only use the first alternative in alternative dependencies. This does not include architecture- specific alternatives, which are reduced prior to stripping. This feature is configurable ($resolve_alternatives), defaulting to being enabled. For suites which can take advantage of alterntatives (e.g. backports), this may be disabled. For unstable, where we want the strict consistency and reproducibility guaranteed by stripping, this makes the apt and aptitude resolvers behave exactly like the internal resolver. commit 5a9a0cf451190f440f48b82890457f848aa912b6 Author: Roger Leigh Date: Wed Feb 23 12:01:22 2011 +0000 Sbuild::Build: Add missing fail stages If a build failed very early, the fail stage wasn't initialised and was incorrectly reported. commit 2e9d85edbd65c7098dd3111fef409ae4fde742ee Author: Roger Leigh Date: Mon Feb 14 23:46:01 2011 +0000 debian: Tidy changelog commit 2fcc42f58f41e9e7bdaed7a55050c7193d577c1d Merge: e47c957 8bd411c Author: Roger Leigh Date: Mon Feb 14 21:46:13 2011 +0000 Merge remote branch 'origin/buildd-0.60.0' commit e47c95773ce6d6ee7e845b6b5d11dc3f1bb95ff1 Author: Roger Leigh Date: Mon Feb 14 20:38:19 2011 +0000 debian: Closes #608972 commit b84421f05734f891dac2709aba17eb68465656e9 Author: Roger Leigh Date: Mon Feb 14 20:36:56 2011 +0000 sbuild.1: Document local apt archive commit d6ccdf0a9de3dae0e86ed67c210733aed13421ca Author: Roger Leigh Date: Mon Feb 14 20:27:27 2011 +0000 sbuild.1: Drop source-dependencies environment variable docs commit 67de5f80575b7d2e5e62c7795eba4d94afb85098 Author: Roger Leigh Date: Mon Feb 14 20:26:23 2011 +0000 sbuild.1: There is now only one sbuild version commit e58d8976727fa771f823652a67473e27a98c8541 Author: Roger Leigh Date: Mon Feb 14 20:07:49 2011 +0000 debian: Close #608971 commit 498c29bda2f1d92bdfb846a908ef5446be2834e6 Author: Roger Leigh Date: Mon Feb 14 20:06:12 2011 +0000 sbuild.conf: Document that $apt_allow_unauthenticated is for apt-secure. commit fc9144efbd3c521104c3b0d335f0e92c8575445b Author: Roger Leigh Date: Mon Feb 14 20:01:11 2011 +0000 debian: Close #613401 commit f67710dd5ede7d34b6777475640049c7f8074784 Author: Sebastian Harl Date: Mon Feb 14 19:58:45 2011 +0000 Sbuild::Options: Add --no-arch-all command line option. This allows overriding of '$build_arch_all = 1;' (in .sbuildrc) on the command line. Signed-off-by: Roger Leigh commit 80ed8aa0a27e21dc7162bf24c8d09c8686fd9e78 Author: Roger Leigh Date: Mon Feb 14 19:55:39 2011 +0000 NEWS: Document --arch check commit 8d88fe6cfc874c8aeadbe59540214fcc8be49136 Author: Roger Leigh Date: Mon Feb 14 19:54:50 2011 +0000 debian: Close #609151 commit d31a1179c2bb15ab38fe70439041ddf206afd437 Author: Roger Leigh Date: Mon Feb 14 19:49:40 2011 +0000 Sbuild::Build: Don't allow the build and chroot architectures to differ Previously, we allowed the chroot arch to supercede the host/build architecture specified with --arch. We now check for this to avoid building for the wrong architecture. commit 11e42dfff33c8aac4e5b7fcdee2ccadcf02c56b7 Author: Roger Leigh Date: Mon Feb 14 19:38:33 2011 +0000 debian: Close #608412 commit ddd6db2d327ca94a31235763b843e10b93c20a6a Author: Roger Leigh Date: Mon Feb 14 19:37:11 2011 +0000 debian: sbuild postrm purges generated files commit 5a983515b3c1edf8fc31797f4538aad7769c15a5 Author: Roger Leigh Date: Sun Feb 13 23:27:20 2011 +0000 debian: Close #607606 commit f72d65e1d8f40218f7b9dbaf86dc8af6f5dbc9ef Author: Roger Leigh Date: Sun Feb 13 22:47:31 2011 +0000 debian: Close #610997 commit ce0fb70b0ae4128eaca18e5d7a25aeea47e4ae37 Author: Roger Leigh Date: Sun Feb 13 22:45:50 2011 +0000 sbuild.conf: Correct syntax of $envionment_filter commit d6cf14dd8e345fb5fcd0776ce4cea341241bc817 Author: Roger Leigh Date: Sun Feb 13 22:44:56 2011 +0000 sbuild.conf: Update $environment_filter to include PATH commit 60c3d810e36c5917ae387c3b21aa38918b0e0014 Author: Roger Leigh Date: Sun Feb 13 22:42:30 2011 +0000 debian: Close #610997 commit 7ec6f8eca1ed4aaa5f729f44880e3225379f33c8 Author: Roger Leigh Date: Sun Feb 13 22:41:35 2011 +0000 Sbuild::Conf: ENVIRONMENT_FILTER permits use of PATH commit f8c593104c3033d918ecd0780b829277a2d3d358 Author: Roger Leigh Date: Sun Jan 16 17:07:42 2011 +0000 debian: Close #610007 commit a4fb37b5fa1650c5645ee774a2c4e960b72cc4a3 Author: Roger Leigh Date: Thu Jan 13 20:12:57 2011 +0000 debian: Close #609811 commit e18373fc4157460ad84e58a4cb7f94d616fdfa6e Author: Marc Deslauriers Date: Thu Jan 13 20:10:09 2011 +0000 lib/Sbuild/ResolverBase.pm: use -o APT::Install-Recommends=false Use "-o APT::Install-Recommends=false" instead of --no-install-recommends as it is not a valid option in Dapper schroots. This is Ubuntu-specific and can be removed once Dapper goes EoL. Signed-off-by: Roger Leigh commit 27175af08d84de246b6a572615f2998feb734d0c Author: Roger Leigh Date: Mon Jan 3 21:19:29 2011 +0000 debian: Close #608789 commit dbf152d502e4816eac1ff4ffd2ead9b93e05e40c Author: Modestas Vainius Date: Mon Jan 3 02:29:50 2011 +0200 AptitudeResolver: define a custom SolutionCost. aptitude 0.6.2 release replaced resolver tiers with resolver costs. sbuild AptitudeResolver used to rely on resolver tiers to deliver the following behaviour: 1) Install non-default versions only if there is no solution among default (aka candidate) package versions. 2) Solution should contain versions from sources with the highest possible priority (when pulling from non-default versions). While default SolutionCost (i.e. "safety, priority") configuration is supposed to deliver this, it's apparently not enough. In particular: 1) "priority" cost component is broken in aptitude releases up to 0.6.3-3.2 (see #608786). It does not prioritize non-default versions by their pin-priorities. However, thanks to Non-Default-Level safety level, the issue does not affect configurations which have apt sources at two (one default and one non-default) or fewer pin priorities. As a result, standard buildd configurations (unstable, experimental, backports) are not affected by this bug. 2) Once Non-Default safety level is breached, it is hard to guess what set of non-default versions the solution will produce (it will be based on the "score" criteria that is not easily predictable). Yet requirements are pretty clear: we want as few non-default versions as possible. Fortunately, we can tell aptitude that. So sbuild custom SolutionCost achieves the following: 1) it gets the safest solution (tries only default versions first, then a mix of default and non-default versions), 2) installs versions from the highest possible pin-priority source, 3) installs as few non-default versions as possible, 4) and finally picks a solution with the best score. See /usr/share/doc/aptitude/html/en/ch02s03s04.html (aptitude-doc-en package) for more information on aptitude resolver cost calculation. Signed-off-by: Modestas Vainius Signed-off-by: Roger Leigh commit a47aa6af592d340603c401c9e7dd16ebb0e48ccd Author: Roger Leigh Date: Mon Jan 3 21:06:00 2011 +0000 debian: Close #608659 commit 74cbd18e1fa7e2efb89937d46248a9bbc3b87e36 Author: Modestas Vainius Date: Sun Jan 2 15:28:18 2011 +0200 Do not filter out environment variables starting with DEBIAN_ by default. Notably, the fix enables export of DEBIAN_FRONTEND=noninteractive in the build environment. Signed-off-by: Modestas Vainius Signed-off-by: Roger Leigh commit b57b76d1a835e9a01b826de43c7022cb1ab21690 Author: Roger Leigh Date: Fri Dec 31 14:14:38 2010 +0000 debian: Close #608429 commit b0e2f406f5accf2f6e89832c39d1181084edb72c Author: Roger Leigh Date: Fri Dec 31 14:12:25 2010 +0000 Sbuild::ChrootPlain: Don't use sudo when already root commit cf52e3bde5023340eae19d782567880bbbd9b9cf Author: Roger Leigh Date: Fri Dec 31 11:56:45 2010 +0000 debian: Close #608414 commit 61deae6fd46404c26bd233738b004cbdba57122e Author: Roger Leigh Date: Fri Dec 31 11:53:50 2010 +0000 sbuild-createchroot: Fix permissions of chroot and configuration chroot directory and any created parents are 0775. schroot configuration is 0644. commit 4f484d6ad87345c1efdd4818bcd6d60293f91e17 Author: Roger Leigh Date: Fri Dec 31 11:53:22 2010 +0000 sbuild-createchroot: Don't import all exported members of Sbuild::Conf commit 12eb962111d9e384d31cd54af39046ad081b31c9 Author: Roger Leigh Date: Thu Dec 30 17:57:01 2010 +0000 debian: Bump version to 0.60.9-1 and close #607945 commit f57e4e271e55f488e7ffc026d6be3cedea469295 Author: Roger Leigh Date: Thu Dec 30 17:54:37 2010 +0000 NEWS: Bump version to 0.60.9 commit fb790792a9433d469fa808f6613bdc0bf1f3ee21 Author: Roger Leigh Date: Thu Dec 30 17:53:15 2010 +0000 Sbuild::ResolverBase: Don't automatically generate archive signing key If the local archive signing key is not present, do not automatically generate it. This can cause issues on systems with scarce entropy. Print an error message plus instructions on how to generate the key. commit 11d82b1fdec6d15b1911f60f8802a70a218ebdfb Author: Roger Leigh Date: Thu Dec 30 17:51:50 2010 +0000 Sbuild::Build: Add newline to log message commit 8bd411cf6aaa7f6f6b76245ecec6b5c88db52f2e Author: Philipp Kern Date: Sat Dec 18 15:08:33 2010 +0100 bin/create-chroot.sh: update for properly signed security commit 0fc02677171bc1cc90f250540af17389c39db204 Author: Philipp Kern Date: Thu Dec 16 19:49:11 2010 +0100 etc/99builddsourceslist: update for properly signed security commit a6c2d650cf23d6135873b9c01711e955146618f4 Author: Roger Leigh Date: Sun Dec 12 20:00:17 2010 +0000 Sbuild::Conf: Update and upgrade the build chroot by default Having an up-to-date chroot prior to installing any build dependencies means it's less likely to break the chroot when removing the packages post-build. This is because we're starting and ending at the same baseline state. If the chroot is out of date, then it becomes possible to break the package manager because packages to reinstall are no longer available, or there are version mismatches etc., which require manual intervention to get back to a clean state. commit d07d68b36b2708c4a7f7acfff8d3be5c4eec8264 Author: Roger Leigh Date: Sun Dec 12 19:56:26 2010 +0000 Sbuild::ResolverBase: run_apt_ftparchive unlinks its configuration Don't litter /tmp with temporary files commit 8b2b123b9c2e40295bed2f44844b2c9a64c363ad Author: Roger Leigh Date: Sun Dec 12 19:55:39 2010 +0000 Sbuild::ResolverBase: update_archive uses correctly quoted perl string Also regenerate apt caches after lists update commit 68be0d2f30b6fb2581f3531f9ab530fcf11d5b8c Author: Roger Leigh Date: Sun Dec 12 19:25:49 2010 +0000 debian: Document gpg and local archive changes commit c51c5850ab9a432d797113c270061bb60a20f41b Author: Roger Leigh Date: Sun Dec 12 18:19:28 2010 +0000 Sbuild::ResolverBase: update_archive updates apt lists directly New function, used by AptResolver and AptitudeResolver. This copies the archive lists files directly into the appropriate files under /var/lib/apt/lists in the chroot, saving the need for a full "apt-get update", since we don't want for the remote mirrors to change during a build. This also speeds up the build by reducing the updates from three times to one. commit f65d8d4738e399016e70c9565346ce35db8e7686 Author: Roger Leigh Date: Sun Dec 12 18:18:31 2010 +0000 Sbuild::ResolverBase: Use an empty directory for gpghome This is more secure, untrusted/unwanted files can't be present. commit e813533b55ac3312f3cf4d7cc8f47db826ad227e Author: Roger Leigh Date: Sun Dec 12 18:17:37 2010 +0000 Sbuild::ResolverBase: Create resolver directory in build dir This puts all writable files in a single place, and also makes cleanup on failure automatic. commit cb1a21e0ab52998b60e9d402d74452faacbbbaa1 Author: Roger Leigh Date: Sun Dec 12 11:53:10 2010 +0000 debian: Bump version to 0.60.8-1 and close #606668 commit d6bf62715c9522c86a98286aea0031d15f38a322 Author: Roger Leigh Date: Sun Dec 12 11:51:26 2010 +0000 NEWS: Bump version to 0.60.8 commit fc4d5c9ab4547e850327acc4186248f0e108d0de Author: Simon McVittie Date: Fri Dec 10 18:25:41 2010 +0000 Use gpg --homedir to avoid the user's gpg.conf completely My gpg.conf uses a non-default secret keyring on a filesystem inaccessible by sbuild, causing builds to fail. Signed-off-by: Roger Leigh commit 8069028a1d7f8b443979a16ecb0d3c9ca8b784a2 Author: Roger Leigh Date: Wed Dec 8 21:49:17 2010 +0000 debian: Bump version to 0.60.7-1 and close #606278 commit bb4d721972cee1ec021172a373cc098d4b66f343 Author: Roger Leigh Date: Wed Dec 8 21:48:59 2010 +0000 NEWS: Bump version to 0.60.7 commit 655e87d831bacf849f3894e69c0768a5b2964499 Author: Roger Leigh Date: Wed Dec 8 20:34:28 2010 +0000 Sbuild::AptitudeResolver: Restore use of Aptitude::ProblemResolver::Hints::KeepDummy commit 9c7c5eeda7f2b7e1be16c52ea9335f3343f12d05 Author: Roger Leigh Date: Wed Dec 8 11:03:32 2010 +0000 Sbuild::ResolverBase: Print message to inform user GPG keys are being generated This can take some time and appear as if sbuild had hung. commit f4769f9b36e7dcbeeae440a27c642166dc4c262b Author: Roger Leigh Date: Wed Dec 8 10:56:52 2010 +0000 Sbuild::ResolverBase: Dummy package creation is inside the chroot filesystem commit 5ab0fee2dd35730c7dfc8c8f0c5ba1a335b968a1 Author: Roger Leigh Date: Tue Dec 7 21:26:36 2010 +0000 debian: Tidy changelog and add major upstream changes commit 2553de0e93237315962a273904b55ce817d98ad9 Author: Roger Leigh Date: Tue Dec 7 21:25:09 2010 +0000 NEWS: Remove duplicate entry commit 82d41b3bea1994a01205f0d6c14bd1b809ee5e55 Author: Roger Leigh Date: Tue Dec 7 21:11:28 2010 +0000 debian: Close #605997 commit 7289e5061d604b4349028024d248344c24208869 Author: Modestas Vainius Date: Tue Dec 7 21:08:12 2010 +0000 Do not skip purging of build directory if chroot is cloned. This is necessary if /build in chroots is (bind-)mounted to the outside of the session. However, if /build is part of the cloned session, $purge_build_directory='never' could be used in order to avoid wasting time when session ends. Signed-off-by: Roger Leigh commit 99a1c32ebd318aef82c86b9a6c916cff5d37338f Author: Roger Leigh Date: Tue Dec 7 21:01:25 2010 +0000 debian: Close #589615 commit 495ccf3f9a44714a93cd27e7ceb4f10cb08c20a6 Author: Marc Dequènes (Duck) Date: Tue Dec 7 20:59:19 2010 +0000 Sbuild::ConfBase: Only use MAILTO_HASH if defined Signed-off-by: Roger Leigh commit 9e4560f80875a0f4996a6604d6b068e7c1d7b2cc Author: Roger Leigh Date: Tue Dec 7 20:52:51 2010 +0000 debian: Document Ubuntu workaround commit 3260bfe59ad59da978e956b88327832bba55cfcf Author: Jamie Strandboge Date: Tue Dec 7 20:44:23 2010 +0000 Sbuild::Build: read_build_essential: Add workaround for broken Ubuntu releases Older Ubuntu releases had sysvinit in their build essential list, despite sysvinit no longer being available. As a result, it's not actually possible to install the build-essential package set on these systems. Manually remove sysvinit from the essential list in these cases. Signed-off-by: Roger Leigh commit 857c8fe0198d3c72849259b4beff2fd190e75c10 Author: Roger Leigh Date: Tue Dec 7 20:39:06 2010 +0000 debian: Close #605745 commit 666d01fd8739c660b252a0ca8d2e672848e32051 Author: Roger Leigh Date: Tue Dec 7 20:38:09 2010 +0000 sbuild.1: Update description of --maintainer commit 658e4abbd3152a8d76c8e895c7a65bba41022586 Author: Roger Leigh Date: Tue Dec 7 17:11:21 2010 +0000 NEWS: Document testsuite commit 42f34187f98fec177d84949e64ceb0eec2e54a2d Author: Roger Leigh Date: Tue Dec 7 17:08:21 2010 +0000 debian: Close #606001 commit 5fdf954762ce215d617f85f55d32620f4f37223c Author: Ansgar Burchardt Date: Sun Dec 5 14:06:24 2010 +0100 sbuild-update: Add --arch option. Signed-off-by: Ansgar Burchardt commit 5dafaeb57903aaf576d70f0772f547fae6ba4caf Author: Roger Leigh Date: Sun Dec 5 12:27:43 2010 +0000 NEWS: Document new features: - testsuite - apt archive - key generation - dropping of REDO and SBUILD-REDO-DUMPED commit 1653d75932e7463fd72138e760d463e5faf8a8c9 Author: Roger Leigh Date: Sun Dec 5 12:12:43 2010 +0000 test/.gitignore: Ignore generated scripts commit ab5c1795fc419f1e412a1570ab7d83a7635ff641 Author: Roger Leigh Date: Sun Dec 5 12:10:02 2010 +0000 test: sbuild only builds a single source package version Eliminate multiple versions (just pick the first) commit c54783ee80cd23d6788cffe8e96762a6ef5649a4 Author: Roger Leigh Date: Sun Dec 5 11:52:19 2010 +0000 Sbuild::ConfBase: Don't use as a base class Currently, different configuration classes derive from Sbuild::ConfBase and implement virtual functions to register their configuration defaults (allowed keys) and read any configuration files. This is rather inflexible, because it means that it's hard to use a single configuration object to read multiple configuration files. Currently, there are nasty hacks to support e.g. wanna-build configuration from Sbuild::DB::ClientConf in both Sbuild::Conf and Buildd::Conf. This also make it difficult to read in alternative configuration files, for example for regression testing, where the system and user configuration should not be read. This change turns all the derived classes into simple library functions. Each one implements a setup() function to register allowed keys, and one or more read/read_hash functions to read configuration from a file or hash into the Sbuild::ConfBase object. This means that multiple setup() functions may be called to register multiple sets of configuration keys, and multiple files may be read. commit 92387d628eff77060a3e1760d200725a8adf7306 Author: Roger Leigh Date: Sun Dec 5 11:34:52 2010 +0000 bin: sbuild-* wrappers don't need absolute paths commit 7ca3c48a12b75e418637b039e6187cc3d19b2f6f Author: Roger Leigh Date: Sun Dec 5 11:25:54 2010 +0000 Sbuild::Build: update() uses the dependency resolver commit 1f98891e8265301f473a177ea08f76b016574543 Author: Roger Leigh Date: Sun Dec 5 11:25:23 2010 +0000 Sbuild::Build: Initialise install start and end times commit fbbb757e2f3fdb3ed9a09348034e3c3e24463464 Author: Roger Leigh Date: Sun Dec 5 11:24:11 2010 +0000 test: Add additional sbuild helper tests Add tests for sbuild-hold/unhold, sbuild-stats, sbuild-update, sbuild-distupgrade, sbuild-clean and sbuild. Update sbuild-upgrade. commit f35040b9ed97070de9864ce9f5d6d73a4fe6585e Author: Roger Leigh Date: Fri Dec 3 11:40:13 2010 +0000 Sbuild: Move check_group_membership here This check does not depend upon configuration at all, and is no longer done when reading the configuration file. commit 881c53590bbb9af2f366e8ab6d53e3019849c9d9 Author: Roger Leigh Date: Thu Dec 2 20:39:05 2010 +0000 build: Add test/sbuild-update commit 9740b8edbbc783dcdcefd1c0b35cec13294fee53 Author: Roger Leigh Date: Thu Dec 2 09:43:41 2010 +0000 test: Add sbuild-update check commit 40df3bc3339799cb3358b436c8d143b55f865b70 Author: Andres Mejia Date: Tue Nov 30 21:12:01 2010 -0500 Fix apt-keys directory permissions during installation. commit 1cd829609dd2bf8a129439f4a969eef69c6123f6 Author: Andres Mejia Date: Tue Nov 30 21:11:29 2010 -0500 Create apt-keys directory during installation. commit ac88a5a76face9d072a35734b2683febb4c00ae3 Author: Andres Mejia Date: Tue Nov 30 21:10:55 2010 -0500 Fix call to generate_keys() in Sbuild::ChrootSetup. commit 52905d70e0841b4e42ab75e5a0118ac950362849 Author: Roger Leigh Date: Tue Nov 30 22:19:53 2010 +0000 test: Use set -e commit 2e4d8e3ae7388e3581691e3180529a6f11823c76 Author: Roger Leigh Date: Tue Nov 30 22:19:14 2010 +0000 Sbuild: Correct use of removed conf:: namespace in error paths commit c7f4da524978f3e9559d84fde3f651b0dfae527b Author: Roger Leigh Date: Tue Nov 30 21:34:09 2010 +0000 test: Don't display grep output commit 985488bf88e008a2f2dfa935df5cff5eafb9415d Author: Roger Leigh Date: Tue Nov 30 21:29:17 2010 +0000 test: Add basic syntax checking of all perl scripts (perl-syntax) Check is run via "make check" commit 12c1c0922f37ec0e2b00d48fd07618af2b25eb4a Author: Roger Leigh Date: Tue Nov 30 21:04:40 2010 +0000 Sbuild::ResolverBase: Location is stored in session commit e0555aca15f89b2024ec38cdaa62de62c19d3803 Author: Andres Mejia Date: Tue Nov 30 21:01:19 2010 +0000 Sbuild::ResolverBase: Create dummy package in temporary directory commit 00407c4af338597b5fc55342821c9f85ca1c0199 Author: Roger Leigh Date: Tue Nov 30 21:00:42 2010 +0000 Sbuild::ResolverBase: Set Defaults in session commit 7a1dc94cfd1dc84a60a92d4e9184cc0f3875c4b6 Author: Roger Leigh Date: Tue Nov 30 20:59:52 2010 +0000 Sbuild::Build: Correctly begin host session commit 56c8da11993fbffe8f4374ef259eb70e01c662fe Author: Andres Mejia Date: Tue Nov 30 01:27:09 2010 -0500 Remove checks to see if lintian or piuparts are executable. This is already done in Conf.pm. commit 34ed66f6b076065f1a1268a2bc7d012e53545e8e Author: Andres Mejia Date: Tue Nov 30 00:53:03 2010 -0500 Fix aptitude resolver function call to pipe_aptitude_command(). commit ae9f5aaa58e63274ee289975e4530dff4084ff84 Author: Roger Leigh Date: Tue Nov 30 20:40:07 2010 +0000 sbuild-update: Begin host session to fully initialise session commit a8fff81a48582f04fb6280b04071d042f2b9e312 Author: Andres Mejia Date: Tue Nov 30 00:52:08 2010 -0500 Fix sbuild-update to work with new apt split refactoring. commit ff62b268fdea1d21431fd58bece04bb4203f49be Author: Roger Leigh Date: Mon Nov 29 22:52:15 2010 +0000 Sbuild::ResolverBase: Move chroot apt/aptitude command execution here commit 52335729f7140308dd3c6283be68633bc026e1e0 Author: Roger Leigh Date: Mon Nov 29 20:14:38 2010 +0000 Sbuild: Remove now unused srcdep lock configuration commit 59f498f30aa290a7954e0d36980a8641dde995e6 Author: Roger Leigh Date: Mon Nov 29 20:06:55 2010 +0000 Sbuild::ChrootSetup: Remove functions previously moved to ResolverBase commit 33530770688ea5d44c561391d53d5fe9aad1ef16 Author: Roger Leigh Date: Mon Nov 29 20:03:53 2010 +0000 sbuild-update: Remove unused ChrootSetup functions commit 95c9a2700f482ffe06b6b23cd033a93cdef745e9 Author: Roger Leigh Date: Sun Nov 28 18:17:23 2010 +0000 Sbuild::ResolverBase: Cleanup with / as CWD in case build tree removed commit 3bff8edf3bd2a4abe8b5506dc05415b49d207f73 Author: Roger Leigh Date: Sun Nov 28 18:15:36 2010 +0000 Sbuild::ChrootSetup: shell runs as normal user commit 92403c5ced0f485a744c18d4dc4d4d96d61a07a3 Author: Roger Leigh Date: Sun Nov 28 18:14:14 2010 +0000 Sbuild::ChrootSetup: generate_keys runs as normal user commit 91f9228a731d91f2ed5b162d9ad536f57a075404 Author: Roger Leigh Date: Sun Nov 28 18:07:48 2010 +0000 sbuild-createchroot: Use resolver to update chroot commit 326da1d1d39f12cd8f8407cab5e45e50129df04d Author: Roger Leigh Date: Sun Nov 28 17:15:22 2010 +0000 sbuild: Simplify shutdown logic Remove unused and redundant REDO/SBUILD-REDO-DUMPED code. This hasn't been used for 11 months (explicitly disabled for buildds). buildd and buildd-mail continue to read and write REDO for their own internal uses. Shutdown sequence is aligned with the build sequence in Sbuild::Build. Temporary variables for job, session and resolver are used to simplify code. The same error return is issued when in buildd or user mode and killed by a signal. commit f4c9c25a71a7ba6c9bc8060d94ed04947b07d0a7 Author: Roger Leigh Date: Sun Nov 28 15:43:54 2010 +0000 sbuild: Remove REDO and SBUILD-REDO-DUMPED handling commit ffa67de3a5476e866aaabc62e19724d55b858f89 Author: Roger Leigh Date: Sun Nov 28 15:32:24 2010 +0000 Sbuild::Build: Use resolver for all apt operations commit 57ca90177fd8af6ad8a83ddc202ac31db909856a Author: Roger Leigh Date: Sun Nov 28 15:31:28 2010 +0000 Sbuild::ResolverBase: Don't use Errno, and only remove archive if defined commit b3dbca2e3c9bc02cc5adf22540c76a8d4bf44ad8 Author: Roger Leigh Date: Sun Nov 28 15:30:55 2010 +0000 sbuild-update: Use resolver to perform all apt-get calls commit 80f811184d7c7b06a6a5ec8d646b1eac015dffa2 Author: Roger Leigh Date: Sun Nov 28 14:30:17 2010 +0000 Sbuild::Resolver*: Remove use of Build object Only use conf and session objects Add support for apt repository to aptitude resolver Add support for running apt tasks to resolver base Use self logging Set Arch from build object commit d8950a4ddabe5e4fcec44699e7b2931d1cbc381e Author: Roger Leigh Date: Sun Nov 28 14:18:25 2010 +0000 Sbuild::Build: Remove source dependencies support in prepare_watches Since we no longer handle sourcedeps files, there's no point in handling them in watches. commit 7606c8d654b0e5aa51ec6bd43e2712f39d4baa5b Author: Roger Leigh Date: Sun Nov 28 14:14:41 2010 +0000 Sbuild::Build: Move prepare_watches call here from InternalResolver This means the resolvers don't need access to the build object commit 593e6e765fd0825cc88f55049836b627b1c3379b Author: Roger Leigh Date: Sun Nov 28 14:13:22 2010 +0000 Sbuild::Build: Add Install Time to generated stats commit 825320d50f58da8bf97d626747964bcedcb40d9c Author: Roger Leigh Date: Sun Nov 28 14:11:15 2010 +0000 Sbuild::Build: Move install time stats writing here from InternalResolver commit 0a1f524f7aad852dc41b196dd75cedffd576f5ed Author: Roger Leigh Date: Sun Nov 28 14:07:19 2010 +0000 Sbuild::Base: Move section logging here from Sbuild::Build Allows use in other modules making use of logging functions commit 6482efda8c6b0bb5669f0102cf0b037badeb6e60 Merge: e2c8759 7f40701 Author: Roger Leigh Date: Sat Nov 27 12:54:49 2010 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild Conflicts: NEWS debian/changelog commit e2c87594cf4dbf53696aeee10c32e100d055ddc7 Merge: ec75bda a820790 Author: Roger Leigh Date: Sat Nov 27 12:50:48 2010 +0000 Merge branch 'apt-get-resolver' commit a82079010180e044f6041d5074350e5402b8848c Author: Roger Leigh Date: Sat Nov 27 12:49:16 2010 +0000 sbuild-update: Add --keygen option to generate GPG keys for archive signing Sbuild::ResoverBase::generate_keys now uses Sbuild::ChrootSetup::generate_keys. commit ec75bda62549449f9c61a68580371f49b4107365 Author: Roger Leigh Date: Tue Nov 23 22:39:09 2010 +0000 debian: Bump version to 0.60.6-1 and close #604715 commit 415ab468100c66911d8c58c90a480e5dc963f81d Author: Roger Leigh Date: Tue Nov 23 22:36:25 2010 +0000 NEWS: Bump version to 0.60.6 commit 5fd22518b73fe96546f82562c374dfb34d0e32eb Author: Roger Leigh Date: Tue Nov 23 22:34:54 2010 +0000 sbuild-update: Work on multiple chroots Correctly loop on all ARGV elements. Indicate chroot being updated in messages. commit 02cabeefb003613acd9accd0147b11e1ae79101f Author: Andres Mejia Date: Tue Nov 23 03:07:51 2010 -0500 Use Sbuild::ChrootSetup::update to run apt-get update. commit b47b01780af8337d02509e7f86e3391ea535b75f Author: Andres Mejia Date: Tue Nov 23 02:58:30 2010 -0500 Simplify apt archive creation by using apt-ftparchive. commit 08f036513cf14fc5386244a22167884f8786071b Author: Andres Mejia Date: Mon Nov 22 20:29:52 2010 -0500 Generate a key on first use instead of providing the keys during installation. commit a319faad50456cf342dc8d503566904f31b8ee52 Author: Andres Mejia Date: Sat Nov 20 19:37:06 2010 -0500 Use run_apt_command() instead of running apt-get explicitely. commit 42c3e0c0ceadfca14fd900a8c52218ee42f699be Author: Andres Mejia Date: Sat Nov 20 17:54:25 2010 -0500 Supply sbuild apt archive keys for use in creating apt archives. commit 7f40701014247ed4b9dc5c1f747db46b94453598 Author: Roger Leigh Date: Sat Nov 20 16:33:43 2010 +0000 Buildd::Daemon: Move should_skip here Rather than sbuild checking the SKIP file after buildd runs it, we check SKIP in do_build prior to running sbuild. This means the use of SKIP is confined to buildd and buildd-mail, and sbuild doesn't need to worry about buildd's concerns. commit 55aaf40032db56b4e076c144b69c67af241f4dfe Author: Roger Leigh Date: Sat Nov 20 16:10:52 2010 +0000 sbuild: Return 'skipped' packages with zero exit status Packages not meeting the arch check are treated as skipped. This only applies to user mode; buildd mode must treat skipped as failure for now, until it can parse the package status from the sbuild output. commit c275d4bc50b9b5f6dc7350bd1b45ba5f307e0acb Author: Roger Leigh Date: Sat Nov 20 14:54:15 2010 +0000 debian: Drop unneeded programs when running configure commit 7ce884a74f5a8ba18e3a7de225bc84f3a6a201b7 Author: Roger Leigh Date: Sat Nov 20 14:52:23 2010 +0000 Sbuild::Sysconfig: Drop programs hash Rather than indirectly searching for programs' absolute paths and storing them in the %programs hash at configure time, search at runtime in $PATH as would be expected. commit 353034c2ad71d9f6ec86d9af81256cb8271d5f16 Author: Roger Leigh Date: Sat Nov 20 14:01:22 2010 +0000 Sbuild::Sysconfig: drop unused DPKG_ARCHITECTURE commit 4d9f35bd7013d219ea6294356900a560b0328c4b Author: Roger Leigh Date: Sat Nov 20 11:41:06 2010 +0000 debian: Bump version to 0.60.6 commit c9157ff462c5ddeb7da53ad14bebaa912312919d Author: Roger Leigh Date: Sat Nov 20 11:40:47 2010 +0000 NEWS: Bump version to 0.60.6 and document environment filtering commit cbbf001aced0825f49fd62fbc20e05acceea3a04 Author: Roger Leigh Date: Sat Nov 20 11:34:48 2010 +0000 Sbuild::Chroot: Filter environment using ENVIRONMENT_FILTER Sbuild::Conf: Add ENVIRONMENT_FILTER/$environment_filter option The environment filter is a list of regexes. If an environment variable matches any of the regexes, it is kept, or else if none match it it dropped. Currently various DEB* and *FLAGS* are allowed. The allowed regexes are taken from debuild. debuild also allows LC_* variables, but sbuild does not (it sets the locale to POSIX, making this pointless to allow). commit 510398198948ae41ddb390ed600df1cc5301e597 Author: Andres Mejia Date: Sat Nov 20 02:20:49 2010 -0500 Add functions that setup a dummy apt archive for use with apt resolver. commit f0e39c70da6707e2ba007a737154296f38d599e7 Author: Roger Leigh Date: Thu Nov 18 17:00:21 2010 +0000 Sbuild::ChrootSetup: Add hold_packages and unhold_packages functions These wrap set_package_status. sbuild-hold and sbuild-unhold use these functions in place of set_package_status. commit 1432256a5bcb46a03ad3569ee3e1879ad71aa823 Author: Philipp Kern Date: Mon Nov 15 21:16:53 2010 +0100 debian/control: depend on libdpkg-perl (>= 1.15.5) Dpkg::Control changed its interface completely in dpkg 1.15.5, and the code relies on the new interface. commit 7b7116d592132ac422613432e56590cd043abe0b Merge: f07e28d aad7e66 Author: Philipp Kern Date: Mon Nov 15 21:15:23 2010 +0100 Merge branch 'master' of alioth.debian.org:/git/buildd-tools/sbuild commit aad7e66da0062cf880418f55e52eacf78f2b11c3 Author: Roger Leigh Date: Sun Nov 14 12:15:15 2010 +0000 Sbuild::Build: Correctly report build times on failure commit 43cf4364c5630cb5a5736cc22217197b592c3e5e Author: Roger Leigh Date: Sun Nov 14 12:01:25 2010 +0000 etc: Only install 99builddsourceslist on buildds commit 1fac57ea98d9d04308baeb643c8f0bd10f74c450 Author: Roger Leigh Date: Sun Nov 14 11:56:59 2010 +0000 debian: Bump version to 0.60.5-1 commit 70c150663a6d58894ef2313d2ae20c8ded7d300f Author: Roger Leigh Date: Sun Nov 14 11:56:29 2010 +0000 NEWS: Bump version to 0.60.5 and document piuparts and apt resolver commit 329258ad45b5442b2c4848d0a6db3b6f7c4af557 Author: Roger Leigh Date: Sun Nov 14 11:35:26 2010 +0000 Sbuild::Build: Remove stats delimiters commit e56d65bad7aeb5cc47862d924288bfc993d72820 Author: Roger Leigh Date: Sun Nov 14 11:18:12 2010 +0000 Sbuild::Build: Add job name to statistics commit 32c59940679f70aef491005efabd1bb63268b1db Author: Roger Leigh Date: Sun Nov 14 11:17:29 2010 +0000 sbuild: Return buildd-style exit codes for all use cases commit b0463acbe37e8a3ec661b3ed89fc1344c2cf49dd Author: Roger Leigh Date: Sat Nov 13 19:15:42 2010 +0000 Sbuild::InternalResolver: Prune Provided virtual packages in filter_dependencies If RESOLVE_VIRTUAL is enabled, prune provided virtual packages in filter_dependencies. Unsatisfied virtual depdendencies are later expanded in virtual_dependencies. The pruning is needed or else we might expand the virtual package to a different package than already providing the dependency, if such a package was already installed. commit 25c77aea4133c04bf956f3dc79a2e3c3a749b89f Author: Roger Leigh Date: Sat Nov 13 18:44:44 2010 +0000 debian: Close #603397 commit c833c64bb7e34410c5105c5304a41e5396cbd234 Author: Loïc Minier Date: Sat Nov 13 18:41:58 2010 +0000 Sbuild::ChrootSetup: Run dpkg with --force-confold as for build deps commit 2033da980182f3b54a7782c5a7de72c33cd59e15 Merge: b402d90 dbf0d41 Author: Roger Leigh Date: Sat Nov 13 15:03:01 2010 +0000 Merge remote branch 'origin/buildd-0.60.0' Conflicts: bin/create-chroot commit b402d9065465b8854194e85b1c960b4a03aa874c Author: Roger Leigh Date: Sat Nov 13 14:38:20 2010 +0000 Sbuild::Build: Add functions for stats logging commit 4c115f05b01b452203d26b4e43c302d7412f9a08 Author: Roger Leigh Date: Sat Nov 13 13:31:31 2010 +0000 Sbuild::Build: Log stats for Distribution and hyphenate Source-Version commit d2b52f30c3cee69d1f2f09bc8fbe415a6b6e455a Author: Roger Leigh Date: Sat Nov 13 11:41:55 2010 +0000 Sbuild::Conf: Only validate lintian and piuparts when enabled commit dc806b02c468efc19b91e220d2f982304f14ebab Author: Andres Mejia Date: Sat Nov 13 03:24:55 2010 -0500 Add feature to run piuparts after a successful build. commit 0ccb61ca018a90acc200fb20761fca98c11523a6 Author: Andres Mejia Date: Sat Nov 13 01:35:24 2010 -0500 Place lintian run code inside a function. commit 1d46d853b2abfac197e40b70adbd6ca07d083ff4 Author: Andres Mejia Date: Fri Nov 12 17:26:56 2010 -0500 Include AptResolver module in installation of libsbuild-perl. commit dbf0d41c5d824c028daaec50203209724b62cfdd Author: Philipp Kern Date: Thu Nov 11 22:25:25 2010 +0100 bin/create-chroot.sh: create edu chroots on i386, amd64 and powerpc commit 474ad9f811e39115327034c23b08720a1121850f Author: Philipp Kern Date: Thu Nov 11 22:02:43 2010 +0100 etc/99builddsourceslist: rip out support for key packages It doesn't seem to be possible to use apt-get via simple chroot statements in a sane way from this script. You'd need to update its cache first because the new sources.list might not refer to any mirrors whose lists are already cached and then dpkg complains about its environment not being set up properly. So let's add the debian-edu key to the package and handle it like the backports.org key. commit 548ee0641883b1c3170416ef61da19ab9d8d3526 Author: Andres Mejia Date: Wed Nov 10 01:20:26 2010 -0500 Add option to refuse to ever remove essential packages. commit 1ea5e270438db99b646fcbf28ce5ad3dd708f55b Author: Andres Mejia Date: Wed Nov 10 01:07:31 2010 -0500 Fix some aptitude options in accordance with aptitude documentation. commit 0b0eb6a221ba1a16379c329ff6e5c987ed37a897 Author: Andres Mejia Date: Wed Nov 10 01:00:23 2010 -0500 Set --allow-unauthenticated (when appropriate) and --no-install-recommends option for apt resolver. commit 07bf78ec09d14fcc1b985158f3da36f80c84c4e3 Author: Roger Leigh Date: Wed Nov 10 00:01:58 2010 +0000 Sbuild::AptResolver: Add new resolver using apt-get Like the 'aptitude' resolver, 'apt' installs a dependency package containing the Build-Depends and Build-Conflicts and Depends and Conflicts, then runs "apt-get -yf install" to force installation and removal of the depends and conflicts. commit fa4cd4daa34d687f64b8b085c6aaaab0a716a3be Author: Roger Leigh Date: Tue Nov 9 19:47:06 2010 +0000 debian: Document revert of resolver to internal commit 2e07435a301dcaae4858b3a72e00f6b33a793566 Author: Roger Leigh Date: Tue Nov 9 19:24:58 2010 +0000 debian: Document resolver changes in sbuild.NEWS commit c16ed3fe979926ab1bcbd43cc8a307703062479c Author: Roger Leigh Date: Tue Nov 9 19:17:54 2010 +0000 NEWS: Revert resolver to internal commit 49047c1d7bc3809774920aa7fd49921759ebe16b Author: Roger Leigh Date: Tue Nov 9 17:45:06 2010 +0000 Sbuild::Conf: Revert resolver to internal by default for now commit 77a5b174d0b518bf4fe9ee47ec56e60b9418929a Author: Andres Mejia Date: Tue Nov 9 17:33:30 2010 +0000 sbuild.conf: $lintian_opt should be $lintian_opts commit 49d453185ee50f3b22372cc37e8e82c3cc7117c1 Author: Roger Leigh Date: Mon Nov 8 21:55:57 2010 +0000 Extend sbuild compatibility mode for buildd usage Define compatibility mode in Sbuild::Sysconfig. Default resolver to internal in configuration (if compat). Strip chroot namespace when beginning session (if compat). [schroot 1.2.x compat] commit aa172107b96c87a92114bac659e83fa9d56d5649 Author: Roger Leigh Date: Mon Nov 8 21:08:14 2010 +0000 Sbuild: Correct chroot lock unlocking on failure path Locking failure would unlock prematurely. commit 0266fb2124041894e5e2ff5466eab0c78c8e20ba Author: Roger Leigh Date: Mon Nov 8 17:45:35 2010 +0000 debian: Bump version to 0.60.4-1 and close #602789 commit 5076fda4c3fe4cb97685719f006a4ce0453cf3ef Author: Roger Leigh Date: Mon Nov 8 17:15:46 2010 +0000 NEWS: Bump version to 0.60.4 commit 3531b5f6f93afb490aa0cdb5981a17d7ba977d2c Author: Andres Mejia Date: Mon Nov 8 01:38:28 2010 -0500 Fix regression when passing source: as CHROOT for sbuild-update and friends. Also makes it possible to override use of 'source' as namespace. commit 413577ce20a7c10b4fce3b1d2ca5ea3f408d28a8 Author: Roger Leigh Date: Sun Nov 7 22:33:26 2010 +0000 debian: Correct version commit af4232baa8cfdcb3d095cda75d8775c15422e184 Author: Roger Leigh Date: Sun Nov 7 22:32:39 2010 +0000 NEWS: Document new features commit 3761738a1f04ba481b5cbc697264bd4a081f197b Author: Roger Leigh Date: Sun Nov 7 22:32:22 2010 +0000 debian: Fix typo commit 5a1a17b974ccecbf09298de8697197fe7aeca9ec Author: Roger Leigh Date: Sun Nov 7 21:59:12 2010 +0000 Sbuild: Update copyright commit f7d4c087cff579778da86e9567075c1c470fb46e Author: Roger Leigh Date: Sun Nov 7 21:56:49 2010 +0000 Sbuild::ResolverBase: Don't log Build-Depends/Conflicts by default commit 453b13890f99d87cebd187642667cb073e7eacaf Author: Roger Leigh Date: Sun Nov 7 21:56:34 2010 +0000 sbuild.conf: Document $build_dep_resolver commit 88f049b81d1b080204bfef34acf7c7895988bc27 Author: Roger Leigh Date: Sun Nov 7 21:42:51 2010 +0000 Sbuild::ChrootInfo: Support namespaces properly with sudo commit bc11b8c21979b4f952f951411847ce6e1f36c796 Author: Roger Leigh Date: Sun Nov 7 21:33:17 2010 +0000 debian: Close #567505 commit 6daaf332f3cf5aada99bd68e373d39ba4c50de50 Author: Roger Leigh Date: Sun Nov 7 21:25:47 2010 +0000 Sbuild::ChrootInfo: Add support for namespaces Support schroot namespaces properly. Read in all chroots in the 'chroot' and 'source' namespaces. Add a namespace argument to the ChrootInfo find function, and get_info functions create namespaces. create() also takes a namespace parameters, used by Sbuild::Build and Sbuild::Utility. Utility programs operate in the 'source' namespace by default, falling back to the 'chroot' namespace if a source chroot does not exist. Sudo chroots use only the 'chroot' namespace. schroot namespace support had been added previously by overriding the find() function and stripping namespaces, but this had several issues, and did not permit good use of the 'source' namespace. commit b0a838371974cac59bdd9493d72dff668dd46cc1 Author: Roger Leigh Date: Sun Nov 7 15:34:28 2010 +0000 Sbuild::Conf: Log external command output by default commit bf2873f3c7be181b11d630efdcc8d146242d016f Author: Roger Leigh Date: Sun Nov 7 15:34:05 2010 +0000 Sbuild::ChrootInfoSchroot: Parse chroot namespaces Don't use yet. commit 072312d39b15eac008e82c713bf31a1ab05c664d Author: Roger Leigh Date: Sun Nov 7 15:28:38 2010 +0000 AUTHORS: Add lintian/external commands authorship commit 5288ab4eb2f9b18869d3ec02e7bdf9fd7c0aefeb Author: Roger Leigh Date: Sun Nov 7 12:21:22 2010 +0000 Sbuild::Build: Log summary statistics commit 0586e64d0d00af7c5d3f380b0429289aa728e0f4 Author: Roger Leigh Date: Sun Nov 7 10:59:09 2010 +0000 Sbuild::Build: run_external_commands: Don't log section if no commands specified commit b432f6b85db9e08c3a85b05f0eac1e4732f43895 Author: Roger Leigh Date: Sun Nov 7 01:42:41 2010 +0000 debian: Close #551311 and document lintian and external commands commit 6101a5f3f68ecefc71c30042c55ca7eb7475a269 Author: Roger Leigh Date: Sun Nov 7 01:36:16 2010 +0000 Sbuild::Build: Log source package creation commit 1dfc1a12c4040fb872386c1a081af3c56ed25fb8 Author: Roger Leigh Date: Sun Nov 7 01:31:00 2010 +0000 Sbuild::Build: Rearrange order of external commands commit b06cc3d0c9634b230925301d5e57c3b7948698de Author: Roger Leigh Date: Sun Nov 7 01:25:12 2010 +0000 Sbuild::Base: Don't warn about undefined log streams unless debugging commit 0827a4aab6c3082a31bee53ad97a48f31b0fae27 Author: Roger Leigh Date: Sun Nov 7 01:24:21 2010 +0000 Sbuild::Build: Install core build dependencies separately build-essential needs to be installed before we can read its files Separate handling of gcc-snapshot and manual source dependencies commit 527b434c67e92a1b871a09cb1275c9fa11ef3038 Author: Roger Leigh Date: Sun Nov 7 00:57:22 2010 +0000 Sbuild::ResolverBase: Move get_dpkg_status here commit 9faaef5868adf06734a882d2cc92245938e2c07c Author: Roger Leigh Date: Sun Nov 7 00:50:50 2010 +0000 man: external_commands is a hashref commit 9ce701f64bad5bac002e9e703dd6a06dd1934efc Author: Roger Leigh Date: Sun Nov 7 00:46:55 2010 +0000 sbuild.conf: Remove obsolete %alternatives commit 60daffd606d3f4db195ce6088a1dff690fb5fd1f Author: Roger Leigh Date: Sun Nov 7 00:46:38 2010 +0000 Sbuild::Conf: external_commands is a hashref commit d017dc360df2b68470297bbc2df294ed9ed519f1 Author: Roger Leigh Date: Sun Nov 7 00:02:19 2010 +0000 Sbuild::Build::run_external_commands: Initialise $chroot to 0 commit e58a592e6992c979a7adc5122ffd34b392599269 Author: Roger Leigh Date: Sun Nov 7 00:01:50 2010 +0000 Sbuild::Build: Only log to build log during a package build commit 0a1b0ed05bac8bbb4b6ac48fb3cd0871c6f515e8 Merge: bbdaf88 63a8944 Author: Roger Leigh Date: Sat Nov 6 23:46:15 2010 +0000 Merge branch 'master' into debuild-functionality commit 63a89444ff7b4d1e872c73825d3567d7bc6e6545 Author: Roger Leigh Date: Sat Nov 6 23:37:03 2010 +0000 debian: Default $resolve_virtual to 0 commit 0e30f1b871ad5e2016c13203b1b42410fcf27396 Author: Roger Leigh Date: Sat Nov 6 23:36:27 2010 +0000 Sbuild::Conf: Default RESOLVE_VIRTUAL to off Avoids changing the historical behaviour of the internal resolver. commit 1b7c460d2421f6808708b733d1391a6beb1a4f23 Author: Roger Leigh Date: Sat Nov 6 22:51:35 2010 +0000 Sbuild::InternalResolver: Move get_dpkg_status and get_apt_policy here commit 8e39171a98e06e927ccba2f8831d78b458a1460d Author: Roger Leigh Date: Sat Nov 6 21:01:05 2010 +0000 Sbuild: Handle failure paths better commit bbdaf8862cdb66fe4cd77776772c25da2d0b6206 Author: Roger Leigh Date: Sat Nov 6 16:47:56 2010 +0000 Sbuild::Build: Don't strip epoch before calling set_version commit 09cf6bcf76822593e2f713d4cb91076e0bf86ca3 Author: Roger Leigh Date: Sat Nov 6 16:17:14 2010 +0000 Sbuild::Build: Remove removed install_core function call and reindent commit ba0bd584c81b42379ca3291c0f051c365d7dd822 Author: Roger Leigh Date: Sat Nov 6 15:43:03 2010 +0000 Sbuild::Build: Create Host ChrootRoot object in constructur Initialise streams later, once they get initialised for us. commit 7e9de9242aa91c7f97cc4ea46a4802745e5e8ce0 Merge: dffb5a3 0c205b4 Author: Roger Leigh Date: Fri Nov 5 18:38:50 2010 +0000 Merge branch 'master' into debuild-functionality Conflicts: lib/Sbuild/Build.pm commit 0c205b407e3446d3c6c2006e320d59b13544b821 Author: Roger Leigh Date: Fri Nov 5 18:33:05 2010 +0000 sbuild-update: Lock chroot to block if a build is running commit 379d92e3cecfdef1770c67dbf913c2ed59c7036c Author: Roger Leigh Date: Fri Nov 5 18:32:36 2010 +0000 Sbuild::Chroot: Move chroot locking here commit 9a1dda3d947e1f4aff608f0871cb02a1077eda60 Author: Roger Leigh Date: Fri Nov 5 16:29:58 2010 +0000 Sbuild::InternalResolver: Remove obsolete sourcedeps override support commit 797cdca708196c1dfd9b1923f2cd2a607f70c020 Author: Roger Leigh Date: Fri Nov 5 16:20:21 2010 +0000 Sbuild::InternalResolver: Remove use of obsolete $conf::srcdep_over Source dependencies and overrides are no longer available. commit 8990787975f051d7c098071eea5f157bce6e2e60 Author: Roger Leigh Date: Fri Nov 5 08:40:31 2010 +0000 Sbuild: Internal resolver uses AptDependencies Simplify the internal resolver by using AptDependencies in place of Dependencies, and computing Dependencies at package install time. Allow installation of multiple package lists by merging during install. Old unused Dependencies code removed. commit dffb5a37243c0476016196349e1dd70fb54711da Author: Andres Mejia Date: Thu Nov 4 02:50:47 2010 -0400 Now really fix builds for debianized source directories. commit 37497268dadadf446ceccdf38efbe4e3ce0591a9 Author: Andres Mejia Date: Thu Nov 4 02:01:01 2010 -0400 Fix where logging begins/ends. commit e4189fa5c36f0e6be6d25e5b388780e29fb98167 Author: Andres Mejia Date: Thu Nov 4 01:49:07 2010 -0400 Fix builds from debianized source directories. commit 9ad8f45c5c0fa9b8f62de6bd2f8e759f5e78a1a0 Author: Andres Mejia Date: Thu Nov 4 00:52:25 2010 -0400 Fix addition of lintian options to command to run. commit 9c1fe3521c87fbd560c36249163ad2f5319469ae Author: Andres Mejia Date: Thu Nov 4 00:47:04 2010 -0400 Fix logging of external commands, only logging when specified to log stdout or stderr of commands. commit a7c64d8b1b28c87179327530f465f2e05a7de4ee Author: Andres Mejia Date: Thu Nov 4 00:45:30 2010 -0400 Do not ignore options that are set to undef. commit 66c5efd7afc35c4c9a0e76a019c3d9921b9d2988 Author: Andres Mejia Date: Thu Nov 4 00:17:34 2010 -0400 Setup host session with reasonable defaults. This fixes issue where commands run on the host would not be logged. commit 4030d93a0de80ac58686bb023c398e535360ffde Author: Andres Mejia Date: Wed Nov 3 17:26:53 2010 -0400 Fix permissions on generated sbuild tarball. commit dfbd9768d7518f229fc481e58d535dffbbff2483 Merge: c923e9e bc5ff1a Author: Andres Mejia Date: Wed Nov 3 16:49:15 2010 -0400 Merge branch 'master' into debuild-functionality commit 0c4da880a762a023339ecb0a58f5c85cee663111 Author: Roger Leigh Date: Wed Nov 3 20:00:30 2010 +0000 debian: Close #545215 commit bc5ff1a4b75ede1989da475996e952ea2771a61e Author: Roger Leigh Date: Wed Nov 3 19:58:19 2010 +0000 NEWS: Document sbuild-createchroot tarball creation commit 1d5af24d07b8d5924942042580e3df42efb098a5 Author: Roger Leigh Date: Wed Nov 3 19:55:57 2010 +0000 debian: Document tarball creation by sbuild-createchroot commit ba5124996d4bb5cda1a6be66b0a8b0af7b99ab8d Author: Roger Leigh Date: Wed Nov 3 19:50:55 2010 +0000 debian: Close #602318 commit 60ef668af2f5cbca0c8d4c0dad936b257ab77c29 Author: Roger Leigh Date: Wed Nov 3 19:46:52 2010 +0000 Sbuild::ConfBase: Never set Sbuild::debug_level to undef commit f5d757113b57dbdba056c9ef70a2e78148cf4890 Author: Roger Leigh Date: Wed Nov 3 19:32:29 2010 +0000 sbuild-createchroot: Correct message to print .tar.gz rather than .tgz commit c923e9e06c032e9a41dead7e5759088de88dbc50 Merge: 085d088 cc96c84 Author: Andres Mejia Date: Wed Nov 3 15:30:22 2010 -0400 Merge branch 'master' into debuild-functionality commit cc96c841441b5c143ca44c7691be9d149f0bc9dd Author: Roger Leigh Date: Wed Nov 3 19:15:22 2010 +0000 sbuild-createchroot: Default to .tar.gz rather than .tgz commit 085d088757bc9db0e1cc0b8f8d8a580f9106d5b7 Merge: 1c157a2 1382875 Author: Andres Mejia Date: Wed Nov 3 15:00:51 2010 -0400 Merge branch 'master' into debuild-functionality commit 1382875de3feba3f6ba35026ed04d379f6c79151 Author: Roger Leigh Date: Wed Nov 3 18:40:30 2010 +0000 sbuild-createchroot: Rename --keep-sbuildchroot-dir to --keep-sbuild-chroot-dir commit ac0789bc8a3eed723404136d4a86390c2d9a60b3 Author: Roger Leigh Date: Wed Nov 3 18:38:49 2010 +0000 man: Add Andres Mejia to AUTHORS/COPYRIGHT commit aa0df78ea06ed142664eca2003c848b95c164e71 Author: Roger Leigh Date: Wed Nov 3 18:37:26 2010 +0000 AUTHORS: Add Andres Mejia and also document in sbuild-createchroot(8) commit 07a46ffd442c55b6a7e108d2f2874b788786dfab Merge: a583b9a 0f3af4f Author: Roger Leigh Date: Wed Nov 3 17:58:54 2010 +0000 Merge branch 'master' into sbuild-createchroot commit 0f3af4f654e61b539f8d0689c96f136b7374bbff Author: Roger Leigh Date: Wed Nov 3 17:47:55 2010 +0000 debian: aptitude is the default resolver commit fdd4055a8c97d60483bff461fb9f13a1f304b8bc Author: Roger Leigh Date: Wed Nov 3 17:47:42 2010 +0000 NEWS: aptitude is the default resolver commit ee16cdfc1853e6716bb344b7bb21bb5d03d4b3a9 Author: Roger Leigh Date: Wed Nov 3 17:47:27 2010 +0000 Sbuild::Conf: Make aptitude the default resolver commit a6a655bb749d50a0bf8758414e294bccb802ec73 Author: Andres Mejia Date: Wed Nov 3 17:39:25 2010 +0000 Sbuild: Fix uninitalised value warning in debug2 commit 1c157a27d4a149a35eeccf0e358eed2bc27cb524 Merge: 7d804de bc009a2 Author: Andres Mejia Date: Wed Nov 3 12:53:32 2010 -0400 Merge branch 'master' into debuild-functionality commit 6fb4da4fa3b7ec3ce049dc13d9b07cd80e21c140 Author: Roger Leigh Date: Wed Nov 3 16:38:10 2010 +0000 debian: Close #464376 commit 75814733be9c1a70f18bb1bfb44d532364b160b6 Author: Roger Leigh Date: Wed Nov 3 16:28:41 2010 +0000 debian: Close #403246 commit bc009a29f782936a23d488ca97e0ec243fc75f5c Author: Roger Leigh Date: Wed Nov 3 14:04:14 2010 +0000 debian: Bump version to 0.60.3-1 commit 9adb397b46fa9a2da0c09b64fbebd7515bbe7f6b Author: Roger Leigh Date: Wed Nov 3 14:03:57 2010 +0000 NEWS: Bump version to 0.60.3 commit ccddc5a6fbe7d8de40cd14a7a05747a0ae9eb5bb Merge: 4f9f5f4 a994d14 Author: Roger Leigh Date: Wed Nov 3 13:53:09 2010 +0000 Merge branch 'master' into sbuild-update commit a994d14ad90167930a5fd3eca7e3a1d35b722a6a Author: Roger Leigh Date: Wed Nov 3 13:09:31 2010 +0000 Sbuild::Build: Use Dpkg::Control to parse .dsc commit 4f9f5f459e3b431ff33a9af5702175588a79f692 Merge: 230b576 920182c Author: Andres Mejia Date: Tue Nov 2 21:56:54 2010 -0400 Merge branch 'master' into sbuild-update commit a583b9a6369de967aca30ac8f850f6605a220688 Merge: 4505089 920182c Author: Andres Mejia Date: Tue Nov 2 21:56:41 2010 -0400 Merge branch 'master' into sbuild-createchroot commit 7d804de33daccb2dcdd3161cd2439a34b11e6aaf Author: Andres Mejia Date: Tue Nov 2 21:55:27 2010 -0400 Fix breakage of commands that are run in root filesystem. commit 1865adc92eb13ff15937b9fc47d3eaca0390e3f8 Merge: 1d96785 920182c Author: Andres Mejia Date: Tue Nov 2 20:39:37 2010 -0400 Merge branch 'master' into debuild-functionality Conflicts: lib/Sbuild/Build.pm commit 920182c6ffb67ea39c640434d1a7cf5b3a101c73 Author: Roger Leigh Date: Wed Nov 3 00:23:51 2010 +0000 Sbuild: Rename BuildDepSatisfier classes to Resolver Sbuild::AptitudeBuildDepSatisfier is AptitudeResolver Sbuild::InternalBuildDepSatisfier is InternalResolver Sbuild::BuildDepSatisfierBase is ResolverBase commit 876e60c5d428af151f678eced2acf1db5e5d6104 Author: Roger Leigh Date: Wed Nov 3 00:03:52 2010 +0000 sbuild: Call unlock_chroot() on shutdown commit e85305b85ed23f833dad944a585a8b1dfaea9765 Author: Roger Leigh Date: Tue Nov 2 23:46:31 2010 +0000 Buildd: Remove srcdep and install locks All locking now comes under the chroot lock, making the separate srcdep and install locks redundant. commit a550c88db3ae7648b4c4763ba0fffa0c64c880a0 Author: Roger Leigh Date: Tue Nov 2 23:15:26 2010 +0000 Sbuild::BuildDepSatisfierBase: Add chroot locking functions Add chroot_lock and chroot_unlock functions. Sbuild::Build::run locks the chroot after beginning a session, and unlocks immediately prior to ending a session. commit 023b540e03e5d0c7a8d726ddb1cd741056839a0c Author: Roger Leigh Date: Tue Nov 2 21:51:29 2010 +0000 Sbuild::Options: Fix warning when using gcc-snapshot commit 4938ae861fbdcb2a9ae36ed5ca9fec56dc6c5c10 Author: Roger Leigh Date: Tue Nov 2 21:50:49 2010 +0000 Sbuild: Fully separate internal and aptitude resolvers Not internal resolver code is now used by the aptitude resolver. commit 2d47eaa3aa7a316e17f6b26693ed686c9a463531 Author: Roger Leigh Date: Tue Nov 2 21:28:05 2010 +0000 Sbuild::BuildDepSatisfierBase: Move merge_pkg_build_deps here merge_pkg_build_deps becomes add_dependencies The Sbuild::Build Dependencies and AptDependencies members are also moved here. This change moves all dependency resolving completely out of Sbuild::Build and into the resolver code. commit 321e75a71b0d716d77abbeffb67be462277ac31c Author: Roger Leigh Date: Tue Nov 2 20:19:39 2010 +0000 Sbuild::Build: Remove unused functions Remove expand_virtuals, expand_dependencies and file_for_name. commit 81bd06a13a28014ef15c2786e878654f03f1ffeb Author: Roger Leigh Date: Tue Nov 2 20:17:30 2010 +0000 Sbuild::Build: Remove unused get_altlist commit 9141da1ee5d4212ab124f681da070847062293a7 Author: Roger Leigh Date: Tue Nov 2 20:14:35 2010 +0000 Sbuild::BuildDepSatisfierBase: Display toolchain packages directly from dpkg Filter toolchain packages directly from installed package list. Remove unused expand_dependencies from Sbuild::Build. commit 1211c8e237366f9ace116730086602ad92b8c3d8 Author: Roger Leigh Date: Tue Nov 2 19:09:24 2010 +0000 Sbuild::Build: Drop unused is_superset commit 95cf9921aba0d85176c40b12fec8518bcded60ae Author: Roger Leigh Date: Tue Nov 2 19:04:43 2010 +0000 Sbuild::AptitudeBuildDepSatisfier: Use package build dependencies directly The aptitude resolver was using the pre-parsed dependency information used by the internal resolver. Use the build dependencies directly from the package control file, using Dpkg::Deps deps_parse with reduce_arch=1 to filter arch-specific dependencies when constructing the control file for the dummy package. In Sbuild::Build, create an alternative AptDependencies structure which mirrors the existing Dependencies structure but which does not pre-parse any dependencies. commit 1d9678556a25d12d92eb1df30009e0438b6a2ce4 Author: Andres Mejia Date: Tue Nov 2 14:16:53 2010 -0400 Run commands only if there are commands to run commit f82fe155b4e0e2e6a9802f939e415d0679ec180f Author: Andres Mejia Date: Tue Nov 2 14:14:10 2010 -0400 Fix comparison of $debug_level. Only compare if it's defined. commit bde142956f4ecd7da5e4b4bd1c4330758e90641a Merge: 6297b8e c62a210 Author: Andres Mejia Date: Tue Nov 2 14:13:57 2010 -0400 Merge branch 'master' into debuild-functionality Conflicts: lib/Sbuild/Build.pm lib/Sbuild/Conf.pm commit 4505089dcc3acf9c769e1d538e5b67595e592d4a Merge: 1478ae2 c62a210 Author: Andres Mejia Date: Tue Nov 2 13:40:24 2010 -0400 Merge branch 'master' into sbuild-createchroot commit 230b5767f96d700032b02413d6b03b198c304436 Merge: b53b679 c62a210 Author: Andres Mejia Date: Tue Nov 2 13:40:08 2010 -0400 Merge branch 'master' into sbuild-update commit d2e4c08a6b724729a5404423cd8c16366c689366 Author: Roger Leigh Date: Tue Nov 2 17:32:12 2010 +0000 Sbuild::Build: Remove 'Have DSC Build Deps' All packages now have build dependencies. commit c62a210ed548f05e4e58133e4ae86afffbefa202 Author: Roger Leigh Date: Tue Nov 2 17:26:02 2010 +0000 build: Restore check for aptitude Without the configure check, APTITUDE isn't defined in Sbuild::Sysconfig. commit 23e2076519f78ce2a76630cf6290a90cb978f14e Author: Roger Leigh Date: Tue Nov 2 17:25:20 2010 +0000 Sbuild::AptitudeBuildDepSatisfier: Clean up dummy deb files We always pass through the cleanup code on all failure paths. commit b6098d0cad24ff2bf9211a0e662d82eb7ad79f17 Author: Roger Leigh Date: Tue Nov 2 16:46:09 2010 +0000 Sbuild::AptitudeBuildDepSatisfier: Handle Build-Conflicts and error conditions Handle errors building dummy package Handle errors installing dummy package Install dummy package with dpkg --force-depends --force-conflicts Remove package purge code since it's handled automatically in uninstall_deps commit e7c549dfff1155467dfdd4f0a24752baa2a17d2c Author: Roger Leigh Date: Tue Nov 2 15:47:21 2010 +0000 Sbuild::BuildDepSatisfierBase: Replace uninstall_debs with run_apt call Don't use dpkg to remove packages since apt-get can do a better job. commit 53db4e7d88f05aa7aa7ef0a1aed5bb022b8c7944 Author: Roger Leigh Date: Tue Nov 2 13:53:24 2010 +0000 Sbuild::InternalBuildDepSatisfier: Reinstall all removed packages commit 0b96d99af1468120a2ce981d5c36e7f5b129e84a Author: Roger Leigh Date: Tue Nov 2 13:39:53 2010 +0000 NEWS: Document major changes commit 09dcb6bbb516f56881ed2bb4182f85b72b477d76 Author: Roger Leigh Date: Tue Nov 2 13:31:31 2010 +0000 Sbuild::Build: Move package/version parsing debugging to where set commit 2ca4acfd9ec9250eafd5310e07b5b18a12ec6bfd Author: Roger Leigh Date: Tue Nov 2 13:03:50 2010 +0000 debian: Document build-conflicts changes commit fff1497d356d503e119e1da905fb3229bc4115fc Author: Roger Leigh Date: Tue Nov 2 13:02:19 2010 +0000 Sbuild::BuildDepSatisfierBase: Correctly reinstall build conflicts commit 8b5e4087f522c1937144522a9181354b8e0ed884 Author: Roger Leigh Date: Tue Nov 2 12:52:50 2010 +0000 debian: Tidy changelog commit 3b235d765c2be95f91aa4b20ae8d8f7537770aa3 Author: Roger Leigh Date: Tue Nov 2 12:44:53 2010 +0000 Sbuild::BuildDepSatisfierBase: Move Sbuild::Build::format_deps here commit bbbc0d7939b6e5c4ee9b9b1439e5c601f219dba5 Author: Roger Leigh Date: Tue Nov 2 12:39:43 2010 +0000 Sbuild::Build: Remove unused and broken code from merge_pkg_build_deps Remove essential package processing; now done in install_essential Remove virtual package processing; now done in BuildDepInternalSatisfier Move toolchain reporting to BuildDepSatisfierBase Remove expand_virtuals Remove cmp_dep_lists Remove Build object members 'Toolchain Packages' and 'Additional Deps' (both now unused) Remove 'Additional Deps' usage from prepare_watches Install core packages after fetching sources, and before installing essential packages commit 640b5c734b3ddffe0864561ea3b76836ec15a78b Author: Roger Leigh Date: Tue Nov 2 11:26:57 2010 +0000 Sbuild::BuildDepSatisfierBase: Move Sbuild::Build::run_apt here run_apt is only used by the internal and aptitude resolvers, so move into the base class. commit 039a29e3fe7f63e6fe3579ba352a353fd22ba049 Author: Roger Leigh Date: Tue Nov 2 11:26:27 2010 +0000 Sbuild::Build: Do all DSC parsing in a single place commit 1cb8285fb0ed3cc3b90d4fdeb4714d84fd3d8d69 Author: Roger Leigh Date: Tue Nov 2 11:23:23 2010 +0000 Sbuild::Chroot: Use debug2 for logging chroot operations Unless debugging schroot/sudo command execution, this debug output is not needed normally, so log at lower priority. commit 2a3854a5cce57497d23f55afcc0a3bc9b5672cd5 Author: Roger Leigh Date: Tue Nov 2 11:22:26 2010 +0000 Sbuild: Add debug2 function This logs only when debug_level == 2, to avoid swamping normal debug output with irrelevant details. commit d3d685fef59e02e5eb4bd63fc93ef84d5cf05f57 Author: Roger Leigh Date: Mon Nov 1 21:46:22 2010 +0000 debian: Close #595934 commit 4f83985c0280d09767ab1384f0e3e262d575067e Author: Roger Leigh Date: Mon Nov 1 21:35:24 2010 +0000 Sbuild::Conf: Add RESOLVE_VIRTUAL option to disable virtual package resolving Defaults to enabled. commit 9bd583320f1acab840c5b2c122f83947a30fa78d Author: Roger Leigh Date: Mon Nov 1 21:03:55 2010 +0000 Sbuild::InternalBuildDepSatisfier: Resolve simple virtual dependencies get_virtual gets a list of packages providing a given package (or a single concrete package if it's not virtual), using "apt-cache --names-only search '^$pkg$'". This appears, at present, to be the most efficient way of finding virtual package providers. Packages are listed in alphabetical order. virtual_dependencies uses get_virtual to expand all virtual dependencies. It currently picks the first returned package, which is the first sorted alphabetically. commit 485d0062e39aa6a91d5103e9d19a4dd5bf90fb9d Author: Philipp Kern Date: Mon Nov 1 10:37:42 2010 +0100 bin/create-chroot: add testing-edu commit 9b8e2c224ece13b08dae8d5d4992a795d439b6a4 Author: Philipp Kern Date: Mon Nov 1 13:17:14 2010 +0100 [Buildd::Daemon] get rid of @todo entirely commit 65aaeface5507e5442c652cb1cfc1642dbdd8209 Author: Philipp Kern Date: Mon Nov 1 13:17:27 2010 +0100 bin/sbuild: fixup_pkgv apparently not needed, according to rleigh commit 0e5a5970ced13dcf9b63c78ec048e85c189820cd Author: Roger Leigh Date: Mon Nov 1 19:09:33 2010 +0000 debian: Close #590153 commit e5dcc2d88de715ac7d382ddc1ad572e317de4304 Author: Lorenzo De Liso Date: Mon Nov 1 17:44:34 2010 +0000 debian: buildd Replaces and Breaks ubuntu-dev-tools <= 0.83 Apparently, ubuntu-dev-tools also shipped a buildd program. commit 1e5814804ee26e99b2faa559aab128a1ca65dcf2 Author: Roger Leigh Date: Mon Nov 1 17:28:36 2010 +0000 debian: Close #599350 commit ee144f81240e2d2cb8fcd95796262b7db09c10e9 Author: Roger Leigh Date: Mon Nov 1 17:26:15 2010 +0000 Sbuild::Conf: Check sbuild group membership using gid and supplementary groups Previously, we checked if the user was a group member by looking at the membership of the sbuild group in the system group database. Now actually check for active posession of group privileges by looking at the process' gid and supplementary groups. commit 0cd659422d758223b8681cfc56189d3ab1737799 Author: Roger Leigh Date: Mon Nov 1 17:19:15 2010 +0000 man: Document sudo chroot symlink details commit 42c41b9a065dc6b5c566dc62d94f6bd5352343e0 Author: Roger Leigh Date: Mon Nov 1 17:10:25 2010 +0000 debian: Close #598054 commit b3d1efb66c521016dcfdc3a817c76465233dabfb Author: Roger Leigh Date: Mon Nov 1 17:08:56 2010 +0000 man: .sbuildrc is no longer required commit b685f317b78a7a06a44fda2a1f0132023addb2ec Author: Roger Leigh Date: Mon Nov 1 16:58:46 2010 +0000 debian: Close #599348 commit a9c8a91eb829b9bc217572e49d126ab1bfbc1295 Author: Roger Leigh Date: Mon Nov 1 16:57:42 2010 +0000 man: Remove obsolete parts of the sbuild man page commit 860529f85472c22bb9ec9f9cdc91e6447316098d Author: Roger Leigh Date: Mon Nov 1 16:32:11 2010 +0000 etc/25nssdatabases: Update from schroot 20nssdatabases Skip comments and blank lines in nssdatabases file Skip copying if source and destination are identical, preventing blanking the file if it's hardlinked or bind mounted. Use strict POSIX shell. commit 74ca8ce573377cdf8eaa7ef045c512d5467847bc Author: Philipp Kern Date: Mon Nov 1 10:37:42 2010 +0100 bin/create-chroot: add testing-edu commit f07e28d7dd9c80023f65a3df19da34ca0beb5d3c Author: Philipp Kern Date: Mon Nov 1 10:37:42 2010 +0100 bin/create-chroot: add testing-edu commit 7d14ca461db2c29429f305fcd4021660ce90faed Author: Roger Leigh Date: Sun Oct 31 21:59:48 2010 +0000 Sbuild::Build: Update copyright commit 81f82ef44da792a9d905bc6bf87f3181b5768c14 Author: Roger Leigh Date: Sun Oct 31 21:59:08 2010 +0000 Sbuild::Build: Drop pointless log message Package-provided build-dependencies are no longer optional. commit 9afe76e03d758172a8225d5c2e0d6f2d77ff7e91 Merge: 69957b4 f195fa2 Author: Roger Leigh Date: Sun Oct 31 20:45:51 2010 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 69957b43a7dd7893c0be17226ae07b7400f9bfce Author: Roger Leigh Date: Sun Oct 31 20:45:16 2010 +0000 Sbuild::Conf: Remove ALTERNATIVES support commit 5d22c9fd9d89ec7bd07e37e1033d4f11fed94b40 Author: Roger Leigh Date: Sun Oct 31 20:45:08 2010 +0000 debian: Close #571806 commit aeafdd9c1ab56f42e99903a7458afab8e6bb4d63 Author: Roger Leigh Date: Sun Oct 31 20:39:52 2010 +0000 Sbuild::Build: Remove support for stderr parsing in run_apt STDERR wasn't being piped back by pipe_apt_command for some time, so this code was not actually being used. Diagnosing causes of failure in the build environment was pointless, since it was logged anyway, and if the messages changed would be missed. Virtual dependency resolving using the static ALTERNATIVES list has been removed. This was also broken, and the aptitude resolver can do a proper job if this is required. commit f195fa21612547491c17416e8ff824cb3ee218fd Author: Cyril Brulebois Date: Sun Oct 31 17:28:18 2010 +0100 Fix shell script comparison. The proper operator to compare strings is =, not ==. On dash for example, one gets: $ [ "a" == "b" ] [: 1: a: unexpected operator commit be7e91ade3ad799b4d0229aed160e837a28e378d Author: Roger Leigh Date: Sun Oct 31 11:35:21 2010 +0000 debian: Close #567506 commit 498e3a4671725b3b356182f5f853fe638bd45e95 Author: Jan-Marek Glogowski Date: Sun Oct 31 11:32:30 2010 +0000 Sbuild::Build: Allow skipping ending of session on failure Allows investigation of build failures where otherwise the schroot session (including build tree) would be deleted. commit 829471628cfaf6e31cde3295e652630fb690c5b4 Author: Roger Leigh Date: Sun Oct 31 11:27:37 2010 +0000 Sbuild::Build: Cache resolver to avoid repeated lookups commit b942c93315cfa052e7dd0429b27d8eaa2821766a Author: Roger Leigh Date: Sun Oct 31 01:39:29 2010 +0100 debian: Close #567821 commit cd3e456fdec4badb49ac3e28bca1ea7c784b0a0c Author: Samuel Thibault Date: Sun Oct 31 01:37:13 2010 +0100 Buildd::Daemon: Use loop when reading from pipes Fixes hurd-i386 breakage, likely due to differing buffer sizes or message lengths. This ensures the entire pipe contents are read. commit 2418a896cca6d6c8ca38994644df03e0797faa8e Author: Roger Leigh Date: Sun Oct 31 01:35:41 2010 +0100 debian: Close #567822 commit 2d31f10815748be72ce8ce90aa2d01a3a4b5322e Author: Samuel Thibault Date: Sun Oct 31 01:33:20 2010 +0100 buildd-vlog: Fix breakage sleep statements are not optimal, but avoid most problems. commit 4099778007839788eb72dc6cf798a835ebd19618 Author: Roger Leigh Date: Sun Oct 31 01:31:20 2010 +0100 Sbuild::Build: Remove srcdep lock in cleanup_close failure path commit 0eb9bafbe2bee6b90d61768f268b50da39354a18 Author: Roger Leigh Date: Sun Oct 31 01:29:06 2010 +0100 Sbuild::Build: Add and handle additional failure stages commit 77179b7848de62d94cfb7a05b86b21fc21dbaf1a Author: Roger Leigh Date: Sat Oct 30 18:08:52 2010 +0100 debian: Close #579971 commit 96013d4908bbb95d12f210780d3d78f9ccb3a447 Author: Salvatore Bonaccorso Date: Sat Oct 30 18:07:47 2010 +0100 man: Remove trailing q from sbuild-createchroot(8) commit bf23702b4ca1eabf3a01d298834a1aa4e946296d Merge: ad4d401 1c8e016 Author: Roger Leigh Date: Sat Oct 30 17:17:03 2010 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit ad4d401756401b3b3d3dabd8de909c6979f6ddf6 Author: Roger Leigh Date: Sat Oct 30 17:13:55 2010 +0100 Sbuild::Build: Install core packages from CORE_DEPENDS commit efc4055bed439649f3b9f55bb617fe5fff40804b Author: Roger Leigh Date: Sat Oct 30 17:13:19 2010 +0100 Sbuild:BuildDepSatisfierBase: remove_srcdep_lock_file decrements lock count commit 8184bf1b9ac20830bb116c8866b90c91f3a4209f Author: Roger Leigh Date: Sat Oct 30 17:12:27 2010 +0100 Sbuild::Conf: Add CORE_DEPENDS key A list of core packages which must be installed for sbuild to function. Currently defaults to build-essential and fakeroot. commit 1c8e01677735335c31c55f942406a6fbde55dd22 Author: Philipp Kern Date: Sat Oct 30 17:16:41 2010 +0200 configure.ac: drop DPKG_ARCHITECTURE check commit 6ce363aeffb9aa52955c747cbf0021aa70cad7a8 Author: Philipp Kern Date: Sat Oct 30 17:15:42 2010 +0200 [Sbuild::Build] use Dpkg::Arch::debarch_is instead of dpkg-architecture commit 1eae88b781de3bc54e62a69810ec7166237c0132 Author: Philipp Kern Date: Sat Oct 30 17:13:19 2010 +0200 [WannaBuild::Database] use Dpkg::Arch::debarch_is instead of dpkg-architecture commit c29a57c35aa44085426f4b6039c566d7f4b38345 Author: Roger Leigh Date: Sat Oct 30 15:58:27 2010 +0100 debian: Close #380113 commit 768e9694db5d392cd435ee1321ba9f0f2c13e3a9 Author: Roger Leigh Date: Sat Oct 30 15:49:01 2010 +0100 Sbuild::Build: Install ESSENTIAL packages before build deps Modify the BuildDepSatisfiers to allow installation of package sets other than the current package build-deps. Install/remove both the ESSENTIAL packages and the current package build dependencies. commit e7dc24488c5c941639b0bab46e247a5bd3d96da4 Merge: 320cc46 f6090b6 Author: Philipp Kern Date: Sat Oct 30 14:13:08 2010 +0200 Merge branch 'buildd' commit f6090b672f6c8f24520c0e0ab365bf8bab06ca48 Author: Philipp Kern Date: Sat Oct 30 13:58:11 2010 +0200 bin/create-chroot.sh: support lenny-backports-sloppy creation commit 320cc468031f066946b181e539c3473fd4b30484 Author: Roger Leigh Date: Thu Oct 28 22:13:24 2010 +0100 debian: Close #569823 commit fe31bd6fbb92d5bf48c111b68ee3697356808398 Author: Roger Leigh Date: Thu Oct 28 22:12:19 2010 +0100 Sbuild::Build: Log source version as well as binary version commit b483eff070d709dc9bed65f1411e72130b588789 Author: Roger Leigh Date: Thu Oct 28 22:00:40 2010 +0100 debian: Close #586275, #578810, #591187, #591188, #591189, #595863, #595866, #595872 commit dffa5884a0df0821ce21d62ac535b1b6a1f95d11 Author: Ansgar Burchardt Date: Mon Jul 5 17:35:27 2010 +0900 Sbuild::InternalBuildDepSatisfier: Do not try other alternatives if installing default version is enough When we encounter Build-Depends: pkg-a (>= 2) | pkg-b (>= 3) and a lower version of pkg-a is already installed (or provided by another package), sbuild would try to upgrade pkg-b as well. This patch changes the behaviour of sbuild to not try satisfying alternative dependencies if the dependency can be satisfied by installing the default version. Bug-Debian: http://bugs.debian.org/586275 Signed-off-by: Ansgar Burchardt Signed-off-by: Roger Leigh commit 1478ae27ba528c19c680df38c5d8ba3cc8105616 Author: Andres Mejia Date: Thu Oct 28 13:48:04 2010 -0400 Remove deprecated key 'priority' from being added in configuration files. commit 6297b8e1273db9ccaccf31cffda96f053e0bcf27 Merge: db0c8dc 51d8b81 Author: Andres Mejia Date: Wed Oct 27 14:36:06 2010 -0400 Merge branch 'master' into debuild-functionality commit 715859d662940539b04fc2f3b5bc14065e9d3adb Merge: 24e375c 51d8b81 Author: Andres Mejia Date: Wed Oct 27 14:35:57 2010 -0400 Merge branch 'master' into sbuild-createchroot commit b53b6793f306a6711213f5f134dbc100faab1931 Merge: cbbc08b 51d8b81 Author: Andres Mejia Date: Wed Oct 27 14:35:43 2010 -0400 Merge branch 'master' into sbuild-update commit 51d8b818c65101ec0145fb5bc53baf1c4a12aa7d Author: Roger Leigh Date: Tue Oct 26 23:01:33 2010 +0100 debian: Close #588035 commit 96e37214fe8a2d36bee96b1a7d2d37c796b04e26 Author: Roger Leigh Date: Tue Oct 26 22:59:36 2010 +0100 debian: Bump version to 0.60.2-1 commit cc5907e0938d773a4e77e2b67eb69eeda56e2611 Author: Roger Leigh Date: Tue Oct 26 22:59:02 2010 +0100 NEWS: Bump version to 0.60.2 commit b572872e0ef8a26c4ab174a79304323ac9118338 Author: Ansgar Burchardt Date: Tue Oct 26 22:58:32 2010 +0100 Sbuild::AptitudeBuildDepSatisfier: Do not ignore trust violations Set the value of Aptitude::CmdLine::Ignore-Trust-Violations depending on the $apt_allow_unauthenticated option. Bug-Debian: http://bugs.debian.org/588035 Signed-off-by: Ansgar Burchardt Signed-off-by: Roger Leigh commit 7ac00d6608e54c9a7365451701ee12af73ba8303 Author: Ansgar Burchardt Date: Tue Oct 26 22:53:34 2010 +0100 Sbuild::AptitudeBuildDepSatisfier: Do not pass -o Apt::Install-Recommends=false to aptitude The option --without-recommends corresponds to the configuration options Apt::Install-Recommends and Apt::AutoRemove::InstallRecommends. There is no need to pass the option explicitly. Signed-off-by: Ansgar Burchardt Signed-off-by: Roger Leigh commit db0c8dc00b881e0d7b21ac1aec7e079bd81ff62d Author: Andres Mejia Date: Tue Oct 26 02:35:39 2010 -0400 Deprecate setup-hook option in favor of chroot-setup-commands feature. commit 10f8886ae7e2c181c4b9e7ca679c18715bfd6291 Author: Andres Mejia Date: Tue Oct 26 02:05:35 2010 -0400 Change to using a hash of arrays of arrays as the data structure for external commands. commit a19001a873bc504ebedd3c54f4ce8b413b66dd67 Author: Andres Mejia Date: Tue Oct 26 01:03:17 2010 -0400 Support running external commands inside and outside chroot. There's also a fix to get external commands from config files detected properly. commit 24e375c655e57aa4d550eb502236840c29996458 Author: Andres Mejia Date: Mon Oct 25 00:43:13 2010 -0400 Update sbuild-createchroot explaining how a tarball is generated based on a specified extension. commit 02e2e3a82b9ff20f45d3f606af7c3388cfef085d Author: Andres Mejia Date: Sun Oct 24 23:38:45 2010 -0400 Don't prepend 'sudo' in example command to run piuparts. How users run piuparts as root is at their discretion. commit cbbc08b1610f7415bac468fe3301ce9a3b4cfca1 Author: Andres Mejia Date: Sun Oct 24 23:06:39 2010 -0400 Merge sbuild-clean functionality with sbuild-update. This deprecates sbuild-clean. commit d42bb4151fdd9d1a2421dafc9edb547db60c5a09 Merge: 92464e1 2b23363 Author: Andres Mejia Date: Sun Oct 24 22:23:03 2010 -0400 Merge branch 'master' into debuild-functionality commit 670cc71e50fb991910f72c5e0e7735623a904a5f Merge: 1c7aab9 2b23363 Author: Andres Mejia Date: Sun Oct 24 22:22:23 2010 -0400 Merge branch 'master' into sbuild-createchroot commit 31d85b1c4ef2c0c340152a1d82f102d1c63ea1ec Merge: 2d2d0ac 2b23363 Author: Andres Mejia Date: Sun Oct 24 22:21:48 2010 -0400 Merge branch 'master' into sbuild-update commit 2b2336347a1a9f747f0216eddf84831016a6cf21 Author: Roger Leigh Date: Sun Oct 24 20:05:43 2010 +0100 debian: Maintainer scripts use NMU-safe version numbers commit 0b31eb82acc2e41e493ef4b3d922b862ad5d963d Author: Roger Leigh Date: Sun Oct 24 19:57:39 2010 +0100 debian: Upgrade to standards version 3.9.1 commit 93ad8d1a3321d4069f82c93003a892c3ce191453 Author: Roger Leigh Date: Sun Oct 24 19:57:16 2010 +0100 debian: Migrate renamed conffiles to new locations commit 31feb5475608ced12e038fc6ad3e1d3b539f18fd Author: Roger Leigh Date: Sun Oct 24 19:33:27 2010 +0100 build: Add --enable-compat option to configure This allows compatibility features to be selectively enabled, which is intended to allow sbuild to build with support for current features when build for unstable, and with support for stable releases when build for stable (which includes buildds). This will allow both uses from a single source base. commit 9f70d48d71aab89ace43a98751782e5ee7842f08 Author: Roger Leigh Date: Sun Oct 24 19:25:13 2010 +0100 build: Drop AM_MAINTAINER_MODE commit 657e9d8b432efed49f4d67f15f2c16a0aaebf0be Author: Roger Leigh Date: Sun Oct 24 19:17:10 2010 +0100 debian: Install schroot configuration into /etc/schroot commit b2ce1a79dcf4f934d5892690a4600c28b412fee9 Author: Roger Leigh Date: Sun Oct 24 19:12:31 2010 +0100 etc: Add support for profile templates Current buildd chroot script-config files don't use current schroot script-config layout and naming conventions, and do not support non-Linux architectures. Copy profile-templates template tree and genprofile profile generator from schroot, and create "buildd" profile templates for linux and freebsd. Update sbuild-createchroot to use sbuild/config profile, and create-chroot to use buildd/profile. Update buildd chroot configuration to use new script-config name in buildd postinst. Delete old profile files from etc, since these are now generated from the profile templates. commit 30ef387e5a0da926a735341ff0b19a110939dbf0 Author: Roger Leigh Date: Sun Oct 24 13:28:25 2010 +0100 debian: create-chroot is installed into libexecdir automatically commit 1d7050f68d7bd1198c2051202fbadb9560dca4bb Author: Roger Leigh Date: Sat Oct 23 14:05:51 2010 +0100 Sbuild::Conf: Only validate APTITUDE if being used commit f0644d8b3186027767d1b031958f782e9d1a0aca Author: Roger Leigh Date: Sat Oct 23 14:05:37 2010 +0100 build: Distribute apt-keys commit 0067918798447eee2a27dcd4456ed4a108012a5e Merge: b8bb15e 4a7fb7f Author: Roger Leigh Date: Sun Oct 10 20:07:15 2010 +0100 Merge branch 'buildd' into buildd-merge commit b8bb15e7c0de8925e19fcb3fb876c94fd28d7528 Merge: 35de096 52d1331 Author: Roger Leigh Date: Sun Oct 10 20:06:55 2010 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 35de09692116a053245a5a26c1bb82b61ac156bd Author: Roger Leigh Date: Sun Oct 10 20:03:43 2010 +0100 debian: Close #588818 commit 4a7fb7f1fdf8386f27df6d77be845278c9c036ff Author: Philipp Kern Date: Sun Oct 10 16:59:53 2010 +0200 etc/99builddsourceslist: backports/buildd has slightly different semantics commit e8cc34b073fbed8ee5f5be8f51bd91d2902b2802 Author: Philipp Kern Date: Sun Oct 10 16:36:03 2010 +0200 etc/99builddsourceslist: correct off-by-one in sloppy detection commit cd031089f2d8481dec7505b61cfa05ac1b2be31f Author: Philipp Kern Date: Sun Oct 10 16:31:04 2010 +0200 etc/script-defaults.buildd: support variants with one dash in them commit eabd4aa861a8e353d00f860bd7a94cd2ac5be036 Author: Philipp Kern Date: Sun Oct 10 16:23:56 2010 +0200 bin/sbuild: remove bogus Jobs File unlink commit 48a57289f474d6bb8dc588d195ad878d688c38fd Author: Philipp Kern Date: Sun Oct 10 16:19:52 2010 +0200 etc/99builddsourceslist: fix backports URLs commit 1128e40b3f290e88c2b7264c6b15a718d6f8f1ac Author: Philipp Kern Date: Sun Oct 10 16:19:23 2010 +0200 etc/99builddsourceslist: fix debian-edu URL commit 66ae451b4753de7d451b58453600e1f9170b9040 Author: Philipp Kern Date: Sat Oct 9 11:32:51 2010 +0200 Switch from www.backports.org to backports-master.debian.org. commit e7a75141919b8789acd99a5fbf4a3b333f0292b7 Author: Philipp Kern Date: Wed Oct 6 15:56:17 2010 +0200 etc/99builddsourceslist: use normal string equals commit e4bc25aea0f75940870c249151ef41b8f873fb47 Author: Philipp Kern Date: Wed Oct 6 15:55:42 2010 +0200 etc/99builddsourceslist: add support for backports-sloppy commit 12f167389048c03646c4609039cfa31c41f902d8 Author: Philipp Kern Date: Mon Oct 4 12:14:21 2010 +0200 etc/99builddsourceslist: fix up the indentation commit 52d13315dd1e2762e0616899012c363ab3e7ea64 Author: Philipp Kern Date: Tue Aug 31 11:14:12 2010 +0200 man/buildd.1.in: Ryan Murray does not maintain a fork of sbuild anymore commit 2d2d0ac8c2feea894470159813b54da3aa96e45c Merge: a3b9cc1 e058334 Author: Andres Mejia Date: Sat Aug 28 19:42:45 2010 -0400 Merge branch 'master' into sbuild-update commit 92464e1022ec1223fbbd31309475fe2d019a150d Merge: 9f6a358 e058334 Author: Andres Mejia Date: Sat Aug 28 19:41:26 2010 -0400 Merge branch 'master' into debuild-functionality commit 1c7aab97d49e791ae378e8be6d51cd023fd3ef51 Merge: 70ebbe9 e058334 Author: Andres Mejia Date: Sat Aug 28 19:40:28 2010 -0400 Merge branch 'master' into sbuild-createchroot Conflicts: bin/sbuild-createchroot commit e058334813faaf8a5000ffafbc091a2bf0b9f8b3 Author: Philipp Kern Date: Sat Aug 28 22:49:39 2010 +0200 bin/sbuild-createchroot: fix the schroot template Dots are no longer allowed in schroot config snippets, to comply with the run-parts regexp. commit 70ebbe98c68ed8a65946f4018d7f3b30c0b5fb88 Author: Andres Mejia Date: Fri Aug 20 03:54:09 2010 -0400 Support multiple tarball compression formats besides gzip. commit a3b9cc11490554b8967a164e28526e68182a4f14 Merge: b590629 aa08f1a Author: Andres Mejia Date: Thu Aug 19 20:56:22 2010 -0400 Merge branch 'master' into sbuild-update commit 93315a62f6c2d0d04b47e5cd9c66899cc31918d6 Merge: a5937aa aa08f1a Author: Andres Mejia Date: Thu Aug 19 20:56:13 2010 -0400 Merge branch 'master' into sbuild-createchroot commit 9f6a35823e64988868f36847166bc79ab467694d Merge: a65357b aa08f1a Author: Andres Mejia Date: Thu Aug 19 20:56:05 2010 -0400 Merge branch 'master' into debuild-functionality commit b590629158e6a9710f0f2b9b4f49f9f00939e50c Merge: b336ccb 3426a61 Author: Andres Mejia Date: Thu Aug 19 16:48:02 2010 -0400 Merge branch 'master' into sbuild-update commit a5937aa6b3c6b7c76008cce31650359181bea187 Merge: af29218 3426a61 Author: Andres Mejia Date: Thu Aug 19 16:47:53 2010 -0400 Merge branch 'master' into sbuild-createchroot commit a65357be74588914dbf7bf77bc10cac74cfe2701 Merge: c58a8c7 3426a61 Author: Andres Mejia Date: Thu Aug 19 16:47:44 2010 -0400 Merge branch 'master' into debuild-functionality commit aa08f1aa63a0b46d5ea78a89f4397c6e7186f0ce Merge: 3426a61 b336ccb Author: Roger Leigh Date: Thu Aug 19 21:46:46 2010 +0100 Merge remote branch 'ceros/sbuild-update' commit 3426a619aa9069bb88be72ea1c454acd9467c879 Author: Andres Mejia Date: Thu Aug 19 21:18:50 2010 +0100 Sbuild::ChrootInfoSchroot: Add find function which copes with chroot namespaces schroot >= 1.4.8 adds chroot: and source: namespaces. This function copes with the -source compatibility names so that sbuild-update etc. can work with source chroots. commit 45fa88fd3b213719c33233eff20de1a71b900bc5 Merge: d89ed77 2cd9937 Author: Roger Leigh Date: Wed Aug 18 22:07:39 2010 +0100 Merge branch 'buildd' commit c58a8c79ee4ad7049f93b58fbf67f80e2a6f1742 Merge: c59baf2 d89ed77 Author: Andres Mejia Date: Mon Aug 16 03:02:17 2010 -0400 Merge branch 'master' into debuild-functionality commit af2921850a42c1d7d6deb2d5409c16b1f991d5f3 Merge: b2e2161 d89ed77 Author: Andres Mejia Date: Mon Aug 16 03:02:05 2010 -0400 Merge branch 'master' into sbuild-createchroot commit b336ccb407a95ff95f5c06901bb97c06a60f82da Merge: ebd0a35 d89ed77 Author: Andres Mejia Date: Mon Aug 16 03:01:27 2010 -0400 Merge branch 'master' into sbuild-update commit 2cd9937b3100f05991ce153a211d475880df4abf Author: Andreas Barth Date: Thu Aug 5 19:04:48 2010 +0200 no functional changes: cleanup lib/Buildd/Daemon.pm again commit 9d0e838624e0c6c02c2b4899382737e2368e0566 Merge: 3f99f62 83eb51a Author: Roger Leigh Date: Wed Aug 4 23:11:39 2010 +0100 Merge branch 'buildd' of ssh+git://git.debian.org/git/buildd-tools/sbuild into buildd commit d89ed7745d8b03dc59fe07e3e4eb05155c4f8076 Merge: 27d9e40 8c0ec0e Author: Roger Leigh Date: Wed Aug 4 23:10:34 2010 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 27d9e4080ec16395826ccce9b3e8e80d27df44c6 Author: Roger Leigh Date: Wed Aug 4 23:09:35 2010 +0100 debian: Close #591620 commit 3f99f62b7ba0ed1426e9bfbfe1b7d2e8ff8a3033 Author: Sebastian Andrzej Siewior Date: Wed Aug 4 10:35:21 2010 +0200 buildd-uploader: don't kill the lock if not the owner The following happens to people which have to upload quite a lot on a slow uplink: - buildd-uploader is invoked, starts the upload process and creats a lock named buildd-uploader.lock - a second buildd-uploader instance is invoked. It notices the lock, doesn't do a thing except it kills the lock due to the following END statement: |if (defined($conf) && | defined($uploader) && | defined($uploader->get('Uploader Lock'))); 'Uploader Lock' is defined at this point but it is 0 because this instance does not own the lock - a third instance of buildd-uploader is invoked which will upload packages. Signed-off-by: Sebastian Andrzej Siewior commit b85bf91ba12df6600c3a5531055db5a8a5e2242a Author: Sebastian Andrzej Siewior Date: Wed Aug 4 10:35:21 2010 +0200 buildd-uploader: don't kill the lock if not the owner The following happens to people which have to upload quite a lot on a slow uplink: - buildd-uploader is invoked, starts the upload process and creats a lock named buildd-uploader.lock - a second buildd-uploader instance is invoked. It notices the lock, doesn't do a thing except it kills the lock due to the following END statement: |if (defined($conf) && | defined($uploader) && | defined($uploader->get('Uploader Lock'))); 'Uploader Lock' is defined at this point but it is 0 because this instance does not own the lock - a third instance of buildd-uploader is invoked which will upload packages. Signed-off-by: Sebastian Andrzej Siewior commit 83eb51acea1a360813267969c324a8305213a8fb Author: Philipp Kern Date: Fri Jul 30 16:58:41 2010 +0200 etc/99builddsourceslist: support debian-edu commit e6ee015d8b64e62bcc20722175093d159fdcac9c Author: Philipp Kern Date: Fri Jul 30 03:58:35 2010 +0200 [Buildd::Mail] accept BD-Uninstallable state for transition to Failed commit 465f892f5eae977cc920127f81d4b832d00e4d77 Author: Philipp Kern Date: Fri Jul 30 01:24:44 2010 +0200 bin/create-chroot: also pass linux32 on powerpc commit 362abd93d5326cd7083246133c6ce83941a3fec0 Author: Philipp Kern Date: Thu Jul 29 23:27:36 2010 +0200 bin/create-chroot: correct two typos commit 8c0ec0e5827b679e4bed2e461466fb45a86f1b38 Author: Philipp Kern Date: Fri Jul 30 03:58:35 2010 +0200 [Buildd::Mail] accept BD-Uninstallable state for transition to Failed commit f10351dd144a7f22f6b284ab906d03f226586c23 Author: Philipp Kern Date: Fri Jul 30 01:24:44 2010 +0200 bin/create-chroot: also pass linux32 on powerpc commit b9974544de626ef5bd0b9f4e9b576d3135a212b3 Author: Philipp Kern Date: Thu Jul 29 23:27:36 2010 +0200 bin/create-chroot: correct two typos commit b2e2161a0f605eb89cf55d81fd32aa69c9a8b363 Author: Andres Mejia Date: Sat Jul 24 19:54:32 2010 -0400 Implement creating sbuild chroot tarballs. commit c59baf2493d6b071c0a8474ab230d34e1b758a29 Author: Andres Mejia Date: Sat Jul 24 18:06:39 2010 -0400 Clarify that pre/post build commands in configuration file are array of array of strings. commit 8efff5bb408387d6932ebe34a9dee89fc0c2b392 Author: Andres Mejia Date: Sat Jul 24 18:04:03 2010 -0400 Fix up sbuild man page. commit edf175d510f8c71a9825f136069e4d37fdde7154 Author: Andres Mejia Date: Sat Jul 24 18:03:29 2010 -0400 Make pre/post build commands specified in command line to be array refs commit aee8e7bf0183dafa6406092968ee8d0455a155dc Author: Andres Mejia Date: Sat Jul 24 17:05:49 2010 -0400 Fixup various problems from merge. commit 820c42c6a343f1cfe7c5f83261904458abf91751 Merge: d123d67 bbbdab1 Author: Andres Mejia Date: Tue Jul 20 15:35:43 2010 -0400 Merge remote branch 'rleigh/debuild-am2' into debuild-functionality Conflicts: debian/rules man/sbuild.1.in commit ebd0a350f84d284135aad8de878c91a5827f803f Author: Andres Mejia Date: Tue Jul 20 15:01:52 2010 -0400 Have sbuild-upgrade and sbuild-distupgrade exec sbuild-update with appropriate options. commit 89a8e35a9fa18a256eba022a29f7d4b72b6aee0d Author: Andres Mejia Date: Tue Jul 20 15:01:41 2010 -0400 Update man page for sbuild-update for new options. commit a8c82a10bede6c31d6325cf6ebc674387cf046f4 Author: Andres Mejia Date: Tue Jul 20 15:00:25 2010 -0400 Allow sbuild-update to perform update, upgrade, and distupgrade. This also allows sbuild-update to perform the various commands all at once. commit 16c7c88a80b6a377f0e1aaa604cccffd9c1cae59 Author: Andreas Barth Date: Mon Jul 19 20:13:00 2010 +0200 no functional changes: cleanup lib/Buildd/Daemon.pm commit d123d670099623ea9989ab3a3350f567b2b20af5 Author: Roger Leigh Date: Wed Jul 14 20:04:48 2010 +0100 Sbuild: Add support for aptitude in chroot code commit ad46454722d93c0f12096c8cd71fc5f92a660ed0 Author: Cyril Brulebois Date: Wed Jul 14 19:36:13 2010 +0200 Fix FTBFS at dh_install step. Renaming create-chroot in 18512e3303f56a55841719e393c3e5a4653c9b70 wasn't sufficient, its name in sbuild.install had to be updated as well. Fix that. commit 750a0270c81531754c1bf99c3086571a9d459e67 Author: Cyril Brulebois Date: Sun Jul 11 23:28:02 2010 +0200 man: Document --build-dep-resolver for sbuild. commit 3a90456aa0cf2d1e3406bf06a55476608f06fa1e Merge: 5e7c3c4 2ee8048 Author: Roger Leigh Date: Mon Jul 12 22:52:32 2010 +0100 Merge branch 'buildd' Conflicts: lib/Buildd/Daemon.pm commit 5e7c3c45915f1d1865337632557ab93a9b42ae71 Author: Roger Leigh Date: Mon Jul 12 22:46:46 2010 +0100 build: Install create-chroot commit 136a34343120beb29a9dbeac191d5a1c0f0b9ab6 Author: Roger Leigh Date: Sun Jul 11 22:29:22 2010 +0100 debian: Require schroot 1.4.x commit fcfea2516fd3abf3f100e1bc82db37928b780788 Author: Roger Leigh Date: Sun Jul 11 22:26:41 2010 +0100 sbuild-createchroot: Document need for abs_path workaround commit d61a655101c3008d17bd56274b5d1da3c8fcb28e Author: Roger Leigh Date: Sun Jul 11 21:44:39 2010 +0100 sbuild-createchroot: Fix abs_path and remove deprecated keys Remove deprecated schroot configuration keys, and change location to directory. Create the bootstrap directory prior to calling abs_path, or else it returns an undefined value. commit 2ee8048bdf4df07d4ff0047a7fb24ff0e1d5b5b6 Author: Andreas Barth Date: Sun Jun 20 18:37:48 2010 +0200 buildd-mail: accept a signed changes if the package is in build-attempted commit 85c94c699370f378d728d8e212918620c2c16dde Author: Andreas Barth Date: Sat Jun 19 20:37:50 2010 +0200 wanna-build interface: use api=1 for take, and accept extra-depends/conflicts commit 4e5d142f89a6239ab8b6c1313a3ba5414b5e972d Author: Andreas Barth Date: Fri Jun 18 18:36:49 2010 +0200 no functional change: restructure interfaces within lib/Buildd/Daemon.pm commit d42b53055641fe29a17e5d6bf2ad905e16ea95f4 Author: Andreas Barth Date: Fri Jun 18 00:02:28 2010 +0200 to ease upgrades to squeeze: drop the irrelevant options run-setup-scripts / run-exec-scripts commit 18512e3303f56a55841719e393c3e5a4653c9b70 Author: Roger Leigh Date: Sat Jun 12 17:29:30 2010 +0100 bin: Install create-chroot in same location as dobuildlog commit d331072762d30c305716123da89dbe3207b1a73a Author: Roger Leigh Date: Sat Jun 12 17:16:16 2010 +0100 NEWS: Update for 0.60.1 commit 7594a18ca7b7612af3f81a637cc378d484d642c7 Author: Roger Leigh Date: Sat Jun 12 16:58:43 2010 +0100 Sbuild::Build: Don't use '-sn' with 'dpkg-buildpackage -x' -sn is not supported by newer source formats. Removing it also makes the code more robust for non-binary builds if the source isn't in the build directory at some future point. commit 630086f9514d9561f8b8a5abf51e35a3bd0be3ee Author: Roger Leigh Date: Sat Jun 12 16:58:21 2010 +0100 debian: Close #559533 commit 7208b117f4e483121c763b56049264605f390d0d Merge: 9858095 70519bd Author: Roger Leigh Date: Sat Jun 12 16:33:13 2010 +0100 Merge branch 'buildd' commit 70519bdfe52251cb4aa5f80936b11ed371442dba Author: Andreas Barth Date: Mon May 24 10:49:33 2010 +0200 drop run-setup-scripts and run-exec-scripts from create-chroot.sh for lvm-type chroots: they only confirmed the default in lenny, and produce warnings in squeeze. Related to #579926 commit 5a10d3be7d8f29fa3259fbefa574becad1dce808 Author: Andreas Barth Date: Thu May 20 22:58:15 2010 +0200 add copyfiles-defaults to sbuild set schroots COPYFILES NSSDATABASES to sbuild-specific values via 99buildd* put the network part in copyfiles, and the system part in nssdatabases commit a73fd03cee260a02ae12a1a067f96ba8178030e6 Author: Andreas Barth Date: Thu May 13 00:23:10 2010 +0200 add $defaults to .builddrc which contains default values if they're not overriden within $distributions commit 9858095784235f8e4edddd4e4304f426638d9979 Merge: ba4113f 56a7d63 Author: Roger Leigh Date: Mon May 3 13:59:28 2010 +0100 Merge remote branch 'origin/buildd' commit ba4113ff5f1a38f4d694fcb1b5e79da0d4bd9718 Merge: ba54dd6 46367f9 Author: Roger Leigh Date: Mon May 3 13:57:01 2010 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit ba54dd628d1f5a3c72286242e5e6c6731fe3367a Author: Roger Leigh Date: Mon May 3 13:55:48 2010 +0100 Sbuild::Build: Remove DSC filename assumptions breaking new source formats commit 56a7d6379ab880f118c8f4e38c1ea81bda0148d1 Author: Andreas Barth Date: Sun May 2 15:15:39 2010 +0200 name the experimental chroots correct commit 35e899379c71928e139f38ee8ff2e049fd317cc9 Author: Andreas Barth Date: Sun May 2 13:00:19 2010 +0200 funny things break with /bin/sh=dash commit ed1f8e3fafa1fc4a20052cf219aa0ae23c1d6cb4 Author: Andreas Barth Date: Sun Apr 25 13:18:54 2010 +0200 add explicit apt-key for backports.org as security already has unauthenticated explicitly set, this allows to remove Aptitude::CmdLine::Ignore-Trust-Violations (means one needs to add the bpo key by hand once for an non-snapshot-chroot) commit 2e59bb2eba4c11b11f6d000a6b1354a3a0eb6d73 Author: Andreas Barth Date: Thu Apr 22 22:51:26 2010 +0200 partly revert 99builddsourceslist: + remove apt-get update, as this is not needed with the right options commit c3c1c30592e38815ac4335415a6774b26ef5faec Author: Andreas Barth Date: Thu Apr 22 22:14:56 2010 +0200 fix 99builddsourceslist: + proposed-updates: no incoming with debian_incoming=no + apt-get update after adding new sources + don't fail with lenny on exit if there is no apt.cfg commit 2e6dadf1f9061e67dff45e01edbcc212038ed36a Author: Andreas Barth Date: Thu Apr 22 09:32:25 2010 +0200 fix typo for backports commit 77ee089cf60bf42d00207d73ab97e38735a64d51 Author: Marc Brockschmidt Date: Tue Apr 20 16:56:43 2010 +0200 AptitudeBuildDepSatisfier: Make compatible with new aptitude commit 6c6a12a53b31832fc9e369abc0df5ef2faefb841 Author: Andreas Barth Date: Tue Apr 20 00:24:20 2010 +0200 write /etc/schroot/conf.buildd as root commit efb72d2f7ac7bc33470167ffdc74532306f1d58f Author: Andreas Barth Date: Sun Apr 18 20:49:09 2010 +0200 auto-add personality=linux32 for mips, sparc, i386 commit 06b1a24cecc98c359be273cf9698cb3f388ca9b2 Author: Andreas Barth Date: Sun Apr 18 20:32:33 2010 +0200 allow to specify another arch commit 1d254f5d9b5b9caf7bd807e216b55dafa42d2572 Author: Andreas Barth Date: Sun Apr 18 20:30:13 2010 +0200 allow to not specify the mirror commit 1f6ee50a9d141053f4c7a4801bd2fc0e7051c485 Author: Andreas Barth Date: Sun Apr 18 20:19:20 2010 +0200 add local mirror to /etc/schroot/conf.buildd if file doesn't exist commit dae7a5359ff85af4c5313cbe70f26264e00de49f Author: Andreas Barth Date: Mon Apr 5 19:50:20 2010 +0200 cleanup: use SUITE at a few more places in 99builddsourceslist commit 653a0a30299e958f8edddbaf4878ef8a64c14a6d Author: Andreas Barth Date: Mon Apr 5 19:21:48 2010 +0200 don't add incoming / p-u to >= lenny chroots on lvm devices commit 5eff43ed067b7418528fe0fea61697c0e3ff07f1 Author: Andreas Barth Date: Mon Apr 5 18:58:27 2010 +0200 automatic sources.list and apt.conf setup as discussed in http://lists.debian.org/20100405111635.GR19557@mails.so.argh.org commit ab5117c4cf75b8dccc43ff62ed8ff2ca22e1a6e7 Author: Andreas Barth Date: Mon Apr 5 14:00:19 2010 +0200 Don't copy files from netbase to the chroot. Closes: #576508 commit 8955f1532f246fb78180d0f22d7196ce21bd47a1 Author: Andreas Barth Date: Sun Apr 4 10:25:50 2010 +0200 cron: buildd watcher runs every 15 minutes commit d514d3149b27d7de2c5498c90200213cbd3f3e44 Author: Andreas Barth Date: Sun Apr 4 10:17:22 2010 +0200 create-chroot.sh, if newer than lenny: + set force-confnew for dpkg + always disable pdiffs, installation of recommends commit 8bae7dacbb9eba791dd13ea9b7cc4cdc0f5ad8fe Author: Andreas Barth Date: Sat Mar 20 19:47:21 2010 +0100 allow to create stable chroots if unstable on already exist commit 46367f915467e6939211c81d68e7abd4fe5a16f2 Author: Philipp Kern Date: Wed Mar 10 14:31:52 2010 +0000 sbuild: implement build log mail compression commit 476f992d0029b33a8bd18735b9413aa880713d89 Author: Philipp Kern Date: Wed Mar 10 14:25:13 2010 +0000 debian/changelog: add missing entries commit 894af0424be1b0597c3335ded746434c09ecd62f Author: Roger Leigh Date: Mon Mar 8 12:42:10 2010 +0000 Revert "Revert "99buildsourceslist: allow removal of the chroot if the extra file isn't found"" This reverts commit 1d969e2050ecfdca72d8edc97bbf7aa2ba13a1ce. commit c63a488c1bd36aaac50e4c9a30c956a9afe29516 Merge: 4124e45 170622d Author: Roger Leigh Date: Sun Mar 7 23:10:09 2010 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 4124e45186307836b2bd67a9a6a51f268f7f6fc3 Author: Roger Leigh Date: Sun Mar 7 23:09:32 2010 +0000 Sbuild::ChrootSetup: Move man-db debconf settings from Build to basesetup commit 1d969e2050ecfdca72d8edc97bbf7aa2ba13a1ce Author: Roger Leigh Date: Sun Mar 7 19:05:28 2010 +0000 Revert "99buildsourceslist: allow removal of the chroot if the extra file isn't found" This reverts commit c8bd70d844dd8659542abad5bf59f31b58447975. commit f2eca1e70de128734f6a473ac551c46105a6bb73 Merge: c20024a f0b742b Author: Roger Leigh Date: Sun Mar 7 19:05:19 2010 +0000 Merge branch 'buildd' commit f0b742b634683a3aff4e6f1c603719783e1e719e Author: Andreas Barth Date: Sun Mar 7 19:02:54 2010 +0100 create-chroot.sh: + check if schroot chroot already exist + in case of lvm-snapshot chroot, add variants security, volatile, backports respective experimental unless such a variant chroot already exists commit c8bd70d844dd8659542abad5bf59f31b58447975 Author: Andreas Barth Date: Sun Mar 7 18:59:49 2010 +0100 99buildsourceslist: allow removal of the chroot if the extra file isn't found commit d8a0e29aec56565f1b045247e686e854324e009c Author: Andreas Barth Date: Sun Mar 7 11:35:17 2010 +0100 use "git log" as upstream changelog commit f835668346d9040ac4c7e14446e98c223f188a30 Author: Andreas Barth Date: Sun Mar 7 11:30:23 2010 +0100 install create-chroot.sh in package sbuild commit e7d87c8b9af552b534a5dfbc24dae4aa9136086b Author: Andreas Barth Date: Sat Mar 6 22:50:40 2010 +0100 create-chroot: create build-trees, avoid cd-ing to ~buildd/chroots for snapshot-chroots commit 2f0ec61551206d969e15dd33f7119de6cbbe0e41 Author: Andreas Barth Date: Sat Mar 6 20:41:31 2010 +0100 99builddsourceslist: add dynamic lists as well for backports and experimental commit a27178d046a98bd703b852c5bd88532393b26d89 Author: Andreas Barth Date: Sat Mar 6 20:27:05 2010 +0100 99builddsourceslist: fix typo (wrong variable) in volatile-parts commit 88a3e9be291c35ddf2b7d4c1ba2c56593efb7e26 Author: Andreas Barth Date: Sat Mar 6 20:19:06 2010 +0100 script-defaults.buildd: verify that we use snapshots before enabling variants 99builddsourceslist: + source /etc/schroot/conf.buildd if it exists + auto-create apt sources for security and volatile in variant mode unless there are specific sources. Allow additional mirrors commit 3b52bd19ad774761c1581518cc650e3da169ca36 Author: Andreas Barth Date: Sat Mar 6 18:54:05 2010 +0100 script-defaults.buildd: prepare for auto-cloning chroots (still needs an seperate sources.list) commit 170622d76dc24a0c5036b7f28b0bf2db36bb98d3 Author: Philipp Kern Date: Fri Mar 5 13:44:16 2010 +0000 [Buildd::Daemon] fix @todo length check Signed-off-by: Philipp Kern commit ec22f30fad76a3be4be4b36dadcdf9bc0839330d Merge: ecf644a c20024a Author: Philipp Kern Date: Fri Mar 5 13:09:31 2010 +0000 Merge branch 'master' of ssh://git.debian.org/git/buildd-tools/sbuild commit c20024a54d3f25a68761d87984cc73729a2917b7 Merge: c888e79 2a73fcf Author: Roger Leigh Date: Wed Mar 3 23:36:13 2010 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit c888e79c37784c1f680e72d2301cfd56cf858f57 Author: Roger Leigh Date: Wed Mar 3 23:35:42 2010 +0000 debian: Bump version to 0.60.1-1 and close #571726 commit ef227924a1fbe406b294cb8594e51c8f31a67d4a Author: Roger Leigh Date: Wed Mar 3 23:35:28 2010 +0000 NEWS: Bump version to 0.60.1 commit 53fa1270b80eab42fbd1b84a47549eac92f3267d Author: Roger Leigh Date: Wed Mar 3 23:30:51 2010 +0000 Sbuild::Options: Add --no-source option commit bbbdab179fb37c694ba278999a2f740a87aae30c Author: Roger Leigh Date: Sat Dec 12 13:46:24 2009 +0000 Sbuild::Chroot: Simplify logic for executing on host Previously, Chroot classes had a CHROOT=>0|1 parameter to control whether the command was executed inside the chroot or on the host system. This has been removed in favour of using Sbuild::ChrootRoot for executing on the host. Note that user switching on the host is not permitted. This means that root access is only allowed in the build chroot. commit 557bda3b0d270957ce52ed300792ef54c82ff674 Author: Andres Mejia Date: Sat Dec 12 10:45:17 2009 +0000 Sbuild::Build: dpkg-source and lintian options may be undefined Signed-off-by: Roger Leigh commit f529df8ebeca7eb615c0e907c33734ab4774bd18 Author: Roger Leigh Date: Sat Dec 12 10:44:05 2009 +0000 Sbuild::Build: Move object member initialisation earlier in construction commit 536154a93e68178f857f39d63812901b440cce6d Author: Roger Leigh Date: Sat Dec 12 10:42:11 2009 +0000 Sbuild::ChrootRoot: Don't inherit from ChrootPlain Don't support CHROOT parameter, so this is only usable fpr running commands as the current user on the host. commit 029d5c269f53a40b83c35972bce4ba64e54c358b Author: Roger Leigh Date: Fri Dec 11 23:28:57 2009 +0000 Sbuild::Build: Use ChrootRoot for running commands on host commit 1c3cff654828fe0613c54d443f5128ec96a33637 Author: Roger Leigh Date: Fri Dec 11 23:26:01 2009 +0000 Sbuild::Build: Simplify debugging output commit e0c299f70608966f50c3164b0b95189efb9dc0bf Author: Roger Leigh Date: Fri Dec 11 23:25:03 2009 +0000 Sbuild::Chroot: Default I/O streams to standard I/O commit dbee280656c95278c621d3e494061eb93d5eddf0 Author: Roger Leigh Date: Wed Dec 9 22:14:41 2009 +0000 Sbuild::Conf: Use arrayref for dpkg-buildpackage and lintian options Rather than storing options in a space-separated string, use an array for safety. commit 1ac7f2ceea784ff03d36fb4cad8f160d8d1000e0 Author: Andres Mejia Date: Tue Oct 27 01:17:37 2009 -0400 Clean the source dir before building a the source packages Signed-off-by: Roger Leigh commit f4333fe32a5af5bf9bb4720502a361d4869a7a73 Author: Andres Mejia Date: Fri Oct 23 18:50:21 2009 -0400 Update build system and Debian packaging Signed-off-by: Roger Leigh commit 881fd52dda663161ae562ee13db92a194fb59c65 Author: Andres Mejia Date: Fri Oct 23 18:49:47 2009 -0400 Update sbuild man page for new features Signed-off-by: Roger Leigh commit 74a17bcc7a75da45a48cc87db974bb95f0f02921 Author: Andres Mejia Date: Fri Oct 23 18:48:18 2009 -0400 Have sbuild process current directory if no arguments are supplied Also fix some issue where $_ is changed somewhere in the library code. Signed-off-by: Roger Leigh commit 9aa7b3f07ae3a8636c488b80f4f04dedbf5b83c5 Author: Andres Mejia Date: Fri Oct 23 18:46:41 2009 -0400 Implement support for supplying directories as arguments, running lintian, and running pre and post build commands Signed-off-by: Roger Leigh commit 8adb7124922397c5be77f5465c0c414c6d58946c Author: Andres Mejia Date: Fri Oct 23 18:16:37 2009 -0400 Supply more options to be used with sbuild Options are: • Supporting options to pass to dpkg-source • Being able to run lintian • Supporting options to pass to lintian • Being able to run external commands before a build • Being able to run commands after a build • Whether to log stdout or stderr from external commands Signed-off-by: Roger Leigh commit e5a5799623b5c30ff872e6663723135f0e376489 Author: Andres Mejia Date: Fri Oct 23 18:04:28 2009 -0400 Improve the parse_file() utility subroutine by being able to handle filehandles This also provides better handling of placing the contents of fields in the hashes. Trailing newlines are removed as well as leading whitespace. Also, the first whitespace from multiline fields is removed. Signed-off-by: Roger Leigh commit ecf644adceb5321108f1da6edef6db77679e54e8 Author: Philipp Kern Date: Sun Feb 28 13:56:15 2010 +0000 [Buildd::Daemon] only try to build one package at a time commit 2a73fcf72511a26cca3d231384bef0487bbf7318 Merge: 3a7ad7e 7fb8924 Author: Philipp Kern Date: Sun Feb 28 12:18:39 2010 +0000 Merge branch 'buildd' commit 3a7ad7ebe2656b1651d4e9eaa5136b1bfa2b6fdb Author: Philipp Kern Date: Sat Feb 27 14:42:57 2010 +0000 [Sbuild::DB::ClientConf] search programs in PATH commit 7fb8924e9d93442245cd2185c66032e2dc0e2bcb Author: Philipp Kern Date: Sat Feb 27 12:36:59 2010 +0000 [Buildd::Conf] ssh: make the space after -l optional The configuration compatibility code tries to parse the SSH invocation line to retrieve host, username etc. This change allows both "-luser" and "-l user". commit 1cc61ee264ef31865b8dba39638369b4340af90a Author: Dan White Date: Fri Feb 26 21:50:04 2010 +0000 WannaBuild::Database: Add missing import of version_eq commit 00e9807bb24af2e5ad778a060af050b19b6d131c Merge: b8b4f24 597dcb3 Author: Philipp Kern Date: Thu Feb 25 11:54:55 2010 +0000 Merge branch 'buildd' of ssh://git.debian.org/git/buildd-tools/sbuild into buildd commit 597dcb36cff438fe98358e708cfa12dfd4498585 Author: Roger Leigh Date: Tue Feb 23 22:25:11 2010 +0000 debian: Bump standards version to 3.8.4 commit 278349665b965b75c3e49cb3119f4a2afef75e2b Author: Roger Leigh Date: Tue Feb 23 22:22:14 2010 +0000 NEWS: Document changes and bump version to 0.60.0 Also bump Debian version commit 8a12512e0027c63d7c01eefb7850fe511c99b3c1 Author: Roger Leigh Date: Tue Feb 23 22:21:42 2010 +0000 Add he and pkern commit fb1a3e62f4b9db504f841eb4a767f2ec75e31f88 Merge: 2721377 6b4cfb7 Author: Roger Leigh Date: Tue Feb 23 21:39:25 2010 +0000 Merge branch 'buildd' commit b8b4f2461796b1cd82050e4bce5be7d6eb18ddbc Author: Modestas Vainius Date: Tue Feb 23 09:00:39 2010 +0000 [Sbuild::BuildDepSatisfierBase] sort apt policy versions by priority first In my opinion, it makes sense to sort package versions by priority first (versions with greater priority will be prefered over versions with lower priority if they both satify the dependency). If priority is the same, then higher versions will be prefered over lower ones (i.e. like previous behaviour for all versions). This change allows buildd administrators to configure preferences for multiple repositories via standard apt_preferences(5) file in the chroot. What is more, this is similar to how aptitude 0.6 orders solutions in the same tier. Closes: #570465 Signed-off-by: Modestas Vainius commit 95d14803e00e74aef5f6bab7e4e9cae7177423c9 Author: Modestas Vainius Date: Tue Feb 23 08:57:47 2010 +0000 [Sbuild::AptitudeBuildDepSatisfier] produce better solutions Configure aptitude (0.6) to: * Refuse solutions which involve removal of the dummy build depends package. This is done by adding a respective resolver hint. * Move "cancel all user's actions" (Keep-All-Tier) tier after Non-Default-Tier. Generally, we want aptitude to try solutions with non-default versions before refusing to do anything. * Refuse solutions which involve removal of essential packages. The source packages that need this are not worth building anyway. Closes: #570463 Signed-off-by: Modestas Vainius commit 6b4cfb784a314e425e3139cbdd3d6f5f9227c3c1 Author: Philipp Kern Date: Mon Feb 22 20:18:06 2010 +0000 [Buildd::Daemon] remove changelog fetching Changelog fetching is currently broken. I left the function in place for someone to fix somewhen later. A note states the main problems with it. commit 5a301b44540caaaedcff16f7164031c8f472591f Author: Philipp Kern Date: Mon Feb 22 15:06:13 2010 +0000 [Buildd::Daemon] output the correct sbuild status value in the log commit 3462742c9b6c0bdf9d2231a4c41343be2b6617c0 Author: Philipp Kern Date: Mon Feb 22 14:59:05 2010 +0000 [Buildd::Daemon] remove a now unused $status variable commit 2d26ac0b52391ddcd979cd84b099f2290e8df118 Author: Philipp Kern Date: Mon Feb 22 12:53:08 2010 +0000 [Buildd::Daemon] only stop further building on local sbuild problems buildd used to think that three build failures (also legimiate ones) signal a problem with sbuild that warrants to stop the building. The patch makes sure that only local problems as signaled by sbuild cause such stops and that the counter is properly reset even after an attempted build. commit 66b0bbbe234dbe3423a1200803a1f7da597770d0 Author: Andreas Barth Date: Sun Feb 21 14:32:45 2010 +0100 add config stanza to motivate packages to build in parallel commit b1c2b28f1046b3ae8156d23f4ae723d3e7a72103 Merge: 99ec0f9 c225e08 Author: Philipp Kern Date: Sun Feb 21 12:51:41 2010 +0000 Merge branch 'buildd' of ssh://git.debian.org/git/buildd-tools/sbuild into buildd commit 99ec0f92c253fecb6df4f9b7af2c800466ab3960 Author: Philipp Kern Date: Sun Feb 21 12:51:29 2010 +0000 [Buildd::Daemon] use $pkg_ver in the failure path commit c225e08c39cebf5ccf162b9a3542c131d9dab0f7 Author: Marc Brockschmidt Date: Mon Feb 1 21:49:16 2010 +0100 buildd: Redo default value handling for Buildd::Conf::UPLOAD_QUEUES commit 2721377f2fdfe3d810a33457629d6355b0b07a0b Author: Roger Leigh Date: Sat Feb 20 23:24:49 2010 +0000 build: Use LC_TIME=C for date formatting commit 4b4766b55362edba764cab38e8a2401c2b085edf Author: Philipp Kern Date: Sat Feb 20 21:24:43 2010 +0000 sbuild: remove EXIT-DAEMON-PLEASE handling EXIT-DAEMON-PLEASE is an implementation detail of buildd-watcher. buildd does not call sbuild with multiple packages anymore. It might be sane for batch mode to get a similar flag file back eventually, but currently it even breaks wanna-build signaling because sbuild does not deliver the proper exit code back to the caller. commit 6d74011c2248d4693ce4319b324def3fd7202b00 Author: Philipp Kern Date: Sat Feb 20 17:07:57 2010 +0000 sbuild: emulate raise(3) by sending a signal to itself commit e0b606ac7baca0d34b365726291dda6cf8b6e04e Author: Philipp Kern Date: Sat Feb 20 13:34:23 2010 +0000 [Buildd::Daemon] fix a syntax error in the last commit commit 1f9ff1665b1fb51436d85ac2fd3f3683486aa0c8 Author: Roger Leigh Date: Sat Feb 20 11:41:33 2010 +0000 [Buildd::Daemon] handle sbuild termination by signals commit 4fdf6c1b4b39cbdd7cb6670ce5fdc1250663f0ab Author: Marc Brockschmidt Date: Mon Feb 1 16:47:16 2010 +0100 sbuild: If the arch-check fails, we don't want no give-back commit cc272a75a4ddea7cc28c55a6a265d7731339f4e7 Author: Marc Brockschmidt Date: Mon Feb 1 16:46:02 2010 +0100 Buildd::Daemon: Avoid uninitialised values commit 7e7631de7808cc360e4c0c9ecdea0e7bc31a03c4 Author: Marc Brockschmidt Date: Mon Feb 1 16:45:37 2010 +0100 buildd: Remove more, now unneeded code commit 9a3ca52645741434bc6439612ca77e2dd3b0c626 Author: Marc Brockschmidt Date: Sun Jan 31 21:25:07 2010 +0100 buildd/sbuild: Remove all w-b interaction from Sbuild, move it to Buildd commit c9ed70822a6f056977d44bac2267544b51e5f6b2 Author: Marc Brockschmidt Date: Sun Jan 31 21:22:30 2010 +0100 create-chroot.sh: Updated, fixed various smallish issues commit 5e116bfce1bc5d06782e12f68bcf038ced746318 Author: Marc Brockschmidt Date: Sun Jan 31 21:22:02 2010 +0100 buildd: Get rid of $max_build, only allow one package at a time commit 967190b1712910f1ce6972d87c3cbdea02e03756 Author: Marc Brockschmidt Date: Sun Jan 31 21:05:53 2010 +0100 buildd: Install base script for c-o-w chroot variant creation commit 3c713aa9bd8339a6e766b2dce241e98525463f5b Author: Marc Brockschmidt Date: Sun Jan 31 15:14:51 2010 +0100 Buildd::Watcher: Fix NO_WARN_PATTERN to not warn about build/current-* commit 361d275e9bf200f3bdacd78b7ecf267847d20a18 Merge: 6a4faa3 c06cfc9 Author: Roger Leigh Date: Sun Jan 24 21:27:44 2010 +0000 Merge branch 'buildd' of ssh+git://git.debian.org/git/buildd-tools/sbuild into buildd commit 6a4faa35581a7bae45c3053db992aba2a5a70874 Author: Roger Leigh Date: Sun Jan 24 21:25:55 2010 +0000 Sbuild::Build: Re-introduce get_status() sbuild wanna-build trigger handler can never call set_status, since this leads to unwanted recursion. commit c06cfc9a9ff432a89249950c51a7c779e285fb32 Author: Philipp Kern Date: Sun Jan 24 21:07:42 2010 +0000 etc/buildd.conf: comment out a stray curly brace commit 09b84bc571dfccd0c02f02cc8236172bf19fd89a Merge: e176982 d0b9c39 Author: Roger Leigh Date: Sun Jan 24 21:07:37 2010 +0000 Merge branch 'buildd' of ssh+git://git.debian.org/git/buildd-tools/sbuild into buildd commit d0b9c39eebd26bfae16bedb706bab7c251833bdd Author: Philipp Kern Date: Sun Jan 24 20:46:35 2010 +0000 Revert "sbuild: Don't give back when build-deps fail to install" This reverts commit fc3efdb207ed9f4f11307e336133c755bddb982b. We would like to get this solved differently, and it was also intended as a band-aid so solve a wanna-build give-back loop. commit e691a519cc7cb69aa26fade5d785bed8dbc58c05 Author: Philipp Kern Date: Sun Jan 24 20:43:53 2010 +0000 Revert "Sbuild::Build: Add get_status method" This reverts commit 7b1486b52dbc5cb0da637b4ec93dca5800850dd6. This triggers a loop because it updates the status and then notifies itself of the status change again, which causes another status update. commit e1769825ee545179b664475095bf7980c104d794 Author: Roger Leigh Date: Sun Jan 24 14:11:41 2010 +0000 Buildd::Base: Set PID in constructor commit 6cf1478c7d4ccd38e4889cdd6d7d2e9f7b8b8c5a Author: Marc Brockschmidt Date: Sun Jan 24 15:09:30 2010 +0100 buildd: Allow to explicitly set the sbuild chroot commit fc3efdb207ed9f4f11307e336133c755bddb982b Author: Marc Brockschmidt Date: Sun Jan 24 15:02:10 2010 +0100 sbuild: Don't give back when build-deps fail to install commit d6395ab8e14f5132b2b1ac908f2d8e58853e8ab9 Author: Roger Leigh Date: Sun Jan 24 14:09:30 2010 +0000 Buildd::Base::log: Use PID rather than Build::progpid progpid is set on invocation and not updated across fork(). Remove progpid and use PID set in Buildd::Base commit 7af0a64ecbb825ac491c68f00aa1cfe36a7eb1eb Merge: 3bd20db ffa6d48 Author: Roger Leigh Date: Sun Jan 24 13:37:02 2010 +0000 Merge branch 'buildd' commit 3bd20db58068b08ee12221ac0e7b482e940a1431 Author: Roger Leigh Date: Sun Jan 24 13:36:23 2010 +0000 man: Document buildd-update-chroots commit ffa6d48b92331f4be65b6a49d914e6cc345e631c Author: Marc Brockschmidt Date: Sun Jan 24 14:36:18 2010 +0100 [Buildd::Mail] Correctly handle multi-arch builds. commit 29d21d02c9cb1149948f7b123a8a10c1e6c5a3aa Author: Roger Leigh Date: Sun Jan 24 13:34:23 2010 +0000 buildd: Create build-trees directory commit 901f9a3113cbd108277ccb9dace415e48f3ebe5e Merge: d6e6282 45773d0 Author: Roger Leigh Date: Sun Jan 24 13:15:13 2010 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 448cd5438014212d9ab9e78d48d3b721e96656d6 Author: Marc Brockschmidt Date: Sun Jan 24 13:59:41 2010 +0100 mount-defaults.buildd: Don't bind-mount /home (Closes: #566315) commit 6b64ed66eae6b8cf22f5a84fb4f038d6f3cc792b Author: Marc Brockschmidt Date: Sun Jan 24 13:51:07 2010 +0100 [Buildd::Mail] Use arch from signed .changes as filename for .changes commit 3f47ffa08d9d19f38087f9a5c46551477bf44775 Author: Philipp Kern Date: Sat Jan 23 19:34:17 2010 +0000 debian/control [buildd]: make the dependency on sbuild strict for now commit 29fa3a064cf05500ced2e9e9467c14ccc7f46866 Author: Philipp Kern Date: Thu Jan 21 17:53:52 2010 +0000 debian/control [buildd]: replace sbuild to take over 25nssdatabases commit 45773d0644218d3249feebe60409a183e3ef4a93 Author: Roger Leigh Date: Sat Jan 23 12:17:44 2010 +0000 debian: Close #566320 commit 0f9875ab7fd7408acf82951cf95ee7500bb7b4dc Author: Roger Leigh Date: Sat Jan 23 12:16:05 2010 +0000 man: Remove incorrect -t option from sbuild-stats --top commit d6e6282b24ad97f826b783d21746676e45fd517b Author: Roger Leigh Date: Sat Jan 23 00:18:46 2010 +0000 man: Add buildd-create-chroot docs to sbuild-createchroot.8 debian: Install in buildd package. commit 3a604e662d409810ecce34dd3def7ca216219e7e Author: Roger Leigh Date: Sat Jan 23 00:03:27 2010 +0000 Buildd::Base: Set autoflush using true value commit dc85bbccfb788a9d9db6d94efebe655e977f51fc Merge: 7b1486b d5f15dc Author: Roger Leigh Date: Fri Jan 22 23:52:06 2010 +0000 Merge branch 'master' of ssh://git.debian.org/git/buildd-tools/sbuild commit 7b1486b52dbc5cb0da637b4ec93dca5800850dd6 Author: Roger Leigh Date: Fri Jan 22 23:51:36 2010 +0000 Sbuild::Build: Add get_status method commit d5f15dc234725b3154ecd71e93fabe6e77bcd0b3 Author: Roger Leigh Date: Mon Jan 18 23:38:35 2010 +0000 man: Correct typos reported by lintian commit ffba69849100e7cf5d9d5e5d788162f04e083933 Author: Roger Leigh Date: Sun Jan 17 23:28:52 2010 +0000 debian: Bump version to 0.59.1-1 Also upgrade Standards-Version to 3.8.3 and use ${misc:Depends}. commit 0b05d47f07497eab8e2c243dcfe3cdecb74e5da1 Author: Roger Leigh Date: Sun Jan 17 23:28:31 2010 +0000 build: Distribute 25nssdatabases commit 70f35717f6248f22852c344ddf0da03a2a406256 Author: Roger Leigh Date: Sun Jan 17 23:28:07 2010 +0000 NEWS: Set version to 0.59.1 commit edd14d747d465c8895f700a8efff3760133e9e03 Author: Marc Brockschmidt Date: Sun Jan 17 22:35:50 2010 +0100 AptitudeBuildDepSatisfier: Fix locking problem when installation fails commit dfbd4bdc85072b378fae2f2d19ddb857a552162a Author: Roger Leigh Date: Sun Jan 17 15:02:29 2010 +0000 Sbuild::Build: Remove $dsc_dir commit 5d3bb02f1ddb801f559f36cb7493fc6ce55eaca4 Merge: f2dd426 bee90ad Author: Roger Leigh Date: Sun Jan 17 15:00:19 2010 +0000 Merge branch 'master' into buildd Conflicts: lib/Buildd/Base.pm lib/Sbuild/Build.pm commit bee90ade863349cf82cddce0edc03a2561449c89 Author: Roger Leigh Date: Sun Jan 17 14:54:10 2010 +0000 Buildd::Base: Use $devnull rather than /dev/null This saves file descriptors since it's used in several places. commit 815fa77466670bf7270cbc246d31cae551175612 Author: Roger Leigh Date: Sun Jan 17 14:53:24 2010 +0000 Sbuild::Build::run: Remove build directory only The DSC Dir is always a subdirectory, so explicit removal is unnecessary and may lead to errors if removed already. commit 2dd291159e4f19d7c35dbb1ceef428b601e2ef57 Author: Marc Brockschmidt Date: Fri Jan 15 14:49:06 2010 +0100 Buildd::Base: Fix temporary logging to /dev/null Signed-off-by: Roger Leigh commit 134349922a7163fc19721ad79fefc2bd00b8948f Author: Marc Brockschmidt Date: Fri Jan 15 14:48:43 2010 +0100 buildd: Allow to configure the built architecture Signed-off-by: Roger Leigh commit 12737dbbd92f972cb01975aeb02201241867f286 Author: Marc Brockschmidt Date: Wed Jan 13 20:30:30 2010 +0100 Sbuild/Build: Fix removal of build dirs Signed-off-by: Roger Leigh commit 20435eec0d43da6ffeb1934f378e7ad0e9fd761c Author: Marc Brockschmidt Date: Wed Jan 13 20:22:07 2010 +0100 Buildd::Daemon: Adapt ssh socket handling to multiarchive Signed-off-by: Roger Leigh commit f2dd426d37b2ef7b111a333c1ca75954a13df78f Author: Marc Brockschmidt Date: Fri Jan 15 14:49:06 2010 +0100 Buildd::Base: Fix temporary logging to /dev/null commit 246140f5cbc47caf9e36b7ea5c8a238a9ccde856 Author: Marc Brockschmidt Date: Fri Jan 15 14:48:43 2010 +0100 buildd: Allow to configure the built architecture commit f18d6f0fd6c00c7197601c49362f3fc98ce2c7fe Author: Marc Brockschmidt Date: Wed Jan 13 20:30:30 2010 +0100 Sbuild/Build: Fix removal of build dirs commit 5fb75c890af747a0c10398f5d2bc2d8e7819f858 Author: Marc Brockschmidt Date: Wed Jan 13 20:22:07 2010 +0100 Buildd::Daemon: Adapt ssh socket handling to multiarchive commit e137e364c68d3d91a46df294d72d319f3c899504 Merge: 5fbd9fd c3e2ead Author: Roger Leigh Date: Tue Jan 12 09:33:19 2010 +0000 Merge branch 'buildd-log-detach' commit 5fbd9fda4d77b46bd670e80c19aa20255ee9d1b7 Author: Roger Leigh Date: Tue Jan 12 09:32:52 2010 +0000 Buildd::Base: Revert stdout/stderr change commit c3e2ead48f9c206c4b3e3980ac32a3cef160fec2 Author: Roger Leigh Date: Mon Jan 11 22:46:32 2010 +0000 Buildd::Base: Reopen stdout and stderr to detach from TTY commit 3789690cdd47b1cb8ede5308af54ca45bb6efb1e Author: Marc Brockschmidt Date: Mon Jan 11 23:42:28 2010 +0100 Buildd::Base: Preprend every log line with prefix commit 42637ae095b1689b69a77efba41c34873542a94a Author: Marc Brockschmidt Date: Mon Jan 11 23:42:14 2010 +0100 Buildd::Base: Redirect STDOUT/STDERR in open_log commit 2742c9acd654e9c90825268de65993f889193277 Merge: 5aed575 96e6b4f Author: Philipp Kern Date: Mon Jan 11 21:45:09 2010 +0000 Merge branch 'master' into buildd commit 96e6b4f62b107ddb7936b747fcb5907dc50d5d8d Author: Philipp Kern Date: Mon Jan 11 21:44:17 2010 +0000 debian/buildd.install: install schroot files into the right directory commit 5aed575e0922f5cf8a6e9cc08d7fbd8603d08972 Author: Marc Brockschmidt Date: Mon Jan 11 09:05:11 2010 +0100 [Buildd::Base] Autoflush makes tailing the build.log more useful commit b905097e7b0a2b899500720231506a9e8db524f5 Author: Marc Brockschmidt Date: Mon Jan 11 08:57:18 2010 +0100 [Buildd::Base] Beautify log messages: prepend timestamp to message commit bc0f28ee362166add84603479c3ebd6721fb658b Author: Marc Brockschmidt Date: Mon Jan 11 08:56:51 2010 +0100 buildd-uploader: Fixed to use non-forked, simple logging commit e703aa1de287fc8c2f61d95d14bd528d5ed45320 Author: Marc Brockschmidt Date: Mon Jan 11 08:41:21 2010 +0100 [Buildd::Mail] Fix: Handle Built/Build-Attempted as Building when checking pkg status commit 0b9d688982ee37bc19b04ed0776d648df05e6621 Merge: 5498502 9cfd288 Author: Marc Brockschmidt Date: Mon Jan 11 08:37:33 2010 +0100 Merge remote branch 'rleigh/buildd-plain-log' into buildd commit 5498502bb6c05a6d82d7f728bf40bf42dc5ff8e6 Author: Marc Brockschmidt Date: Mon Jan 11 08:35:22 2010 +0100 [Sbuild::InternalBuildDepSatisfier] Fix: Don't try to acquire the same lock twice commit 0da12ee375a8ac6636c26e57fab869a15aafbc9a Author: Marc Brockschmidt Date: Mon Jan 11 08:29:37 2010 +0100 [Sbuild::Build] Fix: Write essential deps into ->{'ESSENTIAL'} commit 61cc46581213396ffb2aeb7c709f83ba97f76311 Author: Roger Leigh Date: Sun Jan 10 23:50:09 2010 +0000 Sbuild::BuildDepSatisfierBase: Fix up toolchain dump code commit 991a6eadb92a48828bcebd69d15f912bb22494b4 Author: Roger Leigh Date: Sun Jan 10 23:20:56 2010 +0000 Sbuild::BuildDepSatisfierBase: Move toolchain dump code here Move toolchain and package printing code from Sbuild::InternalBuildDepSatisfier so it's displayed for all dependency resolvers. commit 3f78a9c71075f94251eeb0a56e6bf3745d2dd0c7 Author: Roger Leigh Date: Sun Jan 10 22:32:16 2010 +0000 Sbuild::Base: Handle undef values when printing set debug messages commit 9d3e17ba4cf0fae228adc25632b52a71d31f30fe Author: Roger Leigh Date: Sun Jan 10 21:57:42 2010 +0000 Sbuild::Build: Move build dir purge from build() to run() This means packages are correctly cleaned up in the case that there was an error between downloading packages and beginning the build, such as a failure to install build dependencies. commit 9cfd2883d052fe46a4b66a3bd1859f191b22ed67 Author: Roger Leigh Date: Sun Jan 10 16:23:58 2010 +0000 buildd: Log using O_APPEND only commit 01e0af64483f88f46c440d2671ad49a2c044f141 Author: Roger Leigh Date: Sun Jan 10 17:58:28 2010 +0000 debian: Close #561936 commit e59829a6f7b37552c52b0fbb63142fc081d83e9c Author: Roger Leigh Date: Sun Jan 10 17:57:20 2010 +0000 sbuild: Don't give back packages failing the arch check commit 3802634c883b05347c581ca130103168955ee1c8 Author: Roger Leigh Date: Sun Jan 10 17:48:43 2010 +0000 debian: Close #564528 commit f320b863436c39254ec349991b185e8752260c7e Author: Roger Leigh Date: Sun Jan 10 17:43:59 2010 +0000 sbuild: Add $build_source configuration option to complement -s commit 088519ce23887e0d416a9d85c3259bf074fc3ff5 Author: Roger Leigh Date: Sun Jan 10 13:00:59 2010 +0000 Sbuild::Build: remove conflict markers commit 320798a328cdb01f1cc114115f9b2f3c0b9f337c Merge: e0b49a6 d8d771e Author: Roger Leigh Date: Sun Jan 10 12:58:33 2010 +0000 Merge branch 'buildd' Conflicts: bin/sbuild lib/Sbuild/Build.pm lib/Sbuild/Conf.pm commit e0b49a67b181fec7c6a589c240ff89e953f7564d Author: Roger Leigh Date: Sun Jan 10 12:45:28 2010 +0000 Sbuild::Build: Fix typo commit 77ec25895f0540d709b1ef05aceb94c978182bde Author: Marc Brockschmidt Date: Wed Jan 6 01:21:37 2010 +0100 *: Fix stupid syntax errors not noticed before commit 18fda74ed420e6d65f009b203b17d9018ce2dd59 Author: Marc Brockschmidt Date: Wed Jan 6 01:15:22 2010 +0100 Sbuild::Aptitude*Satisfier: Handle Breaks/Conflicts more correctly commit e5e6a827b5d6c1aac255eb3d0be3a2bf8077fa4f Author: Marc Brockschmidt Date: Sat Dec 26 23:34:26 2009 +0100 Sbuild::Aptitude*Satisfier: Handle non-default versions better commit 874725434880f201382e2bc09cf818d31e118fa5 Author: Marc Brockschmidt Date: Tue Dec 15 12:23:49 2009 +0100 Sbuild: Don't reinstall/remove installed pkgs in cloned chroots commit 85ff81e08fc82656b4c7f9806dc0f968aff0548f Author: Marc Brockschmidt Date: Sun Dec 6 12:16:33 2009 +0100 Sbuild::Aptitude*Satisfier: Remove aptitude cruft from output commit dc4b397e1c98105b7df137ef6b9d1a0aaa5786e5 Author: Marc Brockschmidt Date: Sun Dec 6 12:15:30 2009 +0100 Sbuild::Internal*Satisfier: Fix POSIX.pm usage commit 05da8f00616d4c0124d7eb1df6970ff5a00ed2dd Author: Marc Brockschmidt Date: Sun Dec 6 12:15:09 2009 +0100 Sbuild::*Satisfier: Fix logging to use $builder commit 74102cfa85c63398a7266abf8ab0c1bb2289e5a4 Author: Marc Brockschmidt Date: Mon Nov 30 20:12:01 2009 +0100 Sbuild::AptitudeResolver: Handle packages installed for aptitude commit 6e37ebaee2a0434dd6027271ef6294deb9fb435c Author: Marc Brockschmidt Date: Mon Nov 30 20:00:05 2009 +0100 Sbuild::AptitudeResolver: Use last set of installed pkgs commit d2ab2468326e62ee70bad8ef06555de913972b19 Author: Marc Brockschmidt Date: Sun Nov 29 23:32:58 2009 +0100 sbuild: Add aptitude-based build-dep resolver commit 4bbfa1f32ef38ec98d62ca89d9572521210788f7 Author: Marc Brockschmidt Date: Sun Nov 29 23:32:12 2009 +0100 sbuild: Move b-dep resolver into its own module commit ebeb0157874f6862b788bfbc5d451ef585341e6b Author: Roger Leigh Date: Sat Jan 9 22:23:55 2010 +0000 Sbuild::ConfBase: Add missing method in call commit 70a89618d6ce401d4658f431af816b8f732f6476 Author: Roger Leigh Date: Sat Jan 9 22:23:43 2010 +0000 Sbuild::Conf: Add dpkg-dev to toolchain regex commit d8d771e42a12c639adb2e2ffb2548ceb684959e1 Author: Marc Brockschmidt Date: Fri Jan 8 14:20:42 2010 +0100 Sbuild::Conf: SetMAILTO_FORCED_BY_CLI to an actually false value commit 7f35f0eb333736dc9ebcc1a6ef458a48c4b2799d Author: Marc Brockschmidt Date: Tue Dec 15 11:57:54 2009 +0100 Sbuild: Fix settign MAILTO based on distribution -> address mapping commit 5e460606c4485b60c91dfa22098848e186e21540 Author: Philipp Kern Date: Wed Jan 6 13:52:49 2010 +0000 Buildd::Mail: put error message before mail quote Error replies were hard to read because the error message was at the bottom of the mail, so you had to skip over all the quoting first. This patch reverses this order. commit 6778a0232d369f41b0cb948025acc76d1e1aaf98 Author: Philipp Kern Date: Wed Jan 6 13:52:49 2010 +0000 Buildd::Mail: put error message before mail quote Error replies were hard to read because the error message was at the bottom of the mail, so you had to skip over all the quoting first. This patch reverses this order. commit e60ed3984dd8ef64d8df5110cc6c3729a3088645 Author: Marc Brockschmidt Date: Wed Jan 6 01:21:37 2010 +0100 *: Fix stupid syntax errors not noticed before commit c6720f5558de5633cc244fc389c39725660bc6e2 Author: Marc Brockschmidt Date: Wed Jan 6 01:15:22 2010 +0100 Sbuild::Aptitude*Satisfier: Handle Breaks/Conflicts more correctly commit 2d24d7a2369ad070695e5178441e44f67b780b63 Author: Marc Brockschmidt Date: Sun Dec 27 22:56:32 2009 +0100 Buildd::Watcher: Redo buildd start, once again commit 86d2c94c84a6a16731f24b255897f033dee70950 Author: Marc Brockschmidt Date: Sat Dec 26 23:34:45 2009 +0100 Sbuild::ConfBase: Fix stupid runtime error commit 68e74882d12229fbcd33c9470d78a8d23fe05533 Author: Marc Brockschmidt Date: Sat Dec 26 23:34:26 2009 +0100 Sbuild::Aptitude*Satisfier: Handle non-default versions better commit 81c08d7c57a0fe6953e230a8a13e547eaeb0b754 Author: Marc Brockschmidt Date: Tue Dec 15 12:23:49 2009 +0100 Sbuild: Don't reinstall/remove installed pkgs in cloned chroots commit 90c53907c7301e811cea3134422d9b02f8673aee Author: Marc Brockschmidt Date: Tue Dec 15 11:57:54 2009 +0100 Sbuild: Fix settign MAILTO based on distribution -> address mapping commit 57d3c922d4b50a276f3707b2c4a7379394eaf0f8 Merge: 462ff96 529fc1e Author: Marc Brockschmidt Date: Tue Dec 15 11:34:03 2009 +0100 Merge remote branch 'origin/master' into buildd Conflicts: lib/Sbuild/Build.pm commit 529fc1e95e517e0591d2bbabffdcf37cabb33835 Author: Roger Leigh Date: Sun Dec 13 23:26:25 2009 +0000 debian: Close #521096 commit e24b16bfee99ee9f465fbb8f91e9c9141e476231 Author: Roger Leigh Date: Sun Dec 13 23:24:08 2009 +0000 sbuild: Add apt-get clean, upgrade and dist-upgrade options In addition to existing update option. commit e3592545c3096be3a1c88e973d9a31704b0842cc Author: Roger Leigh Date: Sun Dec 13 21:19:46 2009 +0000 debian: Document man-db update disabling commit f06ecf59355f9e3af19284fe5c5dff7100017b3b Author: Roger Leigh Date: Sun Dec 13 21:17:59 2009 +0000 Sbuild::Build: Disable man-db updating in chroot. Set the debconf parameter man-db/auto-update to false. commit cc946c4b17b138283f96ab01d22e723436f4c95f Author: Roger Leigh Date: Sun Dec 13 20:33:25 2009 +0000 debian: Close #559659 commit 3b5e134c2f11444165268e0fdcf8062ec1e0b2d7 Author: Roger Leigh Date: Sun Dec 13 20:30:33 2009 +0000 Sbuild::Conf: Don't default distribution to unstable commit b7b6938b0b12963279c19c9c2b737bd2ec700dc9 Author: Roger Leigh Date: Sun Dec 13 19:13:43 2009 +0000 debian: Close #559607 commit c8b2a7d4dcf8a3ee96c93e1253b4faed579fc487 Author: Roger Leigh Date: Sun Dec 13 19:13:28 2009 +0000 debian: wanna-build depends on postgresql-8.4-debversion commit 3b640189537aa3d79e52173cfb5f0a98f34b7056 Author: Roger Leigh Date: Sun Dec 13 12:37:54 2009 +0000 debian: Close #553301 commit 877c58c49867dc2b1cf2770ae1e6fdce801c78d5 Author: Roger Leigh Date: Sun Dec 13 12:36:11 2009 +0000 Sbuild::Build: Print all installed packages and versions commit 24d9852f9dc9f502861e2bcf12efa08a7010bdee Author: Roger Leigh Date: Sat Dec 12 14:31:09 2009 +0000 debian: Close #551917 commit 15ae719b6e383a81b602c606c1f057ca7c785b80 Author: Roger Leigh Date: Sat Dec 12 14:29:24 2009 +0000 Sbuild::Conf: Add CHECK_SPACE parameter to disable free space checking commit 462ff967f8ecefc502a227a97563c0e9df9fa4bf Author: Marc Brockschmidt Date: Wed Dec 9 09:42:14 2009 +0100 Don't keep the watcher running commit 803bb7b509e8a97a09468fd4dd291de1bb044570 Author: Andres Mejia Date: Tue Oct 20 17:55:30 2009 -0400 Print to the saved stdout stream from Sbuild::Logbase instead of STDERR. This will ensure output from download() subroutine don't end up in any build logs. Signed-off-by: Roger Leigh commit 5da42db604d3a92aa988574bd264a513aa1c1e95 Author: Roger Leigh Date: Sun Dec 6 16:54:24 2009 +0000 debian: Document sbuild-createchroot absolute path patch commit 1968551fe7735fa2d87db1f8b7e645d011d05a3b Author: Cyril Brulebois Date: Sun Dec 6 16:45:10 2009 +0000 sbuild-createchroot: Compute an absolute path for chroot location Signed-off-by: Roger Leigh commit e322af52d8d6815e1cf72522c4d58a45a7285a0e Author: Marc Brockschmidt Date: Sun Dec 6 12:17:11 2009 +0100 Sbuild::Build: Fix constructor call of Sbuild::InternalBuildDepSatisfier commit c4cfe8b6791474dfdcfc3fa7e0541bf1f56a8b68 Author: Marc Brockschmidt Date: Sun Dec 6 12:16:48 2009 +0100 bin/sbuild: Define needed variables... commit 12d73766cff5d74e91c61cab2d5b4da172345f1f Author: Marc Brockschmidt Date: Sun Dec 6 12:16:33 2009 +0100 Sbuild::Aptitude*Satisfier: Remove aptitude cruft from output commit 22b841efc48315a0f5cbec7c777d8fb81411e79d Author: Marc Brockschmidt Date: Sun Dec 6 12:16:13 2009 +0100 Sbuild::LogBase: Change program name of logger child commit c2273bb3864808f584ae7f8564d8717ef405d110 Author: Marc Brockschmidt Date: Sun Dec 6 12:15:30 2009 +0100 Sbuild::Internal*Satisfier: Fix POSIX.pm usage commit fab735f693dcff4e87251a7547d5518485330dfe Author: Marc Brockschmidt Date: Sun Dec 6 12:15:09 2009 +0100 Sbuild::*Satisfier: Fix logging to use $builder commit 23d9089a5226ef0b049c87e2afc62523e53577d6 Author: Marc Brockschmidt Date: Sun Dec 6 12:13:41 2009 +0100 buildd-watcher: Never remove the pid file commit 88013abff4e1dd095ae4341d4c2b5d601766d600 Author: Marc Brockschmidt Date: Sat Dec 5 19:24:12 2009 +0100 Sbuild::Build: Fail in buildd mode if apt update failed commit 0a6af5ccdfe6191e4fbdd42ab2fbd90aa5e6508f Author: Marc Brockschmidt Date: Sat Dec 5 18:32:08 2009 +0100 buildd-watchers: Don't rm other people's lock files commit 939b196d6ae4b3f24e8fa5f4c9c7416213b15482 Author: Marc Brockschmidt Date: Wed Dec 2 08:57:50 2009 +0100 sbuild: Let the dep resolver remove the srcdep lock commit 8610563ad95a354bf5cf1bb2701cbe704445b147 Author: Marc Brockschmidt Date: Wed Dec 2 08:57:34 2009 +0100 sbuild: Don't write NEED-TO-UNINSTALL for cloned chroots commit 5a6bff94f8ec8411fedf0e607d57cc1b2a85328e Author: Marc Brockschmidt Date: Wed Dec 2 08:57:10 2009 +0100 Sbuild::Build: Put build directory clearly into log commit 37530e4f5a2c1cdb377eac1d4eb98fee3dd93321 Author: Marc Brockschmidt Date: Wed Dec 2 08:56:40 2009 +0100 Sbuild::AptitudeResolver: Remove aptitude cruft completly commit 92e6f002cff3f45f5d3246cb9eaa05ccb45887f8 Author: Marc Brockschmidt Date: Wed Dec 2 08:56:20 2009 +0100 buildd: Import send_mail where needed commit a0b923fccf6fea35becb330b47ccd14b9d36b012 Author: Marc Brockschmidt Date: Wed Dec 2 00:00:52 2009 +0100 buildd: Some support configs/scripts commit 1342003428134a52be1b49ccdb4e0bbe605e891a Author: Marc Brockschmidt Date: Mon Nov 30 23:53:21 2009 +0100 Buildd::Conf: Actually use dupload-queue config commit b624855b5b64fbaad904d010506f16b1abbbb774 Author: Marc Brockschmidt Date: Mon Nov 30 23:53:00 2009 +0100 Buildd::Mail: Use the right config... commit 5cdc9497b24f6b59094807c9a1a205258331a505 Author: Marc Brockschmidt Date: Mon Nov 30 20:12:01 2009 +0100 Sbuild::AptitudeResolver: Handle packages installed for aptitude commit ac1f60f10794d738637f5fe20685799a3cd9277d Author: Marc Brockschmidt Date: Mon Nov 30 20:00:05 2009 +0100 Sbuild::AptitudeResolver: Use last set of installed pkgs commit 5577a8cbe170c185d35daedf9a5bb0ccd39ef392 Author: Marc Brockschmidt Date: Sun Nov 29 23:33:44 2009 +0100 buildd: Allow dists to choose sbuild dep-resolver commit f06c98fa098a91023f07a56eabe900f3aeeac2de Author: Marc Brockschmidt Date: Sun Nov 29 23:33:27 2009 +0100 sbuild: Allow conf/options to choose b-dep resolver commit 21c21ccb903546fc755554ff4961d6ab7df206bc Author: Marc Brockschmidt Date: Sun Nov 29 23:32:58 2009 +0100 sbuild: Add aptitude-based build-dep resolver commit 9e5f18dca962a4ab6221e21a9ef065fa8224204c Author: Marc Brockschmidt Date: Sun Nov 29 23:32:12 2009 +0100 sbuild: Move b-dep resolver into its own module commit 3a5d6679742b7fe167b6b43dfd2b8d5d709178b7 Author: Marc Brockschmidt Date: Sat Nov 28 20:53:37 2009 +0100 Buildd::Daemon: Fix sbuild call with mailto address commit 3056a9eced2b93761306f49d92ffcb37f614c3a6 Author: Marc Brockschmidt Date: Fri Nov 27 14:48:13 2009 +0100 sbuild: Fix giving-back after failed pkg builds commit a04f3b026a53f8e91da0daad43a9b83553e0d96f Author: Marc Brockschmidt Date: Thu Nov 26 16:18:03 2009 +0100 Buildd::Mail: Make it work Fix a plethora of smallish bugs found when testing buildd-mail commit 14a653263bf7c3edb7ddfe481392e71da66414f4 Author: Marc Brockschmidt Date: Thu Nov 26 14:49:48 2009 +0100 Don't try to start/restart after package installation commit 2d6a94827e9062333dbe986e2d626e695a5ed754 Author: Marc Brockschmidt Date: Thu Nov 26 14:30:38 2009 +0100 Buildd: Fix EXIT-DAEMON-PLEASE handling EXIT-DAEMON-PLEASE was checked in run(), but called shutdown, which wasn't available. Moved shutdown() from bin/buildd to Buildd::Daemon. commit 26077309f2a7a6f0c8b6bac801abf79df8203fbf Author: Marc Brockschmidt Date: Thu Nov 26 12:48:23 2009 +0100 buildd-vlog: Fix log file name pattern for modern sbuild commit e82f7afe1e195a78494631cf0fb37af094cd500a Author: Marc Brockschmidt Date: Thu Nov 26 11:43:32 2009 +0100 Buildd: Make dupload queues configurable Distributions now move their built packages into a local dupload queue dir (configured for each distribution). Local queue dirs have their own configuration, detailing to which archive packages are uploaded. commit 8adbf2de9c297a99434a7f6c0c6dd9989ffa5bba Author: Marc Brockschmidt Date: Thu Nov 26 09:42:57 2009 +0100 buildd: Make multi-archive-capable Allow buildds to use a new config format allowing for building packages from several archives. For this, we keep a distribution configuration around and pass this to all methods that are doing dist-specific things. An important change is that there is no central 'DB' handle for contacting wanna-build anymore, but that it is created on request, depending on the distribution configuration. Old configurations are transparently converted to the new format. commit 08a2b3166bc5db28dc0025ac0b1e70654f889d27 Author: Marc Brockschmidt Date: Thu Nov 26 09:32:09 2009 +0100 Buildd::Conf: Try to convert old config to new style buildds have existing configurations which should continue to be supported, so try to get all info from $sshcmd and put it into the $wanna_build_ssh* variables. Do the same for $sshsocket. Also do $wanna_build_(user|name) -> wanna_build_db_(user|name) commit 7cc8d0a9a7c1a82973ce8ea3a498e5ed6949cb1c Merge: 946c2bf 0027b56 Author: Marc Brockschmidt Date: Thu Nov 26 09:22:26 2009 +0100 Merge remote branch 'origin/buildd' Conflicts: bin/Makefile.am bin/buildd bin/buildd-mail bin/buildd-uploader bin/sbuild bin/wanna-build-merge-packages etc/Makefile.am lib/Buildd/Conf.pm lib/Sbuild/Build.pm lib/Sbuild/Chroot.pm commit 946c2bf8559b3f4242903f51190beb4467b1c631 Author: Marc Brockschmidt Date: Wed Nov 25 19:06:21 2009 +0100 Buildd::Daemon: Fix logic in w-b pipe handling We want to continue to work if the query was successful, and die if the query was unsuccessful. Not the other way round. commit f15c39d7cbb61e50beab0f8a72e121a16b587de4 Author: Marc Brockschmidt Date: Wed Nov 25 18:08:53 2009 +0100 Buildd::Daemon: Actually build a few packages The old code never built packages when no SECONDARY_DAEMON_THRESHOLD or the number of packages to build was lower than that. This is, of course, wrong. commit 4726529bfd7303daff19a27195a1dfb443aad93c Author: Marc Brockschmidt Date: Wed Nov 25 16:28:53 2009 +0100 buildd: Fix log reopening Log rotation was implemented, but the central 'Log stream' variable wasn't reset to the new log stream afterwards. commit 0370cc5145e2a0c1942603b3d3c141db99260503 Author: Marc Brockschmidt Date: Wed Nov 25 15:11:36 2009 +0100 Buildd::Daemon: Log even if there's nothing to do It's nice to see that the query to the w-b db was successful, so also log if there are zero packages to build. commit a3d7cfd7f9051704d5a6127386b8921ee6fc5581 Author: Marc Brockschmidt Date: Wed Nov 25 15:01:47 2009 +0100 Sbuild::DB::Client: Correctly handle WB_SSH_CMD $self->get_conf('WANNA_BUILD_SSH_CMD') returns an arrayref pointing to a list of command + arguments. When constructing the final w-b command, this needs to be dereferenced. commit a8c9486d3b23dd6791bda30f9a721cfd8eb58b2f Author: Marc Brockschmidt Date: Wed Nov 25 19:22:35 2009 +0100 buildd.init: Respect NO-DAEMON-PLEASE The system-wide init script should also respect the standard NO-DAEMON-PLEASE file. commit 4144afe5c1fea83b2bef4f6715fa72a89e08a0c8 Author: Marc Brockschmidt Date: Wed Nov 25 14:58:16 2009 +0100 Sbuild::Chroot: Fix undef value in debug output In some cases, %ENV contains keys with undef as value. Don't warn about those. commit e41f76b9ec30a0112561c09e308a553509ae1a37 Author: Marc Brockschmidt Date: Wed Nov 25 11:58:23 2009 +0100 Sbuild::DB::Client: No DB queries from chroot Wanna-build queries shouldn't be run from the chroot, as they are usually using an ssh tunnel to the target host, and the needed private key is only available outside of the chroot. commit 27c77d98ed85a8c9174724ba9cfa4abf301618f7 Author: Mikhail Gusarov Date: Wed Nov 25 09:04:59 2009 +0600 Fix Sbuild::df to report free space on partition, not occupied one Sbuild::df is used for checking free space (see Buildd::Daemon::do_build and Sbuild::Build::build), so it is really unconvenient that it returns occupied space instead :) This obvious patch fixes the problem, so it is now possible to run sbuild with tmpfs mounted over /build (which obviously does not have enough garbage to pass the free space check). Signed-off-by: Mikhail Gusarov Signed-off-by: Roger Leigh commit 8b987db3c6b0cb5e58e612e432513079d6ed29bb Author: Geoffrey Thomas Date: Tue Nov 24 08:53:31 2009 +0000 scripts/git-version: Ask git for date differently --date=iso appears to be broken in lenny's git (1.5.6.5). This code is simpler anyway. Signed-off-by: Geoffrey Thomas Signed-off-by: Roger Leigh commit d30026fe8afae453d00d99c79b83602727aaafa1 Author: Geoffrey Thomas Date: Tue Nov 24 08:52:14 2009 +0000 build: Only use silent-rules if it's available This permits compiling with an older automake. Signed-off-by: Geoffrey Thomas Signed-off-by: Roger Leigh commit 0027b564b0a00627b5dd318321a677627e9a188d Author: Philipp Kern Date: Fri Nov 20 13:50:41 2009 +0000 sbuild: introduce new fail stage apt-get-update We want to auto-give-back packages that fail in apt-get update, which is caused by the transient situation of a lame mirror. Thus a new stage apt-get-update is introduced and the status is set to failed to hit analyze_fail_state. Signed-off-by: Philipp Kern commit 6bc8344f3de6150f62d8f80eade8b0c51099847a Author: Roger Leigh Date: Fri Nov 20 01:00:30 2009 +0000 sbuild: Clean up on failure to fetch source, and don't skip on some failures Signed-off-by: Roger Leigh commit 355a4dffe742445713ea089436da077fc7a40ae8 Author: Roger Leigh Date: Sat Nov 7 13:01:12 2009 +0000 Sbuild::Build: Flush stdout explicitly in logger This is to avoid "choppy" output when monitoring interactively. Autoflushing stdout appears to be broken in Perl 5.10 so flush explicitly in addition to enabling autoflush. Thanks to Ryan Niebur for spotting this. commit ceb709fa141d5d47f093bdf08d0c0d212b76d48e Author: Roger Leigh Date: Sat Nov 7 11:05:04 2009 +0000 scripts: git-version uses version from NEWS commit 2899e07e311144546671caaa6a173482e4c84da6 Author: Roger Leigh Date: Sat Nov 7 00:46:39 2009 +0000 Sbuild::Build: Cache vars used in tight loop in logger Rather than perform repeated hash table lookups for each output line, cache outside loop so lookups only occur once at startup. commit 0b45461b15cc7f7e6ef290ead1ba6f671dced3ab Author: Roger Leigh Date: Fri Nov 6 23:17:58 2009 +0000 debian: Close #521096 commit 7cd3c012d7fb701c8a9e68633a551fce7c08c827 Author: Gustavo Noronha Silva Date: Fri Nov 6 23:15:33 2009 +0000 Sbuild::Build: APT_UPDATE updates and upgrades the chroot commit ebedcac18f63acdb8102906f4e4e7c9d26b06922 Author: Roger Leigh Date: Fri Nov 6 23:05:20 2009 +0000 debian: Close #538085 commit b70290f5855c4b0aa589f6696768934885d13f8c Author: Roger Leigh Date: Fri Nov 6 23:03:01 2009 +0000 debian: Close #535911 commit 743d2e2bf6cb98eb923822b90fac5da9b3036f3b Author: Andres Mejia Date: Fri Nov 6 23:02:00 2009 +0000 Sbuild::Conf: Allow setting of $build_dir commit 83d774431b5e439f90b017ae1344bf58f4c4ac4d Author: Roger Leigh Date: Fri Nov 6 22:57:43 2009 +0000 debian: Close #538083 commit 6ac5cae62a8062c2a416b055309d1f86e21da951 Author: Roger Leigh Date: Fri Nov 6 22:50:43 2009 +0000 build: Set correct wanna-build.conf location commit 0b0fc63b269188c6f447521d9b679eacdb4fb5ff Author: Roger Leigh Date: Fri Nov 6 22:31:59 2009 +0000 WannaBuild::Database: Fix up uninitialised var in log_ta Also fix incorrect package set method call. commit a6a87844c08ebfd5020c7791c50f0d36cb53cd21 Author: Roger Leigh Date: Fri Nov 6 21:02:26 2009 +0000 debian: Close #553364 commit dbca481033f8c5b8cc356923442a2869978901a6 Author: Felipe Sateler Date: Fri Nov 6 21:00:28 2009 +0000 wanna-build-merge-packages: Remove extra parenthesis Line 46 seems to be sporting an extra parenthesis commit 1b5716cbb6b14a8f1213ed0e77d7eddcb414a984 Author: Roger Leigh Date: Fri Nov 6 20:55:41 2009 +0000 Minor documentation corrections commit 69b0697ad640bf7992320aaf176b8564dc6ae1b1 Author: Karl Goetz Date: Sun Nov 1 21:48:48 2009 +1030 README.buildd-admin: Rewording and reworking I note sections 2.2+ and 3.0 are blank, and probably need a TODO commit f0de7fc841b5cc40fd206b7f53f9f10ff3bcaea3 Author: Karl Goetz Date: Fri Oct 30 23:15:37 2009 +1030 README: Rework * Reword several sections * Rewrote a lot of the examples bit * Removed a reference to buildd.chroot. commit 413284a54d30bb1091dc1e9fb2c0b43c99cd1c33 Author: Karl Goetz Date: Fri Oct 30 22:35:46 2009 +1030 NEWS-buildd: Changed last few news-buildd entries to match existing entries. It involved removing whitespace so all text lines up with the * which indicates an item, but I'm not convinced I like it (I prefer the slight indent for wrap around text). commit 2084a537cb93b5263e9affa289cfd5b5de9fd591 Author: Karl Goetz Date: Fri Oct 30 21:41:53 2009 +1030 AUTHORS: Swapped all entries to tabs (was a mix of tabs and whitespace) Assumes 4 space tabspot commit f43b2732ee14f67a7fdcc7ec3b8b1a7db67207e3 Author: Philipp Kern Date: Mon Jun 15 09:48:04 2009 +0000 [bin/buildd-update-chroots] update to work with schroot This script is not general-purpose but instead updates every chroot it finds, which is fine for the official autobuilders but maybe not others. Likewise /root is passed into the schroot invocations because the buildd's home does not necessarily exist in the chroot. Signed-off-by: Philipp Kern commit 0b435d5a6fc27b7854be313da1ad7f4d53506b4e Author: Andres Mejia Date: Mon Oct 19 20:50:50 2009 +0100 bin/sbuild-debuild: provide debuild like functionality for sbuild Provide an sbulid-debuild script that provides debuild like functionality for sbuild. This script gives similar functionality as debuild. You can run it from a debianized package source directory to build a package using sbuild. The resulting package's .changes file is then processed through lintian. sbuild-debuild also allows for supplying debianized source package directories directly and for supply a .dsc file. Also, sbuild-debuild allows for running external commands in a similar fashion as you would run hooks. Signed-off-by: Roger Leigh commit f0a28af8304ff72ba1c02dd74885d7abe9a5b420 Author: Andres Mejia Date: Sat Oct 17 14:00:23 2009 -0400 Make use of LWP::UserAgent optional and implement the progress indicator Progress indicator is to give better output. commit 775aeaa6607cdc4ffb11543b0ca91568a178ce1a Author: Roger Leigh Date: Sun Oct 18 22:32:19 2009 +0100 debian: Close #551310 commit cfcc3a25bf2ae15eeed0944a5ff57a3a38c76459 Author: Andres Mejia Date: Sat Oct 17 17:46:51 2009 -0400 Add sbuild-clean script commit d2d5ea8cc0922d0f93078feab55a5cd705555f9b Author: Roger Leigh Date: Sun Oct 18 21:04:53 2009 +0100 Sbuild::Options: Add --mail-log-to option to set $mailto commit 365bb4dcbace508fa596728daafd32988c72e845 Author: Roger Leigh Date: Sat Oct 17 13:31:23 2009 +0100 Sbuild::ChrootInfoSchroot: Add aliases from --info output commit 071e14426d6ff63257c0afb96b644ff9217fa744 Merge: 923d5af f49d427 Author: Roger Leigh Date: Fri Oct 16 22:04:20 2009 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 923d5af50979cd2e31cdcea0d999860f3a7e245a Author: Kees Cook Date: Fri Oct 16 13:38:44 2009 -0700 sbuild: Drop unused code Drop the uncalled code from the end of sbuild. (Also, it's not correct to ignore HUP anyway, since children may use HUP during builds, and this would pollute the signal masks.) https://launchpad.net/bugs/453460 Signed-off-by: Kees Cook Signed-off-by: Roger Leigh commit 6613abbfd8c9b20b1d438efd6399941be2d345b4 Author: Roger Leigh Date: Sat Sep 26 23:17:08 2009 +0100 man: sbuild.1.in: Document -p and remove --force-depends commit b2b453e85098dd64c41b376d845a331878b000c3 Author: Roger Leigh Date: Sat Sep 26 23:16:22 2009 +0100 build: Use automake 1.10 with silent-rules commit f49d427c21c6a9129d50ab39b340309d8e753ed5 Author: Jan-Marek Glogowski Date: Thu Sep 17 17:21:02 2009 +0200 debian: Cleanup make -C and comments - Changes all cd debian/build; make to make -C debian/build. - Just creates the build directory if it doesn't exists. - Removes all debhelper comments from binary-arch commit 7402a0ff30e134c62465b0b1633f49e413dd50f1 Author: Jan-Marek Glogowski Date: Thu Sep 17 17:21:01 2009 +0200 build: Remove config.h.in~ commit 1d870e413e7efff6eb2a84a766ea0e7c50fd5668 Author: Jan-Marek Glogowski Date: Thu Sep 17 17:21:00 2009 +0200 sbuild-createchroot: Cleanup symlink error mesg commit 9c0d34d9a206612981fbdba3f7ee750ea8b804e9 Merge: 1bc5aff 138c03b Author: Roger Leigh Date: Sun Sep 20 18:25:15 2009 +0100 Merge branch 'master' of ssh://git.debian.org/git/buildd-tools/sbuild commit 1bc5aff828322089e64a7a75d99867570da2b5c0 Author: Roger Leigh Date: Wed Sep 16 23:27:58 2009 +0100 debian: Close #546673 commit e3dbce4338865c2a3c76c5923b32973fbedd1893 Author: Nelson Elhage Date: Wed Sep 16 23:25:56 2009 +0100 Sbuild::Options: Accept -C for --check-depends-algorithm Signed-off-by: Roger Leigh commit aef1a608c3179fc36eb17f20d93a098abfbd26cf Author: Roger Leigh Date: Wed Sep 16 23:22:16 2009 +0100 debian: Close #546647 commit 341b54887092f096cca94333e7689da71f689f67 Author: Roger Leigh Date: Wed Sep 16 23:19:35 2009 +0100 Sbuild::Build: Add OSVersion version OSVersion is the original version with a stripped epoch. This complements SVersion which is the amended version with a stripped epoch, and is used to set the 'DSC File' attribute. commit f6277a76b35d6c630d56a348ce5d2162b8bfc5b3 Author: Roger Leigh Date: Wed Sep 16 22:40:23 2009 +0100 debian: Close #546624 commit e0eb3b4c951022fe52b9c6187fce53358c2af155 Author: Roger Leigh Date: Wed Sep 16 22:21:02 2009 +0100 Sbuild::ChrootInfoSchroot: Run schroot --info only once at startup Rather than running "schroot --list", followed by "schroot --info" for each chroot found by '--list', just run "schroot --info --all-chroots". Add function get_info_from_stream(), split from get_info(). get_info_all() repeatedly passes the output of '--info --all-chroots' to this function to get the information for all chroots in a single attempt. This siginificantly speeds up startup, especially in the case where many chroots exist. commit 138c03b146cd7d8a255ec37f298fb9616278f238 Author: Roger Leigh Date: Wed Sep 16 23:27:58 2009 +0100 debian: Close #546673 commit e1193d96dfeecb192080d8679ef8540a7952eb63 Author: Nelson Elhage Date: Wed Sep 16 23:25:56 2009 +0100 Sbuild::Options: Accept -C for --check-depends-algorithm Signed-off-by: Roger Leigh commit 8f828f90135c6297e5c99ed1f280ba8a9027ed1f Author: Roger Leigh Date: Wed Sep 16 23:22:16 2009 +0100 debian: Close #546647 commit 0bbc20a5caf671c3f6d0d479a9a29ced43435212 Author: Roger Leigh Date: Wed Sep 16 23:19:35 2009 +0100 Sbuild::Build: Add OSVersion version OSVersion is the original version with a stripped epoch. This complements SVersion which is the amended version with a stripped epoch, and is used to set the 'DSC File' attribute. commit abea9e90479b76bec9cdf06b13ad6e5783d478f4 Author: Roger Leigh Date: Wed Sep 16 22:40:23 2009 +0100 debian: Close #546624 commit 54b2d2e955e9348993ca5008d2fa409c58575272 Author: Roger Leigh Date: Wed Sep 16 22:21:02 2009 +0100 Sbuild::ChrootInfoSchroot: Run schroot --info only once at startup Rather than running "schroot --list", followed by "schroot --info" for each chroot found by '--list', just run "schroot --info --all-chroots". Add function get_info_from_stream(), split from get_info(). get_info_all() repeatedly passes the output of '--info --all-chroots' to this function to get the information for all chroots in a single attempt. This siginificantly speeds up startup, especially in the case where many chroots exist. commit fdd9dd75b460aad58ab3916110e562830c0cda32 Author: Andres Mejia Date: Sun Sep 13 23:28:38 2009 -0400 Implement support to detect and build from remote source files. This also changed dsc_files to support reading dsc files downloaded from the web. commit 02f033d4d85254c7c76a4793ea0e24f03b954159 Author: Andres Mejia Date: Sun Sep 13 23:27:00 2009 -0400 Add utility subroutines that are used to check and download from a URL and parse dsc files. commit c6bf95beac6fa22320a6efca54c128f5b8353a97 Author: Philipp Kern Date: Tue Aug 25 13:57:27 2009 +0000 [Sbuild::DB::Client] import Sbuild::ChrootRoot Signed-off-by: Philipp Kern commit b803de956b867f48f86042568ed0e7ef431f3735 Author: Philipp Kern Date: Tue Aug 25 13:50:49 2009 +0000 [bin/buildd-mail] do not depend on Sbuild, as that breaks with newer versions Copy the binNMU_version function that has been imported from the Sbuild module as this totally breaks with newer versions of libsbuild-perl. Signed-off-by: Philipp Kern commit 063224f9855894cf8ed66674458ab6d73f2385f1 Author: Roger Leigh Date: Tue Aug 18 00:56:18 2009 +0100 Buildd::Daemon: get_from_REDO does not return a scalar reference commit 1dca0132f323e900f75f61f5bea4119db7c6b20e Author: Roger Leigh Date: Tue Aug 18 00:55:36 2009 +0100 Buildd::Daemon: Don't abort when TAKE_FROM_DISTS is not empty commit 95ae6f5f9e576900cb5a2428e3cc9153e8a93d7b Author: Roger Leigh Date: Sat Aug 15 10:37:25 2009 +0100 build: Update git-version script to handle hyphens in versions commit 2c0336e568d1f8f761486b2bb9b592a86ef2badc Author: Roger Leigh Date: Mon Aug 10 22:29:31 2009 +0100 debian: Install buildd's .forward correctly commit 111a3d270ca1c53fedc4d283aa041ee542c8a2a1 Author: Roger Leigh Date: Sun Aug 2 12:48:17 2009 +0100 debian: Bump version to 0.59.0~rc1 and Standards-Version to 3.8.2 commit 8333cd6825d78b923dce750231a5ea59a16a64de Author: Roger Leigh Date: Sun Aug 2 12:47:47 2009 +0100 NEWS: Fix error in 0.59.0 changes commit a2742a5ee5df87b4c55d6d37c974288959465fe1 Author: Roger Leigh Date: Sun Aug 2 12:33:58 2009 +0100 NEWS: Bump version to 0.59.1-rc1 commit 843481a1d29878576315ac09921eadc943f61551 Author: Roger Leigh Date: Sun Aug 2 11:17:30 2009 +0100 Sbuild: Don't require STATS_DIR to be set. Sbuild::Conf doesn't require STATS_DIR to exist. Sbuild::Build::write_stats only uses STATS_DIR in batch mode Closes #539570. commit 85e36f1f2f67a91935c81c412516a7bb08d436d4 Author: Bastian Blank Date: Fri Jul 31 14:58:45 2009 +0000 [Sbuild::Build] Don't try to access log in nolog operation commit d0a1c550d0d81cdb371f67d29ec13cc8a59d056d Author: Roger Leigh Date: Sat Aug 1 14:22:53 2009 +0100 Sbuild: Add user options to dpkg-buildpackage invocation commit 44810db821299a90591a0429f38bef32f7bde006 Author: Joachim Breitner Date: Sat Jul 25 17:51:21 2009 +0100 Sbuild::DB::Base: strip newlines on multiline fields in export output correctly Signed-off-by: Philipp Kern Signed-off-by: Roger Leigh commit ffae5b3023e4e4172a4e735c44e00e339cb7d035 Author: Roger Leigh Date: Sat Jul 25 17:38:16 2009 +0100 debian: Add arch wildcard support for wanna-build (#501230) commit c6127d360f2f5aba6601cb01799e4f16da528d56 Author: Andres Mejia Date: Sat Jul 25 17:34:05 2009 +0100 WannaBuild::Database: Add support for architecture wildcards Signed-off-by: Roger Leigh commit 2c3249b7a5ae7e008ac4569751c35a8e96f47e03 Author: Philipp Kern Date: Sat Jul 25 17:30:38 2009 +0100 WannaBuild::Database: Update package sections Signed-off-by: Roger Leigh commit f7541e9cdfadcda57d1ff1560d35ad33019a4b59 Author: Luk Claes Date: Sat Jul 25 15:46:31 2009 +0100 wanna-build-statistics: Fix the distributions Signed-off-by: Roger Leigh commit c2a849f1c0fa9d250929fcd3fbd15aeb046fd662 Author: Joachim Breitner Date: Sat Jul 25 12:57:38 2009 +0100 man: wanna-build: Further document --give-back Signed-off-by: Roger Leigh commit 788fb9a018873fe058015b1d0186641a590c4893 Author: Joachim Breitner Date: Sat Jul 25 12:55:14 2009 +0100 wanna-build: Indent multi-line output of --info more Since the field names are indented by two, make the mult-line fields be indented by 4 instead of 1. Signed-off-by: Roger Leigh commit 9fc4eedabaeed61583c94351ffa1d1b4348330fc Author: Joachim Breitner Date: Sat Jul 25 12:54:47 2009 +0100 wanna-build: Create valid dctrl-like output Instead of adding the dots for empty lines when reading the input, and adding the extra space when outputting, save the data as is and create the correct format when outputting. This makes sure that multi-line-data passed to -m is also represented correctly. Signed-off-by: Roger Leigh commit 58bcfa9614f7a9f0ec4f519fc01cfc03c98f3925 Author: Roger Leigh Date: Sat Jul 25 12:52:05 2009 +0100 Sbuild::DB: Remove code duplicated in MLDBM and Postgres modules commit 324a6c48b5ac0513e79b8b0965255c9d6b31a23e Author: Roger Leigh Date: Sat Jul 25 12:28:46 2009 +0100 NEWS: Bump version to 0.59.0 commit f988aa5e040ad6e1acceded5a21d553b86302f72 Author: Roger Leigh Date: Sat Jul 25 12:28:23 2009 +0100 Sbuild::ConfBase: Add FULL_NAME from passwd gecos commit 37bdff44f23b4729deae5f39641c677eec397be3 Author: Roger Leigh Date: Sat Jul 25 12:27:54 2009 +0100 NEWS: Document sbuild wanna-build changes commit b9244ad840e84d5fb4c660f380d4e5374c9cbe74 Author: Roger Leigh Date: Sat Jul 25 12:22:25 2009 +0100 sbuild: Use wanna-build client interface Drive wanna-build via status trigger Add given-back and attempted build states Set wanna-build built and attempted states Clean up build directory when downloads fail Only use skipped state for SKIP commit 30faa38c5a225a3a092386e1d2cb8d31caa9bd6b Author: Roger Leigh Date: Sat Jul 25 11:30:01 2009 +0100 Buildd: Remove unused wannabuild_command commit dbe0913ed48abda9eb1bff1d383fee83d87ee8b0 Author: Roger Leigh Date: Sat Jul 25 11:29:15 2009 +0100 Buildd: Use wanna-build client interface in place of running directly commit 2c99110efd856518c9e1ef86232ce67dd8b39dab Author: Roger Leigh Date: Sat Jul 25 11:25:15 2009 +0100 Build::Conf: Use common Sbuild::DB::ClientConf configuration commit db36f486e4447f52b394699ed4f84adad4ef59ff Author: Roger Leigh Date: Sat Jul 25 11:22:12 2009 +0100 Sbuild::DB::Client, Sbuild::DB::ClientConf: Add wanna-build client interface Interface to run wanna-build commands, and for wanna-build client configuration. This is to allow buildd and sbuild to share the common code they use to drive wanna-build. commit 2d4aa5815cb28f1f8e013d3547e1aeeab09290f2 Author: Roger Leigh Date: Sat Jul 25 01:07:38 2009 +0100 buildd: Update wanna-build configuration key names Unify wanna-build usage between buildd and sbuild. This initial patch changes the key names and buildd.conf variable names only. Configuration keys: ┌──────────────────────┬───────────────────────────────┬─────────────────────────┐ │ buildd │ sbuild │ unified │ ├──────────────────────┼───────────────────────────────┼─────────────────────────┤ │ WANNA_BUILD_DBBASE │ WANNABUILD_DATABASE │ WANNA_BUILD_DB_NAME │ │ WANNA_BUILD_USER │ AUTO_GIVEBACK_WANNABUILD_USER │ WANNA_BUILD_DB_USER │ │ SSH_USER │ AUTO_GIVEBACK_USER │ WANNA_BUILD_SSH_USER │ │ n/a │ AUTO_GIVEBACK │ n/a │ │ SSH_HOST │ AUTO_GIVEBACK_HOST │ WANNA_BUILD_SSH_HOST │ │ SSH_SOCKET │ AUTO_GIVEBACK_SOCKET │ WANNA_BUILD_SSH_SOCKET │ │ SSH_OPTIONS │ n/a │ WANNA_BUILD_SSH_OPTIONS │ └──────────────────────┴───────────────────────────────┴─────────────────────────┘ buildd.conf: ┌───────────────────┬────────────────────────────────────┐ │ old │ new │ ├───────────────────┼────────────────────────────────────┤ │ $wanna_build_db │ $wanna_build_db_name │ │ $wanna_build_user │ $wanna_build_db_user │ │ $ssh_user │ $wanna_build_ssh_user │ │ $ssh_host │ $wanna_build_ssh_host │ │ $ssh_socket │ $wanna_build_ssh_socket │ │ @ssh_options │ $wanna_build_ssh_options (hashref) │ └───────────────────┴────────────────────────────────────┘ These options may be introduced to sbuild.conf in the future if required. commit 96eb64a7d0c6e2c8bf8c3975b0f85ce2798542e7 Author: Roger Leigh Date: Sat Jul 25 00:07:49 2009 +0100 Sbuild::ConfBase: Add deprecated warning function commit 6d9de4c578fb29d625967f8cfdcbfdaa0b77157f Author: Roger Leigh Date: Fri Jul 24 23:52:44 2009 +0100 WannaBuild::Database: Remove unused code commit f8cb432d1deafa7b7c94ab20c4b9bccf4db0cfc0 Author: Roger Leigh Date: Fri Jul 24 23:29:26 2009 +0100 wanna-build: Remove deprecated propagation options and configuration variables * Remove the command-line options --no-propagation and --no-down-propagation * Remove the configuration keys DB_NO_PROPAGATION and DB_NO_DOWN_PROPAGATION * Remove the configuration file variables for the old format configuration which was no longer supported. commit 14c1788d9507bc924713d608f8717e1eb17718b5 Author: Andres Mejia Date: Sat Jul 4 19:28:34 2009 +0100 [Sbuild::Build] Add support for architecture aliases/wildcards part two commit 33caa353d687669bca2a5d61979fc995ecb6d92b Author: Roger Leigh Date: Sat Jul 4 12:01:38 2009 +0100 [debian] Close #501230 commit 3864d5f2bc8081200c8389901878297c8b5ddf1d Author: Andres Mejia Date: Sat Jul 4 12:00:07 2009 +0100 [Sbuild::Build] Add support for architecture aliases/wildcards commit 6dbc3fade4901e8339f9145a4d79ef6d78633123 Author: Roger Leigh Date: Sat Jul 4 11:59:09 2009 +0100 [Sbuild::Sysconfig] Add DPKG_ARCHITECTURE commit d1f7b14dcfb9fddac1ac6c28421ae5875f02c611 Author: Cyril Brulebois Date: Sat Jul 4 11:38:02 2009 +0100 [sbuild-createchroot] Suggest reporting usecases to sbuild developers commit 8c7b0f8f9d5e97f014d67bf2706d4f4320f707e3 Author: Roger Leigh Date: Sat Jul 4 11:34:27 2009 +0100 [sbuild-createchroot] Don't run commands in chroot when chroot arch is not native If the host and chroot arches don't match, don't update the APT package lists or run any other commands, since they most likely won't work. commit 81b20242f677b73706fc8e718c38a5c393118342 Author: Cyril Brulebois Date: Sat Jul 4 11:34:11 2009 +0100 [sbuild-createchroot] Add personality option automatically for some known cases commit e82456772fb677bb96e0db1a2455d7eb1fa9925d Author: Cyril Brulebois Date: Sat Jul 4 11:08:26 2009 +0100 [sbuild-createchroot] Detect whether a personality option might be needed. commit d3087b8ef3b72dc63a03272a82d7893ab6db2760 Author: Roger Leigh Date: Thu Jul 2 23:04:10 2009 +0100 [debian] Close #535415 WannaBuild::Database: Allow whitespace in Architecture field commit 69d754a712066962ca2b9861154fa5e1cc37b62b Author: John Wright Date: Thu Jul 2 23:02:21 2009 +0100 [WannaBuild::Database] Account for multi-valued Architecture field wanna-build complains about $arch being uninitialized in WannaBuild/Database.pm line 1097, because the regexp for the Architecture field assumes no white-space in the value. commit 6776a7c41709dc6b91821531374aaa7d33ffc135 Author: Roger Leigh Date: Thu Jun 25 23:07:45 2009 +0100 [man] sbuild.1: Correct roff markup typo in --append-to-version commit 23974c78a2c09744d1a42676d8c1057e2f408bfc Author: Florian Weimer Date: Thu Jun 25 23:00:19 2009 +0100 [WannaBuild::Database] Remove unneeded "my" use commit 660a7a909416033d7d85b7fd26ff0606aedbf54a Author: Roger Leigh Date: Thu Jun 25 22:59:52 2009 +0100 [debian] Close #521486 commit 5f20e24788f70e7ed8e0f866ba08ae4f70085dc3 Author: Florian Weimer Date: Thu Jun 25 22:58:26 2009 +0100 [WannaBuild::Database] Use Sbuild version comparison functions commit ad411295f45d99aa7c6c6f21e7c194965859dec9 Author: Roger Leigh Date: Sun Jun 21 15:23:24 2009 +0100 [debian] Bump version to 0.58.7-1 commit 3af11ad67d642e6eb41d4e9610722e6643328024 Author: Roger Leigh Date: Sun Jun 21 15:22:45 2009 +0100 [NEWS] Bump version to 0.58.7 commit 98cdf3305f37a6a7ef0c35bd8410004d9126200c Author: Roger Leigh Date: Sat Jun 20 10:50:04 2009 +0100 [debian] control: Update package descriptions Closes: #531022 commit 3bc203a8d574661d6a80f479613a09f7500ba68d Author: Roger Leigh Date: Sat Jun 20 10:27:43 2009 +0100 [debian] Close #529786 Don't include Epoch in DSC filename. commit 226569dbee1ed1bb3d61f7baee4d4aa639f4a661 Author: Roger Leigh Date: Sat Jun 20 10:25:04 2009 +0100 [Sbuild::Build] Don't include epoch in 'DSC File' commit b41be90949715119e04be3a5a7d750a44f3f7ec1 Author: Roger Leigh Date: Mon Jun 15 20:46:24 2009 +0100 [.gitignore] Ignore VERSION commit 11dd9e7befad26fb005387b7560e8617af6ff54f Author: Roger Leigh Date: Mon Jun 15 20:45:46 2009 +0100 [debian] git-tag-debian: Remove echo statement used for testing commit e6e759f023f3fccb77e06f374cd067cc192035cd Author: Roger Leigh Date: Mon Jun 15 20:45:26 2009 +0100 [NEWS] Bump version to 0.58.6 commit 43a416e0a52e0a157f26a5dd1eacab8515e5addd Author: Roger Leigh Date: Mon Jun 15 20:33:10 2009 +0100 [debian] Don't duplicate Perl modules in sbuild and libsbuild-perl * debian/sbuild.install: Don't install Perl modules, which should only be included in libsbuild-perl (Closes: #533143). * debian/control: - libsbuild-perl: Replace sbuild <= 0.58.4 (due to also providing perl modules) - sbuild: Depend on the same version of libsbuild-perl. commit 401c57333d67abe50ad41c411596a665bcc9c00c Author: Philipp Kern Date: Mon Jun 15 09:48:04 2009 +0000 [bin/buildd-update-chroots] update to work with schroot This script is not general-purpose but instead updates every chroot it finds, which is fine for the official autobuilders but maybe not others. Likewise /root is passed into the schroot invocations because the buildd's home does not necessarily exist in the chroot. Signed-off-by: Philipp Kern commit d6b987bf9766666ffd7b4a580d3271b202681a68 Author: Roger Leigh Date: Sun Jun 14 10:33:11 2009 +0100 [debian] Install README.Debian in sbuild package Move debian/README.Debian to debian/sbuild.README.Debian. Closes: #533029 commit 1dbe4e70104b3f1a7ea305ecd64f258719ef8032 Author: Roger Leigh Date: Sun Jun 14 10:31:28 2009 +0100 [NEWS] Bump version to 0.58.5 commit 65ee49b519a1df4678784bd4eed4f8c8eb7538a7 Merge: 5420ad3 6e4f2e4 Author: Roger Leigh Date: Sat Jun 13 21:06:48 2009 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 5420ad3f9746718a66fb6562d8499b8a469e4898 Author: Roger Leigh Date: Sat Jun 13 21:02:36 2009 +0100 [build] Package versioning uses git release tags Rather than hard-coding the release version in several places, including configure.ac and NEWS as well as the git tags, make the setup simpler and easier to manage for releases since forgetting to update one of the versions or tag is not possible. The version is stored in the NEWS file. This is used to tag the release with scripts/git-tag-release which creates a tag release/sbuild-. The script ./bootstrap calls the script scripts/git-version which gets the release tag using git and uses this to create a VERSION file containing the release details. The autotools read this file to get the version to set in the configure script. The reason for this is to allow rebootstrapping from release tarballs without needing git. Debian releases are tagged with debian/git-tag-debian. The release procedures are documented in HACKING. commit de829c64681a3502f88df266383f1b04d7ecdd94 Author: Philipp Kern Date: Thu Jun 4 19:29:29 2009 +0000 [buildd] Don't use the SysV (and non-POSIX) SIGPWR This makes buildd work on GNU/kFreeBSD. commit 6b82face60852c3e4e362f3fc829e153c5989d65 Author: Roger Leigh Date: Sun May 31 00:14:11 2009 +0100 Use dpkg --print-architecture in place of dpkg --print-installation-architecture commit 6e4f2e44dd933a89078539b9b22ed674083e362d Author: Roger Leigh Date: Thu Jun 4 19:57:40 2009 +0100 [buildd] Don't use the SysV (and non-POSIX) SIGPWR This makes buildd work on GNU/kFreeBSD. Thanks to Aurelien Jarno. commit def77a50e479dca25baeddbd43b56e32a5741070 Merge: 7b0f871 2d7a93b Author: Roger Leigh Date: Thu Jun 4 19:38:48 2009 +0100 Merge branch 'master' of ssh://git.debian.org/git/buildd-tools/sbuild commit 2d7a93b856158f5e6c0e7a9736156842386da312 Author: Roger Leigh Date: Sun May 31 10:33:13 2009 +0100 [Sbuild::ChrootSetup] Add list_packages and set_package_status sbuild-hold and sbuild-unhold implementations of these functions are now present in Sbuild::ChrootSetup and are used by these tools. commit 0f4cff0c3530b848480ce19fe4738b228d8852e1 Author: Roger Leigh Date: Sun May 31 00:14:11 2009 +0100 Use dpkg --print-architecture in place of dpkg --print-installation-architecture commit 3828a48fe6a30ce9c88d8f6749a6523f2865245a Author: Roger Leigh Date: Sat May 30 18:02:06 2009 +0100 [Sbuild::Conf] check_group_membership uses getgroups(2) Check group membership using both group database searching and getgroups(2) with appropriate errors to better diagnose permissions problems. commit 92ad111334884b2d1dac426b3b75a76bdc2c1c00 Author: Roger Leigh Date: Sat May 30 14:50:39 2009 +0100 [Sbuild::Build] SIGALRM handler calls kill with correct quoting commit 1e6de646235dd1a61a0fd839af1a8aee875a106b Author: Roger Leigh Date: Sat May 30 14:49:18 2009 +0100 [Sbuild::Chroot] Allow use of setsid when running commands Sbuild::Build sets this when running dpkg-buildpackage to allow termination of the whole process group. commit 8f8da84853a8c4f8f9152734d00a1371933b83fc Author: Roger Leigh Date: Sat May 30 16:49:25 2009 +0100 [Sbuild::ChrootSetup] Move shell invocation from sbuild-shell commit 6618890fbd36f029b696a35cf052e032dd0e69ba Author: Roger Leigh Date: Sat May 30 16:46:16 2009 +0100 [Sbuild::Utility] Don't open log file This detaches programs being run from STDIN/STDOUT/STDERR which can cause problems for interactive use of utility programs such as sbuild-shell. commit 16be96d3dad6804d788fc5381304037762c6f9b1 Author: Roger Leigh Date: Sat May 30 16:45:04 2009 +0100 [Sbuild::Chroot] Execute programs using execvp directly This avoids quoting issues and shell expansion of commands commit 46d4a948b53653cca16d470e839b61a051f4034b Author: Roger Leigh Date: Sat May 30 16:18:18 2009 +0100 [sbuild] Only clean up if there is a valid current job commit 551909d1890ef786493c0e23145670d0d7cdfcbb Author: Roger Leigh Date: Sat May 30 16:07:53 2009 +0100 [Sbuild::Chroot] Add get_option method to get option value This uses the user-supplied value if present, or else the default value for the chroot. commit 28ae47ea5c7be652bea3db39c6e07c3baba69e93 Author: Roger Leigh Date: Sat May 30 14:50:39 2009 +0100 [Sbuild::Build] SIGALRM handler calls kill with correct quoting commit 8f254221933068ae0628f9898a23f4f8bbcf38ee Author: Roger Leigh Date: Sat May 30 14:49:18 2009 +0100 [Sbuild::Chroot] Allow use of setsid when running commands Sbuild::Build sets this when running dpkg-buildpackage to allow termination of the whole process group. commit 7b0f871a32507c849d5fdfab6b3e6429122c637a Author: Philipp Kern Date: Thu May 21 16:24:48 2009 +0100 [buildd, sbuild] get rid of --no-down-propagation --no-down-propagation is the default on the official wanna-build and it is simply ignored nowadays. Signed-off-by: Philipp Kern Signed-off-by: Roger Leigh commit 53e98edad6e4ac14cc5fd9024aacb324d2906e14 Author: Philipp Kern Date: Thu May 21 16:15:11 2009 +0100 [Buildd::Mail] Allow Build-Attempted as a valid current state for retries Ryan Murray's buildd added Build-Attempted and Built as state. It is perfectly valid to give-back or retry a build in Build-Attempted. Signed-off-by: Roger Leigh commit ce5ef3dabd6a722e8cd515f0694c09343ec49bed Author: Roger Leigh Date: Tue May 19 22:18:19 2009 +0100 [debian] Close #509133 commit 8dc01a896e1b6f1e8a20c15c82ec0e99c8836a33 Author: Roger Leigh Date: Tue May 19 22:15:41 2009 +0100 [Sbuild] Use Filesys::Df in place of df Rather than using an external program, use statvfs(2) via the Filesys::Df module. This saves the need to parse the output of a program since we can just use the results directly. commit c558cc8b0f7faa7a21077746ed003e364f2725ef Author: Roger Leigh Date: Tue May 19 21:35:45 2009 +0100 [debian] Close #529470 commit 8dd7b7c7e9654aa710ce22a503f8decf2014b10b Author: Roger Leigh Date: Tue May 19 21:33:54 2009 +0100 [sbuild] Use isin from Sbuild commit f7f3f748811b96fac75d52e60742d6b22cac28d3 Author: Roger Leigh Date: Sun May 17 23:53:07 2009 +0100 [debian] Close #528312 commit a82a4b6bf9c61948c7e94053ec000c1ac71ad2f2 Author: Roger Leigh Date: Sun May 17 23:51:36 2009 +0100 [Sbuild::*] Add PURGE_BUILD_DEPS option to control build-dep removal commit 94f4952004822ea10b0a0ca860ff5beb84fe0581 Author: Roger Leigh Date: Sun May 17 23:46:12 2009 +0100 [Sbuild::Conf] Always purge packages by default commit fc253611cd7a78de4405a735a63eb75e5401312d Author: Roger Leigh Date: Sun May 17 23:45:01 2009 +0100 [debian] Bump version to 0.58.4-1 commit c06dfa8fd454ce5519da32456d0e01f17cb5d924 Author: Roger Leigh Date: Sun May 17 23:44:22 2009 +0100 [build] Bump version to 0.58.4 commit 50802856b6b4853a21950ea7ad2a975887f75369 Author: Roger Leigh Date: Sun May 17 23:24:30 2009 +0100 [man] Update sbuild.1 references commit e925e754f84653f4a9291982431eb53ca9166f81 Author: Roger Leigh Date: Sun May 17 21:45:09 2009 +0100 [debian] changelog: Update for 0.58.3 commit 1a27c42ceded9689131f3c59769f6231a6e0d13d Author: Roger Leigh Date: Sun May 17 21:35:04 2009 +0100 [TODO] Remove completed items commit 519b376baa2d52acd15129ac57c7147a10fba0eb Author: Roger Leigh Date: Sun May 17 21:13:58 2009 +0100 [build] Don't generate man/sbuild-upgrade.1 commit bb874ad9f6a561d5276a62546e0f82e537fc8d5b Author: Roger Leigh Date: Sun May 17 21:13:01 2009 +0100 [TODO] Add missing features for ChrootSetup to handle commit 182a64fb01ebc8f8de9c63cfe79892f5c47284ff Author: Roger Leigh Date: Sun May 17 21:12:29 2009 +0100 [Sbuild::ChrootSetup] Default priority to avoid unnecessary messages commit f3e8b060469ba0451c709ceaf1124317e81d613a Author: Roger Leigh Date: Sun May 17 21:11:46 2009 +0100 [sbuild-stats] Include modules in correct order commit a820bc90a65d2be6e9792ae759f62cc6e8f27af3 Author: Roger Leigh Date: Sun May 17 21:10:18 2009 +0100 [bin] sbuild-(update|upgrade): Use Sbuild::ChrootSetup Also add sbuild-distupgrade to run apt-get dist-upgrade Merge manual pages for all three commands. commit 688b82958a878991394fb2003f3fedd266d7201e Author: Roger Leigh Date: Sun May 17 21:06:15 2009 +0100 [Sbuild::Utility] Don't pass session to open_log commit 532bbda92f3edc3d5d986d9bbebba30ef2cec927 Author: Roger Leigh Date: Sun May 17 19:24:34 2009 +0100 [Sbuild::Build] Pass configuration to ChrootSetup functions commit 75d097f665d998ef152655a3530d739c94014a08 Author: Roger Leigh Date: Sun May 17 19:23:57 2009 +0100 [debian] sbuild.install: Don't install 50sbuild commit d5c149db7275e371d81571c453e9c643baa7324f Author: Roger Leigh Date: Sun May 17 19:23:21 2009 +0100 [debian] sbuild.postinst: Update sbuild group ownership recursively commit 49cff2a04ddb15f846195f5743c7325b9dbb9437 Author: Roger Leigh Date: Sun May 17 19:22:54 2009 +0100 [debian] NEWS: Document sbuild system group transition commit 522bd057f6b002b43cb02c68c46c0ab526ebd63f Author: Roger Leigh Date: Sun May 17 18:03:58 2009 +0100 [debian] Add libsbuild-perl.install Update .gitignore commit 751d0c8b7dfef6d8e943a24c9e153b7b64f72017 Author: Roger Leigh Date: Sun May 17 18:02:10 2009 +0100 [Buildd/*] Update copyrights commit b8ebb98c37c50c3a37aec835f6b5bee016c9d9be Author: Roger Leigh Date: Sun May 17 17:52:21 2009 +0100 [buildd-watcher] Remove main namespace commit 762b0da70fa481797482506e1d1fbe8f714cff5a Author: Roger Leigh Date: Sun May 17 17:52:01 2009 +0100 [buildd-uploader|watcher] Update copyright commit a719f63f4877d3905523ff9d7d513015bf11fa7c Author: Roger Leigh Date: Sun May 17 17:46:30 2009 +0100 [Buildd] Remove write_stats Now present in Buildd::Base commit 8040b79eee0f2168c8b037ccac69736556f526b8 Author: Roger Leigh Date: Sun May 17 17:44:46 2009 +0100 [Sbuild::LogBase] Remove main::LOG Global streams are now not created. main::LOG, main::SAVED_STDOUT and main::SAVED_STDERR are replaced by IO handles exported by the module ($log, $saved_stdout and $saved_stderr). Code previously outputting directly to LOG uses local logging code or the default stream (which is redirected to the log). commit e7ddf00b13bc68c01bec3e45c397631cb9f76498 Author: Roger Leigh Date: Sun May 17 17:40:22 2009 +0100 [Buildd] Remove logger() commit 2ec8b32c3edff687262e4386aa7df5c438117d45 Author: Roger Leigh Date: Sun May 17 17:34:40 2009 +0100 [Buildd::Watcher] Move from buildd-watcher to Buildd/Watcher.pm commit 0f599d5d09b3434662c61a0136f8eadb0261fada Author: Roger Leigh Date: Sun May 17 17:33:09 2009 +0100 [buildd-watcher] Split into Buildd::Watcher object commit e057fce43732dea62b0fe4d70ac41fffda7246ac Author: Roger Leigh Date: Sun May 17 17:29:52 2009 +0100 [Buildd::Mail] Move from buildd-mail to Buildd/Mail.pm commit ba7c3076aa126af3a1113f30f432c3ac4e1c96e8 Author: Roger Leigh Date: Sun May 17 17:28:16 2009 +0100 [buildd-mail] Split functionality into Build::Mail object commit d026d64c190718b2e027b0700ec3550fe0e45b51 Author: Roger Leigh Date: Sun May 17 17:27:59 2009 +0100 [Buildd::Base] Include open_log and close_log commit 5b011e818a5a29fe023966e35c9af4fdb8b9c80d Author: Roger Leigh Date: Sun May 17 17:17:56 2009 +0100 [Buildd::Uploader] Move from buildd-uploader to Buildd/Uploader.pm commit 69fa11e6fbabdf3f6aa94d3ae60f9e63379c8f40 Author: Roger Leigh Date: Sun May 17 17:15:45 2009 +0100 [buildd-uploader] Move logic into Buildd::Uploader commit 7ead14eaeca6207c6f2607953aa141cc3db4f042 Author: Roger Leigh Date: Sun May 17 17:15:15 2009 +0100 [Buildd::Daemon] Remove redundant function prototypes commit 40d6cf166e6f27933e514ded3ec8d429c468bbe1 Author: Roger Leigh Date: Sun May 17 17:05:31 2009 +0100 [Buildd::Daemon] Move from buildd to Buildd/Daemon.pm commit beca78d3dcb5f89601414d79da0c209f617656d2 Author: Roger Leigh Date: Sun May 17 17:03:05 2009 +0100 [buildd] Split into object Buildd::Daemon commit 9df6c9ec196a0940b9c84e2001749ce89d90ac5e Author: Roger Leigh Date: Sun May 17 16:57:53 2009 +0100 [Buildd::Base] Base functionality for buildd programs commit cfbdaecd7605a567abfc3edc2d4f637c9a506b7a Author: Roger Leigh Date: Sun May 17 16:19:28 2009 +0100 [TODO] Use ChrootSetup for sbuild-* commands commit 6b6b39a788bf299e7e312c45e386293180383f8b Author: Roger Leigh Date: Sun May 17 16:15:25 2009 +0100 [WannaBuild::Mail] Split new module from wanna-build-mail commit e3c61bac12e9e86ccf8b2f1de7a6bd650c10ba0a Author: Roger Leigh Date: Sun May 17 16:01:32 2009 +0100 [wanna-build-mail] Convert into object commit c000d93b451139ebaffdcb9d216c197225045541 Author: Roger Leigh Date: Sun May 17 16:00:23 2009 +0100 [wanna-build] Set $| at top level commit f281c973e21ab03b91fd54889e80e3a22a796f41 Author: Roger Leigh Date: Sun May 17 15:58:35 2009 +0100 [Sbuild::ChrootSetup] Add comment about root requirement commit 4c614cc8c38e928fb0ad1469289b5bfda67e3cc3 Author: Roger Leigh Date: Sun May 17 15:56:06 2009 +0100 [debian] Handle migration of sbuild group to a system group Also remove 50sbuild setup script, which is responsible for setting sbuild group ownership in the chroot. This is now handled by basesetup(). commit e0b9953668fab0c34c4b427ea878c3acd6de68b1 Author: Roger Leigh Date: Sun May 17 15:47:18 2009 +0100 [Sbuild::ChrootSetup] Fix permissions on /build in chroot commit 1eac3bb417af16049102bd102d7e42dd33ef27eb Author: Roger Leigh Date: Sun May 17 15:02:42 2009 +0100 [debian] sbuild.postinst|postrm: Use addgroup|delgroup --system Previously, a system sbuild group was not created. commit eaee2c13510f25c5dcd725b29ffdd6fe348c7541 Author: Roger Leigh Date: Sun May 17 14:58:20 2009 +0100 [Sbuild::Buildd] open_log: Simplify message formatting commit 8d3445e46ba4acb308e2a87107e4ca22daf6988d Author: Roger Leigh Date: Sun May 17 14:57:51 2009 +0100 [TODO] Add option to disable package removal commit 84e9f32f302982a631151350bca3a9665fdb8d20 Author: Roger Leigh Date: Sun May 17 14:56:49 2009 +0100 [sbuild-createchroot] Use Sbuild::ChrootSetup during setup commit ef316bf1e6fbca3f3432f3b65cc192a4e8b6424c Author: Roger Leigh Date: Sun May 17 14:55:16 2009 +0100 [sbuild-createchroot] Add --setup-only option to skip debootstrap commit 40eb8e27943878cd3bd4a10cb862819eb3dae651 Author: Roger Leigh Date: Sun May 17 14:53:45 2009 +0100 [Sbuild::Build] Use ChrootSetup for updating chroots commit ee71513411468c9363369f08ee17a8dfe8c7e5a8 Author: Roger Leigh Date: Sun May 17 14:50:56 2009 +0100 [Sbuild::Chroot] Use Sbuild::ChrootSetup ChrootSetup::basesetup is used to set up the chroot. Also add additional diagnostics and error handling to _setup_options commit 0fd597b9829f18577daf338511ad06fbff3afb2f Author: Roger Leigh Date: Sun May 17 14:49:39 2009 +0100 [Sbuild::ChrootSetup] Add new module containing common chroot setup tasks commit 9a2c1985c5a8f1343ad7bab9325e15ad1bc031ca Author: Roger Leigh Date: Sun May 17 14:46:06 2009 +0100 [Sbuild::Chroot*] Return an error if _setup_options fails This was likely the cause of sbuild-createchroot running apt-get on the host system, since _setup_options bailed out prior to setting up the environment for split apt usage. commit be9ab94c7dfa5a74b7a8b3651df904e4444b11f5 Merge: ee19517 fae3496 Author: Roger Leigh Date: Sun May 17 12:16:01 2009 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit fae34962a3016ac0585fd98b981096f493f1daf6 Author: Roger Leigh Date: Sun May 17 12:09:15 2009 +0100 [buildd-mail] Remove lockfile use for log stream locking commit 96d6e03977c8ea572e36c7d10414b5f92c87a04c Author: Roger Leigh Date: Sun May 17 12:00:42 2009 +0100 [Sbuild::Build] Logger ignores fatal signals commit 686fcc039bee161c3e888afadf8c27bb67d20479 Author: Roger Leigh Date: Sun May 17 11:58:11 2009 +0100 [TODO] Plan logger removal commit 89b32ae9fa688aec3bdba6f8e4ceeb6b993e04bf Author: Roger Leigh Date: Sun May 17 11:56:29 2009 +0100 [buildd-watcher] Remove use of $main::HOME commit 2c4f6ef873eff2e9b75a6a4593929a9dd7e67cef Author: Roger Leigh Date: Sun May 17 11:54:38 2009 +0100 [buildd-uploader] Remove lockfile use for log stream locking The locking was fundamentally broken, and it's not needed due to using O_APPEND in any case. commit 60a78d36dc93c6f5bcb49525654031742704b919 Author: Roger Leigh Date: Sun May 17 01:17:53 2009 +0100 [TODO] Update pending buildd tasks commit e48de595821d84e9b15299164b43839c4a9d2c6a Author: Roger Leigh Date: Sun May 17 01:16:07 2009 +0100 [Buildd::Uploader] Use Sbuild::ChrootRoot to run wanna-build commit 0faabb8c54f9a94eaa93716740f39f1937fbe40f Author: Roger Leigh Date: Sun May 17 01:06:55 2009 +0100 [TODO] Fix buildd-mail statistics reporting commit 6094e1a56f031f6f5b1603c892e080072574b880 Author: Roger Leigh Date: Sun May 17 01:06:05 2009 +0100 [TODO] Update commit 49d51dc932aaf12b3c31074023a7618c3639f8f4 Author: Roger Leigh Date: Sun May 17 01:04:01 2009 +0100 [Buildd] Logging functions use Sbuild::LogBase commit fd978e40ece184f1e82df05d4a540e41f58f0f91 Author: Roger Leigh Date: Sun May 17 01:02:57 2009 +0100 [Buildd::Conf] Add NO_DETACH options to prevent CTTY detaching for debugging commit c583632b65bd9da4561a042ca7c58fcc2ba5ff2d Author: Roger Leigh Date: Sun May 17 00:58:15 2009 +0100 [Buildd::Conf] SSH_CMD is an ARGV array To avoid quoting issues, and to use the Sbuild::Chroot command executing, piping and logging infrastructure, execute wanna-build within an Sbuild::ChrootRoot context in buildd and buildd-mail. $sshcmd is no longer specified in the configuration file; separate command, user, hostname, options and socket options are provided and are used to construct the real SSH ARGV for wanna-build executing. Buildd::wannabuild_command is used to construct the final wanna-build command with all SSH setup and socket options. Buildd::Conf only sets array variables if set. Buildd::isin is used without namespace prefix in buildd commit 68a85e04ff3430faad2cea89c3a89ac79d9147e8 Author: Roger Leigh Date: Sun May 17 00:41:35 2009 +0100 [TODO] buildd needs to remove pidfile correctly commit 6a09f3211d2ba6b384bf5715078ab973e35b46bd Author: Roger Leigh Date: Sun May 17 00:40:58 2009 +0100 [buildd] Only unlink pidfile if we are actually a daemon commit 54c096e7f331ac01e9235d33789fb45060acc0ec Author: Roger Leigh Date: Sun May 17 00:36:10 2009 +0100 [TODO] Update buildd items commit 2c6f4d19b5a33cfc286f244f6377ffd64437f21e Author: Roger Leigh Date: Sun May 17 00:35:31 2009 +0100 [buildd] Execute commands using Sbuild::Chroot interface commit 0ad2690c5508ceefedafdaae6b70e9f957d1b82b Author: Roger Leigh Date: Sun May 17 00:15:49 2009 +0100 [Sbuild::Build] Remove completed TODO comment commit 3a81b73a7f7c2958f5948874a9208b10cebc04bd Author: Roger Leigh Date: Sun May 17 00:14:36 2009 +0100 [Buildd::Conf] Add BUILD_LOG_FILE to remove hardcoded daemon.log commit 6ba9a2350306929916f5b6849ca13fed48ebe2a9 Author: Roger Leigh Date: Sun May 17 00:04:00 2009 +0100 [buildd] make buildd pidfile configurable, rather than hardcoded. Also simplify signal handling with shutdown_fast replacing lamba function. commit 68c31668f90c045ac71e165e5aa3f563040e048b Author: Philipp Kern Date: Fri May 15 22:10:58 2009 +0200 [Buildd] repeat checking for the lockfile is $line is undef Let's hope that this is the right fix. I'm a bit unsure in which case $line would be undef. If the file is indeed empty then we're screwed and this gets a spinlock chewing CPU endlessly. Either way we'll notice it pretty fast. Signed-off-by: Philipp Kern commit d1f78410f3d5c5ad47de13d06a08759c35d704b9 Author: Philipp Kern Date: Fri May 15 20:37:12 2009 +0200 [buildd] get rid of --no-down-propagation --no-down-propagation is the default on the official wanna-build and it is simply ignored nowadays. Signed-off-by: Philipp Kern commit 81ac71bb41e451d396121b2f86f584e355a478a9 Author: Roger Leigh Date: Tue May 12 21:11:57 2009 +0100 [Sbuild::Conf] Rename $setup_hook to $chroot_setup_script commit 773d1a8e2c45bb138e3c0ae4d4655c37e7716c02 Author: Roger Leigh Date: Tue May 12 20:00:27 2009 +0100 [man] Document --setup-hook Also add to example configuration. commit 6cd6ff09bd1aaeb6a504bf8281664e20ddd1fdcc Author: Kees Cook Date: Tue May 12 19:53:54 2009 +0100 [Sbuild] Add --setup-hook to run in chroot before build This adds the --setup-hook command line argument that allows a program to be run from inside the chroot just before the build started. All the scalar build and config settings are exported to the environment so the script can examine them to take any needed actions. Signed-off-by: Roger Leigh commit ee195178b218e216e6807a3797eef986fb6699a8 Author: Roger Leigh Date: Sun May 3 00:13:30 2009 +0100 [build] configure.ac: Add WANNA_BUILD_SYSCONF_DIR commit 65334f06cdf6f633a7ed86659120b20d6fe96f5b Author: Roger Leigh Date: Sat May 2 19:21:24 2009 +0100 [NEWS] Document DEBEMAIL change commit 0b64ae5a0900ac943f54a4cda50d4fa2c45da7dc Author: Roger Leigh Date: Sat May 2 19:16:07 2009 +0100 [*::Conf] Use eval in place of require Using require means that %INC has to be messed around with in order to read the same configuration file more than once. It also means that by default any invalid variables in the configuration file are not reported. Also move wanna-build configuration back to wanna-build.conf, but using the new syntax. commit 5887ce8efd86e39345ff8914302634382563b609 Author: Roger Leigh Date: Sat May 2 19:08:55 2009 +0100 [build] Distribute Wannabuild::Database commit d512f3150113fa61da5c091b2b0aa27dcb1661d7 Author: Roger Leigh Date: Wed Apr 29 23:42:06 2009 +0100 [Sbuild::Conf] Remove SRCDEP_LOCK_DIR check This is not needed on the host. It's already created by the 50sbuild setup script and sbuild-createchroot. commit eec387f67daf5dbba1e5aa7d5ea139ba7c66ffb6 Author: Roger Leigh Date: Thu Apr 30 22:16:06 2009 +0100 [Sbuild::Build] Fix incorrect debug statement commit a377cccdb7bfe738c2dee5ea4196e40edd243e40 Author: Roger Leigh Date: Thu Apr 30 20:59:03 2009 +0100 [.gitignore] Ignore generated db.sql commit b11230c6d41c39110371a87eb60f1c3048008230 Author: Roger Leigh Date: Wed Apr 29 23:41:30 2009 +0100 [Sbuild::Build] Quote newlines with double quotes commit 7c031ba8dec7e7473da35c0a822463337e056290 Author: Roger Leigh Date: Wed Apr 29 23:40:28 2009 +0100 [Sbuild::LogBase] Reopen streams in reverse order to avoid deadlocking Blocking of fatal signals is needed to prevent the parent of the logger getting a SIGPIPE, and to prevent loss of final log messages. commit 7e0c64243c6fdb2fb1816402fbe6e05b5019190c Author: Roger Leigh Date: Wed Apr 29 23:02:06 2009 +0100 [Sbuild::LogBase] Don't close STDOUT or STDERR When reopening, we can't guarantee getting the same fd (1 or 2). Therefore just reopen in place. Redirect whether or not in verbose mode (since we might want to log what's printed to STDOUT or STDERR, and the real original fds are still open in the logger coprocess; output to STDOUT or STDERR in the parent will therefore be redirected to the logger and logged both to file and/or standard output depending upon the configuration. commit fa3da651871b6184518f8140c267a871838c044c Author: Roger Leigh Date: Sun Apr 26 18:20:02 2009 +0100 [Sbuild::LogBase] Log to file if NOLOG is not set commit 9e2c7e13893695f259cbfd3592ca22193c1eaf7e Author: Roger Leigh Date: Sat May 2 15:59:56 2009 +0100 [debian] Close #520158 commit 5010c78fb4d3306e724aece968add8435e3b0787 Author: Roger Leigh Date: Tue Mar 17 21:18:16 2009 +0000 [Sbuild::Conf] Don't default MAINTAINER_NAME Set to $DEBEMAIL only if no maintainer, uploader or key-id have been set. commit ce20dbc27bb76609a4d461c2cfcf7287a9b69177 Author: Roger Leigh Date: Sat May 2 15:39:15 2009 +0100 [debian] Split common library functions into libsbuild-perl package commit cbbbee0eb5ddec8635123984d339dfe8aef9f7ab Author: Roger Leigh Date: Thu Apr 30 20:56:49 2009 +0100 [debian] Add buildd mail forwarding to buildd-mail commit bc4b34fcfbd5d4504b21e53a805c9431603d4c63 Author: Roger Leigh Date: Thu Apr 30 20:57:41 2009 +0100 [man] Add buildd-vlog manual page commit f5b5db5b4bd01d05c59b04722058a1b9dba16e1f Author: Roger Leigh Date: Sat May 2 14:51:22 2009 +0100 [TODO] Add wanna-build work commit 99a0d5b4d932bc65f64682eb270e356c8f5ce1c3 Author: Roger Leigh Date: Sat May 2 14:49:42 2009 +0100 [Wannabuild::Database] New module split from wanna-build commit bae1d22aab859c20aca301e87b4943dc21b8d8c2 Author: Roger Leigh Date: Sat May 2 14:47:30 2009 +0100 [wanna-build] Move invocation under alternative names to top level commit 2ad351b786095c54faa65628e66340b034622322 Author: Roger Leigh Date: Sat May 2 14:46:55 2009 +0100 [wanna-build] Close databases on program termination commit a2ff64e83be10bd1858690f86ae2a93917ff98bc Author: Roger Leigh Date: Sat May 2 14:40:14 2009 +0100 [wanna-build] database variables are class member data 'Current Database' replaces $db 'Databases' replaces %databases commit 2702c23fc1ca0275585bc541c0831d3f12df17a1 Author: Roger Leigh Date: Sat May 2 14:33:41 2009 +0100 [wanna-build] value hash variables are class member data 'Priority Values' replaces %prioval 'Section Values' replaces %sectval 'Category Values' replaces %catval These may be later specified in the configuration file. commit 8cead28c95afa2545114a35e984daf47a5b3c46d Author: Roger Leigh Date: Sat May 2 14:22:32 2009 +0100 [wanna-build] 'Merge Bin Src' member replaces %merge_binsrc commit e9786b291bccabeede68bd4c1698f640ce3fa352 Author: Roger Leigh Date: Sat May 2 14:21:08 2009 +0100 [wanna-build] 'Merge Src Version' member replaces %merge_srcvers commit 2ff05cc3461e02238b088462db72957e63739e9b Author: Roger Leigh Date: Sat May 2 14:19:13 2009 +0100 [wanna-build] 'New Version' member replaces %new_vers commit eb86cb89ab7941587c55685a10fe9f61e3eeeb9f Author: Roger Leigh Date: Sat May 2 13:58:53 2009 +0100 [wanna-build] Date and time variables are class member data 'Current Date' is $curr_date 'Short Date' is $short_date 'Current Time' is $ctime commit 70f17b63d6979a3ab94fa1b749c1e4fb7c775c19 Author: Roger Leigh Date: Sat May 2 13:50:05 2009 +0100 [wanna-build] 'Mail Logs' member replaces $mail_logs commit 2a5f9c6a187c7b770fb684527bc328ae12a77b43 Author: Roger Leigh Date: Sat May 2 13:45:31 2009 +0100 [wanna-build] Convert to object Wannabuild::Database commit ba7c5c326f74f27fc5c4563ecb5699be1363bad8 Author: Roger Leigh Date: Fri May 1 19:33:03 2009 +0100 [Sbuild::Chroot] run_command_internal: Don't create pipe This avoid incorrect interleaving of stdout and stderr due to buffering. commit 1bfb0f16ec76d5213c04fa35aa064ca7d6aa9c51 Author: Roger Leigh Date: Fri May 1 19:33:03 2009 +0100 [Sbuild::Chroot] run_command_internal: Don't create pipe This avoid incorrect interleaving of stdout and stderr due to buffering. commit abb50d3e56a81cc8f475ed285728ee575497df4f Author: Philipp Kern Date: Fri May 1 19:23:54 2009 +0200 [Sbuild::Build] Correctly create log symlinks Remove check for log existence, by creating in the logger coprocess after opening the log. Conflicts: lib/Sbuild/Build.pm commit f0c94b435e0b3a3b58ccc099cf0f6ef053993a88 Author: Roger Leigh Date: Fri May 1 18:15:35 2009 +0100 [Sbuild::Build] Correctly create log symlinks Remove check for log existence, by creating in the logger coprocess after opening the log. commit 66a8aaecf5f57c0ce157ecd85505c855d12d50ba Author: Roger Leigh Date: Sat Apr 18 10:51:26 2009 +0100 [Sbuild::Conf] Only set array and hash variables if used. If set unconditionally, they override the defaults. commit 01c65919d3589861689735a3f3000c65218ce4c3 Author: Philipp Kern Date: Thu Apr 30 21:30:08 2009 +0200 [buildd-mail] allow Build-Attempted as a valid current state for retries Ryan Murray's buildd added Build-Attempted and Built as state. It is perfectly valid to give-back or retry a build in Build-Attempted. Signed-off-by: Philipp Kern commit 1e5164c1f6d27248993e352ddcc3a494a5712f53 Author: Roger Leigh Date: Sun Apr 26 22:38:35 2009 +0100 [Buildd::Conf] Only be verbose if not detaching from TTY Previously defaulted to verbose mode if initially attached to a terminal before becoming a daemon. commit e541f3967487dab8b00901f407bd22a3311f8a7b Author: Roger Leigh Date: Sun Apr 26 22:15:25 2009 +0100 [Sbuild::LogBase] Default logging function only outputs to single file commit 2b47351847eb6fede491b5d2b959af2fe2b9cedd Author: Roger Leigh Date: Sun Apr 26 20:44:06 2009 +0100 [Buildd::Conf] Default mail addresses to root This is not useful for a real buildd setup, but will allow the package to function until properly configured. commit 0e1ec956b7938c9a70cb348fa4ede03ddef76305 Author: Roger Leigh Date: Sun Apr 26 19:29:52 2009 +0100 [shlibdb] Remove last obsolete sourcedeps components Manual source dependencies are no longer supported. commit 97b092fef077e91658977c1406a7a88bcd9c0dae Author: Roger Leigh Date: Sun Apr 26 19:23:15 2009 +0100 [wanna-build-merge-*] Remove do-merge-* references commit 7b32004591c9f2c73c2d6dbc3dc17adc6fbf3d16 Author: Roger Leigh Date: Sun Apr 26 19:14:59 2009 +0100 [buildd-clean-upload] Remove Obsolete, and replaced by buildd-mail. commit ad4ec26b9ee5facc29d44ca7c17ed6204ad950d3 Author: Roger Leigh Date: Sun Apr 26 19:10:31 2009 +0100 [buildd-clean-upload] Use standard options parsing commit 174e8364e80e8cd6979ef3433de0da3c53cde8bf Author: Roger Leigh Date: Sun Apr 26 18:56:52 2009 +0100 [buildd-vlog] Make it work and distribute with manual page commit 2d6a48bfe885baa09417d91d0a5b3f2f89acf150 Author: Roger Leigh Date: Sun Apr 26 18:24:09 2009 +0100 [Sbuild::Build] Eliminate last uses of main::PLOG commit 5fb93d1817f285ffe6bce7bb17d757fdf1c382b0 Author: Roger Leigh Date: Sun Apr 26 17:09:45 2009 +0100 [Sbuild::Log] Split into generic Sbuild::LogBase Retain sbuild-specific log functionality in Sbuild::Log, and move generic logging infrastructure into Sbuild::LogBase for reuse by buildd and wanna-build. Restore --nolog option operation. Unify logging paths for all combinations of verbose/nolog to improve robustness. All logging is now performed in a separate logging process under all use cases. The logging process uses a user-specified lambda function for doing the logging to enable the addition of timestamps in a general manner. Update copyright. commit 2f9448d7032c45966d2fc6e954ec7f5e6095fe2b Author: Roger Leigh Date: Sun Apr 26 11:44:57 2009 +0100 [Sbuild::Sysconfig] Add SSH commit 867ede36acee623e182de3e598fd3fdc13cdb55d Author: Roger Leigh Date: Sat Apr 11 13:52:12 2009 +0100 [Sbuild::Build] Remove username from logs, and create build symlinks When in user mode, create a $dsc_$arch.build symlink in place of the current symlink. In the log directory, don't embed the username in the log file name. commit 3c630f43f92c0d6b732f63640a1b639f9ba54a6d Author: Roger Leigh Date: Sun Apr 26 22:19:38 2009 +0100 [debian] buildd.cron.d: Enable cron jobs commit 953c51f699f89f548f17a8268fa59877fa1693ed Author: Roger Leigh Date: Sun Apr 26 22:17:46 2009 +0100 [debian] preinst maintainer scripts are executable commit 6021424441bfd6f8e5834399062034d366fdefa9 Author: Roger Leigh Date: Sun Apr 26 21:54:13 2009 +0100 [build] Add all buildd directories commit 071d71538fa600e9da73a4029ae05b1551346a59 Author: Roger Leigh Date: Sun Apr 26 21:53:38 2009 +0100 [debian] buildd.postinst: Set ownership and permissions for all buildd dirs commit 0df118d59e3d38139844a04bf998bd7f26c2b172 Author: Roger Leigh Date: Sun Apr 26 21:53:08 2009 +0100 [debian] Correct getent conditional in maintainer scripts commit 3db3a9cdc0bb50ead3706bcd352dc25c6f5aba4c Author: Roger Leigh Date: Sun Apr 26 21:52:10 2009 +0100 [debian] Update buildd init script to work commit f1d4f027ac2302066f508f8475cf958070ee3889 Author: Roger Leigh Date: Sun Apr 26 20:56:28 2009 +0100 [debian] Install buildd-abort symlink compressed and depend on adduser commit de7dccdf650751af231c11a887be6c6a5ad2c6bd Author: Roger Leigh Date: Sun Apr 26 20:42:38 2009 +0100 [debian] Install all directories under /var Remove /var/sbuild/srcdep-lock, since it's only used inside the chroot. commit c19f53e9da6a0ff0a7de97d76690b6cd07ca02f7 Author: Roger Leigh Date: Sun Apr 26 20:43:25 2009 +0100 [build] Install /var/lib/buildd and /var/lib/sbuild commit 2dfd604c42d98021999bcbbdce04a214462245e3 Author: Roger Leigh Date: Sun Apr 26 20:26:17 2009 +0100 [debian] buildd: Add maintainer scripts commit ebfdc2f1e3bc73d768c24e104d9952c2ff6287b9 Author: Roger Leigh Date: Sun Apr 26 20:23:47 2009 +0100 [debian] sbuild: Update maintainer scripts commit 40607ec5e5290789b4b30adec3b638e0ef54bd29 Author: Roger Leigh Date: Sun Apr 26 11:42:02 2009 +0100 [.gitignore] Ignore buildd and debhelper files commit a4bdc24376d3ab3a62bafe74abc7935ccd28c6e6 Author: Roger Leigh Date: Mon Apr 20 22:15:33 2009 +0100 [debian] Restore buildd package commit 570cb7754c9b68d9e0cbdf9de998587615cdeb23 Author: Roger Leigh Date: Sun Apr 26 14:14:10 2009 +0100 [Sbuild::Build] Don't fail on apt-get update error in buildd mode commit 5a4ec6c3bfb27ef13945f4f3234a04a205587229 Author: Roger Leigh Date: Sat Apr 18 11:16:52 2009 +0100 [db] Add schema table to track schema change history commit d568b8df546218b0d949772a9650928f0770a07f Author: Roger Leigh Date: Sat Apr 18 11:16:18 2009 +0100 [TODO] Update commit 985579b26f5f8efba31fcfb502697a5e92eceb07 Author: Roger Leigh Date: Sat Apr 18 11:14:50 2009 +0100 [debian] Close #524564 commit 8951e06623f1a4213aa075590ab3b72bf4fdd79a Author: Roger Leigh Date: Sat Apr 18 11:10:05 2009 +0100 [Conf] Make $HOME visible in all configuration files commit e79e71f17396841adc42c4f42c3e4167bca61f89 Author: James Vega Date: Sat Apr 18 11:08:43 2009 +0100 Sbuild::Conf] Declare $HOME as a global variable. This allows config files to continue using $HOME instead of requiring them to use $ENV{'HOME'}. (Closes: #524564) Signed-off-by: Roger Leigh commit 552c8ffd7f80c97290c38b461b3a45781aa71e9f Author: Roger Leigh Date: Sat Apr 18 10:52:34 2009 +0100 [Buildd::Conf] Don't use logger() which isn't available at startup Calling logger() requires open_log to be called, and this hasn't necessarily happened. Use STDERR for the time being. commit 3be172608585c4cf745886b0058009ad5a8c46e0 Author: Roger Leigh Date: Sat Apr 18 10:51:26 2009 +0100 [Sbuild::Conf] Only set array and hash variables if used. If set unconditionally, they override the defaults. commit 109730daccd51ed3711dfa156c6c77241376ff82 Author: Roger Leigh Date: Sat Apr 18 10:50:17 2009 +0100 [man] Update sbuild-hold description commit e89bf63dc538faccf22ab75b0a7837f1cb34cf5a Merge: d9aae45 4daa9c7 Author: Roger Leigh Date: Sat Apr 18 10:32:17 2009 +0100 Merge branch 'buildd-conf' Conflicts: lib/Buildd/Conf.pm commit 4daa9c7281a7508154ea0dc3131f2564f10145f1 Author: Roger Leigh Date: Fri Apr 17 00:42:45 2009 +0100 [buildd] Reflow wanna-build command running over one line commit f897d9d84c537eeefb627f0e8c13c6b599861bf9 Author: Roger Leigh Date: Fri Apr 17 00:42:08 2009 +0100 [buildd] Force complete configuration reload on SIGUSR1 commit beed360c64902a5317522a882680ad3c7b5af5bf Author: Roger Leigh Date: Fri Apr 17 00:41:21 2009 +0100 [buildd] Correctly parse PID from buildd.pid on restart commit 10cbf332c1ef6d436123fb5412391f1ab1cf7890 Author: Roger Leigh Date: Fri Apr 17 00:26:12 2009 +0100 [buildd] Reimplement configuration file reloading commit 2b6c544a963467904186d9b899e47db44aea5611 Author: Roger Leigh Date: Fri Apr 17 00:25:45 2009 +0100 [buildd] Remove redundant use of $conf commit 3247ed34b00b004d3ea7dc7a4a6ad0a699904f16 Author: Roger Leigh Date: Tue Apr 14 21:46:43 2009 +0100 [buildd-abort] Remove and replace with a symlink to sbuild-abort sbuild-abort is a perl rewrite of the original buildd-abort imported into sbuild. buildd-abort is now a symlink to the current sbuild-abort. commit e14fc0031ba3aa97eea32bcfe8322186ae727ddf Author: Roger Leigh Date: Mon Apr 13 23:11:19 2009 +0100 [buildd*] Add generic options parsing logic commit 53fa075c405827550fb5f4da9bd1f8aa46c7ddb5 Author: Roger Leigh Date: Mon Apr 13 23:07:16 2009 +0100 [Buildd::Conf] Derive from Sbuild::ConfBase commit d9aae4581757dfbb6dc88002b88163ba521a2e96 Merge: d9359ce 1ba6bf1 Author: Philipp Kern Date: Mon Apr 13 21:14:05 2009 +0200 Merge commit 'origin/master' commit 105f9b19842f6d620cfe1e6580a4841eea611d78 Author: Philipp Kern Date: Mon Apr 13 12:20:50 2009 +0200 [Buildd::Conf] correct a typo in schroot's declaration Signed-off-by: Philipp Kern commit 1bc8766817b738d89bbdf235f254d227a02b183e Merge: 083a1c4 d9359ce Author: Philipp Kern Date: Mon Apr 13 12:14:28 2009 +0200 Merge branch 'master' into buildd commit d9359ce7f228b4ee0b728ab093eadfe6d7d28131 Author: Philipp Kern Date: Mon Apr 13 12:13:18 2009 +0200 [buildd] correct invalid function signature And it only took half an hour of debugging to get to that. Signed-off-by: Philipp Kern commit 020576186c6d9d3c3161299be937501f695ebdd4 Author: Philipp Kern Date: Mon Apr 13 11:31:46 2009 +0200 [Buildd::Conf] fix apt_get, sudo typo; add schroot Signed-off-by: Philipp Kern commit 1ba6bf1f7a5b6c954adc49ee43e5165bdfed5809 Author: Roger Leigh Date: Sun Apr 12 16:44:09 2009 +0100 [debian] Close #523670 commit 665d2e95e652d6b80ed9a699f9bb503cb27a763d Author: Roger Leigh Date: Sun Apr 12 16:07:49 2009 +0100 [Sbuild::Options] Remove unused modules commit d923a3ddeb17390d8cbe5d47fe324fbf6ed72997 Author: Roger Leigh Date: Sun Apr 12 16:07:09 2009 +0100 [etc] 50sbuild: Only change directory permissions to 02775 commit 4fb36df7b4cf06a9bbbd132be29acc74e7c8e69c Author: Roger Leigh Date: Sun Apr 12 16:06:22 2009 +0100 [Sbuild::Conf] Don't automatically check for sbuild group membership bin/*: Add check if appropriate. Also skip check if running as root. commit 3bb2408846c378b23fd88749de8422aa1976ab33 Author: Roger Leigh Date: Sun Apr 12 16:01:28 2009 +0100 [bin] All sbuild programs use generic Sbuild::OptionsBase options commit 72de42c96d0bcfd8664cee9035f5692c162d53a3 Author: Roger Leigh Date: Sun Apr 12 02:49:09 2009 +0100 [Sbuild::Sysconfig] Use double quotes to allow prefix expansion commit 8297ccbe5e0ec8056b0fc2f7ddce4ba501a1a393 Author: Roger Leigh Date: Sun Apr 12 02:48:16 2009 +0100 [WannaBuild::Options] Remove options duplicated in Sbuild::OptionsBase commit ed6c917524e7b9e264f3185f6a1405bd6bea62a2 Author: Roger Leigh Date: Sun Apr 12 02:47:28 2009 +0100 [WannaBuild::Options] Use Sbuild::OptionsBase commit fc6b07dffd34691616968dbc6910979b2f688701 Author: Roger Leigh Date: Sun Apr 12 00:28:41 2009 +0100 [Sbuild::OptionsBase] Generic options parsing base class Sbuild::Options derives from Sbuild::OptionsBase, which provides basic --help, --version, --verbose, --quiet and --debug options common to all programs. commit dcf030bdda12df5018f68ddee9129fb978d23abc Author: Roger Leigh Date: Sun Apr 12 00:02:42 2009 +0100 [debian] Close #475777 commit af44d7adf82cf51b7392893a5f11f272f7c9ea6b Author: Roger Leigh Date: Sat Apr 11 23:57:28 2009 +0100 [sbuild] Avoid warning if no packages given commit 6a22249bcc44226e8adffbec4236e6e09e45eabf Author: Roger Leigh Date: Sat Apr 11 23:56:08 2009 +0100 [Sbuild::Conf] Move --append-to-version check from Sbuild::Options commit 623512a078f61e714d6edd33be64c77a76ebd835 Author: Tim Abbott Date: Sat Apr 11 23:46:46 2009 +0100 [sbuild] Add support for appending a tag at the end of version numbers Signed-off-by: Tim Abbott Signed-off-by: Roger Leigh commit 6434176b3279fdc39d96fb6aca2777c33934aca8 Author: Roger Leigh Date: Sat Apr 11 20:00:37 2009 +0100 [Sbuild::Build] Add callback trigger for status changes sbuild will rewrite build-progress on status changes. commit 76bff6f39e965b888265094321f54b3d3c52636f Author: Roger Leigh Date: Sat Apr 11 20:00:02 2009 +0100 [buildd-vlog] Use correct build-progress status name Use "building", not "currently building". commit 71dc4fcbabf45383eceea8d93d49af2b9bf0bd15 Author: Roger Leigh Date: Sat Apr 11 19:21:05 2009 +0100 [build] Move all job handling code from Sbuild::Build Sbuild::Build only knows how to build one package. Managing jobs is not its responsibility, and is a layering violation. Push all job management, including skipping, error reporting, wanna-build givebacks, etc. right up to the sbuild mainloop. It can subsequently be moved out of sbuild into buildd. Unless running in batch mode, none of these features are enabled. Added a JOB_FILE configuration property for the build status reporting. commit 6598e76dca42b590a5a223997d329e710078d45b Author: Roger Leigh Date: Sat Apr 11 13:52:12 2009 +0100 [Sbuild::Build] Remove username from logs, and create build symlinks When in user mode, create a $dsc_$arch.build symlink in place of the current symlink. In the log directory, don't embed the username in the log file name. commit 817aea8c6dbf7f953765d42a78eb938ae156bdf0 Author: Roger Leigh Date: Sat Apr 11 13:50:19 2009 +0100 [Sbuild::Build] Simplify binNMU version handling binNMU versions are all now computed at initialisation time, and we distinguish between the orignal version (OVersion), real version with binNMU version added (Version) and real version with epoch removed (SVersion). Old redundant tree checks for binNMU version checking and changelog modification have been removed. commit 8bf803251bd4c9cda914afd67e397b0cc8d20b73 Author: Roger Leigh Date: Sat Apr 11 12:43:31 2009 +0100 [Sbuild] Support manually specified build dependencies Retire parse_manual_srcdeps and --force-depends and --add-depends options. Replace with --add-depends, --add-conflicts, --add-depends-indep and --app-conflicts-indep to fully support modern build dependency handling rather than the old sourcedeps format. Append directly to package build dependencies. commit de53710f379b909ee163195383202b4507829cd0 Author: Roger Leigh Date: Sat Apr 11 12:42:23 2009 +0100 [debian] control: Update to Standards Version 3.8.1 commit 2288703f3b86f469585493b2a684c69da8214101 Author: Roger Leigh Date: Sat Apr 11 12:39:57 2009 +0100 [build] Bump version to 0.58.3 commit 6bd7e28467d9973e2d297a2603e4ca3c4d7f1813 Author: Roger Leigh Date: Sat Apr 11 11:40:06 2009 +0100 [Sbuild::Build] Move initial setup from sbuild into run method commit 6baf7247ad7caf8b7361fac40e66adcc0980b961 Author: Roger Leigh Date: Sat Apr 11 10:50:55 2009 +0100 [Sbuild::Conf] Move check_group_membership from sbuild commit 2a35efe5454ae358a27a0d632233e9295f9d8aa9 Merge: 0ed0c0e 6c6c949 Author: Roger Leigh Date: Sat Apr 11 10:25:51 2009 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild Conflicts: debian/control commit 0ed0c0e05eddb71edb335359ce1d3df02cf513a6 Author: Roger Leigh Date: Sat Apr 11 10:24:55 2009 +0100 [debian] Remove buildd packaging for 0.58.2 commit 083a1c4ee8ce79c55002c68c94a5d4ca3643a670 Merge: fea35f9 6c6c949 Author: Philipp Kern Date: Thu Apr 9 13:18:55 2009 +0200 Merge branch 'master' into buildd commit 6c6c9499a2cef75e0a1cc5e00f6765572510fc8f Author: Philipp Kern Date: Thu Apr 9 13:18:41 2009 +0200 [Buildd::Conf] correct variable typo Signed-off-by: Philipp Kern commit 24832ce99a8587eeebf1669d90b67f9b2cf42833 Author: Philipp Kern Date: Thu Apr 9 13:13:20 2009 +0200 [buildd-uploader] use Buildd::isin Signed-off-by: Philipp Kern commit fea35f9a81a11f1b7c9fe9da5ee2e06dc628a494 Author: Philipp Kern Date: Wed Apr 8 12:58:42 2009 +0200 Temporarily install a nssdatabases copy script for schroot. schroot will already provide a means to copy dumps of the NSS databases into the chroot in its next revision. Sadly this is not available yet for use on the d.o boxes and so we resort on a temporary copy of the script with configuration in `/etc/sbuild'. We should take care of applying http://www.dpkg.org/dpkg/ConffileHandling properly to get rid of this as soon as we can depend on a backported newer version of sbuild. Signed-off-by: Philipp Kern commit 04f88f5a0e243fa1ab45c76749dc2f21df03f460 Author: Philipp Kern Date: Wed Apr 8 13:07:09 2009 +0200 [debian/sbuild.install] install all schroot scripts we find Signed-off-by: Philipp Kern commit 7492f3f8314fbf43336c13e4354fc25e65654707 Author: Philipp Kern Date: Wed Apr 8 12:13:09 2009 +0200 [buildd-mail] use arch and HOME out of Buildd::Conf Signed-off-by: Philipp Kern commit 355c9d4c7c118914b84ee657fd62e0f83035ebb1 Author: Philipp Kern Date: Wed Apr 8 12:10:28 2009 +0200 [Buildd::Conf] use "$arch" instead of "arch" in $wanna_build_dbbase Signed-off-by: Philipp Kern commit c93104cbafb535fdb910aefd755d82f5cada4086 Author: Philipp Kern Date: Mon Apr 6 16:51:59 2009 +0200 [Sbuild::Build] fix 95538e9 by using localtime somewhere else Signed-off-by: Philipp Kern commit 9e6f004149293a7089436d67b7dbaaff4e03279c Author: Philipp Kern Date: Mon Apr 6 16:48:35 2009 +0200 [buildd-mail] import binNMU_version out of Sbuild Signed-off-by: Philipp Kern commit 002d69e3b29896eca96ffa45e0052e583f7b4b63 Author: Philipp Kern Date: Sun Apr 5 14:46:58 2009 +0200 [debian/control] buildd, wanna-build: depend on exim4 exim does not exist anymore, so use exim4 as default alternative instead. Signed-off-by: Philipp Kern commit 707839ae1445a4effbfc20214e5cb45650fd1ee9 Author: Philipp Kern Date: Sun Apr 5 01:11:24 2009 +0200 [buildd-watcher] avoid warning about the (valid) usage of exec Signed-off-by: Philipp Kern commit 95538e909d26151fff7071bbe3dca78ebeda7467 Author: Philipp Kern Date: Sun Apr 5 01:09:11 2009 +0200 [Sbuild::Build] display a valid "finished at" time in any case Signed-off-by: Philipp Kern commit c07c294aa7a2eef29f7ca0faf70b3db7a5da5fee Author: Philipp Kern Date: Sat Apr 4 23:41:20 2009 +0200 [buildd-watcher] use Buildd::Conf Signed-off-by: Philipp Kern commit 3f59513837683d3a35c4169c086e32dae74bf234 Author: Philipp Kern Date: Sat Apr 4 19:37:20 2009 +0200 [Buildd] lock_file: initialize optional nowait if not set Signed-off-by: Philipp Kern commit b87b5581292b5d105fb409b28a596ecda70265f6 Author: Philipp Kern Date: Sat Apr 4 17:43:32 2009 +0200 [Buildd::Conf] update scalar ref correctly Thanks for Stephan Gran to telling me how Perl works. Signed-off-by: Philipp Kern commit 2de585d82f245c6eb9503d679e53db6539a379f3 Author: Philipp Kern Date: Sat Apr 4 17:35:59 2009 +0200 [buildd-mail] check if content-transfer-encoding is present at all Signed-off-by: Philipp Kern commit 88b567ea7cdd7404abb8c8bb65aed7cc56d06635 Author: Philipp Kern Date: Sat Apr 4 17:21:48 2009 +0200 [buildd, buildd-mail, Buildd] move isin to the Buildd module Signed-off-by: Philipp Kern commit fd90e484d08f5325a87b8de3181f716181760bfd Author: Philipp Kern Date: Sat Apr 4 17:11:15 2009 +0200 [Buildd::Conf] fix global configuration file location Signed-off-by: Philipp Kern commit 6248bdcb731f14f9383ccd9774f1dcb02a438850 Author: Philipp Kern Date: Sat Apr 4 17:07:08 2009 +0200 [buildd-mail] use Buildd::Conf Signed-off-by: Philipp Kern commit d211c2284ebefc0916a6a70d6eda1d222b48b6e0 Author: Philipp Kern Date: Wed Mar 18 12:54:14 2009 +0100 [buildd-uploader] initialize the configuration Signed-off-by: Philipp Kern commit 8b045b6a2a01842e3e06ee43ede1ff8bb2e4b543 Author: Roger Leigh Date: Sun Mar 29 23:03:51 2009 +0100 [debian] Install example buildd crontab commit 0f1b86e987d15d790c92a8305e536b6f204c6f78 Author: Roger Leigh Date: Sun Mar 29 22:22:04 2009 +0100 Sbuild::ChrootInfoSchroot] Run schroot in C locale This avoids localisation of the output which breaks parsing. This was preventing the detection of chroots in some locales. Closes: #520755 commit 5eba1b2cb805b26ac3f03d9a4f493a14a000795b Author: Roger Leigh Date: Sun Mar 29 22:06:30 2009 +0100 [etc] 50sbuild: Don't create user home directory in chroot commit 608fa5556d8a268d6221e7213513cb09225a5646 Author: Adeodato Simó Date: Mon Mar 23 22:04:47 2009 +0000 [db] Add a "type" column in binaries, to specify 'deb' or 'udeb' Signed-off-by: Roger Leigh commit efc2393a7cd8d9798224004540980e00b0c63d71 Author: Adeodato Simó Date: Mon Mar 23 22:04:07 2009 +0000 [db] Fix name of the build_status_history table in update_history() Signed-off-by: Roger Leigh commit 9b0eab3e3bfd94716c3fe9a775e339523d3105f0 Author: Adeodato Simó Date: Mon Mar 23 22:03:24 2009 +0000 [db] Drop NOT NULL constraint in build_status_history.builder The "builder" column can be NULL in build_status, so it should be nullable in build_status_history as well. Signed-off-by: Roger Leigh commit 44d7f216d9830bfa78e01eb1a477b3acaf17ce01 Author: Roger Leigh Date: Sat Mar 21 02:00:09 2009 +0000 [buildd-mail] Remove redundant assignment of $main::HOME commit 9ac1ba29f5b32401f15c4c93023b3a3ecda358cb Author: Roger Leigh Date: Sat Mar 21 01:57:33 2009 +0000 [buildd-watcher] Correctly prototype ST_MTIME() commit 9279d84ffa67c5eb9dd8de24124cff6d469fefc5 Author: Roger Leigh Date: Sat Mar 21 01:53:16 2009 +0000 [bin] Don't add $main::HOME/lib to @INC Now that buildd is installed into standard system paths, there's no need to look in $HOME/lib for perl modules. commit 67ac2279858f30ea80396aa118ed4fde079d66ea Author: Roger Leigh Date: Sat Mar 21 01:47:31 2009 +0000 [buildd-mail] Remove unused $main::keep_running commit 538492d130cee21bf1af18d0f8f26b57df540c69 Author: Roger Leigh Date: Sat Mar 21 01:32:09 2009 +0000 [bin] Remove hardcoding of PATH in executables Now that all of the wanna-build and buildd programs are installed into system paths, there is no need to add $HOME/bin and /usr/local/bin to the path explicitly. Also remove unnecessary setting of PATH in Buildd.pm. commit b6902ec5a588455529fbadbd50fa9cb1efe0ac24 Author: Cyril Brulebois Date: Thu Mar 19 23:05:05 2009 +0000 [man] sbuild-setup.7: Create symlink in /etc/sbuild/chroots Signed-off-by: Roger Leigh commit eab82c63466d4b2dd87fcf6320b455a02e552432 Author: Roger Leigh Date: Thu Mar 19 21:47:12 2009 +0000 [debian] Bump version to 0.58.2-1 commit 527eb10d805aed18415204440dc7f436f5d8e60c Author: Roger Leigh Date: Thu Mar 19 21:45:28 2009 +0000 [debian] buildd: Add buildd man pages commit 4047da073b7154c08e67329af68cb27ab300e0af Author: Roger Leigh Date: Thu Mar 19 21:44:30 2009 +0000 [man] wanna-build.1: Reflow paragraph to avoid leading dot commit 570ae72303c3885a47e1b68f6acc619d2d59a973 Author: Roger Leigh Date: Thu Mar 19 21:44:03 2009 +0000 [man] buildd-mail.1: Document buildd-mail-wrapper compatibility commit 97048f35ad4d878685677f5881c397dabe826173 Author: Roger Leigh Date: Thu Mar 19 21:43:32 2009 +0000 [man] Make buildd-mail-wrapper.1 a symlink to buildd-mail.1 commit 04e75e8db6386a22a318554ab056dd4935757665 Author: Roger Leigh Date: Thu Mar 19 21:30:33 2009 +0000 [man] Add skeleton buildd manual pages Document buildd, buildd-mail, buildd-uploader and buildd-watcher. Remove old buildd and buildd-uploader manual pages. commit 042c634488cf4c9f4be4a658c8a8a334c6f6fa3c Author: Roger Leigh Date: Wed Mar 18 23:40:17 2009 +0000 [sbuild] Use new hash-based Sbuild::Chroot::run_command Call run_command using hashref rather than old-style multiparameter function. commit d6fda107b959fe1bd076a5483f99b6d8bf363578 Merge: 9da2406 d235069 Author: Roger Leigh Date: Tue Mar 17 23:44:26 2009 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 9da2406200b58d8e8c0c2dffd511def4d38ded94 Author: Roger Leigh Date: Tue Mar 17 23:43:50 2009 +0000 [sbuild] Remove last use of get_apt_command Use run_apt_command in place of removed get_apt_command method. commit d23506952cddaf20ea84c059b722c104b23e68b5 Author: Philipp Kern Date: Wed Mar 18 00:01:09 2009 +0100 [buildd-uploader] use the correct Buildd::Conf module Signed-off-by: Philipp Kern commit e665a7d77e3034f4a42bee3fe06562a6ded18bf2 Author: Philipp Kern Date: Tue Mar 17 23:48:39 2009 +0100 etc/buildd.conf: update defaults Signed-off-by: Philipp Kern commit 9f0ace298c84ee4d62b0a67ff1f681b1d85bea96 Author: Philipp Kern Date: Tue Mar 17 23:48:16 2009 +0100 debian/rules: remove handling of config.{guess,sub} Signed-off-by: Philipp Kern commit 2295de78e97545de802e39521f2aa8580dd9ac95 Author: Philipp Kern Date: Tue Mar 17 23:41:38 2009 +0100 [Sbuild::Build] fix log subject to state arch if set Signed-off-by: Philipp Kern commit fca9bfbdc1c20e3b345f7be6063a2ea39b153dd4 Author: Philipp Kern Date: Tue Mar 17 15:17:45 2009 +0100 [buildd] initialize the configuration and check take_from_dists Signed-off-by: Philipp Kern commit d4caee7db2e32fb60d764de476c0f1b420b1f056 Author: Philipp Kern Date: Tue Mar 17 15:17:36 2009 +0100 [Buildd::Conf] do not set a default for take_from_dists Signed-off-by: Philipp Kern commit c22428f7f52a1eee2dc6ac4bf18a46ec8dde7667 Author: Philipp Kern Date: Tue Mar 17 17:51:49 2009 +0100 configure.ac: remove checks for C/C++ Signed-off-by: Philipp Kern commit f73f50dfdfb2d11e331c4d2cc6e48a4ec492622a Author: Philipp Kern Date: Mon Mar 16 22:08:25 2009 +0100 [buildd] drop POSIX::SigSet usage Signed-off-by: Philipp Kern commit cc46898dc11d1b7e7960c708ca12b4f6a8659b6c Author: Philipp Kern Date: Mon Mar 16 21:54:35 2009 +0100 [Buildd] logger: remove spurious regexp match usage Signed-off-by: Philipp Kern commit ea0564c5f65d7ef8cc88f64edf25fd8d62a4fffe Author: Philipp Kern Date: Mon Mar 16 21:36:53 2009 +0100 [buildd] get rid of more configuration file loading stuff Signed-off-by: Philipp Kern commit 0ae8aab39edec0a90dfed963e57f8744240288a3 Author: Philipp Kern Date: Mon Mar 16 19:27:43 2009 +0100 bootstrap: drop the libtoolization Signed-off-by: Philipp Kern commit f82d92981b1aabc0637afbabed3329ee9e209389 Author: Philipp Kern Date: Mon Mar 16 19:26:17 2009 +0100 [buildd] fix configuration lookup by using Buildd::Conf instead of Conf Signed-off-by: Philipp Kern commit 1e31da431bbc9f484f8502c9c22f40318d0592b6 Author: Philipp Kern Date: Mon Mar 16 18:39:57 2009 +0100 [buildd, Buildd::Conf] move check_reread_config into Conf module Signed-off-by: Philipp Kern commit 0a9e4ec2d0006bac581a4b49149ca85bea1f2395 Author: Philipp Kern Date: Mon Mar 16 13:13:39 2009 +0100 [buildd] call logger instead of writing to PLOG Signed-off-by: Philipp Kern commit 825ec61ad5ae172aa0af7ac3dc0c9d5a028b62f2 Author: Philipp Kern Date: Mon Mar 16 12:56:08 2009 +0100 [buildd] remove unused DSC variable Signed-off-by: Philipp Kern commit 0de309578ee2cadf13099b3f626f3efb11a82c5e Author: Philipp Kern Date: Mon Mar 16 12:51:19 2009 +0100 [Buildd] do not import IO as it is not used anyway Signed-off-by: Philipp Kern commit 7ce72856c0800672e7fb5c0be5e3d8df958c4eb5 Author: Philipp Kern Date: Mon Mar 16 12:40:03 2009 +0100 [buildd] put all weak_no_auto items to the back of the dist todo The former syntax was wrong. Either we want @lowprio_todo or $lowprio_todo[0]. I opted for the former. Signed-off-by: Philipp Kern commit 7579c33a1c59e73db6b826afc8a9e205cb59451d Author: Philipp Kern Date: Mon Mar 16 12:37:30 2009 +0100 [buildd] copied isin from Sbuild and removed that module import Signed-off-by: Philipp Kern commit fcc11913118fe4688b003309131b8d45a4220925 Author: Philipp Kern Date: Fri Mar 13 14:12:13 2009 +0100 [buildd] use $arch from Conf module Signed-off-by: Philipp Kern commit e43ce27e8f4fe137fb19c6da69866eee76aa1084 Author: Philipp Kern Date: Fri Mar 13 14:11:55 2009 +0100 [Buildd::Conf] add $arch configuration variable Signed-off-by: Philipp Kern commit 131dd5a162be5f7cfc25888cf44267a34034dc28 Author: Philipp Kern Date: Fri Mar 13 14:10:59 2009 +0100 [buildd] Do not attempt to unlink buildd.pid if $pid is undefined Signed-off-by: Philipp Kern commit 81e3ce2a2085ea6aecc06e0dbfa52531b4d5e22e Author: Philipp Kern Date: Fri Mar 13 13:42:49 2009 +0100 [buildd] Fix get_changelog by calling schroot instead of host's apt-get We rely on schroot's presence now and also on the standard form of naming the chroot (i.e. $dist-$arch-sbuild), which needs to be present at least as an alias for this to work. Signed-off-by: Philipp Kern commit 431453dc094b79942c051d9bd9cc82ea7137de5d Author: Philipp Kern Date: Fri Mar 13 13:18:53 2009 +0100 [buildd] Remove apt cache updating through host apt-get Using the host apt-get only works if the binary format of the cache has not changed and especially not if the host architecture differs from the one of the chroot. sbuild will run apt-get update if told to do so before building anyway so we could just delete the lines responsible for this. Signed-off-by: Philipp Kern commit 1693bda26cc0e5e616a6e1744f882495835083d8 Author: Philipp Kern Date: Fri Mar 13 13:16:06 2009 +0100 [debian] Build a buildd binary package Signed-off-by: Philipp Kern commit 89f6650390b1d4cd8ab0e751132f0ff3ee89501b Author: Philipp Kern Date: Fri Mar 13 12:35:17 2009 +0100 bin/Makefile.am: install buildd binaries and handle buildd-mail-wrapper Only install buildd, buildd-mail, buildd-uploader and buildd-watcher for now. buildd-mail-wrapper disappeared so symlink it to buildd-mail because the wrapper will still be in .forward files on the buildds. Signed-off-by: Philipp Kern commit 4db7d8561d9a622f3cd904a8ef0435ef205b5510 Author: Philipp Kern Date: Tue Mar 10 15:17:36 2009 +0100 [buildd] pass --apt-update to sbuild Signed-off-by: Philipp Kern commit d6a046c79b33117e52cdf5da9d1aca7d96084850 Author: Philipp Kern Date: Tue Mar 10 15:17:08 2009 +0100 [Sbuild::Build] Log which positive and negative dependencies were tried Signed-off-by: Philipp Kern commit 15476c78ba2648e41ed6e9626825032451384bcf Author: Philipp Kern Date: Tue Mar 10 15:06:07 2009 +0100 get rid of sourcedeps helpers Signed-off-by: Philipp Kern commit fd063bdd434854740352f77029cd9b0c2c3012d7 Author: Philipp Kern Date: Tue Mar 10 15:01:03 2009 +0100 [Buildd::Conf] increase default min_free_space to 50M Signed-off-by: Philipp Kern commit a4f06cb73ed8b84b66e48e80199800e6ee91005d Author: Philipp Kern Date: Mon Mar 9 23:51:26 2009 +0100 get rid of buildd-mail-wrapper buildd-mail can be called directly. The packaging should ensure a symlink from buildd-mail-wrapper's old location to buildd-mail, though. Signed-off-by: Philipp Kern commit 07908f17d43377d1d05f1abda292b7951b5585c6 Author: Philipp Kern Date: Mon Mar 9 23:38:13 2009 +0100 [buildd-mail] remove own queue handling The queue handling could be done by the MTA invoking buildd-mail nowadays. buildd-mail should just process the mail it gets feeded on STDIN. It will still lock the daemon.log, however. This patch also gets rid of two unused functions: dist_cmp and dist_list_ge. Based on a patch by Bastian Blank . Signed-off-by: Philipp Kern commit 1d554a1d8d5aa8a581c6aa1b581e78f7776c1951 Author: Roger Leigh Date: Thu Mar 12 21:41:45 2009 +0000 [Sbuild::Conf] Don't require FAKEROOT binary on host system Because the FAKEROOT binary is only required in the build chroot, it doesn't make sense to check for it on the host system. commit f118a69798cce4b0f1bf43b8e4716f820c184b7d Author: Roger Leigh Date: Thu Mar 12 21:41:26 2009 +0000 [build] Bump version to 0.58.2 commit 5ba6126dd2abe41448cb71cbea87a209c86b1349 Author: Roger Leigh Date: Wed Mar 11 23:19:34 2009 +0000 [debian] Close #519276 commit 508cec92f2b85c1cab6df7301d859b49cececa7b Author: Francois-Denis Gonthier Date: Wed Mar 11 23:16:08 2009 +0000 [sbuild] Don't erase default chroot environment Signed-off-by: Roger Leigh commit 3f15b8166d4f94dea041fbb837312b6b7f83577b Author: Roger Leigh Date: Wed Mar 11 22:49:18 2009 +0000 [debian] configure sets DCMD, SCHROOT and SUDO explicitly. Closes: #519097 commit 04d7105f14309bce23c6adb99152719dbc8846c6 Author: Roger Leigh Date: Wed Mar 11 22:44:48 2009 +0000 [build] Bump version to 0.58.1 commit b8e50ae888d7a15a0e6c6a5efc53d2d566845734 Author: Roger Leigh Date: Sun Mar 8 21:54:33 2009 +0000 [debian] Install NEWS commit a492624655d0ddd107b8c3e1804d8f3a9e7aa424 Author: Roger Leigh Date: Sun Mar 8 21:53:13 2009 +0000 [debian] Update NEWS and change distribution to unstable commit 5209a862ef5d1d8f98fd520e90a9bfae2fa82c88 Author: Roger Leigh Date: Sun Mar 8 21:51:53 2009 +0000 [man] Add wanna-build-statistics manual page commit 0e2041c5b79614c40aff4ae0d897beb14285e2a1 Author: Roger Leigh Date: Sun Mar 8 21:51:15 2009 +0000 [NEWS] Document additional user-visible changes commit b8272e23af0f6a9d8cb2506c491bcc38d3a67bb2 Author: Roger Leigh Date: Sun Mar 8 20:57:10 2009 +0000 [man] Add wanna-build-merge-packages manual page Also add symlink for wanna-build-merge-quinn. commit 6f6b9dd1636a9a18493b8f4ebcc2d829aa366f52 Author: Roger Leigh Date: Sun Mar 8 20:46:41 2009 +0000 [README] Remove README.mail, documented in wanna-build-mail.1.in commit 71dbec1b3e27a751f03044aab58da895899deda8 Author: Roger Leigh Date: Sun Mar 8 20:44:46 2009 +0000 [man] Add wanna-build-mail manual page commit 9e6d2aaa3ff7485ba951c47b80e60d9aaee9a691 Author: Roger Leigh Date: Sun Mar 8 20:19:07 2009 +0000 [build] Install WannaBuild::Options commit 3d90c58ad548d9c73ba5684be398f03ecf3b9ed9 Author: Roger Leigh Date: Sun Mar 8 20:18:29 2009 +0000 [man] Add wanna-build-catdb.1 manual page Add symlinks for wanna-build-catgdbm and wanna-build-catmldbm. commit ecba364e577a0606b78362b8374bf9811200efca Author: Roger Leigh Date: Sun Mar 8 19:54:25 2009 +0000 [wanna-build] Add missing parentheses commit 55f4104f17c6a0100a00783d6809a4bea683ef4a Author: Roger Leigh Date: Sun Mar 8 19:53:52 2009 +0000 [wanna-build] Make $ctime global commit 5274e736b660eb58d13017cd99e47d63c2275a0e Author: Roger Leigh Date: Sun Mar 8 19:43:43 2009 +0000 [debian] Don't configure with --with-postgresql debversion code has been moved to postgresql-debversion.git. commit 034ee591d4bda54da18c865bf088e77ea4a9c914 Author: Roger Leigh Date: Sun Mar 8 19:41:31 2009 +0000 [debian] Use dh_prep in place of dh_clean -k commit 54282ed31e530558463b59687e07d311c9a5b5ba Author: Roger Leigh Date: Sun Mar 8 19:28:39 2009 +0000 [db] Install Sbuild::DB modules commit e7f1a4dee9b5f6f769b305231c940b57f8e597fa Author: Adeodato Simó Date: Sun Mar 8 19:13:09 2009 +0100 [db] Populate the suite_arches table Signed-off-by: Roger Leigh commit e06ce9d5ca4985ed28f0d44ea2463432ba7a4337 Author: Adeodato Simó Date: Sun Mar 8 19:13:08 2009 +0100 [db] Use long VALUES lists instead of separate INSERT statements Signed-off-by: Roger Leigh commit aaf0e7c0424adc2b16b3a7649e953c8a5adbe687 Author: Adeodato Simó Date: Sun Mar 8 18:42:49 2009 +0100 [db] Delete extra comma in build_status_properties commit 45e24615beef6724832e974603ab3a0c93b689eb Author: Roger Leigh Date: Sun Mar 8 18:08:08 2009 +0000 [build] Install SQL database creation scripts - db.sql is generated to use the correct paths for sourcing files. - SQL files are installed and distributed correctly. commit 56ef2c201726579dd0e77ecdbc7b0a98d4c89284 Author: Roger Leigh Date: Sun Mar 8 16:47:12 2009 +0000 [debian] control: wanna-build recommends postgresql-8.3-debversion Needed for the debversion datatype install script sourced by db.sql. commit b27487008883dbb7e7ac8824d9a73bdca636dd14 Author: Roger Leigh Date: Sun Mar 8 16:36:29 2009 +0000 [db] Split database creation into separate files archive-data.sql: Initial data for archive tables archive.sql: Tables for archive information, Packages and Sources data build-data.sql: Initial data for build status build.sql: Build status, history, logs and buildd information db.sql: Sources all other files functions.sql: Functions and triggers commit 065e54512f67b6491945d65ec5f5595524bbcdef Author: Roger Leigh Date: Sun Mar 8 16:24:30 2009 +0000 [db] language.sql: Split procedural language setup from db.sql commit ac4acf683741eb2602fc0c6a383d4df9717723a1 Author: Adeodato Simó Date: Sun Mar 8 15:59:17 2009 +0000 [db] set_ctime: Add missing semicolon Signed-off-by: Roger Leigh commit 7c538b99dd490295e93a7d38c1bc56bcbad033d2 Author: Roger Leigh Date: Sun Mar 8 15:52:50 2009 +0000 [db] install.sql: Split database creation into a separate file commit ed1d0504b1457b081d528fbf9f36237691fa66a9 Author: Adeodato Simó Date: Sun Mar 8 15:30:07 2009 +0000 [db] Create a "suite_arches" table to list the architectures in a suite The database schema was missing a list of architectures in each suite. This is needed, because one can't simply use the "architectures" table to decide what arches to act on, eg. when importing packages information, or when creating a web interface: that table may contain no longer active architectures (which are kept around for build_logs), and many actions really need the list of architectures specific to a suite. This commit introduces a "suite_arches" table, with a relation of what architectures are available in each suite. It also adds foreign keys towards this table from suite_binaries and build_status; this way, it is ensured that dropping an architecture from a suite will clean up those tables from no longer relevant entries. Signed-off-by: Roger Leigh commit a1d33bd7650f8c7ad1afa6ad4698d92f74cd7135 Author: Adeodato Simó Date: Sun Mar 8 15:23:49 2009 +0000 [db] Add triggers for build_status Triggers keep the ctime column up to date, validate the bin_nmu field and insert the record into build_status_history. Signed-off-by: Roger Leigh commit 0d0dbc8b27f7615d83a5b2393ae70c5b98f7141c Author: Adeodato Simó Date: Sun Mar 8 15:14:55 2009 +0000 [db] build_status.ctime defaults to 'epoch' Value will be set with a trigger. Signed-off-by: Roger Leigh commit 3925f5712b726ec947cc10665c1c8cfbb389623d Author: Adeodato Simó Date: Sun Mar 8 15:13:50 2009 +0000 [db] build_status.builder can be NULL This allows changes to be made by people as well as buildds. Signed-off-by: Roger Leigh commit 9703826459a9ff4e800acdf7d76e8f2d67685882 Author: Adeodato Simó Date: Sun Mar 8 15:12:37 2009 +0000 [db] Add bin_nmu column to build_status and build_status_history Signed-off-by: Roger Leigh commit b099ba631062c23a26ca2c5558f5b0d1d3d255bb Author: Adeodato Simó Date: Sun Mar 8 14:58:53 2009 +0000 [db] Drop index on build_status.ctime Signed-off-by: Roger Leigh commit 5e73ac9b178fbe6724b2988579775dbb64c705e2 Author: Adeodato Simó Date: Sun Mar 8 14:57:25 2009 +0000 [db] Rename build_state.state to build_state.status Also rename in build_status history. Reformat build_state.user. Update comments. Signed-off-by: Roger Leigh commit 2731512af04222f58a0b3f7af5b2b95cc1f30558 Author: Adeodato Simó Date: Sun Mar 8 14:48:14 2009 +0000 [db] Remove job id number from build_status and build_status_history Also update build_status_properties to use the new primary key of build_status. Signed-off-by: Roger Leigh commit 253d6d0514657eb69c006b785abbd2888843a70f Author: Roger Leigh Date: Sat Mar 7 19:35:43 2009 +0000 [db] Rename job_states to package_states (update comments) commit b15007cd6a3273162315f54d3b02b87aa46a8513 Author: Roger Leigh Date: Sat Mar 7 19:34:23 2009 +0000 [db] Rename job_states to package_states commit a6075a18c1a05499d68f57623ab296b21a02c87b Author: Roger Leigh Date: Sat Mar 7 19:31:41 2009 +0000 [db] Duplicate build_status as build_status_history This will store a history of the changes in the build_status table. Currently, it retains all of the constraints, but future commits will drop referential integrity on some of the columns. commit 6d87fa6a3b94f15d945ecd53bc87c2098ad75fec Author: Adeodato Simó Date: Sat Mar 7 19:10:52 2009 +0000 [db] Rename build_jobs to build_status Also rename build_job_properties to build_status_properties. Signed-off-by: Roger Leigh commit d30083905929c2a1bbf9123a74f912f93ccac819 Author: Adeodato Simó Date: Fri Mar 6 07:54:27 2009 +0100 Create indexes for (pkg_name, version) in suite_{sources,binaries} These two indexes make faster joins between sources and suite_sources, and binaries and suite_binaries, since the join key will be indexed on both sides. The difference is particularly noticeable for the binaries, since suite_binaries has more than half a million rows. commit 4d30d593bd3348d0e7529ddd82c9275634c9627c Author: Roger Leigh Date: Sat Mar 7 17:55:34 2009 +0000 [db] Add missing semicolon Signed-off-by: Roger Leigh commit c73f479b7ab766b46a4f4f96d8a77ad8125f56bd Author: Adeodato Simó Date: Thu Mar 5 23:15:37 2009 +0000 [db] Rename "version" to "source_version" when it refers to source packages Rename all columns named "version" to "source_version" when they refer to the version of a source package. This is done to ease JOIN statements, making it possible to use NATURAL JOIN or JOIN ... USING() between source and binary packages. Signed-off-by: Roger Leigh commit 3c0e9372aad31e507bb57dd47b149f90a81b731d Author: Roger Leigh Date: Thu Mar 5 22:34:56 2009 +0000 [Sbuild::Sysconfig] Fix typo in %programs export commit 486858fdd58b1d56af9c49defd32be626514d65d Author: Roger Leigh Date: Thu Mar 5 22:30:31 2009 +0000 [Sbuild::Build] uninstall_debs: Don't use uninitialised $output Signed-off-by: Roger Leigh commit 32bf3914b992430bea8866ae0739b354740b4640 Merge: 7ca714b 641feb8 Author: Roger Leigh Date: Wed Mar 4 23:53:34 2009 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit 7ca714b6f6771339812bab91f999064dc5be6945 Author: Roger Leigh Date: Wed Mar 4 23:53:10 2009 +0000 [build] Remove DISTCHECK_CONFIGURE_FLAGS commit 7efcaa609880204fb8d943dadf5cf6bbb41cc5cd Author: Roger Leigh Date: Wed Mar 4 23:51:00 2009 +0000 [debian] Remove postgresql-8.3-debversion rules: Comment out binary-arch commands control: Remove package and build-dependencies commit e749b27e3e722712ca3d393f41161aa0151d3362 Author: Roger Leigh Date: Wed Mar 4 23:47:23 2009 +0000 [db] Remove debversion debversion has been split into a separate git repository (postgresql-debversion). commit 641feb85078e18440b4b98116d1eaa3dbdc46c66 Author: Philipp Kern Date: Wed Mar 4 14:11:36 2009 +0100 [Sbuild] declare charset and transfer-encoding in sent mails Signed-off-by: Philipp Kern commit 0a6140e14bc8ea4e5ef006f487d14e0814a0b3c5 Author: Philipp Kern Date: Tue Mar 3 23:56:47 2009 +0100 [Sbuild::Conf] obey $arch in .sbuildrc Signed-off-by: Philipp Kern commit 07a9756f553b370ab9ee96208e797cbb16316e96 Author: Philipp Kern Date: Tue Mar 3 23:41:36 2009 +0100 [build] lib/Sbuild/Makefile.am: add ConfBase.pm Signed-off-by: Philipp Kern commit 7e91bb9dc7dc49ea86ae33ea3f8b9d0cfb3985fd Author: Roger Leigh Date: Tue Mar 3 00:26:23 2009 +0000 [debian] Correctly package postgresql-8.3-debversion debian/rules calls configure with --enable-postgresql, and adds a functional binary-arch target (previously was for arch-any only). commit 7bf8c497551ab8bf934526638870682254016b8d Merge: e620116 2415b95 Author: Roger Leigh Date: Mon Mar 2 23:22:18 2009 +0000 Merge branch 'wb-backend' Conflicts: debian/changelog commit 2415b957d6f64659cc644d23da93e3751ff2f9c1 Author: Roger Leigh Date: Mon Mar 2 23:20:13 2009 +0000 [debian] Add postgresql-8.3-debversion to changelog commit fe2104f1083535ed9bfeddc1fd2c9c237b6bdc15 Author: Roger Leigh Date: Mon Mar 2 23:16:07 2009 +0000 [debian] New package: postgresql-8.3-debversion commit 5d6e581e396cc23ef2357c83375df8d585a29a23 Author: Roger Leigh Date: Mon Mar 2 23:15:29 2009 +0000 [build] Add support for conditionally building debversion type commit e62011685f1a35419691aa1b39efc0dfc3f40030 Author: Luk Claes Date: Sun Mar 1 16:17:32 2009 +0100 Set sectval to -125 = 165 + 40 (highest used value) if used section is not in the list commit 92efcaae42e708f1da87e19593233b319d683b5d Author: Luk Claes Date: Sat Feb 28 15:35:54 2009 +0100 Add 'a'ge before 's'ection commit 95b9263713cf9748affc6b0585d1ccab97528a20 Author: Roger Leigh Date: Sat Feb 28 13:03:26 2009 +0000 Add .gitignore for db commit 71a83bd9e0dd230374c970402371c8d2fd3d8e5b Author: Roger Leigh Date: Sat Feb 28 13:03:02 2009 +0000 [db] Add PGXS Makefile for out-of-tree building commit 20549cb13d20ad07c182ab546e0a5b02540d2707 Author: Roger Leigh Date: Sat Feb 28 13:02:05 2009 +0000 [build] lib/Sbuild/Makefile.am: Add DB to SUBDIRS Signed-off-by: Roger Leigh commit 369d90a58bdb1b8ada295c1f4158185b1c1d528b Author: Adeodato Simó Date: Sat Feb 28 11:06:36 2009 +0000 [db] Fix the primary key in the suite_binaries table The primary key in "suite_binaries" was a composite key of (pacakge, suite), but it is obvious that (package, suite) has to be duplicated once per arch: add "arch" to the primary key. Additionally, the UNIQUE constraint is unnecessary: with (package, arch, suite) being unique already due to the primary key, there'll be only one version for each combination. Signed-off-by: Roger Leigh commit dbfda1cbb8dfdecf54d3f2b84cd627bac5756d63 Author: Adeodato Simó Date: Sat Feb 28 10:58:08 2009 +0000 [db] Add "oldstable" to the suites table Signed-off-by: Roger Leigh commit 5c6e57be5ade416af970cc8f32291c41ef3d3ea2 Author: Adeodato Simó Date: Sat Feb 28 10:57:48 2009 +0000 [db] Add "hurd-i386" to the architectures table Signed-off-by: Roger Leigh commit 7afc324c2a8612e7b32bb2345b6ccbf08ae5ef4c Author: Adeodato Simó Date: Sat Feb 28 10:57:00 2009 +0000 [db] Add a new value "skipped" to the build_log_result table The build log database on buildd.debian.org shows this state was in use until 2004-06-24 (and contains around 1150 logs in this state). Signed-off-by: Roger Leigh commit 7e8521a088ee7ce48b843969558a6386833a23e0 Author: Adeodato Simó Date: Sat Feb 28 10:20:35 2009 +0000 [db] Update name of constraint for build_logs.result to match column name Signed-off-by: Roger Leigh commit ecea578ab208c4b63812f67012718e30dacb4229 Author: Roger Leigh Date: Sat Feb 28 09:36:50 2009 +0000 [Sbuild::Options] --make-binNMU doesn't reset binNMU version if already set Signed-off-by: Roger Leigh commit da9d8c46857a2e003f26427fbdba7fbb0200372a Author: Sebastian Andrzej Siewior Date: Sat Feb 28 09:33:00 2009 +0000 [man] Fix WANNA_BUILD_LIBEXEC_DIR WANNABUILD_LIBEXEC_DIR got renamed to WANNA_BUILD_LIBEXEC_DIR Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Roger Leigh commit 360f4e3d70ff2c7567e640abee7c936c777cbb2f Author: Sebastian Andrzej Siewior Date: Sat Feb 28 09:31:36 2009 +0000 [build] Fix WANNA_BUILD_LIBEXEC_DIR WANNABUILD_LIBEXEC_DIR renamed to WANNA_BUILD_LIBEXEC_DIR Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Roger Leigh commit a0f1083f6804e7e05254b41057ca528fadca5113 Author: Roger Leigh Date: Fri Feb 27 22:24:45 2009 +0000 [WannaBuild::Options] Use Sbuild::DB::Info commit 88a42fa05f67f6a8606a83adda28a76413cac19c Author: Roger Leigh Date: Fri Feb 27 22:23:58 2009 +0000 [Sbuild::DB::Base] New common base class for database backends commit 5d5e0ce6d89cf560cf5c67a9c8a509b1224c26da Author: Roger Leigh Date: Thu Feb 26 19:40:41 2009 +0000 [Sbuild::Options] --make-binNMU doesn't reset NMU version to 1 commit 890de1e0cec0e9b9a25f207a95a475bda7e56345 Author: Kees Cook Date: Sun Feb 22 11:04:36 2009 +0000 [debian] Close #505747 Signed-off-by: Roger Leigh commit 1509eca85db68a7b762d06ae28c0555880eee9a9 Author: Kees Cook Date: Sun Feb 22 11:02:09 2009 +0000 [Sbuild] version_compare: Handle =*=PROVIDED=*= by never matching If we're trying to compare versions against a provided package, always return "not satisfied", forcing an install attempt. Signed-off-by: Roger Leigh commit 82bb1190f20da3f5fc3fd93e8b08b8dd0539ef5d Author: Roger Leigh Date: Sat Jan 31 11:25:03 2009 +0000 [db] Default to using the public namespace commit 2c9a523e32089d6100d8f5176ec7e8cbf46c7da0 Author: Roger Leigh Date: Sat Jan 31 10:49:39 2009 +0000 [db] Update debversion copyright and quote LANGUAGE commit 28bd34d2cc73ff29ef2b37d59a83a8481923c737 Author: Roger Leigh Date: Mon Jan 26 22:01:54 2009 +0000 [db] Update copyright notice Add Adeodato Simó and update dates. commit 4861ff29c0a7945017d119a28d4ba606a53e3846 Author: Adeodato Simó Date: Mon Jan 26 22:00:43 2009 +0000 [db] Add table to list the admin(s) of each buildd Signed-off-by: Roger Leigh commit 8d73c33722f8fef06ee02a1554f1b76ee974c18a Author: Adeodato Simó Date: Mon Jan 26 21:59:14 2009 +0000 [db] Add an "arch" column to the builder table Signed-off-by: Roger Leigh commit 911aab0a77b0059718312da2e2c31793f97cad15 Author: Adeodato Simó Date: Mon Jan 26 21:58:27 2009 +0000 [db] Prefer column names derived from table name, and drop _name suffix Instead of using a column "name" in every table, use a name derived from the table name, eg. "source" in sources and "arch" in architectures. Also, when creating references, don't name such columns with a "_name" suffix; instead, just use the name of the referenced column if possible. (It is not possible, for example, in binaries, where there are two version numbers.) With this, it is possible to create queries more easily, and natural joins are possible. Incidentally, this commits removes the long listing of package section, which is unnecessary given that they will be auto-inserted via a trigger when populating the sources and binaries table. Signed-off-by: Roger Leigh commit 42ec770e8f1c7397b43a848d65f255a7c7f72a73 Author: Adeodato Simó Date: Mon Jan 26 21:53:48 2009 +0000 [db] Add a build_logs table to store a list of all available build logs Signed-off-by: Roger Leigh commit c79e87a6e7735a6be73a8730dba1aa5bce216b07 Author: Adeodato Simó Date: Mon Jan 26 21:49:46 2009 +0000 [db] Make "uploaders" be a one-to-many mapping, rather than a single value Signed-off-by: Roger Leigh commit ce831262b4b0e081f4c56196eec20ffac3c5a8cc Author: Adeodato Simó Date: Mon Jan 26 21:48:02 2009 +0000 [db] Distinguish between arches with buildds, and the Architecture field Previously, the architectures table was holding real architectures like "alpha" and "mipsel", and other values like "any" and "all". However, the architectures table is referenced from places like build_jobs and builder, where only the former group makes sense. This commit splits the two groups, keeping the architectures table for the real architectures (or, rather, architectures supported by each wanna-build instance), and creates a new table package_architectures for values found in the Architecture field of Sources/Packages files. Additionally, a trigger is created to populate package_architectures upon insertion on source_architectures and binaries. It is not feasible to populate this table in advance: at the time of this writing, there are 38 different names in the Architecture field in Sources.gz, with more appearing in an unforeseeable manner. Signed-off-by: Roger Leigh commit dd2fefc430dcdc79061c180e3bc04475808f8999 Author: Adeodato Simó Date: Mon Jan 26 21:44:58 2009 +0000 [db] Add a "value" column to package_priorities so that they are sortable Signed-off-by: Roger Leigh commit fd046185cb8c69cee92a7fdf25e245bed231d01c Author: Adeodato Simó Date: Mon Jan 26 21:43:42 2009 +0000 [db] Add an "address" column to the builders table This column is meant to store the address of the buildd software in the remote machine, to which eg. ACCEPTED mails from dak should be sent to. It should be stored in the database so that there is no duplication of information between the DB (list of builders) and our aliases file (list of builders and their addresses). Signed-off-by: Roger Leigh commit b3a5c26fd55df7e54d9712ddaf8396d518a92ada Author: Adeodato Simó Date: Mon Jan 26 21:42:44 2009 +0000 [db] Ensure names for all PRIMARY KEY constraints end with _pkey Signed-off-by: Roger Leigh commit 797f875aab6263225f80b9a9881109682cf896cb Author: Adeodato Simó Date: Mon Jan 26 21:41:54 2009 +0000 [db] Rename "distribution" to "suite" (to be consistent with dak) Signed-off-by: Roger Leigh commit 6d423c452bc4b1dcd0771705c3c63e3a44660217 Author: Roger Leigh Date: Mon Jan 26 21:40:24 2009 +0000 [db] Create PL/pgSQL language if not already present This is needed by the package_checkrel() function. commit 6bc50fa0cfeb376fd8e7b1367a28a8a8a21b94eb Author: Adeodato Simó Date: Mon Jan 26 21:15:39 2009 +0000 [db] Source debversion.sql and not version.sql from db.sql Signed-off-by: Roger Leigh commit bca3939151fa730128762937cca7fea29811a5a1 Author: Roger Leigh Date: Sun Jan 25 22:06:41 2009 +0000 [db] Add code to uninstall debversion type from database commit 3f47147c79f8ec32078b47dc6311c94e7a5c35ce Author: Roger Leigh Date: Sun Jan 25 22:06:17 2009 +0000 [db] Add hash operator class to debversion type commit 361687c421f3ad1ca182711ec3dada56f2e39ff1 Author: Roger Leigh Date: Sun Jan 25 22:05:06 2009 +0000 [db] Keep faster C implementation of debversion only commit 692678942060152824a727b20b9aa69e14444191 Author: Adeodato Simó Date: Sun Jan 25 17:48:18 2009 +0000 [db] Don't insert arches that have not ever been in the official wanna-build Signed-off-by: Roger Leigh commit 730ee723b2c3c4acdab2ce3e1dd8225de02bf82d Author: Adeodato Simó Date: Sun Jan 25 17:47:03 2009 +0000 [db] Rename sections to components Signed-off-by: Roger Leigh commit a27b1b4b88f98a93b01188422e6b2599f77ca440 Author: Adeodato Simó Date: Sun Jan 25 17:44:08 2009 +0000 [db] Change order of package sections This makes it easier to spot missing sections. Signed-off-by: Roger Leigh commit 11b5134d2bbdf439526a33bc253296653661ad09 Author: Roger Leigh Date: Sun Jan 25 17:40:24 2009 +0000 [db] Remove commented out debversion domain commit 81fd39259953853632a7d0e2198cfc745d270fe3 Author: Roger Leigh Date: Sun Jan 25 15:14:30 2009 +0000 [db] Add C implementation of debversion type commit f34d6ddfea81d9bd0951e4d30345c64a16c93038 Author: Roger Leigh Date: Sun Jan 25 15:10:56 2009 +0000 [db] Rename debversion_compare* to debversion_cmp* for compatibility Other implementations use the latter naming commit 40c71b43c8c2c4e271dbb00213ff26e827053741 Author: Roger Leigh Date: Sun Jan 25 15:08:49 2009 +0000 [db] Add untrusted debversion type This type uses PL/PerlU to use Dpkg::Version directly, to avoid code duplication. commit 0f26a15ffdba21464669777ff5023a662f85d386 Author: Roger Leigh Date: Sun Jan 25 15:06:45 2009 +0000 [db] debversion type is created from text primitives A domain based upon text as used previously can define its own operators and operator class, but postgres does not allow these to be used by default in place of the base class operators. commit fa9829e5744883d8305599249acb0c24dcf9e07d Author: Roger Leigh Date: Sat Jan 24 18:42:21 2009 +0000 [db] debversion: Add btree operator class commit 1b7d81df055bed0906a82fc566bd1e03a5934a77 Author: Roger Leigh Date: Sat Jan 24 18:41:17 2009 +0000 [db] debversion: Use correct procedure for operator != commit 38dd87a21b925eca2c936adb9530530b1854cd07 Author: Roger Leigh Date: Sat Jan 17 16:08:37 2009 +0000 [db] Update schema comments and constraints - Comment all relations, functions and triggers. - Clean up dependent relastions using ON DELETE CASCADE where appropriate. - Add triggers to create missing references, where appropriate. - Remove complex architecture group ↔ source package mapping tables, and replace with simpler mapping at the expense of using more disc space. - Add additional unique constraints and indices. - Add log table for storing changelog. commit e74599278f8ad59aab37b171fcf49149c13d16eb Merge: 366f398 29db70c Author: Roger Leigh Date: Sat Jan 17 11:56:55 2009 +0000 Merge branch 'wb-object' commit 29db70c9a36aa0fe6807e7e500babee4bf909c4a Author: Roger Leigh Date: Sat Jan 17 11:56:17 2009 +0000 [wanna-build-statistics] Document needed options parsing work commit aed9d5426bd503ac4ad0cec14de886fdbfccaac7 Author: Roger Leigh Date: Sat Jan 17 11:47:06 2009 +0000 [wanna-build-statistics] Update valid wanna-build states commit 17f3a48dbb882fb37bae8fec6a2214c1a0c3f2d6 Author: Roger Leigh Date: Sat Jan 17 11:46:18 2009 +0000 [wanna-build-statistics] Add oldstable and oldstable-security commit 19c4efe397081f5067774ffc8730d916d11301ad Author: Roger Leigh Date: Sat Jan 17 11:45:04 2009 +0000 [etc] sbuild.conf: Remove extra newline commit 366f3981916a9ddfb6a69253c0f3c967a5117196 Author: Roger Leigh Date: Sun Jan 11 23:35:58 2009 +0000 [debian] Close #511314 commit 2546b0249e49effeb32839e792cb6bac570bc528 Author: Roger Leigh Date: Sun Jan 11 23:01:34 2009 +0000 [debian] Close #511095 commit 1dddc9d19d00d807eaa8543f0f3272da63d8581a Author: Robert Millan Date: Sun Jan 11 23:00:13 2009 +0000 [build-mail-wrapper] Use getloadavg in place of sysinfo. Use more portable BSD getloadavg in place of Linux-specific sysinfo. Signed-off-by: Roger Leigh commit 7e7abc543283c59a3cbe193bb7432eb0b6d24747 Author: Roger Leigh Date: Sat Jan 10 20:46:33 2009 +0000 [db] Use debversion commit 8fc4f2d8ee5bba8d8d1b8688380b33684f344115 Author: Roger Leigh Date: Sat Jan 10 20:45:51 2009 +0000 [db] Correct version check to not recurse infinitely commit e151e7bb96567817a580118c8c0d5b6cf1fa9b38 Author: Roger Leigh Date: Sat Jan 3 18:49:26 2009 +0000 [db] Add debversion type and operators commit 92f8ab18e1ca7c6e0c07737788da2b8031bffed2 Author: Roger Leigh Date: Sun Dec 28 23:06:33 2008 +0000 [db] Add initial PostgreSQL database schema commit 9cf5cc02f982afc1406c871fe18ac7086c295fb0 Author: Roger Leigh Date: Sun Dec 28 23:05:14 2008 +0000 [build] Distribute database modules Add missing modules to Makefiles. Adjust module package names for new location. commit 544956b701a1901c267f0d7cb3bba647d182ba80 Author: Roger Leigh Date: Sun Dec 28 12:03:13 2008 +0000 [wanna-build] Rename %dbs to %databases commit 2fb4e05291f023b5a36618ce47ec43400d3bbe0a Author: Roger Leigh Date: Sun Dec 28 11:59:34 2008 +0000 [Sbuild::DB] Rename to Sbuild::DB::MLDBM Also rename Sbuild::DBInfo to Sbuild::DB::Info commit cd7e85fb5689b19c533b8c77da9f943b84014117 Author: Roger Leigh Date: Sun Dec 28 11:56:13 2008 +0000 [Sbuild::DB] Move MLDBM functionality from wanna-build commit 2c83e55c4de613241977311a994ee81bd0642c28 Author: Roger Leigh Date: Sun Dec 28 11:42:52 2008 +0000 [WannaBuild::Options] Use Sbuild::isin commit 12c6e902c67d560dae04f58ab49396bd2c4ca142 Merge: 89ccc1c e6273c7 Author: Roger Leigh Date: Sat Dec 27 22:10:37 2008 +0000 Merge branch 'wb-object' commit e6273c7b03c2a2513e59030002e5fd9c067ea83a Author: Philipp Kern Date: Sat Dec 27 22:06:18 2008 +0000 [WannaBuild::Conf] Introduce a buildd mail domain commit 7a5a8c57990d5c210f5c57b9be16776a437e44bc Author: Roger Leigh Date: Sat Dec 27 21:31:18 2008 +0000 [wanna-build] log_ta: dist and db are no longer arguments commit 41b9be5801c3e345592688aa5490da24cb7e979e Author: Roger Leigh Date: Sat Dec 27 21:30:16 2008 +0000 [wanna-build] Replace usage with Sbuild::usage_error commit 648ae83520352a6c18f0155f735864117c1189f0 Author: Roger Leigh Date: Sat Dec 27 21:29:17 2008 +0000 [wanna-build] Remove set_dep_wait commit a384b946a114d8ab0029ebdb918ed84e8d63513c Author: Roger Leigh Date: Sat Dec 27 21:28:41 2008 +0000 [wanna-build] Remove exists_in_other_dist commit 6c49457365f96f97e4ad920fca724ca114d4a121 Author: Roger Leigh Date: Sat Dec 27 21:24:48 2008 +0000 [wanna-build] Update regex, version and dependency handling commit e0d865b68d9fb818abc37751c854362b04c61608 Author: Roger Leigh Date: Sat Dec 27 21:22:29 2008 +0000 [wanna-build] Add missing brace commit 62e4d98741f909cd2b794091d0d6bf38da85ce16 Author: Roger Leigh Date: Sat Dec 27 21:21:50 2008 +0000 [wanna-build] Update bin NMU logic commit 8a95cf973db1ace9ce928711a1d82bbb4c564712 Author: Roger Leigh Date: Sat Dec 27 21:19:50 2008 +0000 [wanna-build] Use auto_dep_wait, add_one_built and add_one_attempted Use new build states. commit 034cf819b3ac697b7a5d5db383167dc2dc30c0da Author: Roger Leigh Date: Sat Dec 27 21:14:01 2008 +0000 [wanna-build] Don't import Sbuild::Sysconfig variables into namespace commit 253cef775e8e008b2bf81406866a7f892cc8db26 Author: Roger Leigh Date: Sat Dec 27 19:27:11 2008 +0000 [wanna-build] Remove Dep-Wait-Removed commit d865650d45cb798f09a0efe142d2a4e2bd3d9852 Author: Roger Leigh Date: Sat Dec 27 19:17:40 2008 +0000 [wanna-build] parse_deplist: Check dependency syntax commit c3bc666779ef218e7eb3b81860fe23fb9be64219 Author: Roger Leigh Date: Sat Dec 27 19:12:22 2008 +0000 [wanna-build] Remove propagate_ta commit 0f1e5b9d626637e6022f9bf547b2134c30abbf05 Author: Roger Leigh Date: Sat Dec 27 19:11:00 2008 +0000 [wanna-build] Remove use of propagate_ta commit 936e795be9795b4651f24c7abcb4ec0677081cf3 Author: Roger Leigh Date: Sat Dec 27 18:39:04 2008 +0000 [wanna-build] Add add_one_attempted and add_one_built functions commit 2fae9e0d01aeeff8efaded618d398e5163e07ba7 Author: Roger Leigh Date: Sat Dec 27 18:20:46 2008 +0000 [wanna-build] Add get_unsatisfied_dep and auto_dep_wait functions commit 85ebbf24a50fa88fa517908042781f74fa96d054 Author: Roger Leigh Date: Sat Dec 27 18:18:45 2008 +0000 [WannaBuild::Conf] Add priority, noadw and hidden distribution parameters commit 89ccc1c2ce81f5cfdf86030c65c739206fd9ff9d Merge: ad04168 74e1e62 Author: Roger Leigh Date: Wed Dec 24 12:47:25 2008 +0000 Merge branch 'wb-object' commit 74e1e62aa4795e777349e5f7cfb67435d665b18c Author: Roger Leigh Date: Wed Dec 24 12:47:07 2008 +0000 [Sbuild] Use timegm in place of timelocal commit ad04168c6a297d7e536f1524327038f29087a6af Merge: 8db88f4 2f31371 Author: Roger Leigh Date: Wed Dec 24 11:57:02 2008 +0000 Merge branch 'wb-object' commit 2f313711ffa393dc09d85395c321ab942ed18159 Author: Roger Leigh Date: Wed Dec 24 11:56:35 2008 +0000 [TODO] Add explanation of reference issues commit 911afbe40b274307e44031e876b8601c58b4c5c2 Author: Roger Leigh Date: Wed Dec 24 11:53:26 2008 +0000 [TODO] Add new items commit 3674c7e4cff6368242e90a16b5c6c21e2939b200 Author: Roger Leigh Date: Wed Dec 24 11:52:28 2008 +0000 [WannaBuild::Conf] Merge DB_DISTRIBUTIONS and DB_DISTRIBUTION_ORDER commit 1275d2a43a30a5d9285d00fcd7453652043d4507 Author: Roger Leigh Date: Wed Dec 24 11:36:37 2008 +0000 [wanna-build-statistics] Add Built and Attempted commit b13d2463c90891c0a0e662f3d7970d23e927abec Author: Roger Leigh Date: Wed Dec 24 11:35:34 2008 +0000 [WannaBuild::Options] Add new --built and --attempted options Also update list states commit bb10748357b43644e9d737cd468e32fef9116c44 Author: Roger Leigh Date: Wed Dec 24 11:34:39 2008 +0000 [WannaBuild::Conf] Deprecate propagation and down-propagation Also remove from WannaBuild::Options. commit ebac97b7d9dc29c023a24b15220ce820b191db5b Author: Roger Leigh Date: Wed Dec 24 11:30:17 2008 +0000 [wanna-build] Use gmtime in place of localtime commit 8db88f4e0e3b4b890671284a7d0ee80be5620404 Merge: 82b6b08 52332cc Author: Roger Leigh Date: Tue Dec 23 23:18:43 2008 +0000 Merge branch 'wb-object' commit 52332cc6070129697d1bbc58cab33c44624cf80e Author: Roger Leigh Date: Tue Dec 23 23:11:27 2008 +0000 [bin] Add comments for future work commit cf4ae61569dc91a8fe0c02d51f58bca8e1387b1e Author: Roger Leigh Date: Tue Dec 23 15:18:47 2008 +0000 Remove redundant function prototypes from object oriented code commit de421674aa234d0fa344eb4f164712563d2ac3d4 Merge: 38b051a 1dc51c9 Author: Roger Leigh Date: Tue Dec 23 14:48:32 2008 +0000 Merge branch 'wb-object' of ssh://git.debian.org/git/users/rleigh/sbuild into wb-object commit 38b051a1777ad2a3fc0d717d5939509363b6857d Author: Roger Leigh Date: Tue Dec 23 11:19:34 2008 +0000 [Sbuild::Utility] Use Sysconfig program paths commit c9b8961aed77145a3e3bc037dc59530d29761189 Author: Roger Leigh Date: Tue Dec 23 11:19:04 2008 +0000 [WannaBuild::Options] Use correct program name commit a0a0b600ac7b32e19192641a2ff02d219c39aa06 Author: Roger Leigh Date: Tue Dec 23 11:17:11 2008 +0000 [Conf*] Use DEFAULT values in configuration setup All "our" variables used by configuration files are now undefined, so that the defaults will be used if they are not set. commit d07c49da637e6ade1254bf9f79e6106790946ccb Author: Roger Leigh Date: Tue Dec 23 11:14:51 2008 +0000 [Sbuild::ChrootSudo] Remove unused modules and use Sysconfig program paths commit 043a28a3da22dc8fb7b8f22a25b60d26ef474a77 Author: Roger Leigh Date: Tue Dec 23 11:14:11 2008 +0000 [Sbuild::ChrootSchroot] Remove unused modules commit 702ec289dae92dd9453226693071cf89702c0208 Author: Roger Leigh Date: Tue Dec 23 11:13:32 2008 +0000 [Sbuild::ChrootPlain] Update to use new option hash chroot commands commit ce43ffe7362b0de99efbb458d05768b67053917b Author: Roger Leigh Date: Tue Dec 23 11:11:38 2008 +0000 [Sbuild::ChrootInfo] Update arch handling for default arch in Sbuild::Conf commit 1e1cbd7d8a790cd8cc0f6f2dcb449b29885bf2d4 Author: Roger Leigh Date: Tue Dec 23 11:10:39 2008 +0000 [Sbuild::Build] Use Sysconfig release_date and program paths commit 59fb8f1ecfe1f16ec422a8c5898fb4557b74b132 Author: Roger Leigh Date: Tue Dec 23 11:01:18 2008 +0000 [Sbuild::Sysconfig] Add additional programs and paths commit 9b881119617320175ab916d7cbf64e1fadb24060 Author: Roger Leigh Date: Mon Dec 22 10:32:24 2008 +0000 [sbuild-*] Use new Sysconfig paths and chroot command exit status commit 1dc51c997047712b8610bff954c1fb563b06b15b Author: Roger Leigh Date: Fri Dec 19 21:21:59 2008 +0000 [wanna-build] Include DB_BASE_NAME in transactlog name commit 82b6b08d8502489ceb44d6be789c673798c9eb4a Author: Roger Leigh Date: Fri Dec 19 21:17:37 2008 +0000 [wanna-build] Revert transactlog initialisation commit f85a86ac75d35ad5af0ab75869640eaa5f0541d7 Author: Roger Leigh Date: Thu Dec 18 23:25:52 2008 +0000 [Sbuild::Conf] Split into Sbuild::ConfBase and WannaBuild::Conf commit c23db98c1888267364337862004c9af891563d9f Author: Roger Leigh Date: Tue Dec 16 23:04:38 2008 +0000 [Sbuild::Sysconfig] Update copyright commit a0b09c87efe3ffbbf1bd9d1fffdffa27e596db24 Author: Roger Leigh Date: Tue Dec 16 23:02:56 2008 +0000 [Sbuild::Sysconfig] Add paths and program paths from configure commit e570d719d156ec236a9bcece1e852b072c76fe7a Author: Roger Leigh Date: Tue Dec 16 22:16:22 2008 +0000 [Sbuild::Conf] Split check_config into separate validation functions commit 34686a86299fc79223ebf9deb47bd059e3ac22c4 Author: Roger Leigh Date: Tue Dec 16 18:10:36 2008 +0000 [Sbuild::Conf] get and set can call key-specific methods Used to validate values, and perform additional tasks. commit 718a0ef9fec51175ccc1dcf1883d6274c49656b4 Author: Roger Leigh Date: Tue Dec 16 18:02:43 2008 +0000 [Sbuild::Conf] Store defaults and values inside allowed keys hash commit c385a490e994f99d44ef2727f88741d5b431fbb8 Author: Roger Leigh Date: Mon Dec 15 23:11:07 2008 +0000 [wanna-build] Use Sbuild::Conf in place of WannaBuild::Conf commit d9c4201acdea03f351e10644c9e708be038e0357 Author: Roger Leigh Date: Mon Dec 15 22:02:06 2008 +0000 [WannaBuild::Options] Add Getopt::Long options parser for wanna-build * wanna-build uses both the new Sbuild::Conf options, and this new parser. * wanna-build also uses hostname from Sbuild::Conf, and version and release date from Sbuild::Sysconfig. * Sbuild::Conf sets HOSTNAME to the FQDN. * Sbuild::Conf sets additional allowed keys for non-configuration file configuration options required for option processing. * Sbuild::DBInfo.pm provides additional metadata needed by wanna-build. commit bb67fc851d3609e079a5f46661466d8f698e08aa Author: Roger Leigh Date: Mon Dec 15 00:49:53 2008 +0000 [Sbuild::Conf] Add roles to parse different key subsets commit 95374ad78dd858c5557e10f26c2d9c3c845b2c58 Author: Roger Leigh Date: Mon Dec 15 00:05:24 2008 +0000 [Sbuild::Conf] Add wanna-build configuration with db_ prefix commit ff011c3d182174f48d85eee3653be89d9d7d49c7 Author: Roger Leigh Date: Sun Dec 14 22:40:26 2008 +0000 [wanna-build-merge-*] Rename from do-merge-* commit 6be633a3bc25083bd105746372f239b68784e2b7 Author: Roger Leigh Date: Sun Dec 14 03:22:54 2008 +0000 [build] Install wanna-build-catdb* symlinks commit 6d899809640787a1a3958333dd204b5aaa2b8777 Author: Roger Leigh Date: Sun Dec 14 03:19:21 2008 +0000 [Sbuild::DB] Update module description and copyright dates commit b3fc8dfb96cbdc176b01decc1724d5dfd21a258e Author: Roger Leigh Date: Sun Dec 14 03:18:25 2008 +0000 [wanna-build-catdb] Support MLDBM format databases commit 1ad37c2bbbcdddc974c5c94c268eab05f9dafb9a Author: Roger Leigh Date: Sun Dec 14 02:50:39 2008 +0000 [sbuild-stats] Remove support for avg-pkg-build-* symlinks commit 30a62010d31a8bce1c0480462fd18c3ca8780593 Author: Roger Leigh Date: Sun Dec 14 02:49:53 2008 +0000 [debian] wanna-build: install state directory and script symlinks commit 7ee1dceae160f17364438d9ab20c038eee673110 Author: Roger Leigh Date: Sun Dec 14 02:17:53 2008 +0000 [wanna-build] Reindent parse_quinn_diff regexes commit c2ab50a4f8b59ddf16eec26fb06fbfc585a153b0 Author: Roger Leigh Date: Sun Dec 14 02:17:19 2008 +0000 [wanna-build] import and export _userinfo data commit 5dfb390b872afe3e15c9f33f963a2334bb8469ff Author: Roger Leigh Date: Sun Dec 14 02:15:42 2008 +0000 [wanna-build] Use isin from Sbuild commit 8e3bf427cbf8a97fcf3f839d3b869244cf14919f Author: Roger Leigh Date: Sun Dec 14 01:09:41 2008 +0000 [wanna-build] Fix uninitialised variables commit 078a88b1e3f40697a7bcdcc121f804cb4c489656 Author: Roger Leigh Date: Thu Dec 11 21:09:09 2008 +0000 [Sbuild::DB] New wanna-build database abstraction class commit 22a8bc66dc64b1275644c28a656364f4de98333d Author: Philipp Kern Date: Thu Dec 4 20:14:22 2008 +0100 [Sbuild::Build] add hostname to log output commit 51424d5835235702e2d9d6f44f5538d63cc675ed Author: Roger Leigh Date: Wed Dec 3 01:06:28 2008 +0000 [Sbuild::Build] Use Source: rather than Package: when parsing DSC commit a2a7457bbb783792660447d68848712fa5d8ccbb Author: Roger Leigh Date: Wed Dec 3 00:54:19 2008 +0000 [Sbuild::Build] Split set_dsc version logic into set_version set_version is called after downloading sources with the version set in the DSC file. This prevents the epoch being lost (since it is not part of the downloaded DSC filename, which was previously used to get the version). commit 2745141596f438de9c2603728bd5f62ff1bf9630 Author: Roger Leigh Date: Wed Dec 3 00:37:13 2008 +0000 [Sbuild::Build] set_dsc splits version into epoch, upstream and debian parts The DSC Dir parameter now only uses the upstream part, which will quell dpkg-source warnings about the directory used to unpack the sources containing the debian version. commit 9ff060b7633587b6a7e98c94e137a26b3a4426c6 Author: Roger Leigh Date: Tue Dec 2 23:49:32 2008 +0000 [Sbuild::Build] filter_dependencies apt policy checking fix Check that a package exists in the apt policy results before doing version checks. get_apt_policy returns a hashref rather than a hash. commit 6e717cff0023e877aa46287b1148535033163af9 Author: Roger Leigh Date: Sat Nov 29 23:28:13 2008 +0000 [Sbuild::Build] Don't display "Hack binNMU" message by default commit 95b45d121cf051479ac636414d916db8251ae2ee Merge: 800f332 b065f5a Author: Roger Leigh Date: Sat Nov 29 23:26:35 2008 +0000 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit b065f5a476a2bc5900df1e25f24f26bccbebc81a Author: Philipp Kern Date: Sat Nov 29 21:15:44 2008 +0100 [Sbuild::Build] check if BIN_NMU_VERSION is defined commit ee2f32a4228c3d0faf9a97d26e138ef940e14e43 Author: Luk Claes Date: Sat Nov 29 20:55:21 2008 +0100 Add the binNMU version if any commit 800f3321c8201523ebcf57befc19f9eca74904ac Author: Roger Leigh Date: Sat Nov 29 10:11:09 2008 +0000 [Sbuild::Build] Restore log symlink for non-buildd use commit 4ec8035e34e20bd588e56f663c8bd0736fd7c0f9 Author: Roger Leigh Date: Sat Nov 29 00:35:44 2008 +0000 [Sbuild::Build] uninstall_debs: Don't concatenate array members commit 1e6c59748bd2f349c23eded7318a339654ed0182 Author: Roger Leigh Date: Sat Nov 29 00:34:45 2008 +0000 [Sbuild::Chroot] Remove default use of global environment sbuild sets environment in chroot defaults. commit d1a73cbf35b3d5c05029a26fe553576a6075858e Author: Roger Leigh Date: Sat Nov 29 00:02:49 2008 +0000 [Sbuild::Chroot] Add run_command_internal and run_pipe_internal Needed to define INTCOMMAND without clobbering it if previously set by run_apt_*. commit 6a14627241847129cc8d190b8b0de16e81282a71 Author: Roger Leigh Date: Sat Nov 29 00:02:02 2008 +0000 [sbuild-upgrade] Upgrade rather than update commit 7d6d752310b9f4b08c8bff10f118715499c36a3a Author: Roger Leigh Date: Fri Nov 28 21:11:24 2008 +0000 [TODO] Remove completed items commit da9085830dd6733471509fee0114f8a23cac12c9 Author: Roger Leigh Date: Fri Nov 28 21:07:25 2008 +0000 [Sbuild] Add devnull stream commit ac36369c8e049f44c2177288c746b746b8150aae Author: Roger Leigh Date: Fri Nov 28 21:06:35 2008 +0000 [sbuild] Set default chroot command I/O streams commit ec49ae9cc6669b9a60d04b0a9186181b93748153 Author: Roger Leigh Date: Fri Nov 28 21:08:39 2008 +0000 [Sbuild::Chroot] Update to use command defaults - Redirect streams if set in command hash or in command defaults - Set environment correctly - Set split mode APT command correctly - ChrootSchroot and ChrootSudo handle host commands correctly - ChrootSudo re-quotes argv for su shell execution commit 15fa28a7494dbc1ea2ffe2fa3da830a2e382b73b Author: Roger Leigh Date: Fri Nov 28 21:05:27 2008 +0000 [bin/sbuild-*] Update utilities to use new chroot exec hash functions commit efc3a0cbfec037248034aa526ac5c9d411bf4617 Author: Roger Leigh Date: Fri Nov 28 21:01:46 2008 +0000 [Sbuild::Conf] Fix typo in sudo sanity checks commit d561e9949fa1602be8f0e61f4d13052578bedb65 Author: Roger Leigh Date: Fri Nov 28 21:00:54 2008 +0000 [Sbuild::ChrootInfoSudo] Add get_info method commit e25f798dc248d920dc163683909735424242c03d Author: Roger Leigh Date: Fri Nov 28 20:59:06 2008 +0000 [Sbuild::Base] Log to STDERR if Log Stream is unset commit 68adb64c25730c6f1fd47ad4e314a46fa6f8fa4f Merge: a88e709 2d0d8dd Author: Roger Leigh Date: Fri Nov 28 13:56:53 2008 +0000 Merge branch 'master' into chroot-exec-hash2 commit 2d0d8dd7a21e1e417c6cf0ede383e5ad32022cd5 Author: Roger Leigh Date: Fri Nov 28 13:55:14 2008 +0000 [sbuild] Set build Log Stream before and after opening build log commit a88e7096186491b9d0f2eb0e996137b36339d291 Merge: 92d7501 35883e6 Author: Roger Leigh Date: Fri Nov 28 13:43:52 2008 +0000 Merge branch 'master' into chroot-exec-hash2 Conflicts: lib/Sbuild/Chroot.pm commit 35883e645d5f22a883e2d16333ac5f511939dd96 Author: Roger Leigh Date: Fri Nov 28 13:28:39 2008 +0000 [Sbuild::Build] Don't default Arch; it must come from chroot_arch() commit d96b06307aadc51ab7b0d228e5a1252614064f1c Author: Roger Leigh Date: Fri Nov 28 13:25:50 2008 +0000 [Sbuild::Conf] Allow ARCH default specification as $arch commit 0c0b22289b0880022381d5829aa07492e7ab3d63 Author: Roger Leigh Date: Fri Nov 28 13:21:34 2008 +0000 [Sbuild::Conf] Rename USER_ARCH to ARCH commit 850c881527bf89c57da7420095413e3b3c2fc6ac Author: Roger Leigh Date: Fri Nov 28 13:18:22 2008 +0000 [Sbuild::Conf] Rename ARCH to HOST_ARCH commit 05f19e48a6f63429f77c43e47eddf0c7bbf7a5fa Author: Roger Leigh Date: Fri Nov 28 13:14:02 2008 +0000 [Sbuild::Build] Use chroot-specific Arch in favour of global ARCH commit 92d7501acac145e75003281645d796f979aaadd6 Merge: 2b1231d e176d54 Author: Roger Leigh Date: Fri Nov 28 12:23:39 2008 +0000 Merge branch 'master' into chroot-exec-hash commit e176d541cc363283f6aca543ff8a8e2cb0aa88d9 Author: Luk Claes Date: Fri Nov 28 12:44:44 2008 +0100 Also show the architecture in the subject commit 29ea88b2dea55224a640244bad32467c92cf5de4 Author: Luk Claes Date: Fri Nov 28 11:42:36 2008 +0100 Temporarily make ARCH user configurable commit e0424f9c957586aed6d123bd9f207b29f97e78d0 Author: Luk Claes Date: Fri Nov 28 10:28:27 2008 +0100 Don't barf when main::current_job is not set commit 60fb8e6850ad1b2822ae8b6b1c0ab6f826b87125 Author: Philipp Kern Date: Fri Nov 28 10:16:38 2008 +0100 [Sbuild::Options] tell getopt that --archive needs a string argument commit 13f40aa248a07b1a588f3ec8d12653006f5b8059 Author: Philipp Kern Date: Thu Nov 27 20:49:29 2008 +0100 [Sbuild::Options] correct a typo commit 15f02471ac9db4fb6dbc50780fd0a35229632f17 Author: Philipp Kern Date: Thu Nov 27 20:48:45 2008 +0100 [Sbuild::Conf] declare $archive commit ecf47d17540569730d4ea8b8523d47ef7bb46fdb Author: Luk Claes Date: Thu Nov 27 19:44:52 2008 +0100 Multiple archive support commit 6d1f3dcb6e4b1b9d8ce86618f3cabfaa3d7d2673 Author: Riku Voipio Date: Tue Nov 25 21:26:41 2008 +0000 [buildd-mail] Decode Base64 and quoted-printable mail Signed-off-by: Roger Leigh commit e3686a370e51461151861659c356f3df5404c5ef Author: Kumar Appaiah Date: Tue Nov 18 22:44:25 2008 +0000 [man] sbuild.1.in: Document --use-snapshot Thanks to Kumar Appaiah for this patch. Signed-off-by: Roger Leigh commit 2b1231d0ff8adf60a8a5f28ecdb5f47a738365b2 Author: Roger Leigh Date: Tue Nov 11 00:10:48 2008 +0000 [Sbuild::Chroot] pipe_command can open pipes in both directions Piping is now possible in (stdout from child to parent) or out (parent to child stdin) using the PIPE command option. commit 74c2c35b45b96830157521ed4b0fe82e9867e284 Author: Roger Leigh Date: Tue Nov 11 00:09:53 2008 +0000 [Sbuild::Build] Pass files with correct pathnames to check_space check_space now always runs on the host commit 692933a9fa2eedce0fdf401e77a397d5b72cdaaa Author: Roger Leigh Date: Mon Nov 10 23:16:35 2008 +0000 [Sbuild::Chroot] _command functions take single hash argument commit f95ac6af7c9f4d9e07d07310f0fcd9f8ca8e90fe Author: Roger Leigh Date: Sun Nov 9 21:52:31 2008 +0000 [debian] compat: Update to debhelper version 7. debian/control: Build-Depend on debhelper 7. commit 623b23020380e891a52cfc7e4afa2c14b6c20c31 Author: Roger Leigh Date: Sun Nov 9 21:50:53 2008 +0000 [debian] rules: Clean up old unused code Also correct patching of config.status and config.guess. commit c8efa2815c4d93b6e351bacf35b26bc51e1bf056 Author: Roger Leigh Date: Sun Nov 9 21:26:50 2008 +0000 [Sbuild::Build] Improve startup message logging File lists at build end use subsubsections to log package names. commit 90dd74524e5f5cbf21ee636ceea4180fbfb0262e Author: Roger Leigh Date: Sun Nov 9 20:32:37 2008 +0000 [Sbuild::Build] Use chroot pipe functions Replace use of IPC::Open3 with Sbuild::Chroot pipe functions. This handles piping, logging correctly in all cases. DEVNULL stream removed from sbuild, now reimplemented in Sbuild::Chroot. commit 0d9d909ee580ac0abf9fb3f8d4ec0028ca024637 Author: Roger Leigh Date: Sun Nov 9 20:28:49 2008 +0000 [Sbuild::Chroot] Add pipe functions pipe_command and pipe_apt_command underlie the current run_command and run_apt_command functions, and call exec_command in the child process. These redirect stdin, stdout, and stderr appropriately. Logging functions moved from Sbuild::Build to Sbuild::Base, so any derived class can use the log stream. The build log stream is set in the chroot object after creation. commit 0b027c1f32017ee5d32f4d2e0313b6a072117126 Author: Roger Leigh Date: Sun Nov 9 20:22:51 2008 +0000 [Sbuild::Log] Rename SAVED_STDERR to main::SAVED_STDERR commit a19e3f90143dc07673ca9e23fa846c9285e3d04d Author: Roger Leigh Date: Sun Nov 9 20:21:55 2008 +0000 [Sbuild] Move send_mail from Sbuild::Build commit b2bed97c17e8f2cdc340098bd373e9bb6f6ee0be Author: Roger Leigh Date: Sat Nov 8 14:49:28 2008 +0000 [Sbuild::Log] close_log takes Sbuild::Conf as an argument commit 8ac73f1498ba5a0766bc4c75e4b885b4d3ad3068 Author: Roger Leigh Date: Sun Nov 9 13:10:25 2008 +0000 [Sbuild::Log] Remove *_pkg_log, log_symlink and send_mail These functions are now merged into Sbuild::Build commit 6491a380e91bf44079028b199cb024b26aa7ea9e Author: Roger Leigh Date: Sat Nov 8 14:45:50 2008 +0000 [Sbuild::Conf] Be verbose by default on a tty Move from sbuild, to allow user to override. commit b0913071f7ef1f6d2b8c0a23b8da7cb1a14f6e5d Author: Roger Leigh Date: Sun Nov 9 13:04:12 2008 +0000 [Sbuild::Build] Merge Sbuild::Log::*_pkg_log into *_build_log Sbuild::Log saves STDOUT to main::SAVED_STDOUT instead of SAVED_STDOUT to make it accessible to other code. commit f4cb3520c9db209d01db560b4cb6e4723f884cfe Author: Roger Leigh Date: Sun Nov 9 13:03:34 2008 +0000 [Sbuild::Conf] Override MAINTAINER_NAME only if unset commit a47d89036198897f9125a7276c7e036fdb6f1d58 Author: Roger Leigh Date: Sun Nov 9 13:02:50 2008 +0000 [Sbuild::Conf] Add LOG_DIR_AVAILABLE commit e82ee2b9390b7f95e71bca9d4251160b120ffbf4 Author: Roger Leigh Date: Sun Nov 9 11:14:49 2008 +0000 [Sbuild::Build] Add and use log_info, _warning and _error functions commit c3143a1700822da934eaa45a4aa6c74477fa7510 Author: Roger Leigh Date: Mon Oct 13 00:30:04 2008 +0100 [Sbuild] Move debug logic from Sbuild::Build Sbuild::Conf sets global debugging state commit 2baf96c4da6fca7a90a4d84384c076e855299c33 Author: Roger Leigh Date: Sun Oct 12 19:32:56 2008 +0100 [Sbuild::Build] Set 'Sub PID' to undef commit db25caae9e230cdee841f9817f5d8ff60bc29e7b Author: Roger Leigh Date: Sun Oct 12 19:09:29 2008 +0100 [TODO] Remove completed items, add new item commit bbb85a66ff73d268f52e9d77beb474cf6e718bae Author: Roger Leigh Date: Sun Oct 12 19:06:45 2008 +0100 [Sbuild::Build] set_dsc: Add debugging message commit f4eb70bec598bb57e9e0c7679a1986bf79be9522 Author: Roger Leigh Date: Sun Nov 9 11:10:23 2008 +0000 [Sbuild::Build] build: Don't access member data directly commit 7e05780199144eafb87b7e2b53f060a4fd729883 Author: Roger Leigh Date: Sun Nov 9 11:09:39 2008 +0000 [Sbuild::Build] Use get and set methods outside strings commit b41da7dddac3c9866b668a6e9cab0bbab368a13b Author: Roger Leigh Date: Sun Nov 9 11:04:45 2008 +0000 [PATCH] [Sbuild::Build] Add log and debug functions Rather than using PLOG and STDERR directly, add logging functions to abstract logging. Also use build get and set functions in sbuild. commit 9b2e4b124414a0ecbce0160b57199121b9dd5f66 Author: Roger Leigh Date: Wed Oct 1 00:27:23 2008 +0100 [Sbuild] check_packages takes a chroot argument directly commit facb2b0dd3c540f34aaf167e7d0d54d3e2586d5a Author: Roger Leigh Date: Tue Sep 30 22:49:40 2008 +0100 [Sbuild] Move package checking from sbuild-checkpackages sbuild-createchroot now calls check_packages to set initial packages reference list after chroot creation. commit cbf1d41c38847051bf684a93b3b77499423db01d Author: Roger Leigh Date: Tue Sep 30 22:49:19 2008 +0100 [Sbuild::ChrootPlain] Always use split mode commit 25e134e4c65dbfae4a9b6c9403ace3c63c10c6f9 Author: Roger Leigh Date: Tue Sep 30 22:48:37 2008 +0100 [Sbuild::Utility] Use new Sbuild::ChrootInfo chroot creation commit a2e6716f315252816a15d6901b2aef7eee4eca91 Author: Roger Leigh Date: Tue Sep 30 21:25:07 2008 +0100 [TODO] Remove completed item commit 22409663cd7233dd4f3531829c5a78147060b51c Author: Roger Leigh Date: Tue Sep 30 21:23:21 2008 +0100 [Sbuild::ChrootPlain] Fix to match new chroot interface Use in sbuild-createchroot to update package lists commit b0aaeb35eb59fdc05949a2ebbd3c54775bdd31dd Author: Roger Leigh Date: Tue Sep 30 21:22:15 2008 +0100 [Sbuild::ChrootSudo] Remove redundant use of ChrootInfoSudo commit 77c0d179d41ebe3bf1dc9336521df95be6215768 Author: Roger Leigh Date: Tue Sep 30 21:21:06 2008 +0100 [sbuild] Refer to chroot, rather than schroot in message commit 720176b07d5bbaec2f3c25efc2cb2b42d9025081 Author: Roger Leigh Date: Mon Sep 29 23:23:21 2008 +0100 [Sbuild::ChrootInfo] Add create factory function to create chroots commit 2570eb5a05e6b2505915181c365fe8881ec56f22 Author: Roger Leigh Date: Sun Sep 28 19:31:47 2008 +0100 [sbuild-createchroot] Use POSIX calls instead of system where appropriate commit 8c0292ece3826e1daeea704624268a9e4ac970d5 Author: Roger Leigh Date: Sun Sep 28 17:05:57 2008 +0100 [sbuild-adduser] Document sudo tasks and update user instructions User instructions now refer to helper programs in /usr/bin. commit ed36a780817b1e8df76ae0ff04f640942b7b6d9a Author: Roger Leigh Date: Sun Sep 28 17:05:26 2008 +0100 [sbuild-createchroot] Add sudo setup tasks and use new Sbuild::Conf commit 553a001014b5fd248e38eec1ed2819bfbb0d3249 Author: Roger Leigh Date: Sun Sep 28 17:01:14 2008 +0100 [man] Document /etc/sbuild/chroot commit d89b4ebaca73910509e1e59887d6815df5f1eeed Author: Roger Leigh Date: Sun Sep 28 16:58:50 2008 +0100 [Sbuild::ChrootInfoSudo] Look for sudo chroots in /etc/sbuild/chroot Look in /etc/sbuild/chroot in user mode, and in the current dir in buildd mode. commit c4372d5e7524da2ec5088ae68673c2f5b937d948 Author: Roger Leigh Date: Sun Sep 28 16:58:14 2008 +0100 [Sbuild::Log] Only create log symlinks in buildd mode. commit bd415ac39b66adc07b1b966f5246cce75a07796c Author: Roger Leigh Date: Sun Sep 28 16:57:44 2008 +0100 [etc] Document expanded use of $sbuild_mode commit 506bc431fb7d231ef5c330a81954aeb41cd78f8d Author: Roger Leigh Date: Sun Sep 28 13:49:17 2008 +0100 [Sbuild::Chroot] Remove debugging statements commit 9f63af855b130074b701316e39c0f4d2241b65cc Author: Roger Leigh Date: Sun Sep 28 11:56:10 2008 +0100 [Sbuild] Remove explicit namespace use in BEGIN block commit 6b99b0c8f912c4f8740af66258276d3ac658bdf9 Author: Roger Leigh Date: Sun Sep 28 11:06:59 2008 +0100 [Sbuild::Utility] Use Sbuild::ChrootSchroot and Sbuild::ChrootSudo commit a462d19bdd6a40ef59f7bccc0c30d29695d9743f Author: Roger Leigh Date: Sun Sep 28 11:06:39 2008 +0100 [Sbuild] Don't include Sbuild::Conf (circular use) commit 8e03bc2b82b4d35a1741614df9f8de84c9f7304a Author: Roger Leigh Date: Sun Sep 28 11:05:56 2008 +0100 [man] Remove incorrectly added patch rejects commit 904d2f9454480e76720bf425b9a6d0a51b042639 Author: Roger Leigh Date: Sun Sep 28 01:47:43 2008 +0100 [build] Distribute new perl modules commit a9e54d1d8e53c82fe85f08b334af4596c5395ddd Author: Roger Leigh Date: Sat Sep 27 22:57:21 2008 +0100 [Sbuild::Conf] Default MAINTAINER_NAME to DEBEMAIL if set in environment commit 2a4bdbb0da3dc06cc1210c37804d97cd50217b7c Author: Roger Leigh Date: Sat Sep 27 22:56:47 2008 +0100 [man] sbuild.1.in: Document DEBEMAIL default for maintainer name commit b06776951f696d4a8d49d3c5825cf5362049911a Author: Roger Leigh Date: Sat Sep 27 22:56:17 2008 +0100 [TODO] Remove completed items commit 9fa24be0b86b26f55d18f8fd2ee5cbae0a746c4b Author: Roger Leigh Date: Sat Sep 27 22:52:29 2008 +0100 [etc] Update $maintainer_name documentation commit 300026d49ca9202eedf7f5688aa76284bce124ff Merge: 8cc4945 49ccd83 Author: Roger Leigh Date: Sat Sep 27 22:48:35 2008 +0100 Merge branch 'sudo-branch' of /home/rleigh/sbuild/ into sudo-branch commit 8cc494583af5fc604902e5d338a3a63a74fe8733 Author: Roger Leigh Date: Sat Sep 27 22:48:09 2008 +0100 [debian] control: Depend on schroot or sudo, update minimum schroot version commit 49ccd8395862285e7b15beead2e52b3e2af270c7 Author: Roger Leigh Date: Sat Sep 27 22:31:52 2008 +0100 [NEWS] Document CHROOT_MODE and CHROOT_SPLIT commit 5b14c3cf6f42a4a9328b5aa421e47540255f0d50 Author: Roger Leigh Date: Sat Sep 27 22:28:39 2008 +0100 [Sbuild::Chroot] Introduce CHROOT_SPLIT CHROOT_SPLIT allows apt/dpkg to be run outside the chroot for all chroot types. sudo may now run entirely in the chroot. schroot may run split, but needs sudo for root access outside the chroot. commit a14229b5871c2819b02d1f283e2afd0faada214e Author: Roger Leigh Date: Sat Sep 27 22:25:46 2008 +0100 [Sbuild::Chroot] Don't strip 'APT Options' in debugging messages commit fd9e511b9082fce0abd69a97d98fb6c98d55b28f Author: Roger Leigh Date: Thu Sep 25 23:04:13 2008 +0100 [Sbuild::Chroot] Remove redundant chdir calls commit fca323478bd467c0271f0d1314ef322393494b9e Author: Roger Leigh Date: Tue Sep 23 22:28:23 2008 +0100 [Sbuild::Chroot] Add apt_chroot virtual function to remove code duplication commit 5557666211e639ce5280c34a9c23ecf42a9ec72e Author: Roger Leigh Date: Tue Sep 23 21:45:34 2008 +0100 [Sbuild::Chroot] Move chroot-type-specific code into derived classes Move schroot-specific code into Sbuild::ChrootSchroot. Copy for Sbuild::ChrootSudo but merge old sudo code. commit e2b4fedf82762acdbbfdc77295476f9a80e53547 Author: Roger Leigh Date: Tue Sep 23 21:44:39 2008 +0100 [sbuild] Only print USER_ARCH when debugging if defined commit 1c9e05f2012c64a9d1686291c876ee211112771a Author: Roger Leigh Date: Tue Sep 23 19:29:02 2008 +0100 [Sbuild::ChrootInfo] Move get_info_all to derived classes, and specialise commit ab82d39a12fc29b8d5b393ac1a9532dae3df6be7 Author: Roger Leigh Date: Tue Sep 23 19:27:37 2008 +0100 [etc] sbuild.conf: Update header comments commit 864e66fe7b96e27d478ba8beb49f2848960a611e Author: Roger Leigh Date: Tue Sep 23 19:25:31 2008 +0100 [Sbuild::Conf] Don't default USER_ARCH to ARCH This prevents Sbuild::ChrootInfo::find from finding the chroot when the arch is not specified, because this requires USER_ARCH to be undefined in order to not fail. If ARCH is defined, it is required to be found. commit c1c453d182164dc08574b7d80941166d73a7712d Author: Roger Leigh Date: Tue Sep 23 00:36:07 2008 +0100 [Sbuild::Chroot] Subclasses set subclassed ChrootInfo commit 98f792924fd6e6392e9f2d4d175547947f4edc18 Author: Roger Leigh Date: Tue Sep 23 00:35:13 2008 +0100 [Sbuild::ChrootInfoSchroot, Sbuild::ChrootInfoSudo] Add new subclasses of Sbuild::ChrootInfo commit 3ad11c7b01ff86ac563b52b46bf6e88ac512cb8e Author: Roger Leigh Date: Tue Sep 23 00:24:08 2008 +0100 [TODO] Add items for sudo support commit 9c76f2e7dec7374fb58a224f96f8ec01dc549670 Author: Roger Leigh Date: Mon Sep 22 22:45:47 2008 +0100 [Sbuild::Chroot] Update comments regarding root use of host system commit f47af0c1d78ff31b9f3f56c40557590dc2dd2a83 Author: Roger Leigh Date: Mon Sep 22 22:45:30 2008 +0100 [Sbuild::Conf] Add sudo sanity checking commit b826a6197cc51ab0d85ee8f330d01d7ebd13771b Author: Roger Leigh Date: Mon Sep 22 22:44:27 2008 +0100 [man] sbuild-setup.7: Document sudo setup commit 2ce3bb19e287c32e5a1052da774d88db6f8dd653 Author: Roger Leigh Date: Mon Sep 22 22:07:22 2008 +0100 [etc] sbuild.conf: Add $sudo and document $chroot_mode commit 5c699c42529d36a31261ad29a423ab900abf8e62 Author: Roger Leigh Date: Mon Sep 22 20:56:10 2008 +0100 [Sbuild::Base] New class containing common class functionality Sbuild::Build, Sbuild::Chroot, Sbuild::ChrootInfo and Sbuild::Options derive directly from this base class, eliminating duplicated code for common get/set functions for local and configuration variables. commit 4edb6bdc714755c9ad4720539abadd2104e083ee Author: Roger Leigh Date: Mon Sep 22 20:37:58 2008 +0100 Derived classes' constructors chain up to parent class constructors commit 94d33ec6dbcb1634fea7c73b3389d2f8d9af0207 Author: Roger Leigh Date: Mon Sep 22 10:02:49 2008 +0100 [Sbuild::ChrootSchroot, Sbuild::ChrootSudo] Add new classes Derived from Sbuild::Chroot commit d0243f6daaffc7ebb99cbffdea5b21ff87de3826 Author: Roger Leigh Date: Mon Sep 22 09:58:20 2008 +0100 [Sbuild::Conf] GCC_SNAPSHOT defaults to 0 commit f1ede44288de2f6a3d7db6a54b9db85106b08c8d Author: Roger Leigh Date: Mon Sep 22 09:43:34 2008 +0100 [Sbuild::Conf] Re-add $chroot_mode commit d44ec9359be1e4fab7f2e79ee56390aa496e3ccf Author: Roger Leigh Date: Mon Sep 22 09:27:47 2008 +0100 Use perl class methods to construct objects commit efca075185cd92942e135e3d6f0f874e8b886fef Author: Roger Leigh Date: Sun Sep 7 15:12:05 2008 +0100 [Sbuild::Build] Don't use Sbuild::Options commit 87221274a5b158f1e434771cc6f8cb540daaeecd Author: Roger Leigh Date: Sun Sep 7 15:10:56 2008 +0100 [Sbuild::Conf] Move SIGNING_OPTIONS from sbuild commit ab768d78207bc4d7fdd1dd098b81933f02f85127 Author: Roger Leigh Date: Sun Sep 7 14:51:49 2008 +0100 [Sbuild::Conf] Move validation logic from Sbuild::Options commit dba3de63c48c046344271956c9ad5f76f4fa0943 Author: Roger Leigh Date: Sun Sep 7 14:40:47 2008 +0100 [Sbuild::Conf] Move GCC_SNAPSHOT from Sbuild::Options commit 8d2f5866ee1749190f9b47d412a5f602f86f238c Author: Roger Leigh Date: Sun Sep 7 14:22:48 2008 +0100 [Sbuild::Conf] Move LD_LIBRARY_PATH from Sbuild::Options commit db05e4cf945abd414be4d9c217c921400b8a1158 Author: Roger Leigh Date: Sun Sep 7 13:58:22 2008 +0100 [Sbuild::Conf] Move CHROOT from Sbuild::Options commit 602bf5b7929f860504f299e59ef2777ee1596e51 Author: Roger Leigh Date: Sun Sep 7 13:43:44 2008 +0100 [Sbuild::Conf] Move BIN_NMU and BIN_NMU_VERSION from Sbuild::Options commit 2228b4c8c9bfcb7b31f9c5586f69066f68836977 Author: Roger Leigh Date: Sun Sep 7 11:17:03 2008 +0100 [Sbuild::Conf] Move BUILD_SOURCE from Sbuild::Options commit 3eac0bd75779e6c0cf139944c8431058d12b07bd Author: Roger Leigh Date: Sun Sep 7 11:05:26 2008 +0100 [Sbuild::Conf] Move MANUAL_SRCDEPS from Sbuild::Options commit e97c119c82fcd82146114bfd8af6c137527bf2d3 Author: Roger Leigh Date: Sun Sep 7 10:47:07 2008 +0100 [Sbuild::Conf] Move BATCH_MODE from Sbuild::Conf commit 8c3eedf9e83e922a43896d4d889c60d57a0c4387 Author: Roger Leigh Date: Sun Sep 7 10:31:57 2008 +0100 [Sbuild::Conf] Move AUTO_GIVEBACK* and WANNABUILD_DATABASE from Sbuild::Conf commit 5ae832c07b1970e0a6594be5dd44649c0cda6428 Author: Roger Leigh Date: Sun Sep 7 01:17:20 2008 +0100 [Sbuild::Conf] Move BUILD_ARCH_ALL from Sbuild::Options commit 6cfcdae55f68c883d646a1876986283ab314dd51 Author: Roger Leigh Date: Sun Sep 7 01:05:18 2008 +0100 [Sbuild::Conf] Move DISTRIBUTION and OVERRIDE_DISTRIBUTION from Sbuild::Options commit 15899e3189e3580bb1704bfc0cc7b53b37a9e362 Author: Roger Leigh Date: Sun Sep 7 00:04:32 2008 +0100 [Sbuild::Conf] Move USER_ARCH from Sbuild::Options commit 55dbdf34d3422799552f42d678fca7f9c652270f Author: Roger Leigh Date: Sat Sep 6 23:09:39 2008 +0100 [Sbuild::Options] Add get_conf and set_conf methods commit 7f9cb30656f81aef6c6ca514ed7e53beace2ded4 Merge: 8ace4d8 28e2fb2 Author: Roger Leigh Date: Sat Sep 6 20:22:43 2008 +0100 Merge branch 'conf-object' commit 28e2fb2ac1c7e91852026e50e4a6ebeda8676b5c Author: Roger Leigh Date: Sat Sep 6 20:18:04 2008 +0100 [TODO] Add new items commit c7d7b18cd5e066a0f6954865e24103c08033c293 Author: Roger Leigh Date: Sat Sep 6 19:48:37 2008 +0100 [Sbuild::Conf] Move globals into read_config commit 6d3a7deae0aec7eb6f804a1f7be72c61a39e7d75 Author: Roger Leigh Date: Sat Sep 6 18:12:29 2008 +0100 [Sbuild::Conf] Remove initialisation functions commit f8d612ccb462a24e084ece1c091e7d542e7ef360 Author: Roger Leigh Date: Sat Sep 6 18:09:29 2008 +0100 [Sbuild::Conf] Don't export %watches commit ecf17fb355b82d02f4e9961ddc1aeac9467f84ee Author: Roger Leigh Date: Sat Sep 6 17:42:56 2008 +0100 [Sbuild::Conf] Don't export , , or commit eb98ee56369fa5f44d420c508fbd4a916bcf7104 Author: Roger Leigh Date: Sat Sep 6 15:59:37 2008 +0100 [Sbuild::Conf] Don't export /home/rleigh/bin /home/rleigh/bin /usr/local/bin /usr/bin /bin /usr/bin/X11 /usr/games commit 46252effad307571563e8b68718b96654afab597 Author: Roger Leigh Date: Sat Sep 6 15:21:14 2008 +0100 [Sbuild::Conf] Don't export commit bc6d782275ba13531f950319df21b7cb5769bd58 Author: Roger Leigh Date: Sat Sep 6 15:18:16 2008 +0100 [Sbuild::Conf] Don't export commit 493a45e8d5f1026cfbf9bdb8123af74a288ae645 Author: Roger Leigh Date: Sat Sep 6 14:48:29 2008 +0100 [Sbuild::Conf] Don't export commit cce8ca9d39961de52d99e7d7463527069424a9aa Author: Roger Leigh Date: Mon Sep 1 21:34:36 2008 +0100 [Sbuild::Conf] Don't export commit 582c1fa8a7a6ae5aa505fea04ad5fd996e272940 Author: Roger Leigh Date: Mon Sep 1 21:27:26 2008 +0100 [Sbuild::Build] Add missing variable in write_stats commit c3214aec92953fe932025fc97adef63218e3a39f Author: Roger Leigh Date: Mon Sep 1 21:26:30 2008 +0100 [Sbuild::Conf] Don't export @ignore_watches_no_build_deps commit 5fb7b377940152f63b7eaf04267507b4aa1c1750 Author: Roger Leigh Date: Mon Sep 1 21:23:16 2008 +0100 [Sbuild::Conf] Don't export $max_lock_trys or $lock_interval commit 8be1c9b63c5aab6d41dfdd9af06f1052ce5acbd9 Author: Roger Leigh Date: Mon Sep 1 21:16:06 2008 +0100 [Sbuild::Conf] Don't export $srcdep_lock_wait commit 86a8c6f2f5ad6b8615d2943636f5ee0cf69e25d1 Author: Roger Leigh Date: Mon Sep 1 21:13:45 2008 +0100 [Sbuild::Conf] Don't export $srcdep_lock_dir commit 6e92e91d5e11b6cd337041e4a6818de65a67bb3d Author: Roger Leigh Date: Mon Sep 1 21:07:58 2008 +0100 [Sbuild::Conf] Don't export $stalled_pkg_timeout or %individual_stalled_pkg_timeout commit 7199cfbdfe31595428455a279cbace3df79b1573 Author: Roger Leigh Date: Mon Sep 1 21:02:05 2008 +0100 [Sbuild::Conf] Don't export @toolchain_regex commit 1c028626d2c5f92566d5dce14a114de97b64cc4b Author: Roger Leigh Date: Mon Sep 1 20:57:54 2008 +0100 [Sbuild::Conf] Correct typo in DCMD diagnostic commit bc0ad01b834077ceafae9d2242ebeb6208636c68 Author: Roger Leigh Date: Mon Sep 1 20:56:30 2008 +0100 [Sbuild::Conf] Don't export $purge_build_directory commit f30f395afea8e3a82839ef37e08df895b50fea8d Author: Roger Leigh Date: Mon Sep 1 20:38:32 2008 +0100 [Sbuild::Conf] Don't export $check_depends_algorithm commit c36605e5549a6d64c46a15cc5b8a61029e899dd6 Author: Roger Leigh Date: Mon Sep 1 20:11:10 2008 +0100 [Sbuild::Conf] Remove unused @no_auto_upgrade commit 748b80dac838971fcd41522d78b36c1af9afb6f5 Author: Roger Leigh Date: Sun Aug 31 21:38:03 2008 +0100 [Sbuild::Conf] Don't export $mailfrom commit 151fc53f2f27e32434d89bea9738bdae5159951d Author: Roger Leigh Date: Sun Aug 31 21:34:46 2008 +0100 [Sbuild::Conf] Don't export $mailto, and support %mailto commit 0020050d05b72cc1c3e15fd9317e2f20d7a9941a Author: Roger Leigh Date: Sun Aug 31 21:21:15 2008 +0100 [Sbuild::Conf] Don't export $log_dir commit 5c89a38a951aba78731fe9d7518bf08622f1b6ff Author: Roger Leigh Date: Sun Aug 31 21:06:11 2008 +0100 [Sbuild::Conf] Don't export $pgp_options commit 36c1bce55ee536a9b566769a3329e6884801cb92 Author: Roger Leigh Date: Sun Aug 31 21:02:17 2008 +0100 [Sbuild::Conf] Don't export $build_env_cmnd commit 2ed9a86edfb4c7e93246b74ca8e4c23deeb122eb Author: Roger Leigh Date: Sun Aug 31 20:57:54 2008 +0100 [Sbuild::Conf] Don't export $package_checklist commit 08dcf8c669f20bac106e940da0a249478192f91c Author: Roger Leigh Date: Sun Aug 31 20:55:05 2008 +0100 [Sbuild::Conf] Don't export $avg_time_db, $avg_space_db and $stats_dir commit edddf90f7c8f128a1222cc46d16b854f6e268446 Author: Roger Leigh Date: Sun Aug 31 20:35:45 2008 +0100 [Sbuild::Conf] Don't export $avg_time_db and $avg_space_db commit 654a9da9aa8cfb0af1bf506d4bfe610926c9b53b Author: Roger Leigh Date: Sun Aug 31 19:00:36 2008 +0100 [Sbuild::Conf] Don't export $md5sum commit 62fa43afef5a4af74e1283082a25f4b2fbdb3cd4 Author: Roger Leigh Date: Sun Aug 31 18:58:53 2008 +0100 [Sbuild::Conf] Don't export $dcmd commit dfe00b7d1ee4bcaecfd037f8888df40eea1818a3 Author: Roger Leigh Date: Sun Aug 31 18:48:49 2008 +0100 [Sbuild::Conf] Don't export $dpkg_source commit bc4824859c5d3906c678dc68e553c288d01a08af Author: Roger Leigh Date: Sun Aug 31 18:31:01 2008 +0100 [Sbuild::Conf] Don't export $apt_get or $apt_cache commit 11c0ca22fbf3cf3b1dc5d33609664a135ad133bd Author: Roger Leigh Date: Sun Aug 31 15:06:03 2008 +0100 [.gitignore] Ignore emacs temporary files commit 560d5b857e344cf04362e1aa4c6842382100e4fc Author: Roger Leigh Date: Sun Aug 31 15:05:40 2008 +0100 [Sbuild::Conf] Don't export $schroot, $schroot_options or $fakeroot commit e06cc9fa0e449276701d3934f2c90dff0a03ac11 Author: Roger Leigh Date: Sun Aug 31 14:51:01 2008 +0100 [Sbuild::Conf] Don't export $su commit fb99ea7bb872068e68193bedcd686c9415782da9 Author: Roger Leigh Date: Sun Aug 31 14:50:11 2008 +0100 [Sbuild::Conf] Don't export $dpkg commit 8e134ecabaf8b2e8ffc87a94efe2b5b474086497 Author: Roger Leigh Date: Sun Aug 31 11:13:35 2008 +0100 [Sbuild::Conf] Move ARCH and HOSTNAME from Sbuild::Sysconfig commit ff2c8e983f2587393f3991d7218414ff7695bca1 Author: Roger Leigh Date: Sat Aug 30 12:11:17 2008 +0100 [Sbuild::ChrootInfo] Convert to object-oriented perl commit 99e91163599630fcb5e8866dec6aba71ddf01796 Author: Roger Leigh Date: Sat Aug 30 11:34:54 2008 +0100 [Sbuild::Utility] Don't use global $main::conf commit 1252ca888cd2551c3d77a777ea11f80d1b5a2c22 Author: Roger Leigh Date: Thu Aug 28 23:18:01 2008 +0100 [Sbuild::Conf] Don't export $mailprog commit b899e9580b2335038960f13678b900162d5f477a Author: Roger Leigh Date: Thu Aug 28 23:11:40 2008 +0100 [Sbuild::Conf] Don't export $nolog commit 8be90688395271d2d1375ef95c77c479f81559d7 Author: Roger Leigh Date: Thu Aug 28 22:58:23 2008 +0100 [Sbuild::Conf] Don't export $verbose commit 8ace4d8be3b0da0a1e54d10ed5b3bce58910438a Merge: 8779030 185b93a Author: Roger Leigh Date: Wed Aug 20 01:04:42 2008 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild commit ddb04eeb66cc3d8a72b84805791a189475b1ed06 Author: Roger Leigh Date: Tue Aug 19 19:37:59 2008 +0100 [Sbuild::Conf] Don't export $username commit 185b93a466b91d044fadffc57a531454cfcf9bcf Author: Roger Leigh Date: Mon Aug 18 11:14:30 2008 +0100 [man] sbuild-setup.7 changes ownership of /build to 02775 commit 4599db8ef75c97f7705c41a2dcff01e7eb6819e5 Author: Cyril Brulebois Date: Mon Aug 18 11:08:36 2008 +0100 [sbuild-createchroot] Correctly parse --arch option Signed-off-by: Roger Leigh commit af51286ed07d0f5980cec6321d1b5f0cd955626a Author: Roger Leigh Date: Sun Aug 17 23:00:34 2008 +0100 [sbuild-checkpackages] Replace $cmd with $mode commit b811079b9d5be6b9e8e0cc8c433b2eeb84b1df15 Author: Roger Leigh Date: Sun Aug 17 23:00:34 2008 +0100 [sbuild-checkpackages] Replace $cmd with $mode commit d4b89394ec46b4285768dc18502927f814d8d20d Author: Roger Leigh Date: Sun Aug 17 22:56:31 2008 +0100 [Sbuild::Conf] Don't export $cwd Sbuild::Utility::setup needs to be passed Sbuild::Conf to create Sbuild::Chroot. This hence requires all utilities using Sbuild::Utility to create an Sbuild::Conf. commit 8cfdc7051b186ace66248492c54e219c87b1297f Author: Roger Leigh Date: Sun Aug 17 22:39:42 2008 +0100 [Sbuild::Conf] Don't export $check_watches commit b7f55583148934bfa507dd658a14c46bde825148 Author: Roger Leigh Date: Sun Aug 17 22:35:41 2008 +0100 [Sbuild::Conf] Replace $apt_allow_unauthenticated with APT_ALLOW_UNAUTHENTICATED Sbuild::Chroot needs to store Sbuild::Conf in order to access configuration details. commit f41e2b2ccf045a0c559ee749f8ad2833f0ebea56 Author: Roger Leigh Date: Sun Aug 17 22:14:53 2008 +0100 [Sbuild:Conf] Replace $apt_update with APT_UPDATE Sbuild::Options needs the options passing to the constructor, because options parsing alters the Sbuild::Conf namespace, which now needs doing via the Sbuild::Conf::set method. commit d0f9b95b14d503b8619140c5a571ac6b9d63abc1 Author: Roger Leigh Date: Sun Aug 17 21:57:03 2008 +0100 [Sbuild::Conf] Don't export $apt_policy or %alternatives commit 6871036ff31aa8f1dc83b5ca65215e64f58656d1 Author: Roger Leigh Date: Sun Aug 17 16:05:14 2008 +0100 [Sbuild::Conf] Don't export $HOME commit b614317d0b4e71b2c7387fb38c17c08439707cb9 Author: Roger Leigh Date: Sun Aug 17 15:54:03 2008 +0100 [sbuild] Instantiate Sbuild::Conf and add to Sbuild::Build commit 946aabacc2efa5c18c33c4c5caa189b38b15660d Author: Roger Leigh Date: Sun Aug 17 15:28:37 2008 +0100 [Sbuild::Conf] Add object-oriented interface commit 9032ef691037871cbad2bfa9a52490df0d1853c2 Author: Roger Leigh Date: Sun Aug 17 15:26:50 2008 +0100 [Sbuild::Chroot] Correct formatting commit 8779030aa7272904b5b93942bb622b01ed4c0354 Author: Roger Leigh Date: Sun Aug 17 10:45:53 2008 +0100 [TODO] Add buildd items commit e19bc8cc43acddea40ffa2ac022430b5e9cf232e Author: Roger Leigh Date: Sun Aug 17 10:41:12 2008 +0100 Enable warnings in all perl code commit 7b7ed3fb227cb460ff165bfcda4f9f8026d7344a Author: Roger Leigh Date: Sat Aug 16 16:49:50 2008 +0100 [debian] Update README commit fbe9f03569c6755c8b9ef0f040d448e1ba196e97 Author: Roger Leigh Date: Sat Aug 16 16:48:54 2008 +0100 [Sbuild] Remove deprecated features post-Lenny commit bcf029196c36ce3b32025644d2e6a657e88a9d79 Author: Roger Leigh Date: Sat Aug 16 13:21:47 2008 +0100 [man] Fix typo in sbuild-stats.1 commit 510f63e7067916d1012d7679e166f96bebee91c2 Author: Roger Leigh Date: Sat Aug 16 13:10:08 2008 +0100 [Sbuild::Build] Use string rather than numeric comparison for '~*=PROVIDED=*=' commit 489590bad2cf0612afa8918b0fabbe4643e69fdb Author: Roger Leigh Date: Sat Aug 16 11:46:08 2008 +0100 [build] Bump version to 0.58.0 commit 0ca2f965886b7f84086d28f4c418e38edaa86794 Author: Lucas Nussbaum Date: Sat Aug 16 11:41:18 2008 +0100 [Sbuild::Build] ~*=PROVIDED=*= does not break Build-Conflicts Signed-off-by: Roger Leigh commit 5c3d0a1cf1a0fe99102d85b95ab4e26c8eafb017 Author: Roger Leigh Date: Sat Aug 2 21:56:14 2008 +0100 [debian] Don't install nonexistent avg-pkg* manual pages commit 72ab2257287bc4e22616b0fc4f38b0d5818077eb Author: Roger Leigh Date: Sat Aug 2 21:23:44 2008 +0100 [debian] Finalise changelog for 0.57.5 commit 78f7a789705a5a305380b4e6f8759e813dcaa9fb Author: Roger Leigh Date: Sat Aug 2 21:23:26 2008 +0100 [NEWS] Finalise for 0.57.5 commit 2aa631606101ab4ba7260433a0edfeaca6f9beae Author: Roger Leigh Date: Sat Aug 2 21:20:48 2008 +0100 [man] Clean up synopsis and options formatting commit 0c6397f5bffbf9facb16e8232631b4b2ed361f9a Author: Roger Leigh Date: Sat Aug 2 21:07:13 2008 +0100 [debian] sbuild.postrm: Correct use of local to remove bashisms commit b798d3cf0eb050282fb5f27e21735f7087bf977c Author: Roger Leigh Date: Sat Aug 2 20:41:31 2008 +0100 [sbuild] $maintainer_name, $uploader_name and $key_id are now optional Some minor refactoring bugs for binNMUs are also corrected. Closes: #489557 commit f95eaf181c97fb4373da6367fa032c44bf0b224e Author: Greg Hudson Date: Sat Aug 2 20:24:19 2008 +0100 [Sbuild::Options] --make-binNMU should not assign an lvalue Thanks to Greg Hudson. Closes: #493325 Signed-off-by: Roger Leigh commit aaaee469e124975e43bf1c524071bf50e99d7b1e Author: Roger Leigh Date: Sat Aug 2 20:18:46 2008 +0100 [Sbuild::Log] Correctly format date in package log filename Sbuild::Build passes the package version and architecture in addition to the package name, as well as correctly formatting dates. Sbuild::Log correctly format the date. Closes: #493150 commit f466af5019ffdd53fbc06b3d5dfcfff6269062d3 Merge: 76e5e6f 410576e Author: Roger Leigh Date: Sat Aug 2 17:58:05 2008 +0100 Merge branch 'long-options' commit 410576e42d83e09b03bd8684aad9b5310e71d540 Author: Roger Leigh Date: Sat Aug 2 17:57:39 2008 +0100 [build] Remove avg* command symlinks commit 5f39c2dc8c2a11b832a029d71f00c965eb130693 Author: Roger Leigh Date: Sat Aug 2 17:57:05 2008 +0100 [debian] debian/rules: Remove avg* command symlinks commit f6961d9451a7508464547173cef30a8c822507b4 Author: Roger Leigh Date: Sat Aug 2 17:56:16 2008 +0100 [TODO] Add new items commit 76e5e6f4ab17e6420d0968b8ee30e03b7e273b7a Author: Roger Leigh Date: Sat Aug 2 17:42:12 2008 +0100 [sbuild] run_command is a method of $build_object, not a function commit 1bc1f80a3091232ace719265ffc53ab611cbfd98 Author: Roger Leigh Date: Sat Aug 2 17:41:32 2008 +0100 [man] Update sbuild-shell option formatting commit f82ae935a1be30dd6c9482af5fb4c29647a6baa8 Author: Roger Leigh Date: Sat Aug 2 17:41:04 2008 +0100 [man] Update sbuild option formatting and copyrights commit 662a071b5308f1bf4abaf04ebde6f5124be1b796 Author: Roger Leigh Date: Sat Aug 2 03:21:19 2008 +0100 [sbuild-abort] Rewrite in perl * Added --help and --version options * Parse ps output robustly using perl regexes * Kill sbuild process group commit 94cecc3c6e93fb370215f45c978b6009f1d89a53 Author: Roger Leigh Date: Fri Aug 1 12:17:33 2008 +0100 [sbuild-adduser] Add --help and --version options commit 694fbd961de878dc663f2809998fddec9e2189d3 Author: Roger Leigh Date: Fri Aug 1 12:12:15 2008 +0100 [sbuild-checkpackages] Update copyrights commit 873fde0efe3d2e171da067f666c5d264138fd264 Author: Roger Leigh Date: Fri Aug 1 12:11:13 2008 +0100 [sbuild-checkpackages] Add --help and --version options commit 1f54f55d63e9bb4464593b9152a7c906322162a4 Author: Roger Leigh Date: Fri Aug 1 12:00:36 2008 +0100 [sbuild-apt] Add --help and --version options commit 8723ae484a6795044794dc5f667f0bd5b8b19339 Author: Roger Leigh Date: Fri Aug 1 02:43:25 2008 +0100 [sbuild-stats] Add --help and --version options commit 21660306883b67ed29500021a0aab42e082055f8 Author: Roger Leigh Date: Fri Aug 1 01:48:06 2008 +0100 [sbuild-update] Add --help and --version options commit 9dbdd413dc353ab9d3f68d953adfbeee4bccef2e Author: Roger Leigh Date: Thu Jul 31 00:36:25 2008 +0100 [sbuild-hold] Update copyrights commit 2258bd3771ebae8565832279d5aee4f37ccb2845 Author: Roger Leigh Date: Thu Jul 31 00:35:47 2008 +0100 [sbuild-shell] Add --help and --version options commit d6a140bf04c814022fdf5990202be94a92f0684c Author: Roger Leigh Date: Wed Jul 30 23:54:35 2008 +0100 [man] Document sbuild --help and --version options commit 8d12dbc10edf0a48c529500c4b24019c8c077f94 Author: Roger Leigh Date: Wed Jul 30 23:53:00 2008 +0100 [sbuild-createchroot] Use sensible @ARGV option counting commit d38d977f4a0cd6c2c01af16ffdf9173c7196e21c Author: Roger Leigh Date: Wed Jul 30 23:52:16 2008 +0100 [sbuild-hold] Add --help and --version options commit aedad61155f047b4e9d4516a13f72591aab14f33 Author: Roger Leigh Date: Wed Jul 30 19:37:08 2008 +0100 [Sbuild::Options] Add --help and --version options commit 2dca33dc2e0454d6998daf08beeafb7f61e112da Author: Roger Leigh Date: Wed Jul 30 18:58:24 2008 +0100 [Sbuild] Move usage_error from sbuild-createchroot to Sbuild commit d7679fce21d2eb11f459f22b8077f0becc6f3787 Author: Roger Leigh Date: Wed Jul 30 13:55:07 2008 +0100 [TODO] Add option parsing items commit 2e7968b54c56d8e24f16645d6c62000f1a4df4e2 Author: Roger Leigh Date: Sun Jul 27 13:55:03 2008 +0100 [sbuild] Exit with 0 status when no build object exists commit 7eaa13539e6542f553efbf81c2514cbfad2cbac8 Author: Roger Leigh Date: Sun Jul 27 13:54:19 2008 +0100 [sbuild-createchroot] Set up sources.list with --components values commit a605979c837fa0da2dc44afb5a6f31cf1d0711f2 Author: Roger Leigh Date: Sun Jul 27 13:44:43 2008 +0100 [Sbuild::Options] Use isin from Sbuild Closes: #492577. commit 28a510c7d768c22e4738cc45aad91c29069dc2f9 Author: Enrico Zini Date: Sun Jul 27 12:51:04 2008 +0100 [Sbuild::Conf] New parameter apt_allow_unauthenticated APT authentication is now enabled by default, with this configuration parameter disabling the default behaviour. Closes: #492327. Signed-off-by: Roger Leigh commit 87140c82a3287712d5f3641f39ca31ad17640e2e Author: Roger Leigh Date: Sun Jul 27 12:17:14 2008 +0100 [Sbuild] Move dump_file, help_text and version_text from sbuild-createchroot commit ef2bd2269a87bfd86185b164df0210f0b6e98d86 Author: Roger Leigh Date: Sun Jul 27 12:02:18 2008 +0100 [man] Document sbuild-createchroot options commit 2f156e461b96157dfa1ca3bc117b7524810b185d Author: Roger Leigh Date: Sun Jul 27 02:22:01 2008 +0100 [man] Bring sbuild-setup.7.in up to date - Use lenny in place of sarge in examples - Replace add_sbuild_user with sbuild-adduser - Update schroot documentation - Add quick start section, since most users will never need to read the instructions if using sbuild-createchroot commit c0c33c118ac1d5f53b1efc51a039c9454dbf1948 Author: Roger Leigh Date: Sun Jul 27 02:21:03 2008 +0100 [NEWS] Document sbuild-createchroot changes commit 4297bbde36f3eb3adf8e9f9627b2c94211f31fda Author: Roger Leigh Date: Sun Jul 27 02:19:47 2008 +0100 [sbuild-createchroot] Rewrite in perl - Support most debootstrap options - Add schroot chroot definition to /etc/schroot/chroot.d - Add /etc/hosts - Don't rewrite /etc/apt/sources.list commit 6f97f0941e433bafade492be17a5a5c7e813ba2a Author: Roger Leigh Date: Sun Jul 27 02:17:49 2008 +0100 [sbuild] Don't use $Sysconfig::hostname commit 875e5d234ce8a96ab6862a53b0f5957d988d2492 Author: Roger Leigh Date: Sun Jul 27 02:16:56 2008 +0100 [Sbuild::Sysconfig] Export release date commit dbc054f581c1feb85e33d7882074193a2c747c2b Author: Roger Leigh Date: Mon Jul 7 22:05:17 2008 +0100 [debian] Close #489794 commit aed048c57f9bacff4c903e8c293da02979253b71 Author: Francois-Denis Gonthier Date: Mon Jul 7 22:00:53 2008 +0100 [Sbuild::Build] Use 'DSC' rather than 'DSC File' when checking sources commit f6920f65913c995a00c90b09d444412ca5ab9910 Author: Roger Leigh Date: Mon Jul 7 21:58:34 2008 +0100 [build] Bump version to 0.57.5 commit ea778d5bf971d551c135e2a55ac6ae433acaeb9c Author: Roger Leigh Date: Sun Jul 6 12:34:37 2008 +0100 [Sbuild::Build] Add missing bracket commit 0f349623a107556ddbf3c7d900bb4562ac453a18 Author: Roger Leigh Date: Sun Jul 6 12:25:47 2008 +0100 [debian] Update to Standards Version 3.8.0. commit 6f887f90234b44ba33175ac63f96ba65e26e0dd7 Author: Roger Leigh Date: Sun Jul 6 12:22:38 2008 +0100 [debian] Close bugs for release commit 8c8e76abcc8059a1bdfaec98f849ff38c2b99552 Author: Roger Leigh Date: Sun Jul 6 12:22:05 2008 +0100 [Sbuild::Build] Add additional uses of build metadata commit 7f951f079a04a838c23788e70a6642ec26b1413e Author: Roger Leigh Date: Sun Jul 6 12:00:32 2008 +0100 [Sbuild::Build] Unify package metadata handling Package version, name, and variants thereof are contained within the build object. Unpack directory name does not contain an epoch. The same information is no longer computed in multiple places. commit 049b23d091e2c250927d2b2a8f8c654d71a6308f Author: Roger Leigh Date: Thu Jul 3 20:31:06 2008 +0100 [Build] Correct use of DSC Base commit d018c73cececa2ea4574c1d061b31ea199fc8e33 Author: Roger Leigh Date: Thu Jul 3 20:29:19 2008 +0100 [build] Distribute lib/Sbuild/Options.pm commit fcd0e092611983215cde33e981bcd465f865f621 Author: Roger Leigh Date: Sat May 31 12:49:30 2008 +0100 [Sbuild::Build] analyze_fail_stage, install_deps, append_to_FINISHED and should_skip take no arguments commit 93d6a3e5427a8f555708665f1b52b92450ed9322 Author: Roger Leigh Date: Sat May 31 12:44:11 2008 +0100 [Sbuild::Build] fetch_source_files and build take no arguments commit 6a932256022a7c828da1ad114a4442518a081b01 Author: Roger Leigh Date: Sat May 31 12:03:32 2008 +0100 [Sbuild::Build] open_pkg_log and close_pkg_log take no arguments commit fe4f60b39ad774940757ca2f06c66e49800923ae Author: Roger Leigh Date: Sat May 31 11:28:24 2008 +0100 [Sbuild::Build] Store DSC, package and version information in class commit 5a2afc8c74e335d0c71d6a127db8e5b121e0d281 Merge: 8786dd7 f077e29 Author: Roger Leigh Date: Sat May 31 10:42:37 2008 +0100 Merge branch 'master' into options-object commit f077e29c21a088417bc28ff1994ed8c1a0438c07 Author: Roger Leigh Date: Sat May 31 10:35:54 2008 +0100 [NEWS] Bump version to 0.57.4 commit 8786dd74b64db0acd49de02fee9d2bda3ea56a26 Merge: 7ed5e04 cf5d3f2 Author: Roger Leigh Date: Sat May 31 10:30:30 2008 +0100 Merge branch 'master' into options-object commit cf5d3f2ef4e8bd8c40f297e4d141b87f53ad9339 Author: Roger Leigh Date: Sat May 31 10:07:09 2008 +0100 [README] Use new script names commit db3534a5d362622f411e299e5a52aa14f3e7e3f4 Author: Roger Leigh Date: Sat May 31 09:57:44 2008 +0100 [man] Replace buildd.chroot with sbuild-createchroot Also replace adduser with sbuild-adduser. commit b3c7e058587e02c1264b6c4a1b318f95d5d85d39 Author: Roger Leigh Date: Sat May 31 09:33:27 2008 +0100 [build] Bump version to 0.57.4 commit 7ed5e042707d6c249d07e30ce6b9e6f6b2ba3e36 Author: Roger Leigh Date: Tue May 27 22:14:13 2008 +0100 [Sbuild::Options] New class to parse sbuild options commit 33e6557fe539d004c3568e4ba58b0d47183227cc Author: Roger Leigh Date: Sun May 25 22:56:30 2008 +0100 [sbuild::Build] Path and filenames don't include epochs in version numbers Using epochs in version numbers can confuse make. Make sure the epoch is stripped from the version number passed to dpkg_source. Also remove from the path set by sbuild ("Chroot Build Dir"). commit 8bc3477690728ec2c61e8240b63df15b06de933a Author: Niko Tyni Date: Sun May 25 21:49:40 2008 +0100 [Sbuild::Build] Correctly handle versioned provides Use "~*=PROVIDED=*=" in place of "=*=PROVIDED=*=" to change the sort order. Thanks to Niko Tyni for this patch. Closes: #395271. Signed-off-by: Roger Leigh commit 9bf1147149e23e9c21ede73a33a4e531cbd0553c Author: Roger Leigh Date: Sun May 25 21:36:27 2008 +0100 [Sbuild::Chroot*] Use schroot "Session Purged" flag in place of "Session Cloned". commit aab0bbd44d3ffc91123629f73c532f459fc5fc5a Author: Roger Leigh Date: Sun May 25 21:25:33 2008 +0100 [Sbuild] Prototype copy() commit 7d01e2475cf0402b97f16f66c9fae550f4253c31 Author: Roger Leigh Date: Sun May 25 21:25:19 2008 +0100 [Sbuild::Build] Pass arrays as references where needed Some functions taking references to arrays were not being called correctly. commit a3ab0b74b7caa8179723502b3f530a60377df115 Author: Roger Leigh Date: Thu May 22 00:31:29 2008 +0100 [sbuild] Split options parsing into separate function commit a7693de34454edae1515bf3faeb39af70dd38635 Merge: d92498b cb27716 Author: Roger Leigh Date: Tue May 20 23:03:46 2008 +0100 Merge branch 'master' into build-object Conflicts: TODO commit d92498bd8e52b550ad2037d035cd59486bfdc622 Author: Roger Leigh Date: Tue May 20 23:00:06 2008 +0100 [TODO] Note logging issues commit b9ca49b4ebd1f434f0f08a8a55769bf237661567 Author: Roger Leigh Date: Tue May 20 22:56:56 2008 +0100 [Sbuild::Build] Move Sbuild::Build from sbuild All Sbuild::Build module code moved from sbuild. lib/Sbuild/Build.pm is distributed and installed. commit 9f4c7bdd5490a2a4d18f80038b68f406173f43b0 Author: Roger Leigh Date: Tue May 20 22:51:52 2008 +0100 [sbuild] Convert build hash into Sbuild::Build class commit 0e64d9b93f3d3907ca9973bc0728962a06bdb8c4 Author: Roger Leigh Date: Tue May 20 22:49:51 2008 +0100 [Sbuild::Chroot] Don't export new commit 265d7c46878ed221d679d46c1a4cb0e1ce907201 Author: Roger Leigh Date: Tue May 20 22:46:39 2008 +0100 [Sbuild] copy() does not need a self argument commit cb27716b39bd18237c326acd90341f0abb472cf5 Author: Roger Leigh Date: Sun May 18 00:17:45 2008 +0100 [TODO] Are build and package start times the same? commit 5c97b2637772befb8ba488a5c85378690a81226b Author: Roger Leigh Date: Sun May 18 00:14:51 2008 +0100 [sbuild] Move shutdown() to end of file commit f737178c40f67334bd17450a0629aaec6478fe99 Author: Roger Leigh Date: Sun May 18 00:12:38 2008 +0100 [Sbuild] Move copy() from sbuild commit dc563c8cc3b612ccebaffbdc7a13fcd1bae39d1d Author: Roger Leigh Date: Sun May 18 00:08:24 2008 +0100 [sbuild] build_new: Initialise 'GCC Snapshot' as integer, not array commit e4e7623d05285dd738de54d4a4429b26326919bf Author: Roger Leigh Date: Sun May 18 00:06:29 2008 +0100 [Sbuild::Conf] Move $stats_dir from sbuild $stats dir moved from main:: in sbuild. Exported by Sbuild::Conf. Defaulted to $HOME/stats Added to sbuild.conf and example.sbuildrc. commit 3153173b82e01a337608b39744d3b01ea3f09b9f Author: Roger Leigh Date: Sat May 17 23:48:19 2008 +0100 [sbuild] Replace %main::this_watches commit c63103f59c3af302011bd7ad667a795dc9b22060 Author: Roger Leigh Date: Sat May 17 23:44:55 2008 +0100 [sbuild] Replace $main::pkg_fail_stage and $main::useSNAP commit 178084457605e7ebf6df75b98904eb034baa7fc9 Author: Roger Leigh Date: Sat May 17 23:37:29 2008 +0100 [sbuild] Replace $main::sub_pid and remove $main::shutdown in dump code commit 1f2bbddaaaae3ef79a87133fff92b604c822a558 Author: Roger Leigh Date: Sat May 17 23:32:00 2008 +0100 [sbuild] Remove @main::manual_srcdeps commit 85becb50444ce3d7264ac0ba43adcb6da736620f Author: Roger Leigh Date: Sat May 17 23:29:22 2008 +0100 [sbuild] Replace $main::ld_library_path commit c38a2159c2fad7d2829e898845d934dc33c05e19 Author: Roger Leigh Date: Sat May 17 23:09:59 2008 +0100 [sbuild] Replace $main::have_dsc_build_deps commit 6eacf8707e13e2ee6f90fd2e2215387dbb42a121 Author: Roger Leigh Date: Sat May 17 23:05:45 2008 +0100 [sbuild] Replace $main::dpkg_buildpackage_signopt commit 5ced3fe4a5e8d2611794890f3ac6a3006a555113 Author: Roger Leigh Date: Sat May 17 23:02:56 2008 +0100 [sbuild] Replace $main::deps commit af5350febf6af09e595490fe6583f7161241fb35 Author: Roger Leigh Date: Sat May 17 22:56:29 2008 +0100 [sbuild] Replace $main::database commit d95c5b20a2488772cf84a3bd84190faad4dc05e1 Author: Roger Leigh Date: Sat May 17 15:54:14 2008 +0100 [sbuild] Replace %main::changes commit 1c0e1112ac1cc6e8069feb40597d7b0481bfc372 Author: Roger Leigh Date: Sat May 17 15:29:25 2008 +0100 [sbuild] Replace $main::build_start_time commit 699be6210a2c4afc0f79c827a3dad0b5b6f3263b Author: Roger Leigh Date: Sat May 17 15:27:11 2008 +0100 [sbuild] Replace $main::binNMU* commit 58ec0fd3dac94d33eb6132a69de92fd84b976e15 Author: Roger Leigh Date: Sat May 17 15:20:19 2008 +0100 [sbuild] Replace $main::additional_deps commit f4958e566442765e68bd09bb939e8e0ab2bcd7aa Author: Roger Leigh Date: Sat May 17 14:54:59 2008 +0100 [sbuild] Replace $main::sub_task commit 0c5821b193619fe6303c75f6f64b4c1666458f90 Author: Roger Leigh Date: Sat May 17 14:52:34 2008 +0100 [sbuild] Replace $main::override_distribution commit 65d14bf861f397b72940a349ec1d1b1767616894 Author: Roger Leigh Date: Sat May 17 14:50:43 2008 +0100 [sbuild] Replace @main::toolchain_pkgs commit 2c50820f2918a018741a9fd8cff57e27fad93df0 Author: Roger Leigh Date: Sat May 17 14:36:25 2008 +0100 [sbuild] Replace $main::this_space commit 68da16515960351060d733248bbb82b81879854c Author: Roger Leigh Date: Sat May 17 14:22:35 2008 +0100 [sbuild] Replace $main::pkg* commit dca244a0ab514edf7facfffe21521f6339400d4f Author: Roger Leigh Date: Sat May 17 13:38:36 2008 +0100 [sbuild] Replace $main::ilock_file commit f8424b500de79faa6df82c496119b1f3a05ca46c Author: Roger Leigh Date: Sat May 17 13:35:45 2008 +0100 [sbuild] Replace $main::srcdep_lock* commit 8bb1a7ef891e7c7bd862580495fb6ef4b02b06a6 Author: Roger Leigh Date: Sat May 17 13:30:47 2008 +0100 [sbuild] Replace $main::chroot* commit bc97881530b28481d1757d93a421a68a50070930 Author: Roger Leigh Date: Sat May 17 13:17:59 2008 +0100 [Sbuild::Conf] Move lock timeout settings from being hardcoded in sbuild commit 66c4345d854f99aa14693aa85af8382b9e02f87c Author: Roger Leigh Date: Sat May 17 12:42:11 2008 +0100 [sbuild] Replace $main::jobs_file commit c2ed2a4deff575b72561a2fc99ac577db550a424 Author: Roger Leigh Date: Sat May 17 12:39:02 2008 +0100 [sbuild] Remove redundant main:: namespace usage commit 5bca06718b8d10a738a0416b1b2b1ea7146a3fb5 Author: Roger Leigh Date: Sat May 17 12:37:31 2008 +0100 [sbuild] Replace $main::build_arch_all and $main::build_source commit 91ba7baddeb016e1d9608acc612a9b798d1203f7 Author: Roger Leigh Date: Sat May 17 12:30:50 2008 +0100 [sbuild] Replace $main::verbose commit 070673d342353fa3f01ca781168f00de49bd2825 Author: Roger Leigh Date: Sat May 17 12:29:35 2008 +0100 [sbuild] Replace $main::username commit dcf8e7a70800445927ce6a51f1bab82adc7b3c95 Author: Roger Leigh Date: Sat May 17 12:26:46 2008 +0100 [sbuild] Remove $main::nolog commit 82cb64018a577f09f2ba45c21b747d0e5fc562ff Author: Roger Leigh Date: Sat May 17 12:25:51 2008 +0100 [sbuild] Remove $main::cwd commit 6063f102efd1f29f186af77544cd370a5670658f Author: Roger Leigh Date: Sat May 17 12:23:46 2008 +0100 [sbuild] Replace $main::auto_giveback* commit e715a91f3fcb2a104dc9f199e9e1be23723fccb6 Author: Roger Leigh Date: Sat May 17 12:11:14 2008 +0100 [sbuild] Replace $main::batchmode commit cfea6c6380573cea6bcc49a06b4dd2d3b85f836f Author: Roger Leigh Date: Sat May 17 12:07:34 2008 +0100 [sbuild] Replace $main::user_arch commit ff8e92121f12c89b87a9f1741f847183e4e73ba4 Author: Roger Leigh Date: Sat May 17 12:05:58 2008 +0100 [sbuild] Replace $main::arch commit 3064be7160fc3b89647c79e1664dd9d3f871c422 Author: Roger Leigh Date: Sat May 17 12:03:35 2008 +0100 [sbuild] Move global statements into main function commit 5e5e987ad1dd5a7c51b5ff9d53c9709312f40989 Author: Roger Leigh Date: Sat May 17 11:57:58 2008 +0100 [sbuild] Build object creation and initialisation separated into function commit 286efa216265327730bd8faa236d3c4d6d2413f4 Author: Roger Leigh Date: Sat May 17 11:52:06 2008 +0100 [sbuild] Remove $session (2) commit fbfda502dd1e248d4e63de72da914ec2c8ba82f1 Author: Roger Leigh Date: Sat May 17 11:37:08 2008 +0100 [sbuild] Remove $session (1) commit 7dfc639c0b2585149d1bf256a3e0d367b01008c9 Author: Roger Leigh Date: Sat May 17 11:20:13 2008 +0100 [sbuild] Replace $main::current_session commit 46c95673aa51801f6619744245f91244db712d71 Author: Roger Leigh Date: Sat May 17 11:16:01 2008 +0100 [sbuild] Replace $main::distribution commit 77b7a63008bc10012241908d549b0c1899d5f79b Author: Roger Leigh Date: Tue May 13 22:04:23 2008 +0100 [sbuild] All functions take self argument commit 9cbe303935b88c8c7a024c7a58a57776b1051c36 Author: Roger Leigh Date: Sun May 11 12:15:17 2008 +0100 [debian] changelog: Remove blank line commit fc4d76072737d1b1fe2a561f35c41285776c3a64 Author: Roger Leigh Date: Sun May 11 10:58:01 2008 +0100 [NEWS] Update for 0.57.3 commit 7d660a72018eb82ae1f25ccc171a77171b59cf0d Author: Roger Leigh Date: Sun May 11 10:50:27 2008 +0100 [debian] Finalise for 0.57.3. Closes: #479714. commit 8a837f653a7c279454138a5bdd3d5ef1b00b433b Author: Roger Leigh Date: Sun May 11 10:35:15 2008 +0100 [Sbuild::Chroot] Add directory argument to chroot _command functions This allows commands non needing to be run in the build directory to run if the build directory does not exist. sbuild no longer needs to chdir at any point. commit fc34a567e6cc1b734d2d2ca918b9fe265b1efa3f Author: Roger Leigh Date: Sun May 4 09:32:37 2008 +0100 [Sbuild::Chroot] Convert to object-oriented Perl * lib/Sbuild/Chroot.pm: - Add constructor and convert all functions to methods. - Remove all global variables. * lib/Sbuild/ChrootInfo.pm: New file; non-class functions from Chroot.pm. * lib/Sbuild/Utility.pm: Create and use a Chroot object. * bin/*: Create and use a Chroot object. sbuild passes this to all functions using chroot functionality. commit 79b01b95d9fbae7b0d023d4f0a41c801d2dad58a Author: Roger Leigh Date: Sun May 4 09:24:26 2008 +0100 [utility] Call shutdown with signal name Needed to satisfy signal handler function prototype. commit 28736396de60496f610f3b26d2ba8a3a72b39123 Author: Roger Leigh Date: Sat May 3 18:08:36 2008 +0100 [Sbuild::Conf] Use INIT block to save need to call init() by hand commit b272e02437348bc2651b9d38ee0dc91bb0d3da59 Author: Roger Leigh Date: Sat May 3 18:02:25 2008 +0100 [Sbuild] Use same exporting style as other modules commit 250ccf0cfced7c962d3f93cc8c00107f021f326d Author: Roger Leigh Date: Sat May 3 18:01:24 2008 +0100 [build] Bump version to 0.57.3. commit 39cf11d3ece825098e334c4e469ddbf5e02e511d Author: Roger Leigh Date: Sun Apr 27 21:33:08 2008 +0100 [build] Install 50sbuild as an executable script commit 15dd875fef35e97a36d0d63fc7325e0a045c6c57 Author: Roger Leigh Date: Sun Apr 27 21:32:36 2008 +0100 [sbuild] Add architecture to build directory name commit 56b85facd6ae3f64851e9d3814ec4744d8d133e9 Author: Roger Leigh Date: Sun Apr 27 21:16:09 2008 +0100 [build] Distribute 50sbuild commit 4d537bdacfeaf3cebd10e95958fdd5156c718359 Author: Roger Leigh Date: Sun Apr 27 21:15:41 2008 +0100 [NEWS] Add new features commit 98625200505c9ae7cb2e031e1120ed2e86e1ef73 Author: Roger Leigh Date: Sun Apr 27 21:14:46 2008 +0100 [man] Complete main markup of wanna-build manpage commit 3c7c311076349d2acd47ae80c5b97e5d9b0fee60 Author: Roger Leigh Date: Sun Apr 27 19:14:26 2008 +0100 [sbuild] Use dcmd to parse dsc files, rather than hand-parsing commit 3897e3efd6497fee06e10ae08da90deb26d2fd9d Author: Roger Leigh Date: Sun Apr 27 18:53:08 2008 +0100 [Sbuild::Conf] Don't require $mailto to be set if not a buildd commit ba40d940c01ede790862446ce6075a32a285fdf4 Author: Roger Leigh Date: Sun Apr 27 18:41:08 2008 +0100 [man] sbuild.1.in: --distribution should be --dist commit 7f3ebc296fa7d49b2d390a8a6e4c85fd7dff6028 Author: Roger Leigh Date: Sun Apr 27 18:36:47 2008 +0100 [man] sbuild.1.in: Document --binNMU. commit e9c0b218f9bc38646c0abf9f5a6c90ae5014014f Author: Roger Leigh Date: Sun Apr 27 18:21:15 2008 +0100 [debian] Depend on debhelper version 6 or greater commit aea12f9879e29a9a4779170063ca25360efdd14c Author: Roger Leigh Date: Sun Apr 27 17:55:51 2008 +0100 [schroot] Include 50sbuild schroot setup script configure.ac: Add SCHROOT_CONF. etc/Makefile.am: Install 50sbuild. etc/50sbuild: New file. debian/sbuild.install: Install 50sbuild. debian/control: Replace the /etc/schroot/setup.d/50sbuild in schroot. commit 9743e327843e20c4be4af7fbb826cb2a89f6450c Author: Roger Leigh Date: Sun Apr 27 17:42:17 2008 +0100 [sbuild] Purge all built files and downloaded sources sbuild: - Create a temporary build directory for each job. - Don't track each file created within the build directory. - fetch_source_files: + Rename @made to @fetched. + Return 1 and 0 on success and failure, respectively, rather than a file list with "ERROR" to indicate failure. - build: Purge the temporary build directory, rather than individual files. - shutdown: Purge the build directory. - remove_files: Remove. Sbuild::Chroot: - _setup_options: Remove username from build directory path. commit 065b015d2a6912b2e18e880eddc0f3045165a990 Author: Roger Leigh Date: Sun Apr 27 17:27:19 2008 +0100 [debian] Ignore *.log commit e66cf961c9f26fcb5e5ec57d7d530ae5a5a72a31 Author: Roger Leigh Date: Sun Apr 27 17:26:43 2008 +0100 [debian] Add GIT repository details to debian/control commit 9c83c00de48ac9fc1e876481e29d50ef8163719b Author: Roger Leigh Date: Sun Apr 20 22:17:15 2008 +0100 Update authors, copyright and TODO items commit 7e5af2977f281f5bcf9589dd3a5816f96076072a Author: Roger Leigh Date: Sun Apr 20 21:12:30 2008 +0100 [sbuild] Add --chroot option Add --chroot option to specify a chroot separately from the distribution name Closes: #474160 Thanks to Simon McVittie. commit 4715bf080408263230a40a14a4b42e38054e5e52 Author: Roger Leigh Date: Sun Apr 20 20:24:02 2008 +0100 [Sbuild::Conf] Add /usr/bin/dcmd as $dcmd commit 56b57381674f2263404a0c0003730444b24bbebe Author: Roger Leigh Date: Sun Apr 20 13:25:46 2008 +0100 [man] Update wanna-build manual page. commit b6f7ba47f5549b9d814c8c030fb92e0c621639ca Author: Roger Leigh Date: Sun Apr 20 11:50:02 2008 +0100 [debian] Update README.Debian and remove README-buildd.chroot reference. Closes: #474487. commit d2582f13ea7e376d875d736cbbb350e92453e33b Author: Roger Leigh Date: Sun Apr 20 11:36:04 2008 +0100 [sbuild] Add --apt-update option to run "apt-get update" before building. Thanks to Timothy G Abbott . commit 057baeebaaaf5cfd9f98c3359189f6dbecbf02a8 Author: Roger Leigh Date: Sun Apr 6 14:10:03 2008 +0100 Install shorthand symlinks for wanna-build commit 23d4e773a550148a97a176a4276b89108bfe9278 Author: Roger Leigh Date: Sun Apr 6 13:37:28 2008 +0100 man/sbuild.1.in: Add missing character Thanks to LI Daobing. commit d39e96ca99b621350de1940c639300b21c189140 Author: Roger Leigh Date: Sun Apr 6 12:19:26 2008 +0100 Generate ChangeLog automatically from "git log" ChangeLog is automatically generated using "git log" at "make dist" time, using the scheme already used in schroot. Version bumped to 0.57.2. commit edd3a8274812e2cb24185b3ea10f19f2c782ea75 Author: Roger Leigh Date: Sun Apr 6 11:58:13 2008 +0100 * Add back generation of man/sbuild-upgrade.1. commit a8827a76c8974d86a0caa2e986470cc4f47d79f6 Author: Roger Leigh Date: Sun Apr 6 11:55:02 2008 +0100 * man/Makefile.am (man_MANS): Install wanna-build.1. * configure.ac: Generate man/wanna-build.1. * man/wanna-build.1.in: New manual page, replacing README.buildd, README.failcat and README.overview, which have been removed. * main/sbuild.1.in: Update configuration file description. commit 8d45ac97c62d9a6cf9b259a8953729d18740566d Author: Roger Leigh Date: Sun Apr 6 11:49:38 2008 +0100 debian/copyright: Build infrastructure is licensed under GPL3+. commit d326029324795e01fd7ce22738749e1bfa4776fb Author: Roger Leigh Date: Sat Apr 5 15:48:12 2008 +0100 * debian/rules: Run dh_link in binary-indep target to correct symlinks. commit cfd87fb9d364d3ef9faf564bdb940f63904b3045 Author: Roger Leigh Date: Sat Apr 5 15:32:22 2008 +0100 debian/copyright: Update copyright holders and copyright information. commit 9c4546cc55c247fd5abb7ef53d6d162916768d5e Merge: ee54adb 0668d72 Author: Roger Leigh Date: Tue Apr 1 16:21:04 2008 +0100 Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild Conflicts: ChangeLog commit ee54adb2af57a3b34ede31f8cbf200e5a0f8aa00 Author: Roger Leigh Date: Tue Apr 1 16:18:41 2008 +0100 * bin/sbuild (fetch_source_files): Remove use of verify_md5sums. (verify_md5sums): Remove. The verification is already done by dpkg-source. commit 0668d724b847010c41e1f47edfbf9f6bd690bae2 Author: Roger Leigh Date: Thu Mar 27 20:48:30 2008 +0000 * Version 0.57.1. commit c1e3cbc8699da54f9f540bdabc6436a128eaa668 Author: Roger Leigh Date: Thu Mar 27 20:47:37 2008 +0000 * bin/sbuild (build): Don't parse output of dpkg-source. Specify the build directory explicity. commit 5863d59db761ac5a51628a16dbc9b4c969a8d328 Author: Roger Leigh Date: Sun Mar 9 02:47:13 2008 +0000 [sbuild] Add missing optional function arguments commit 48bf27b9eab42193fb6d0fc7d089d9cdccfbb7e8 Author: Roger Leigh Date: Sun Mar 9 02:46:08 2008 +0000 [modules] All modules use function prototypes Buildd, Sbuild, Sbuild::Chroot, Sbuild::Conf, Sbuild::Log, Sbuild::Utility, and WannaBuild::Conf all use function prototypes. commit c91e6e3328a3f067defef07a1e5f90ed4b5f38a9 Author: Roger Leigh Date: Sun Mar 9 01:14:42 2008 +0000 [buildd] shlibdb-compare, sourcedeps-makerev and update-shlibdb use function prototypes commit f6bc158df626d7fe43583e3399826fded25627e1 Author: Roger Leigh Date: Sun Mar 9 01:14:02 2008 +0000 [wanna-build] wanna-build, wanna-build-mail and wanna-build statistics use functionn prototypes commit c99288116244aa65bad8fa3f8377bf7ec0874da9 Author: Roger Leigh Date: Sun Mar 9 00:42:26 2008 +0000 [sbuild] All helper programs use function prototypes sbuild-adduser, sbuild-apt, sbuild-checkpackages, sbuild-hold, sbuild-shell. sbuild-stats, sbuild-unhold, sbuild-update, and sbuild-upgrade use function prototypes. commit a4f12d539bd2316f301c1bd0b401a7522782ecce Author: Roger Leigh Date: Sun Mar 9 00:34:29 2008 +0000 [wanna-build] do-merge-packages and do-merge-quinn use function prototypes commit 5effe3c277fae3baaabfa78048628e80a2fc2ad1 Author: Roger Leigh Date: Sun Mar 9 00:30:59 2008 +0000 [buildd] check-old-builds uses function prototypes commit e2ace785ad47467bc10ca33f61ba77ada4fd1b19 Author: Roger Leigh Date: Sun Mar 9 00:28:19 2008 +0000 [buildd] buildd-watcher uses function prototypes commit 0e41f152f837561f1e17929ea4fdf2cf965bc967 Author: Roger Leigh Date: Sun Mar 9 00:23:49 2008 +0000 [buildd] buildd-vlog uses function prototypes commit 66568b45e04fee9a89dee06d7393afa94254c9c0 Author: Roger Leigh Date: Sun Mar 9 00:21:32 2008 +0000 [buildd] buildd-uploader uses function prototypes commit dea0ab085067877817c9ff5cc25117a630e5e967 Author: Roger Leigh Date: Sun Mar 9 00:19:23 2008 +0000 [buildd] buildd-clean-upload uses function prototypes commit a21f420524d96167c1dd5c76c9d7decdc97a6702 Author: Roger Leigh Date: Sun Mar 9 00:18:35 2008 +0000 [buildd] buildd-mail uses function prototypes commit c8fdc92f56027140848390749f3d8cc8770edc09 Author: Roger Leigh Date: Sat Mar 8 23:47:18 2008 +0000 [buildd] Use function prototypes buildd and Buildd::Conf use function prototypes. Buildd::Conf also defines HOME and scopes function calls correctly. commit 4e22dc818eda18ba11f8769c1e31e63d51f01c59 Author: Roger Leigh Date: Sat Mar 8 16:40:24 2008 +0000 [sbuild] Add prototypes commit 0f91a21da4dd120572e49d6d7d788dfafcc290b5 Author: Roger Leigh Date: Sat Mar 8 03:52:04 2008 +0000 * bin/sbuild: Pass date to open_pkg_log. Pass current job and distribution to close_pkg_log. (open_build_log): New function to wrap open_pkg_log and print start message. (close_build_log): New function to wrap open_pkg_log, update statistics and print end message. (add_time_entry, add_space_entry): Move from Log.pm. * lib/Sbuild/Log.pm: (open_pkg_log): Pass date as an argument. Don't print build start message. (close_pkg_log): Pass package name and distribution as arguments; don't pass build space. Format date from $pkg_end_time. Remove statistics updates and buld end message. (add_time_entry, add_space_entry): Remove. commit 3508fafb0d2a1c0ee88cdf640f232a8be34f1571 Author: Roger Leigh Date: Fri Feb 29 21:36:12 2008 +0000 * lib/WannaBuild/Conf.pm: Define $HOME. commit f2455a4aa02f6feaa336ed223ab9841c4e87fc4d Author: Roger Leigh Date: Sat Jan 26 21:17:09 2008 +0000 * bin/Makefile.am (bin_SCRIPTS): Add wanna-build programs. commit 995dddf09351f3e00beb1d6480d4348886f6e6fb Author: Roger Leigh Date: Sat Jan 26 21:15:37 2008 +0000 * debian/control: Add wanna-build package. * debian/wanna-build.install: New file: files for wanna-build. commit 81022e92380ecf0e4ffb3ecd27d946d6c6aa273c Author: Roger Leigh Date: Sat Jan 26 21:11:13 2008 +0000 * etc/Makefile.am (builddsysconf_DATA): Add buildd config files. * configure.ac: Add paths for buildd config files. commit de472eea2a0a7dfe44ebbef67ace756d9da36f0e Author: Roger Leigh Date: Sat Jan 26 15:03:01 2008 +0000 * bin/wanna-build-mail: Rename from wanna-build-mail.pl. * src/wanna-build-mail.c: Remove. * src/Makefile.am: (bin_PROGRAMS): Remove wanna-build-mail.c. commit 07b603bc45178e2e440f207101ba8d5d45d439bd Author: Roger Leigh Date: Mon Jan 21 23:55:37 2008 +0000 * debian/changelog: Close #458779. commit 9a7e1b878fb508bafbb11808e64487be67364092 Author: Roger Leigh Date: Mon Jan 21 23:55:10 2008 +0000 * .gitignore: Ignore *.tar.*. commit e7652023b714733b978ccd8003592bc8e8b45e1f Author: Roger Leigh Date: Mon Jan 21 23:54:37 2008 +0000 * NEWS: Add changes for 0.57.1. * configure.ac: Create .tar.gz distribution tarball. commit c8399a19c4ca4ddd278d222f7dfdd8fa7fbc6414 Author: Roger Leigh Date: Mon Jan 21 23:32:04 2008 +0000 * debian/rules: set libexecdir to /usr/share, for compatibility with locations of scripts in earlier versions. * debian/schroot.install: use /usr/share in place of /usr/lib. commit b8994766ebcf1323118a85d26f44bfbd37dd8a69 Author: Roger Leigh Date: Mon Jan 21 22:03:22 2008 +0000 * lib/Makefile.am (perlmod_DATA): Add Buildd.pm. commit 400cea155169082d2ae9f3cf528c374970ab8d01 Author: Roger Leigh Date: Mon Jan 21 21:57:27 2008 +0000 * etc/buildd.conf: Update with default options. commit 5639022c4baafcdff021fcd259ec9a00d61f2324 Author: Roger Leigh Date: Mon Jan 21 21:56:07 2008 +0000 * TODO: Add conf as classes item. commit 48354ac8f5c4685b9e79bd0ed4a8ffb6b3d00ddd Author: Roger Leigh Date: Mon Jan 21 21:55:35 2008 +0000 * lib/Buildd/Conf.pm: Add and export read function to read config. Add checks from buildd. commit c23c68ff826883efac6d89576112906ff4cbe109 Author: Roger Leigh Date: Mon Jan 21 21:55:11 2008 +0000 * lib/Buildd/Conf.pm: Add and export read function to read config. Add checks from buildd. * bin/buildd: Use Buildd::Conf. Use Buildd::Conf::read in place of read_config(). * bin/wanna-build: Remove isin function (now in Sbuild.pm). * bin/buildd-uploader, bin/buildd-watcher: Use Buildd::Conf. commit 4a230058bf94136278b35b0895afaf5fb0dc48d3 Merge: c0a478e b27b9e2 Author: Roger Leigh Date: Mon Jan 21 21:42:50 2008 +0000 Merge branch 'master' of git+ssh://git.debian.org/git/buildd-tools/sbuild Conflicts: ChangeLog commit c0a478e1890085bcfedb16b8e00ba9933dc5d162 Author: Roger Leigh Date: Mon Jan 21 21:39:40 2008 +0000 * Update .gitignore files. commit 27a97dd5af27489d681075df67dec8129c0b62f0 Author: Roger Leigh Date: Mon Jan 21 21:38:02 2008 +0000 * Makefile.am (SUBDIRS): Add src. commit c4493778d634b59c6a0dfcbca6eb5af7592dd3b5 Author: Roger Leigh Date: Mon Jan 21 21:37:23 2008 +0000 * etc/wanna-build.conf: Correct comments. commit bff2e84485c42d1442e0015d6556fafaa971eb59 Author: Roger Leigh Date: Mon Jan 21 21:36:34 2008 +0000 * src/buildd-mail-wrapper.c, src/wanna-build-mail.c: Remove shebang in comment boilerplate. * configure.ac: Generate new Makefiles. * src/Makefile.am: Build buildd-mail-wrapper and wanna-build-mail. * lib/Makefile.am (SUBDIRS): Add Buildd and WannaBuild. * lib/Buildd/Makefile.am, lib/WannaBuild/Makefile.am: New files. Install perl modules. commit 49f7b659c0003564b0526f54550ae5d1572d354d Author: Roger Leigh Date: Mon Jan 21 21:10:07 2008 +0000 * lib/Buildd.pm: Remove read_config function (replaced by Buildd::Conf). Remove isin and binNMU_version functions also implemented in Sbuild.pm. commit c62fffa8f9c0978503622823720cd559506c2e6a Author: Roger Leigh Date: Mon Jan 21 21:07:42 2008 +0000 * lib/Sbuild.pm: Add isin function. commit b27b9e2351b5d3780730bcc57bbdac9d1bf7ae59 Author: Roger Leigh Date: Mon Jan 21 20:52:24 2008 +0000 * Version 0.57.1. * configure.ac: Dump version to 0.57.1. * debian/control: Depend upon schroot >= 1.1.6. This version includes a SESSION_CLONE property, used to determine if a chroot is cloned, and hence package removal may be skipped. commit c7e38321323e752d8b79929aa165ce35d72fa38b Author: Roger Leigh Date: Mon Jan 21 20:48:32 2008 +0000 * bin/sbuild: Rename "Session Managed" to "Session Cloned". * lib/Sbuild/Chroot.pm (init): Rename "Session Managed" to "Session Cloned". commit 4b39aec91b45740554b573c3b196edf5a6641c27 Author: Roger Leigh Date: Sun Jan 6 21:14:35 2008 +0000 * bin/wanna-build: use Sbuild.pm. * lib/WannaBuild.pm: Remove (replaced by Sbuild.pm). * lib/Sbuild.pm: Add parse_date function (from WannaBuild.pm). commit 42597d0ee7740fc62aedc500191f9cac7ed11ad5 Merge: 3d56c1a 81c60d0 Author: Roger Leigh Date: Sun Jan 6 18:16:36 2008 +0000 Merge branch 'master' of git+ssh://git.debian.org/git/buildd-tools/sbuild commit 81c60d0da6884ae8f5475836256c57cbbd700e2a Author: Roger Leigh Date: Sun Jan 6 18:15:50 2008 +0000 * Merge buildd repository. commit f927a39d4293e350e5bfe9c8e07543fba47c3920 Merge: 1db0a9e 10d80a6 Author: Roger Leigh Date: Sun Jan 6 18:15:29 2008 +0000 Merge buildd history Merge branch 'buildd-cleanup' Conflicts: .gitignore commit 10d80a6e0369b3c6a0b69d66169aad5c42f338d6 Author: Roger Leigh Date: Sun Jan 6 18:12:59 2008 +0000 Move files for etc and lisp outside bin. commit a9f3f1c28f3814b9b8d890374689255852a9162d Author: Roger Leigh Date: Sun Jan 6 18:00:38 2008 +0000 Rename files to fit into sbuild scheme. commit fd26bd4ea69b4777d34124118f8c7c67e974418d Author: Roger Leigh Date: Sun Jan 6 16:44:38 2008 +0000 * wanna-build.conf.local: Remove. * wanna-build.conf: Update with a complete list of settings, including those from wanna-build.conf.local, removing unused variables. * wanna-build: Use WannaBuild::Conf. Check if $conf::log_mail is defined. * do-merge-quinn: Use WannaBuild::Conf. Check if $conf::stat_mail is defined. * do-merge-packages: Use WannaBuild::Conf. * WannaBuild/Conf.pm: Module to load wanna-build.conf, created from common code in wanna-build and do-merge-*, modelled on Sbuild::Conf. This contains a complete list of default settings. * Update debian/rules to reflect changes. commit 73333875e1d4b9547a860b58265b4dc9f6500f88 Author: Roger Leigh Date: Sun Jan 6 14:14:48 2008 +0000 * Replace all references to /var/debbuild (or /var/state/debbuild or /usr/local/var/debbuild) with /var/lib/wanna-build for FHS compliance. commit df88552ee67eb9742ef24f0db695c76b05a75032 Author: Roger Leigh Date: Sat Jan 5 19:14:04 2008 +0000 * wanna-build: - Move @distributions and %dist_order into conf package. Thanks to Florian Lohoff. * wanna-build.conf: - Add @distributions and %dist_order. commit 3d56c1ab34e4884c15f61d8d0e1f6279d4156d57 Author: Roger Leigh Date: Tue Jan 1 13:10:02 2008 +0000 * Remove sbuild-stats item. commit 1db0a9ed09f9e6849fca6f209806d2e25e7f5553 Author: Roger Leigh Date: Tue Jan 1 11:38:19 2008 +0000 * Version 0.57.0. * lib/Sbuild/Makefile.am: Install Sysconfig.pm. commit 02e0f7df132e74246b1492860517ca00a463f0ab Author: Roger Leigh Date: Tue Jan 1 01:32:44 2008 +0000 * bin/Makefile.am: Create sbuild-adduser and sbuild-createchroot compatibility symlinks to $(sbindir). commit 42908135b0d81c9d484dbac6272fe95da0142393 Author: Roger Leigh Date: Tue Jan 1 01:25:09 2008 +0000 * NEWS: Add changes. commit 60d8d1abb7d3f7e33310e739c895db14e7f9b1bb Author: Roger Leigh Date: Tue Jan 1 01:24:37 2008 +0000 * Makefile.am: Distribute all scripts and files. commit b2aca5e6b18b15eba7b55609b8cfb6f73c6df16e Author: Roger Leigh Date: Tue Jan 1 00:46:52 2008 +0000 * Update version. commit 4535d9430134f0ff476f265ea862d93ab780de06 Author: Roger Leigh Date: Tue Jan 1 00:15:08 2008 +0000 * man/sbuild-stats.1.in: Rename from avg-pkg-build-time.1.in. Update with --time option and examples. Update copyright information. * man/Makefile.am (man_MANS): Rename avg-pkg-build-time.1 to sbuild-stats.1. (install-data-hook): Create compatibility symlinks for avg-pkg-build-*. * configure.ac: Add man/sbuild-stats.1. * bin/sbuild-stats: Rename from avg-pkg-build-time. Use Getopt::Long. Unify modes into $mode, and update database location based upon $db, which is also set if invoked through a compatibility avg-pkg-build-* symlink. * bin/Makefile.am (bin_SCRIPTS): Add sbuild-stats. (pkglibexec_SCRIPTS): Remove avg-pkg-build-time. (install-exec-hook): Symlink avg-pkg-build-time and avg-pkg-build-space to sbuild-stats. commit a6a12c55322c7ab33a3052b71cf8556719cfe0b9 Author: Roger Leigh Date: Sat Dec 29 14:52:58 2007 +0000 * Document chroot abbreviations. commit c5cdf3fd9088f08c39aa59b65ef0599fc2e9be69 Author: Roger Leigh Date: Sat Dec 29 14:29:06 2007 +0000 * man/Makefile.am: Add new manual page. * man/sbuild-abort.1.in: New file. * bin/Makefile.am: Use new program name. Create compatibility symlink. Add --list and --set options. * lib/Sbuild/Conf.pm: Add and export $package_checklist. * configure.ac: Add sbuild-checkpackages.1. * bin/sbuild-checkpackages: Rename from bin/checkchroot. Use $Sbuild::Conf::package_checklist for reference list location. commit 4d32f457dd827c6d8789b6f5eb7df89ee06587a7 Author: Roger Leigh Date: Sat Dec 29 12:59:54 2007 +0000 * sbuild-abort.1.in, sbuild-apt.1.in, sbuild-hold.1.in, sbuild-shell.1.in, sbuild-update.1.in, sbuild-upgrade.1.in: New manual pages. * lib/Sbuild/Utility.pm: Call open_log and close_log in setup and cleanup, respectively (following setting nolog=1). This is to create main::LOG and main::PLOG. * lib/Sbuild/Sysconfig.pm.in: Use Sbuild::Conf::dpkg. * lib/Sbuild/Chroot.pm (begin_session): Ensure $arch is defined. Use main::LOG rather than LOG. * configure.ac: Add manual pages. * bin/sbuild-apt, bin/sbuild-update, bin/sbuild-upgrade: Set DEBIAN_FRONTEND to "noninteractive". * bin/Makefile.am: Update script names, and create symlinks for compatibility with the old names. * sbuild-abort, sbuild-apt, sbuild-update, sbuild-upgrade, sbuild-shell, sbuild-hold, sbuild-unhold: Rename from abort-current-build, chrapt, updatechroot, upgradechroot, gochroot, chr-hold, and chr-unhold, respectively. commit 296aa056705161b1518c01f427c82c12b002cfc3 Author: Roger Leigh Date: Fri Dec 28 18:12:44 2007 +0000 * man/Makefile.am: Add sbuild-adduser.8.in. * bin/Makefile.am: Add sbuild-adduser. Move sbuild-adduser and sbuild-createchroot to sbin_SCRIPTS. * bin/sbuild-adduser: Renamed from bin/add_sbuild_user. * man/sbuild-adduser.8.in: New file. commit eab8bcf2f37c8d8b06958cc837c6b6d7b6af7c99 Author: Roger Leigh Date: Fri Dec 28 01:09:57 2007 +0000 * Update copyright and GPL2+ licence boilerplate on all files. commit 9ed6be65ea51616c1feccedebdd09f49d0784a66 Author: Roger Leigh Date: Thu Dec 27 22:02:32 2007 +0000 * configure.ac: Create lib/Sbuild/Sysconfig.pm. Don't create lib/Sbuild/Log.pm. * lib/Sbuild/Sysconfig.pm.in: New file. Generate with version number, and determine hostname and arch. Export arch, hostname and version. * lib/Sbuild/Log.pm: Rename from lib/Sbuild/Log.pm.in. Remove substituted @VERSION@ and hostname and arch determination. commit dd3b0774deaca8a4f5ddb4a1a627fabaed3f4230 Author: Roger Leigh Date: Thu Dec 27 20:07:27 2007 +0000 * debian/*: Update packaging to use new autoconf/make. See debian/changelog. * scripts/sbuild_release.m4.in: New file for generating release date. * scripts/global.mk: Global automake defaults. * */.gitignore: Update with new generated files. * man/*.1.in, man/*.7.in: Use @RELEASE_DATE@. * debian/.cvsignore: Remove. * bin/add_sbuild_user: Move from chroot/. * TODO: Add checkchroot updates. * lib/Sbuild*: Move from Sbuild*. * README: Move from chroot/README. * bootstrap: Add autotools bootstrap script. * configure.ac: Add autoconf template. * */Makefile.am: Add automake templates. * AUTHORS: New file. * ChangeLog: Start upstream changelog. commit 4da0b2c85568d4eb6b9cbf0561e56476b36c646d Author: Roger Leigh Date: Thu Dec 27 12:37:30 2007 +0000 * debian/rules: Move -stamp files to debian/. * sbuild.conf: Move to etc/. * example.sbuildrc: Move to etc/. commit 22ff09b1ec065058250ab84c6e5806934030d309 Author: Roger Leigh Date: Thu Dec 27 01:18:32 2007 +0000 * sbuild: Move to bin/. * avg-pkg-build-time: Move to bin/. commit ee61899d5db5cf10e3adac8ab1b940efef09cfad Author: Roger Leigh Date: Thu Dec 27 01:12:55 2007 +0000 * TODO: Remove completed items. commit 50b9af7b0660b37f73889dc0e77a88dc048a1ea4 Author: Roger Leigh Date: Thu Dec 27 01:07:54 2007 +0000 * Move manual pages to man/. * debian/manpages: Move manual pages to man/. commit 957b31abf707b98e4dde23f1dd529a2977ba5021 Author: Roger Leigh Date: Thu Dec 27 00:39:27 2007 +0000 * bin/sbuild-createchroot: Also install fakeroot and build-essential. commit 646b3ea4c4cbc0885bccabb299836ced2c03f60c Author: Roger Leigh Date: Wed Dec 26 18:51:27 2007 +0000 * Reindent all sources * Remove whitespace commit 92db3d22501dc785e6edab8d6bf63054bf383138 Author: Roger Leigh Date: Wed Dec 26 17:21:19 2007 +0000 * Remove CVS Id tags. commit 7ddca43c89e2d9cff52511d14fb61428bd86fc70 Author: Roger Leigh Date: Wed Dec 26 17:17:20 2007 +0000 * Update GPL boilderplate to use current FSF text. * Add boilerplate where missing. commit 66ce20ef293eba56964f1eaf14bb7a9ef69feeb2 Author: Roger Leigh Date: Wed Dec 26 16:02:25 2007 +0000 Ignore backup files. commit 5d3dc35e9432e9ea5c856e3181cdba8beefcd134 Author: Roger Leigh Date: Sat Dec 22 16:33:14 2007 +0000 * sbuild: - filter_dependencies: Remove redundant conditional. [Jan-Marek Glogowski] - Add check for check-depends-algorithm option. [Jan-Marek Glogowski] - filter_dependencies: Change dependency behaviour depending upon check_depends_algorithm. [Jan-Marek Glogowski] * Sbuild/Conf.pm: Add and export $check_depends_algorithm. [Jan-Marek Glogowski] * example.sbuildrc: Add missing variable types. [Jan-Marek Glogowski] * example.sbuildrc: Add missing variable types and add $check_depends_algorithm. [Jan-Marek Glogowski] * sbuild.1: Document --check-depends-algorithm [Jan-Marek Glogowski] commit 45fd7755b63fb65c2936f61409f9fb4255af1a4f Author: Roger Leigh Date: Sat Dec 22 16:32:36 2007 +0000 * sbuild: - filter_dependencies: Remove redundant conditional. [Jan-Marek Glogowski] - Add check for check-depends-algorithm option. [Jan-Marek Glogowski] - filter_dependencies: Change dependency behaviour depending upon check_depends_algorithm. [Jan-Marek Glogowski] * Sbuild/Conf.pm: Add and export $check_depends_algorithm. [Jan-Marek Glogowski] * example.sbuildrc: Add missing variable types. [Jan-Marek Glogowski] * example.sbuildrc: Add missing variable types and add $check_depends_algorithm. [Jan-Marek Glogowski] * sbuild.1: Document --check-depends-algorithm [Jan-Marek Glogowski] commit eef19523ef4fe3ecc805871ce380686ce1f677c5 Author: Roger Leigh Date: Sat Dec 22 16:06:58 2007 +0000 Add generated files. commit d183c5e400de321f1de3c9c9b498ee9f224c0969 Author: Roger Leigh Date: Sat Dec 22 16:06:35 2007 +0000 * chroot/README: Rename from README.buildd-chroot. Remove buildd.chroot section. * bin/sbuild-createchroot: Moved from chroot/buildd.chroot. * sbuild-createchroot.1.in: Add manual page. * debian/manpages: Add sbuild-createchroot.1. * debian/rules: Install sbuild-createchroot, and add buildd.chroot compatibility symlink. commit 65f6b8b9d78be281b2b0ff4c4cab4a70f6f6ddb9 Author: Roger Leigh Date: Sat Dec 22 14:43:40 2007 +0000 * chroot/buildd.chroot: Fix incorrect variable name. commit 2461363a8fc3e71b28615d4f36bd4dcdea0bc4c5 Author: Roger Leigh Date: Sat Dec 22 14:31:18 2007 +0000 * chroot/buildd.chroot: - Remove /etc/passwd creation (already done by debootstrap). - Remove sbuild directory creation (already done by schroot). - Use here doc to set up /etc/apt/sources.list. - List sources.list. commit 02926768074cbf9e3ab2fed9db385d96a77ce554 Author: Roger Leigh Date: Sat Dec 22 13:28:35 2007 +0000 * bin/*: Reindent to increase readability. * chroot/*: Reindent to increase readability. * chroot/buildd.chroot: Add GPL boilerplate. commit 122976cd2638ab8287d5a33685901eae64e58d57 Author: Roger Leigh Date: Sat Dec 22 12:39:41 2007 +0000 Ignore *~. commit ca6dbe47801a1a58800135beeb82dcce21e4496a Author: Roger Leigh Date: Sat Dec 22 12:39:06 2007 +0000 * Sbuild/*.pm: Reindent to increase readability. commit 0f578450b8c94fefb1f69dcfa3faa8d5a1c73cc3 Author: Roger Leigh Date: Wed Dec 19 23:52:22 2007 +0000 * sbuild: build: Use unicode line drawing characters instead of ASCII. commit a6fac48b588fe412cbd3186efd868708b7b8d68d Author: Roger Leigh Date: Wed Dec 19 23:41:27 2007 +0000 * sbuild: Reindent to increase readability. commit 68506b2eb71acaf9e3e3fca203ae108fe6f53a39 Author: Roger Leigh Date: Wed Dec 19 22:31:03 2007 +0000 * sbuild: - Add additional syntax checks. Thanks to Jan-Marek Glogowski. - filter_dependencies: Remove redundant conditional. Thanks to Jan-Marek Glogowski. commit d984e776500bbcfda3a01b7aee7167c477a1247d Author: Roger Leigh Date: Mon Dec 17 08:01:41 2007 +0000 buildd: Use --auto-give-back arguments correctly with newer sbuild option parser. Thanks to Florian Lohoff. commit 75e65d42e9422da504666de23735b7a8ae7733fb Author: Roger Leigh Date: Mon Dec 17 07:58:49 2007 +0000 * buildd: Log command-line arguments. Thanks to Florian Lohoff. commit fc84f604d74d2219ca7b32cfd8f2610991fa8754 Author: Roger Leigh Date: Mon Dec 17 07:56:10 2007 +0000 * debian/control: Fix line wrapping. * debian/rules: Use prefixed binary names for installation. * abort-current-build: Re-add. commit 538eb5630a26110f3f1756added8d3f09d248e75 Author: Roger Leigh Date: Sun Dec 2 15:03:36 2007 +0000 * Sbuild/Chroot.pm: set APT::Install-Recommends to false inside the chroot (Closes: #449253). commit 1a0f25e77430bc0f15868ebaa5543cc6cb7e61f2 Author: Roger Leigh Date: Sat Jul 7 19:36:53 2007 +0000 * debian/preinst: Use dpkg-query in place of /var/lib/dpkg/status. commit b249999cda0db3148dc7660d7f3303c6f1058968 Author: Roger Leigh Date: Sat Jul 7 17:53:29 2007 +0000 * sbuild - Fix --force-orig-source option which was renamed to --force_orig_source while rewriting the options parsing logic to use Getopt::Long (Closes: #428205). Thanks to Alec Berryman for reporting this regression. - Accept arguments for options requiring a string (Closes: #431216). Thanks to Anders Kaseorg for the patch for this regression. commit c43f8c2c4b0da7adf0e20bc2f26a3f252e0baa7f Author: Roger Leigh Date: Sun Jun 10 10:27:14 2007 +0000 * sbuild - Fix --force-orig-source option which was renamed to --force_orig_source while rewriting the options parsing logic to use Getopt::Long (Closes: #428205). Thanks to Alec Berryman for reporting this regression. commit 41d3c639f27b8585dcb621c033534c258c2f925f Author: Roger Leigh Date: Sun May 27 23:42:10 2007 +0000 * debian/control: Depend on debhelper v5. commit 95ae0f2a288b5d831501eb4fb644f37c95ede985 Author: Roger Leigh Date: Sun May 27 23:40:24 2007 +0000 * debian/changelog: Fix missing colon in bug closure for revision 0.2.4. commit fc398f7692db9737e7ed710713fadf170f10b9ce Author: Roger Leigh Date: Sun May 27 23:37:51 2007 +0000 * debian/compat: New file. Set to debhelper compatibility level 5. * debian/rules: Remove DH_COMPAT. commit 6d3b52c7cc724f09210580cc6cd054b386c7a14f Author: Roger Leigh Date: Sun May 27 22:38:52 2007 +0000 * Finalise for 0.55. commit 7281024d945893a6edd9058740ad8a0bcf05930e Author: Roger Leigh Date: Sun May 27 22:35:39 2007 +0000 * sbuild: build: When calling mv to move files, use -f to make sure it doesn't run interactively. commit b30051df568f8605bd403b8def24f5bba38c120a Author: Roger Leigh Date: Sun May 27 22:20:55 2007 +0000 * Sbuild/Chroot.pm: - end_session: + Add a debugging message. + Clear $schroot_session. commit 04bab410ebbfce222122b6fd305488b90d1e10bb Author: Roger Leigh Date: Sun May 27 22:19:17 2007 +0000 * Sbuild/Log.pm.in: open_log, open_pkg_log: Ignore SIGINT, SIGQUIT, SIGTERM and SIGPIPE in the logger processes, so that logging continues if the process group is signalled to terminate. They will exit when the group leader exits or closes the pipe. commit c4a3bd6911b45b9983543332b4c324efce8014b9 Author: Roger Leigh Date: Sun May 27 22:15:49 2007 +0000 * sbuild - build: + Remove the call to setsid when forking dpkg-buildpackage, because this broke shell job control. Some packages might possibly hang while building if they detect they have a controlling terminal, but IMO this is a bug in the package. + When handling the timeout for dpkg-buildpackage, make the $SIG{'ALRM'} handler local, so that it is restored to the default once the build has finished. - Initialise $main::sub_task with a value, in case the build gets terminated prior to it being used. - Change to position of begin_session, so that it matches the cleanup order on shutdown. - shutdown: Call end_session to clean up the chroot. commit 9ef2668b92a4abf8d14e1b4133e44402c8db010b Author: Roger Leigh Date: Sat May 26 13:30:55 2007 +0000 * debian/NEWS: Renamed from debian/NEWS.Debian (Closes: #425370). Thanks to Lucas Nussbaum for spotting this. commit 455f3852405d577a8fea72b8a6dea3dcca224281 Author: Roger Leigh Date: Sat May 26 13:26:32 2007 +0000 * debian/NEWS: Renamed from debian/NEWS.Debian. commit a1b15dab8341bde8d6ce6bc999163068b8ff96fe Author: Roger Leigh Date: Sat May 26 12:53:07 2007 +0000 * sbuild: Remove trailing whitespace. * Sbuild/Log.pm.in: Remove trailing whitespace. commit bf5c69db2813d23904c4929b4244d216656a18aa Author: Roger Leigh Date: Sat May 26 12:48:02 2007 +0000 * sbuild: check_dependencies: If a toolchain package is missing, print a "not installed" message, rather than a blank version. commit 63c2d3a30f37daeae596eaa6ce55ba4060e6c161 Author: Roger Leigh Date: Sat May 26 12:39:23 2007 +0000 * sbuild: parse options with Getopt::Long. commit e7ccc2368e24f94a04b778b889e256ef0c10866e Author: Roger Leigh Date: Sat May 26 10:18:32 2007 +0000 * sbuild: merge_pkg_build_deps: Replace references to "central" src deps with build-essential deps. * Sbuild/Conf.pm: Add linux-libc-dev, gnumach-dev, hurd-dev and kfreebsd-kernel-headers to @toolchain_regex. Thanks to Clint Adams (Closes: #425855). commit 2adf2e9ad107924d95daf2b4f3c4ba6cb7230f3e Author: Roger Leigh Date: Sat May 26 10:09:33 2007 +0000 * sbuild: parse_manual_srcdeps: New function, to replace the addition of manual source dependencies from the removed read_deps() function. commit bc9a92666d794bac162d9b40546d0b84909a4ed2 Author: Roger Leigh Date: Wed May 23 21:10:38 2007 +0000 * sbuild: - fetch_source_files: Strip the epoch of the version number, so that $dscbase matches the .dsc filename in the filesystem (Closes: #425715). - build: Document the regex which strips the epoch from the version number. - dsc_md5sums: Log failure to open the .dsc. commit f5f478dd6bd01582a543bbb299473c5fdd531bd4 Author: Roger Leigh Date: Fri May 18 16:56:32 2007 +0000 * Finalise for 0.54. commit 6f273d38041265427edd47b7befebeed833b0b3e Author: Roger Leigh Date: Wed May 16 21:13:59 2007 +0000 * sbuild: Parse --arch option correctly, and fix broken --dist option parsing. * Sbuild/Chroot.pm: Cope with an empty arch argument. commit 3a4d58fd0c44f132c503fa9b6742989894b07cb9 Author: Roger Leigh Date: Tue May 1 20:12:03 2007 +0000 * Sbuild/Conf.pm: Remove the requirement for /usr/share/sbuild/sbuild.conf. commit 6d8bbe8c8717c0909bcc4f4046371fef6bc4a499 Author: Roger Leigh Date: Mon Apr 9 23:02:16 2007 +0000 * debian/NEWS.Debian: Document change in $sbuild_mode default. commit 5b556db90116d8cc428f679e819042badd4f4310 Author: Roger Leigh Date: Mon Apr 9 22:58:50 2007 +0000 * debian/rules: - Don't install sbuild.conf.local. - Install sbuild.conf into /etc/sbuild. * Sbuild/Conf.pm: - Define and export @no_auto_upgrade and %watches. - Remove the requirement for /usr/share/sbuild/sbuild.conf. - Mark deprecated/obsolete variables for removal post-Lenny. - Set defaults from global sbuild.conf. * sbuild.conf: - Add and document all options from Sbuild/Conf.pm. - Reorder into sections. - Merge with sbuild.conf.local, and install into /etc/sbuild. * sbuild.conf.local: Remove. * example.sbuildrc: - Replace all options with documented options from sbuild.conf. - Add additional user-centric options from sbuild.conf. - Reorder into sections. commit 4309a4870fe22652c796b00bcf05912bfd1da3a2 Author: Roger Leigh Date: Mon Apr 9 14:08:46 2007 +0000 Update date. commit 0d5abecc75418a188c0319aee569df88e5f9d4e0 Author: Roger Leigh Date: Mon Apr 9 14:08:19 2007 +0000 * sbuild: Added new command-line argument --arch to specify the architecture, and pass this to begin_session (Closes: 410576). * Sbuild/Chroot.pm: begin_session: take the architecture as a second argument, and check if a chroot specific for the architecture exists. * sbuild.1.in: Document --arch and chroot search order. commit c0ca58f880323cb2a51cf9a2a416a3440bc15525 Author: Roger Leigh Date: Sat Apr 7 09:33:19 2007 +0000 * debian/NEWS.Debian: - Document removal of building on the host system. - Document sudo->schroot migration. commit dd1bf8b9001cd52ca37cc284cc78e91fa3ea2185 Author: Roger Leigh Date: Sat Apr 7 09:19:53 2007 +0000 * sbuild: Use "du -k -s" instead of "du -s" to increase portability. Thanks to Martin Koeppe (Closes: #418061). commit 01a6e32a6a2ba501bfc3c31a1b365d7d3d04ae23 Author: Roger Leigh Date: Sat Apr 7 09:11:01 2007 +0000 * Sbuild/Conf.pm: Define and export %alternatives. Thanks to Martin Koeppe (Closes: #418060). commit db4a08f4dcd635b57db34858db7fd6802e131233 Author: Roger Leigh Date: Tue Apr 3 13:27:06 2007 +0000 * debian/control: Depend on dctrl-tools rather than the transitional grep-dctrl package. Thanks to Jonh Wendell (Closes: #417573). commit 3138b2fbfa17ddd1540bb1c5783cf16e9213930f Author: Roger Leigh Date: Fri Mar 30 15:55:29 2007 +0000 * sbuild: fetch_source_files: Only call dsc_md5sums once, rather than twice. commit b6cc44b33a84091e2341187d620df8bea7167664 Author: Roger Leigh Date: Fri Mar 30 15:52:20 2007 +0000 * sbuild: - Compute package, version, directory and whether to download sources before calling fetch_source_files, because all the needed information is available at this point. - fetch_source_files: Add extra directory, package, version and download arguments. commit 4aa3c2a6de211dbcfd92dbceffbd36073bb8989a Author: Roger Leigh Date: Fri Mar 30 12:48:21 2007 +0000 * debian/changelog: Close #413524 and #413908. commit 517b7b6d71c78647e33fce41f5f9b88688761902 Author: Roger Leigh Date: Fri Mar 30 12:05:28 2007 +0000 * sbuild: check_group_membership: New function to check the user is a member of the sbuild group (Closes: #414064). commit f76fd2c709bce069148e5d5707b7346952d3a4ce Author: Roger Leigh Date: Fri Mar 30 10:51:23 2007 +0000 * sbuild: build: Remove obsolete code for running dpkg-buildpackage outside a chroot. commit 1ff37a4f26d49b52e0bb0cb8f0d6a0d1db89042c Author: Roger Leigh Date: Fri Mar 30 10:45:32 2007 +0000 * sbuild: Update copyrights, and encode in UTF-8. commit ac9d76836b21b054c72ea4a614e3c3179881cccb Author: Roger Leigh Date: Fri Mar 30 10:42:17 2007 +0000 * sbuild - Quote all arguments to system commands such as "rm -rf", to prevent potential disasters. - build: + Don't chdir before running dpkg-source. + Don't chdir before running dpkg-parsechangelog (do it in the schroot child process). commit 7375cff3876bacdb85f9178d0abcdb56350aea3d Author: Roger Leigh Date: Thu Mar 29 23:35:57 2007 +0000 * sbuild: - fetch_source_files: Download sources directly into the chroot build directory. For sources already existing outside the chroot, copy them into the chroot build directory. - get_dpkg_status: Print debugging messages with defined variables only, to avoid Perl warning. - verify_md5sums: Remove obsolete comment regarding chroots. commit fcc5c3ff3cb68fcf5c5785282daa7307c2e54211 Author: Roger Leigh Date: Thu Mar 29 12:18:38 2007 +0000 * debian/README.Debian: Remove requirements for chroot symlinks in working directory. commit 2b1d944ec04f06a932526748c026303750c16ba9 Author: Roger Leigh Date: Thu Mar 29 12:00:35 2007 +0000 * Sbuild/Chroot.pm: - _setup_options: + Remove use of $chroot_only. + Remove trailing / from 'Build Location'. - init: Add newline to debugging message. - strip_chroot_path: New function to strip the chroot location from a path. - log_command: Correctly log commands when no APT Options stripping is needed. - get_command_internal: Set the working directory inside the chroot to the build location. * Sbuild: - Add / separators to all users of $main::chroot_build_dir in paths. - Replace all users of regular expressions to strip the chroot dir from paths with strip_chroot_path. commit 0aeb257f7956edef5569a5d153c091bcd9dc72bb Author: Roger Leigh Date: Thu Mar 29 11:42:04 2007 +0000 * Sbuild/Chroot.pm: init: Add newline to debugging message. commit 2cb38d6678014f6bc1e8bd1a72e1d63355b44b47 Author: Roger Leigh Date: Thu Mar 29 11:18:42 2007 +0000 * debian/NEWS.Debian: Document removal of support for building from a directory. * sbuild: - build: Remove support for building from a directory. - fetch_source_files: Remove support for building from a directory. commit 8cd192c95b6e803ccf00d7c491ba3a7210acf4e1 Author: Roger Leigh Date: Thu Mar 22 10:06:00 2007 +0000 * build: Replace "822-date" with "date -R". Thanks to Guillem Jover for this patch (Closes: #415798). commit 8b3e241618e644c8db7b45e957a6dd36b648f41f Author: Roger Leigh Date: Sun Mar 18 13:29:45 2007 +0000 * sbuild: dump_main_state: New function to dump the program state using Data::Dumper. Use to dump the state after each build. commit 72a14e86ed9fc0ed9868dd767b96939aea0eb699 Author: Roger Leigh Date: Sat Mar 10 22:40:28 2007 +0000 * sbuild: - cleanup_packages: Remove undo_specials(). - install_deps: Remove @special use. - unpack_special_source: Remove. - undo_specials: Remove. - filter_dependencies: Remove @special use. - run_script: Remove. - parse_one_srcdep: Remove @special use. - get_special: Remove. - write_srcdep_lock_file: Remove @special use. - check_srcdep_conflicts: Remove @special use. commit 4669616332f442ef431bf1953febf00aa5c45e12 Author: Roger Leigh Date: Sat Mar 10 18:29:31 2007 +0000 * sbuild: Remove SVN Id:. commit b5a6176f6d3ea44a8630eb8a563957d62a4507de Author: Roger Leigh Date: Sat Mar 10 18:24:52 2007 +0000 * bin/updatechroot, bin/upgradechroot, bin/chrapt: Remove chroot_mode. commit 1f328f4c8c8839bf71e33651417a06572b96d637 Author: Roger Leigh Date: Sat Mar 10 18:21:10 2007 +0000 * sbuild.conf: Remove $source_dependencies. commit 0f14a2ab5a1907d9d3ed864a7e8af987374f5485 Author: Roger Leigh Date: Sat Mar 10 18:15:29 2007 +0000 * sbuild: - build: Remove do_apply_patches. - apply_patches: Remove. - get_special: Remove use of @main::global_patches. commit 6c4c71a7d977afaf156200ebc401363a256c6e93 Author: Roger Leigh Date: Sat Mar 10 15:29:29 2007 +0000 * sbuild-setup.7.in: Update user section to document sbuild group membershipi and add_sbuild_user. Remove chroot setup, which is now handled by schroot. commit 7d6b6c226be12e68a709750a0375a0e073469de0 Author: Roger Leigh Date: Sat Mar 10 15:10:18 2007 +0000 * chroot/add_sbuild_user: Rewrite in perl. Only call adduser; all other chroot setup is taken care of by the 50sbuild schroot chroot setup script. commit 940f39a405018fd559178f94ac0fd5569cf10a6c Author: Roger Leigh Date: Sat Mar 10 15:09:05 2007 +0000 * Sbuild/Chroot.pm: _setup_options: Remove use of $chroot_only. * Sbuild/Conf.pm: - Don't export $chroot_only. - Don't define $chroot_only. - Abort with an error if $chroot_only is defined. * sbuild.conf: Remove $chroot_only. commit 64a2a235e110f5dfea44bb056a1cd018bf475aa9 Author: Roger Leigh Date: Sat Mar 10 11:01:04 2007 +0000 * debian/control: - Remove sudo from Depends. - Add schroot to Depends. - Remove schroot from Recommends. * debian/NEWS.Debian: New file. Document removal of manual source dependencies and sudo. * sbuild: cleanup_packages: Remove check for schroot when removing build dependencies, since schroot is the default. * Sbuild/Chroot.pm: - Remove all special casing for sudo and schroot. schroot is now the only supported method of accessing chroots. - end_session: Only attempt to end a session when $schroot_session is non-empty. * Sbuild/Conf.pm: - Don't export $sudo or $chroot_mode. - Don't define $sudo or $chroot_mode. - Remove sudo sanity checks. - Abort with an error if $sudo or $chroot_mode are defined. * sbuild.conf: Remove $sudo. * sbuild-setup.7.in: Remove sudo setup. * bin/README.bins: Remove sudo from extra package list. * chroot/add_sbuild_user: Remove sudo setup instructions and copying of /etc/sudoers to the chroot. * TODO: New file. Document needed changes. commit 57cccfd0449f999b549a134b7c6ba3e7c4d00a66 Author: Roger Leigh Date: Thu Mar 8 23:50:20 2007 +0000 * debian/README.Debian: Document removal of manual src-deps. * sbuild: Remove read_deps, so manual src-deps are no longer read. The remainder of the manual src-deps support remains to be removed. * Sbuild/Conf.pm: - Don't export $source_dependencies. - Don't define $source_dependencies. - Abort with an error if $source_dependencies is defined. * sbuild.conf: Remove $source_dependencies. * sbuild.conf.local: Remove $source_dependencies. commit 29166b895a7f2db7bd39ab8878d121dba1bd9887 Author: Roger Leigh Date: Sun Feb 11 10:20:24 2007 +0000 * Finalise for 0.53. commit ac08472642e1ce615446836d31206dd61895a5df Author: Roger Leigh Date: Sat Feb 10 20:24:46 2007 +0000 * sbuild.conf: Obsolete $source_dependencies. * sbuild.conf.local: Obsolete $source_dependencies. * update-sourcedeps, update-sourcedeps.1.in: Remove (Closes: 409642). Thanks to Kenshi Muto for reporting that it no longer works. * debian/rules, debian/manpages, debian/README.Debian: Remove support for update-sourcedeps, and note that sourcedeps support is obsoleted and will be removed in Lenny. commit b1a50f86f16f855c2ead925871e1fc9e74dbd126 Author: Roger Leigh Date: Sat Feb 10 19:52:51 2007 +0000 * sbuild: fetch_source_files: Add package information into the key of the %entries hash, in order to cope with multiple packages being returned by apt-cache. Based on a patch by Goswin von Brederlow for Bug #408091. commit d241c5b13216a3a64af9e24090338c697ca5a951 Author: Roger Leigh Date: Sat Feb 10 19:07:54 2007 +0000 * sbuild: fetch_source_files: Correct indentation, and error with brace placement which caused apt-cache output to not be used. commit d7cf5791d571890446993935eb7ddeda30842a61 Author: Roger Leigh Date: Sat Feb 10 19:00:31 2007 +0000 * sbuild: When running apt-cache, divert STDOUT to the package log, so that warnings do not get mailed separately (Closes: #399178). commit d3adf21e72393d7954e976da7609866b47893dd2 Author: Roger Leigh Date: Sat Feb 3 22:13:05 2007 +0000 * README.chroot-building: Refer to modern buildd chroot creation script in README.chroot-building. Merge from upstream SVN cset 106. commit 1aaeadb7f5afdaa662d34ac33859fcc3c7e84f04 Author: Roger Leigh Date: Sat Feb 3 22:11:12 2007 +0000 * wb-ssh-wrapper: New file. Merge from upstream SVN cset 105. commit fc98f75dc63f24b752148f43688436f4a64b1471 Author: Roger Leigh Date: Sat Feb 3 22:09:32 2007 +0000 * buildd-make-chroot: Fix typos, and add some additional setup that the debootstrap backport on d.o doesn't currently do. Merge from upstream SVN cset 104. commit 8840afd21e196463d92b4f4c8fbe9dc5514b268c Author: Roger Leigh Date: Sat Feb 3 22:08:00 2007 +0000 * buildd-uploader: Really fix for new dpkg. Merge from upstream SVN cset 103. commit 54f269765c81f708f0f37e4900180f17811b0be4 Author: Roger Leigh Date: Sat Feb 3 22:06:44 2007 +0000 * buildd-uploader: Update version regexes for new dpkg. Merge from upstream SVN cset 102. commit 352b1ba684d60f63fca743ef22608303afd88d0d Author: Roger Leigh Date: Sat Feb 3 22:04:22 2007 +0000 * wanna-build-catdb: Rename from catdb. * buildd-vlog: Rename from vlog. * buildd-update-chroots: Rename from update_chroot. commit 5cf6e641a8263c58229a83766716a45f664a8b33 Author: Roger Leigh Date: Sat Feb 3 22:02:28 2007 +0000 * buildd-make-chroot: Merge from upstream SVN cset 101. commit 9bf572d64ecca991bc21006cda248469935c6dab Author: Roger Leigh Date: Sat Feb 3 20:52:07 2007 +0000 * sbuild: get_apt_policy: Allow ~ in version numbers. Thanks to Frank Lichtenheld for this patch (Closes: #407293). commit bce1a069b677ec315e825b3bb345f50f85aff446 Author: Roger Leigh Date: Sat Feb 3 20:42:28 2007 +0000 * sbuild: Set umask to 022 so that dpkg-buildpackage always runs with a sane umask (Closes: #405836). commit 9be82c9878316f22fb3150c09538164c80917f65 Author: Roger Leigh Date: Sat Feb 3 20:29:17 2007 +0000 * debian/changelog: Fix typo in closes syntax. commit 510fef0e5682ad2886eaa18b4f7612a18e5d7956 Author: Roger Leigh Date: Sat Feb 3 20:27:15 2007 +0000 * Sbuild/Conf.pm: Add and export check_watches configuration variable. * sbuild: - check_watches: Don't check watches if check_watches configuration variable isn't set (Closes: #397123). * sbuild.conf.local: - Add pgp_options from sbuild.conf (Closes: 398128). - Add check_watches. commit 4e110cf9d3a93ef3b7332aa21ec28bf83b2900f0 Author: Roger Leigh Date: Sat Oct 21 20:30:08 2006 +0000 * sbuild: Remove incorrect WannaBuild:: prefix from version_compare. * Version 0.52. commit 71329c284e02b25afb5833027a33b0c0a64c8df7 Author: Roger Leigh Date: Sat Oct 21 09:15:31 2006 +0000 * debian/changelog: Change incorrect maintainer email address. commit 2298d38092ff26552f7820950010ec00d6bd3bcd Author: Roger Leigh Date: Sat Oct 21 09:09:08 2006 +0000 * Version 0.51 commit e461c91e937ed1b278be4301a8672827b09206e1 Author: Roger Leigh Date: Fri Oct 20 22:35:16 2006 +0000 * debian/changelog: Finalise and set urgency to high. commit 75ffcf6b697b84be39c05f955fb8cd9f78f2bd77 Author: Roger Leigh Date: Fri Oct 20 22:28:05 2006 +0000 * sbuild: chroot_arch(): New function to detect build architecture from within the chroot. Thanks to Kees Cook (Closes: #392992). commit 5a98e177fbc767994b84d009b24605e2cb32dea6 Author: Roger Leigh Date: Fri Oct 20 22:12:17 2006 +0000 * sbuild-setup.7.in: Correct example commandline for debootstrap. Thanks to Alex Pennace (Closes: #391277). commit a7eb31c22d4b94157111d1667465fd082d8fa4e8 Author: Roger Leigh Date: Sat Oct 14 21:39:46 2006 +0000 * Close #392752. commit 613eea0ab94fc71025c889027d214c153af325d0 Author: Roger Leigh Date: Sat Oct 14 21:35:14 2006 +0000 * Sbuild/Conf.pm: Fix check for schroot. Thanks to Julien Danjou for finding this (Closes: #392751). commit 63b826adf9ef0473fc86f8e3230802e6784c2f84 Author: Roger Leigh Date: Sat Oct 14 21:23:53 2006 +0000 * sbuild: Don't run md5sum inside the chroot. Thanks to Michael Banck (Closes: #392323). commit 73d092d71ff4549617825a59797379c55a9d74e3 Author: Roger Leigh Date: Sat Oct 14 21:03:00 2006 +0000 * sbuild, Sbuild/Conf.pm, sbuild.conf.local: Add support for setting APT policy, to allow building from experimental and sarge-backports. Thanks to Wouter Verhelst for this patch, which has been slightly modified to add configurability and adapt to this version of sbuild. commit ea74967f04f49633fda465b9f85c00b4631e005c Author: Roger Leigh Date: Fri Sep 29 22:08:31 2006 +0000 * debian/changelog: Mark as unreleased. commit 0fceb38a13f23369541f8b9efecd1b3745664138 Author: Roger Leigh Date: Fri Sep 29 22:07:15 2006 +0000 * Revert accidental commit. commit 9d32ee20d1bf50d857e8f43e2e0929b52e6ab4aa Author: Roger Leigh Date: Fri Sep 29 22:06:18 2006 +0000 * Sbuild.pm: Fix handling of ~ in versions (merge from upstream SVN cset 100). commit 9e6025227ea42af208b91f863320deaccd78227e Author: Roger Leigh Date: Fri Sep 29 15:04:29 2006 +0000 sbuild: Run md5sum in the correct location. commit d93ae1c735e1a950d1308ac11795c14015e3b76e Author: Roger Leigh Date: Fri Sep 29 13:10:47 2006 +0000 * Version 0.50. commit 321ed279f87c622409e31d12333155601c7dd3d3 Author: Roger Leigh Date: Fri Sep 29 13:08:28 2006 +0000 * chroot/add_sbuild_user: Add SHELL to sudoers env_keep. * Sbuild/Conf.pm: Check sudo does not strip SHELL from the environment. * sbuild-setup.7.in: Document needed addition of SHELL to sudoers env_keep (Closes: #389815). commit c04b313a027f2f4af1aaac49bd0bbc8e3b94e6b8 Author: Roger Leigh Date: Sat Aug 26 10:49:13 2006 +0000 * debian/changelog: Initial version. * debian/control: Update package descriptions. * debian/copyright: Update with new download location and maintainers. * debian/sbuild.postinst: Remove. commit 43837bbf41fe7228bf12981dd60ee9979037ead2 Author: Roger Leigh Date: Tue Aug 22 21:55:41 2006 +0000 * Sbuild.pm: Use new binNMU versioning scheme (+bn), taken from wanna-build SVN. Thanks to Clint Adams (Closes: #384137). commit 20f5eb60c3fc98e9fa975114af766e5970168f16 Author: Roger Leigh Date: Sat Aug 12 11:25:42 2006 +0000 * sbuild: - dsc_md5sums: Return hashref on failure, rather than -1. - verify_md5sums: Only run md5sum if there is one or more md5sum to verify, to prevent md5sum waiting forever on stdin if there are no files to check. Thanks to Daniel Stone. commit a0d12d870ed4a5cba9e0670ea792e03f86c7a41f Author: Roger Leigh Date: Thu Aug 3 17:40:10 2006 +0000 * chroot/add_sbuild_user: Fix chrapt command examples in output to use correct option syntax, thanks to Matthias Julius (Closes: #381186). commit e245258f4ccecf375c2de2a6920c9e5c41462317 Author: Roger Leigh Date: Tue Aug 1 22:17:31 2006 +0000 * ChangeLog: New file. Generate from subversion history. commit 9913c6ebacebdf3abb05c79b8b286ca2ebc161b7 Author: Roger Leigh Date: Thu Jul 20 18:17:14 2006 +0000 * debian/copyright: Add Alioth file download location. commit edf600d99cfe85c407c8f2b9183d54bfa44d8109 Author: Roger Leigh Date: Sat Jul 15 22:42:55 2006 +0000 * Version 0.49. commit c86d2db7f6cb4c4430f644e20a702137411c82ad Author: Roger Leigh Date: Sat Jul 15 22:41:55 2006 +0000 * sbuild.conf, sbuild.conf.local, update-sourcedeps, sbuild.1.in, avg-pkg-build-time.1.in: Update to use the new configuration file locations. commit a0410b0f685a781726274430da9703ce4be68ea6 Author: Roger Leigh Date: Sat Jul 15 22:38:19 2006 +0000 * sbuild.conf, sbuild.conf.local, update-sourcedeps, sbuild.1.in, avg-pkg-build-time.1.in: Update to use the new configuration file locations. commit 95f28e07cdabad29e75b6b1f75c8829b909b21de Author: Roger Leigh Date: Fri Jul 14 20:31:24 2006 +0000 * Sbuild/Conf.pm: init checks if APT_CONFIG and DEBIAN_FRONTEND are being stripped from the environment by sudo (when running in split mode), and aborts with instructions for correctly configuring sudo. This prevents apt-get silently using the configuration from the host system instead of the chroot. commit e31d752abcf12b3bc15e526de30f68685b1c5e5d Author: Roger Leigh Date: Sun Jul 9 17:20:20 2006 +0000 * Sbuild/Chroot.pm: Use su, rather than sudo, inside the chroot. This prevents the APT_CONFIG and DEBCONF_FRONTEND environment variables from being removed (Closes: #376020). * Sbuild/Conf.pm: Add $Sbuild::Conf::su. * sbuild-setup.7.in: Remove sudo configuration inside the chroot, now this is no longer required. commit 85ca8b490059300939d2771e8d178a990faac70c Author: Roger Leigh Date: Sat Jun 17 11:05:10 2006 +0000 * Version 0.47. commit 9c5b643bc30ec808098b2ced448b236abf86e16c Author: Roger Leigh Date: Sat Jun 17 11:03:06 2006 +0000 * Sbuild/Conf.pm: Remove $Sbuild::Conf::log_dir checks, and revert $Sbuild::Conf::srcdep_log_dir changes. * Sbuild/Log.pm.in: If $Sbuild::Conf::log_dir does not exist, try to create it, and if this fails, warn and log to stdout (Closes: #369718). commit 6d6fda01065803e0460550faf21ec121d1b1d001 Author: Roger Leigh Date: Mon Jun 12 08:49:59 2006 +0000 * bin/chrapt, bin/updatechroot, bin/upgradechroot: When chroot_mode is "schroot", chdir to / to ensure the CWD exists inside the chroot. Thanks for Clint Adams for finding this (Closes: #372806). commit 06e6b28669542e4d3ee4db2bd54b1a3c946eecad Author: Roger Leigh Date: Mon Jun 12 07:59:55 2006 +0000 * Sbuild/Conf.pm: If $Sbuild::Conf::log_dir or $Sbuild::Conf::srcdep_lock_dir do not exist, try to create them before bailing out (Closes: #369718). commit b70222e57c48a2442b778a15412dcf50da5a7664 Author: Roger Leigh Date: Sun Jun 11 13:58:28 2006 +0000 * bin/checkchroot: Correct uninitialised value warnings due to using an undefined variable (Closes: #369709). commit 9c5070ce8e0986911249d14e4e82bff9e8968915 Author: Roger Leigh Date: Sat Jun 10 22:43:28 2006 +0000 * sbuild: fetch_source_files: When running apt-cache, check if we got valid output, and warn appropriately if the output is invalid (Closes: #369707). Output may be invalid if there are no deb-src lines in /etc/apt/sources.list in the chroot. commit c2fd2987eb435aea3a9d90cba193df10fcd468ea Author: Roger Leigh Date: Fri Jun 9 13:06:16 2006 +0000 Remove sbuild package. commit 1f93c92f6e52608fbbdbe55131f73df24926254d Author: Roger Leigh Date: Fri Jun 9 11:45:13 2006 +0000 Remove files already in the sbuild package. commit 3d1e7ed795270236e73478a05fd23d5335c2dbe7 Author: Ryan Murray Date: Tue Jun 6 05:25:35 2006 +0000 fix typo detected by lintian commit d649858594608c92f24697abb15dfc1f11382949 Author: Roger Leigh Date: Sat May 27 14:22:48 2006 +0000 * debian/control: - Update to Standards-Version 3.7.2. - Use Build-Depends, rather than Build-Depends-Indep. commit 7c6c5177b5a3cffb95c3ffbf2ae5605a89331982 Author: Roger Leigh Date: Sat May 27 14:13:46 2006 +0000 * Version 0.46. commit 534001045b74e5ebc69fb0033020c2dc847caf83 Author: Roger Leigh Date: Sat May 27 13:03:47 2006 +0000 * sbuild: get_dpkg_status: Make sure $version is defined before checking its value, to ensure the Debian version can have a value of 0. Thanks to Santiago Vila for this fix (Closes: #368066). commit b03ea47107cfa43cc38821da0ed2505360cbabf8 Author: Roger Leigh Date: Sat May 27 12:44:34 2006 +0000 * Update svn::ignore properties to ignore generated files. commit fdbb58b23a1ccb74fa4169f564a293cedbd5b494 Author: Roger Leigh Date: Wed May 24 12:49:55 2006 +0000 sbuild: fetch_source_files: Only print "apt-get update" invocation in debug mode. commit 777d3e0bc019f41c56573ad7a15efaba4db15d43 Author: Roger Leigh Date: Mon May 1 08:48:38 2006 +0000 Version 0.45. commit 3bfacbafb1b6bc4353f278e65d523ce4d5f4afd3 Author: Roger Leigh Date: Mon May 1 08:48:05 2006 +0000 * debian/control: Update to Standards-Version 3.7.0. commit 8e3d421f5c0117268bde4cefde7a55455f815c45 Author: Roger Leigh Date: Sat Apr 29 09:53:59 2006 +0000 * bin/chr-hold, bin/chr-unhold: On error, use Sbuild::Utility::shutdown to clean up. commit 165994f8235ccc1eeef67b206dfad77c7662ecc0 Author: Roger Leigh Date: Thu Apr 27 10:18:22 2006 +0000 * bin/checkchroot: - Check if the dpkg and reference files contained any data, and exit with an error if either were empty (Closes: #363351). - On error, use Sbuild::Utility::shutdown to clean up. commit 8fea8ee6bd1943596716391c258e1437d30e8d1a Author: Roger Leigh Date: Tue Apr 11 18:55:46 2006 +0000 * sbuild: - build: Only print dpkg-buildpackage invocation in debug mode. - uninstall_debs: Only print dpkg invocation in debug mode. commit 5e562c0ac113cec64a875ad9fdc8e9b62e00ef22 Author: Roger Leigh Date: Fri Apr 7 08:48:47 2006 +0000 * Version 0.44. commit e9a28d5565b1edb3c5fed1cdff8d7e0e15551ef8 Author: Roger Leigh Date: Fri Apr 7 08:43:52 2006 +0000 * sbuild: build: Delete erroneous _all.deb files (Closes: #357042). commit 6920a13f6f22996338d9430a8f062aea1643baa6 Author: Roger Leigh Date: Fri Apr 7 08:42:27 2006 +0000 * sbuild: - build: Use debian_files_list to check for missing or extra packages, and warn appropriately. - debian_files_list: New function to parse debian/files. commit c28bf7e4bb01756958ae865529391553e9da515c Author: Roger Leigh Date: Fri Apr 7 08:37:25 2006 +0000 * sbuild: Split verify_dsc_md5sums into two parts: dsc_md5sums and verify_md5sums. commit f8e823abf9a4efbdc46f36fb4b5ed2d47e640710 Author: Roger Leigh Date: Fri Apr 7 08:31:48 2006 +0000 * sbuild: Don't import internal Sbuild::Chroot functions. commit ac671082b1efa685e356f6c0e08280500f325ba5 Author: Roger Leigh Date: Fri Apr 7 08:30:51 2006 +0000 * sbuild: Don't import internal Sbuild::Chroot functions. commit c8e8b87931a39f1b300eabe07871191f1f138426 Author: Roger Leigh Date: Fri Apr 7 08:27:59 2006 +0000 * Sbuild: Use File::Basename::basename instead of Sbuild::basename. * Sbuild.pm: Remove basename function. * Sbuild/Log.pm.in: Use File::Basename::basename instead of Sbuild::basename. commit 59c4744cdf1de17692829d83b04ffaed1653d96a Author: Roger Leigh Date: Wed Apr 5 16:11:51 2006 +0000 * bin/checkchroot: Convert to Perl, using Sbuild::Utility. * bin/chrapt: Convert to Perl, using Sbuild::Utility. * bin/chr-hold: Convert to Perl, using Sbuild::Utility. * bin/chr-unhold: Convert to Perl, using Sbuild::Utility. * bin/gochroot: Convert to Perl, using Sbuild::Utility. * bin/updatechroot: - Convert to Perl, using Sbuild::Utility. - chrapt is no longer used (Closes: #355035). - Sbuild::Chroot is used for chroot access: + Suite names are no longer hardcoded (Closes: #355037). + APT Options are set correctly (Closes: #355038). * bin/upgradechroot: Convert to Perl, using Sbuild::Utility. * bin/common_functions: Remove; this is no longer used. * Sbuild/Utility.pm: New perl module for utility programs. This is a perl replacement for bin/common_functions. * debian/rules: Install Sbuild/Utility.pm into /usr/share/perl5/Sbuild. commit 7cc85a1eb146154ddcab96154182e44bcd1a430c Author: Roger Leigh Date: Tue Apr 4 10:39:41 2006 +0000 * sbuild: - Don't use File::Temp (only needed by modules). - Remove build directory check. * Sbuild/Chroot.pm: - Use File::Temp. - Don't export "internal" functions. - _setup_options: Set "APT Options" for schroot chroots. - log_command: Don't substitute CHROOT_APT_OPTIONS when no APT options are in use. * Sbuild/Conf.pm: Add build directory check (moved from sbuild). * Sbuild/Log.pm.in: Use File::Temp. commit 0103a958e9d6a2fc6ab984d8a77fffaf88a4949f Author: Roger Leigh Date: Mon Apr 3 17:41:28 2006 +0000 * avg-pkg-build-time: Use Sbuild::Conf. commit 02a2cf209b2051a0d28e74ef439ed814a8c49518 Author: Roger Leigh Date: Mon Apr 3 17:40:45 2006 +0000 * sbuild: - Die if no maintainer_name, uploader_name or key_id is specified. - Set and unset $main::binNMU_name in the main loop, rather than when opening and closing the package log. In consequence, open_pkg_log now needs the package name only, and close_pkg_log does not need the package name passing. - build: Set $firstline to "" to quell a warning. * Sbuild/Conf.pm: Add and export $avg_time_db, $avg_space_db, $maintainer_name, $uploader_name and $key_id. * Sbuild/Log.pm.in: - open_pkg_log: Save the package name for future use; the binNMU name (if any) is passed, so this no longer needs computing. - close_pkg_log: Don't pass the package name, which was saved in open_pkg_log. commit 89fd660a6f5d7708c602ee255431a14cd8ca7bd9 Author: Roger Leigh Date: Sun Apr 2 16:35:39 2006 +0000 * sbuild: - Remove unused $main::HOSTNAME. - Add build statistics to close_pkg_log. * Sbuild/Log.pm.in: - Don't use $main::HOSTNAME or $main::arch. Get the values directly. - close_pkg_log: Obtain $main::pkg_status, $main::pkg_start_time, $main::pkg_end_time and $main::this_space from the function arguments. - add_space_entry: Use $space rather than $t, and don't use $main::this_space. commit af306c072e0d827449e96f677f72c6ddc1df79b8 Author: Roger Leigh Date: Sun Apr 2 16:00:27 2006 +0000 * sbuild: Remove $main::cwd, $main::nolog and $main::verbose, now provided by Sbuild::Conf. They are imported from Sbuild::Conf for backward compatibility. * Sbuild/Conf.pm: Add $cwd, $nolog and $verbose. They exported and used by the other modules in place of the variables in the main package. commit 698fc471ab69691e0492f1e14b7592214c4315ed Author: Roger Leigh Date: Sun Apr 2 15:24:40 2006 +0000 * sbuild: Pass $main::distribution to open_log and open_pkg_log. * Sbuild/Log.pm.in: Removed use of $main::distribution. The distribution name must be passed to open_log or open_pkg_log. commit 75298445ef0513ddf069df86e05e2b1845d6c74e Author: Roger Leigh Date: Sun Apr 2 15:15:26 2006 +0000 * Sbuild/Log.pm: $main::main_logfile and $main::pkg_logfile are package variables. commit ce7b8ce1f433383ec17864c968df5f14ccec42aa Author: Roger Leigh Date: Sun Apr 2 15:03:20 2006 +0000 * sbuild: Set $main::chroot_dir, $main::chroot_build_dir, $main::srcdep_lock_dir and $main::ilock_file from the current chroot $Sbuild::Chroot::current. $main::srcdep_lock_dir replaces $conf::srcdep_lock_dir (which is still used to set when the chroot is set up). * Sbuild/Chroot.pm: Don't use $main::chroot_dir. Add the build paths as 'Build Location', 'Srcdep Lock Dir' and 'Install Lock' to the chroot metadata. commit a311a84d19794393593569302398cff89da02f55 Author: Roger Leigh Date: Sun Apr 2 14:36:25 2006 +0000 * Sbuild/Chroot.pm: begin_session takes the distribution as its first argument, rather than using $main::distribution. commit c06bc3d189a6be67e8ca5746971bc940000da13d Author: Roger Leigh Date: Sun Apr 2 14:22:34 2006 +0000 * sbuild: Move $main::username to Sbuild::Conf. * Sbuild/Chroot.pm: Replace $main::username with $Sbuild::Conf::username. * Sbuild/Conf.pm: Add $username. commit ab1a28953963997a889fe3cf88066659449c50ff Author: Roger Leigh Date: Sun Apr 2 14:12:35 2006 +0000 * sbuild: Use $conf::HOME instead of $main::HOME. commit 7146da3c058ced7c396739aba620ac6ab2de6424 Author: Roger Leigh Date: Sun Apr 2 14:11:14 2006 +0000 * sbuild: Import Sbuild::Conf into package "conf". This allows the package name used by upstream to be used for backward compatibility. commit 74d28e3e62f610d6c583c232c654a83138d33ae2 Author: Roger Leigh Date: Sun Apr 2 14:08:13 2006 +0000 * sbuild: Move $main::debug to Sbuild::Conf. * Sbuild/Chroot.pm: Replace $main::debug with $Sbuild::Conf::debug. * Sbuild/Conf.pm: Add $debug. commit 4ec2463ec9dc65d7049075e8d107b806923ee97c Author: Roger Leigh Date: Sun Apr 2 13:57:31 2006 +0000 * Sbuild/Chroot.pm: Use STDERR instead of PLOG (which may not be available). commit b169db959705ecaa9f1e38bfde5eaca700237bd1 Author: Roger Leigh Date: Sun Apr 2 13:51:47 2006 +0000 * sbuild: Remove $main::chroot_apt_options. * Sbuild/Chroot.pm: Add an "APT Options" attribute to the chroot hash, to replace $main::chroot_apt_options. commit fcf2088e7c27d700fb8f8c995c8227fa4f74d1fb Author: Roger Leigh Date: Sun Apr 2 12:39:34 2006 +0000 * Sbuild/Chroot.pm: Don't hardcode a list of chroots; use a glob to search for chroot-* instead. This allows any distribution name to be specified with -d. commit e06a2db9cd7cbe1ab3c7d8476180f24604105351 Author: Roger Leigh Date: Sun Apr 2 12:37:07 2006 +0000 * Don't import log_command from Sbuild::Chroot. commit 5d4959c5e016b89f5a1933c8a69964d838330a85 Author: Roger Leigh Date: Sun Apr 2 12:21:14 2006 +0000 * sbuild: Import needed module functions into the local namespace, to avoid long namespace prefixes on functions. * Sbuild/Chroot.pm: Don't export init and log_command. commit 56c550392a674c65b5545c84d52e30142158dbbe Author: Roger Leigh Date: Sun Apr 2 11:48:34 2006 +0000 * avg-pkg-build-time.1.in, sbuild.1.in, sbuild-setup.7.in, update-sourcedeps.1.in, Sbuild/Log.pm.in: Rename and embed version and date tags for substitution. * debian/rules: Generate all manual pages and Log.pm in the build rule, and remove them in the clean rule. commit ac2b159cb8e77275122e8ac981f2bb65e687ac97 Author: Roger Leigh Date: Sun Apr 2 11:40:40 2006 +0000 * COPYING: New file (GPL licence text). commit e56d409c09c87e2d6c92234e0b2a96c024d84749 Author: Roger Leigh Date: Sun Apr 2 10:50:13 2006 +0000 * sbuild: Use the new modules Sbuild::Chroot, Sbuild::Conf and Sbuild::Log. The functions moved into the modules have been removed. * Sbuild.pm: Add basename function. * Sbuild/Chroot.pm: New perl module for chroot operations. It contains the functions begin_session, end_session, log_command, get_command_internal, get_command, run_command, exec_command, get_apt_command_internal, get_apt_command and run_apt_command. * Sbuild/Conf.pm: New perl module for configuration variables. It reads the system and user configuration. * Sbuild/Log.pm: New perl module for logging. It contains the functions open_log, close_log, open_pkg_log, close_pkg_log, add_time_entry, add_space_entry, send_mail and log_symlink. * debian/dirs: Add usr/share/perl5/Sbuild. * debian/rules: Install Sbuild/Chroot.pm, Sbuild/Conf.pm and Sbuild/Log.pm into /usr/share/perl5/Sbuild. commit c0053d0cafcd2a892e933b1e154fa1fb2e42a4bf Author: Roger Leigh Date: Sat Apr 1 21:07:45 2006 +0000 * debian/control: Update uploaders. * debian/copyright: - Update with new subversion repository locations for upstream and Debian. - Add Roger Leigh as a copyright holder. - Add a reference to /usr/share/common-licenses/GPL. commit 1193f4c4818eb687d2ef19a913c4b6c3f1bb09da Author: Roger Leigh Date: Sat Apr 1 09:43:51 2006 +0000 * bin/checkchroot: - Quote all variables. - Sort ref-chroot file before diffing (Closes: 360058). commit 0fff9907c1d739e308eabdd3f06ab1a4e39cc1c3 Author: Roger Leigh Date: Sat Apr 1 09:30:20 2006 +0000 * sbuild: Treat schroot chroots with a "-sbuild" suffix in the same way as chroots without a suffix (Closes: #360124). commit 9f95273fbf2e14fa17b59455b016e0a3a9fb4962 Author: Roger Leigh Date: Wed Mar 29 13:59:00 2006 +0000 * Version 0.43. commit 91b251e7b0f1a8c9ca8addb920a1aa5ff5d963d0 Author: Roger Leigh Date: Wed Mar 29 13:26:59 2006 +0000 * sbuild: Add $conf::force_orig_source to allow --force-orig-source to be specified in a .sbuildrc. * example.sbuildrc: Add example $force_orig_source, with documentation. commit 4113ce86c866aaf7de3bc3994d35a0072e29fca1 Author: Roger Leigh Date: Tue Mar 28 22:11:22 2006 +0000 * sbuild.1: Correctly escape hyphens in option and file names. commit c909e0dd941cb2794cb7b23b20aca6af4862cf93 Author: Roger Leigh Date: Tue Mar 28 22:02:36 2006 +0000 * sbuild: Add --force-orig-source option to force the inclusion of the .orig.tar.gz (Closes: #318030). * sbuild.1: Document --force-orig-source option. commit 0f8ea1df21e669a5d113cc3d59e700f4ccbe7518 Author: Roger Leigh Date: Tue Mar 28 17:55:45 2006 +0000 sbuild: fetch_source_files: Remove redundant braces and reindent. commit 72983c32297f584709fc8f76ce10c11063417822 Author: Roger Leigh Date: Tue Mar 28 17:52:15 2006 +0000 * sbuild: Strip "./" from $pkg, so the name used for source dependencies is correct (Closes: #359747). commit dfbac548acaddae7149d8df0322e7f8b48c0bf04 Author: Roger Leigh Date: Mon Mar 27 16:15:16 2006 +0000 * sbuild: open_log(), open_pkg_log(): Don't buffer log output (Closes: #358717). commit 05b7859d7890e914fdf6bbef37b4718b55aa4b6f Author: Roger Leigh Date: Mon Mar 27 09:54:39 2006 +0000 * sbuild-setup.7: Use debootstrap rather than cdebootstrap. * chroot/README-buildd.chroot: Fix typo. * chroot/buildd.chroot: Use debootstrap rather than cdebootstrap (Closes: #358668). * debian/control: Recommend debootstrap rather than cdebootstrap. commit bb89ac2d1f66b7c631b658e4b1d19be7c347f266 Author: Roger Leigh Date: Tue Mar 21 10:06:50 2006 +0000 * sbuild: build(): Check for _all.udeb files which are built when they shouldn't (merge from upstream SVN cset 98). commit 90b25195a0c91d992a63b19e3be77553acbe209c Author: Roger Leigh Date: Mon Mar 20 21:33:01 2006 +0000 * bin/common_functions, bin/README.bins: Remove ~/build/ from the chroot path, to match sbuild behaviour of searching in the current directory (Closes: #355034). commit eb058978fdc6a6273e455e88c571cb0b27bb4a57 Author: Ryan Murray Date: Sat Mar 18 22:43:44 2006 +0000 complain on _all.udeb files built when they shouldn't be, too. commit 5b5b93dacff1bf72da5105c70afe55c153873ca7 Author: Roger Leigh Date: Sat Mar 18 19:14:09 2006 +0000 * bin/checkchroot: Set LC_COLLATE=POSIX to prevent collation issues (mismatches with the reference file; Closes: #294883). commit d20a8b09997584e2b026912d2d49bbe5c04af221 Author: Roger Leigh Date: Sat Mar 18 19:10:32 2006 +0000 * bin/common_functions: Allow any chroot name to be specified (Closes: #356785). * bin/README.bins: Document changed chroot syntax. commit eb8db3ac3d06616096136f7892cefeaad6eabbf3 Author: Roger Leigh Date: Sat Mar 18 17:55:11 2006 +0000 * sbuild: check_dependencies(): Print kernel information along with the toolchain package versions, in the same style as reportbug. commit 1751de5ed00b1684b97d2169f5ab16c785c4b016 Author: Roger Leigh Date: Sat Mar 18 17:33:36 2006 +0000 * sbuild: open_log(), close_log(): Create the build log using File::Temp, in the form build-distribution-date.XXXXXX.log. This prevents races during logfile creation when running concurrent builds. If the file is empty, it is unlinked on close, irrespective of whether verbose mode is used or not. commit 0e60ccded08b13e4d23ec1a657b8c56d1de6d23c Author: Roger Leigh Date: Sat Mar 18 17:14:54 2006 +0000 setup_options(): Remove unused call to tmpnam(). commit 2456a7dea2dd44eca8ee53dba83342ecabcf5871 Author: Roger Leigh Date: Sat Mar 18 16:39:45 2006 +0000 * sbuild: - open_log(), close_log(): Save a references to the initial STDOUT and STDERR, and restore them when the log is closed. - open_pkg_log(): Use the saved STDOUT for verbose logging. This prevents the package log being also directed to the build log. commit f6232854579aaffa0552ef62e611ebdcca5f4c42 Author: Roger Leigh Date: Fri Mar 17 12:18:54 2006 +0000 * sbuild: log_symlink(): New function to create a symbolic link to the current package log. This replaces the use of /bin/ln, which has races if concurrent builds use it. commit c0dc19d0ae5c5d02cfe8b3380dbe4f976c9e29fe Author: Roger Leigh Date: Wed Mar 15 12:54:29 2006 +0000 * sbuild: - open_log(), open_pkg_log(): Use fork() rather than tee to multiplex log output. - close_log(), close_pkg_log(): Close all dup'd log streams, and don't kill the child log processes, which avoids dataloss in the pipeline. commit a3ec2a4ff63c4b8f109a1c1ef79359ad0b294cfb Author: Roger Leigh Date: Tue Mar 14 19:52:16 2006 +0000 * sbuild: Add $conf::md5sum for security. commit 139a5cde530d72cfeba0ee2c11c38b7d4cdb334f Author: Roger Leigh Date: Tue Mar 14 18:55:33 2006 +0000 * sbuild: When using schroot, look for a distribution named "$distribution-sbuild" in preference to "$distribution". * sbuild.1: Document schroot chroot naming. commit 36bba084a773e994fda1e723958d3a4198976e59 Author: Roger Leigh Date: Tue Mar 14 17:27:25 2006 +0000 * sbuild: build(), shutdown(): Quote kill command correctly (Closes: #356686). commit 832e95098f856061c83b67ae69fa6527bd8424c1 Author: Roger Leigh Date: Tue Mar 14 10:03:39 2006 +0000 * sbuild: - verify_dsc_md5sums(): New function to verify the MD5SUM of files in a .dsc file. - fetch_source_files(): Use verify_dsc_md5sums to check for incomplete downloads, and redownload sources if needed; also verify again after download (Closes: #270439). commit 96f6832aff67ddc0e58a71bcbc1772ed186d87e8 Author: Roger Leigh Date: Mon Mar 13 00:14:25 2006 +0000 * Version 0.42. commit 6e8992969b94848fb4bd931b0c834477784e8333 Author: Roger Leigh Date: Sun Mar 12 18:43:24 2006 +0000 * sbuild: Reindent. commit 42347b127adf20a1bdc9a254c6fda20b0b7d7a7f Author: Roger Leigh Date: Sun Mar 12 18:40:53 2006 +0000 * sbuild: Reindent. commit e6604bbe1ee27f2b9988ce3ffcd47f53332e45a1 Author: Roger Leigh Date: Sun Mar 12 16:55:37 2006 +0000 * sbuild: - install_deps(): + If there are no package dependencies, create an empty anonymous array reference to hold the (nonexistent) dependencies, required by filter_dependencies. + Make sure %entries is initialised. - fetch_source_files(): Check that the dsc specified is valid. commit 9a17fd4fa47defec359239ab8f05d7500dee738b Author: Roger Leigh Date: Sun Mar 12 00:12:32 2006 +0000 Fix typos. commit dfdc30b0d7f4029cc1d534be6e134e8a733f2c67 Author: Roger Leigh Date: Sat Mar 11 23:38:45 2006 +0000 Don't use PLOG before it's opened. commit 6143aa1ce4f8a889f337427a920f69250104d0df Author: Roger Leigh Date: Sat Mar 11 23:37:36 2006 +0000 * sbuild: Always print toolchain packages. This is done by always calling merge_pkg_build_deps(), and running all the way through install_deps(), even when the package does not supply any build dependencies or conflicts (Closes: #355040). commit 0c34a103190d0225c4eae221eee922be25453f1f Author: Roger Leigh Date: Sat Mar 11 23:00:34 2006 +0000 Close #183022. commit e0c39337ae6e114b726b7eddaa7df5e53fd3babc Author: Roger Leigh Date: Sat Mar 11 22:59:36 2006 +0000 * sbuild: $conf::build_dir defaults to $main::cwd if undefined. It is used as the directory containing the build chroots, build logs, and current symlinks. * example.sbuildrc: Add $build_dir example. commit bcf6a6442f5437f40ec05ac780a7b0eac8cca4df Author: Roger Leigh Date: Sat Mar 11 18:42:56 2006 +0000 Close 355802. commit 997ad1c6da7e25f6c60e65a3dd25f127282bd311 Author: Roger Leigh Date: Sat Mar 11 18:41:40 2006 +0000 * sbuild: setup_options: Make sure $main::dist_locations{"$distribution"} is defined. commit 24997845f38218fa3e4202ad19140820cfc66d25 Author: Roger Leigh Date: Sat Mar 11 18:32:12 2006 +0000 Close #170742. commit 5dfc236834a87d794b42db0bf371c54dc3acf30f Author: Roger Leigh Date: Sat Mar 11 18:21:39 2006 +0000 * sbuild: - The default sbuild_mode is "buildd". - open_pkg_log(): Create current-distribution symlink in addition to current. - $main::verbose is set by default if running on a tty. - LOG and PLOG are set to autoflush using IO::Handle. * sbuild.conf.local: $sbuild_mode defaults to "buildd". commit cbf729dec70d97be69c9263324983fa37aee7a1a Author: Roger Leigh Date: Sat Mar 11 18:08:26 2006 +0000 * sbuild - Use named signals, rather than numbers, for portability. - close_log(), close_pkg_log: If verbose is enabled, flush the log and wait a second before killing tee, to prevent data loss in the pipline. commit f8cd363157076ff572dca6c577a078eb2b1511dc Author: Roger Leigh Date: Sat Mar 11 16:42:44 2006 +0000 * sbuild: Require /usr/share/sbuild/sbuild.conf and optionally require /etc/sbuild/sbuild.conf. * sbuild.conf: Don't require local config file. * debian/dirs: Add etc/sbuild. * debian/rules: Install sbuild.conf as /usr/share/sbuild/sbuild.conf and sbuild.conf.local as /etc/sbuild/sbuild.conf. * debian/preinst: - New conffile. - Remove /etc/sbuild.conf.local if not locally modified. * debian/postinst: - Move /etc/sbuild.conf.local to /etc/sbuild/sbuild.conf if needed. - Reindent. * debian/postrm: - Unlink /etc/sbuild.conf if present. - Unlink files under /var/lib/sbuild. - Reindent. commit 5e865028d1426ea93e7eb589db5c4e7ed930cf76 Author: Roger Leigh Date: Fri Mar 10 14:06:29 2006 +0000 Add files to ignore. commit a95a2396a4c5735d2a58c5ad9c1965930b3e35e1 Author: Roger Leigh Date: Thu Mar 9 23:07:41 2006 +0000 * debian/rules: Remove "make clean" in clean target; there is no Makefile, so this is redundant. commit f9162bd5a716571c786e9bdead96a12d05594850 Author: Roger Leigh Date: Thu Mar 9 23:03:21 2006 +0000 * sbuild: - Remove unused variables @dist_parts and $main::nomail. - Use correct use syntax for File::Temp and Cwd, and initialise a number of variables which would otherwise be undefined, in order to remove run-time warnings. - Add a number of checks for undefined variables to remove run-time warnings. - Add -w to the shebang line, so sbuild always runs with warnings enabled. - All exec commands other than writing logfiles now use exec_command, so they get logged. commit 534632cf744a52a2337cefe1e360d45ef9ca9ce6 Author: Roger Leigh Date: Thu Mar 9 21:47:12 2006 +0000 * sbuild: Set the in the environment SHELL=/bin/sh, in case the user invoking sbuild uses a shell not available inside the chroot. commit f2a5ce681c8d8f10457231354145edde05860ffd Author: Roger Leigh Date: Thu Mar 9 21:33:52 2006 +0000 * sbuild-setup.5: - Split chroot setup and user setup into two sections. - Document sudoers env_keep setup (Closes: #355072, #355604). * chroot/add_sbuild_user: Add sudoers env_keep example. * debian/README.Debian: Document existence of sbuild-setup(7). commit e4c4b115c69b8e4a0e79f58ceca143eb168522e5 Author: Roger Leigh Date: Wed Mar 8 22:47:50 2006 +0000 * sbuild: open_pkg_log(): Use correct Sbuild:: namespace for binNMU_version (Closes: #355861). commit 389732b9a2bd77f1653fa477236e3defc3a85245 Author: Roger Leigh Date: Wed Mar 8 22:39:27 2006 +0000 * debian/control: Recommend schroot 0.2.7 or later (for preserving the environment). commit bc4c2f6bab158718a5321c75cf410a3ebcb84617 Author: Roger Leigh Date: Wed Mar 8 22:37:47 2006 +0000 Update version to 0.42. commit 650dd834ca68a20bf8c8ddf9132027be068f7972 Author: Roger Leigh Date: Wed Mar 8 22:16:09 2006 +0000 * sbuild: - Fix error in options parsing. - Hide source downloading commands by default. commit 50c9af34637db39b21533b31b4893b6d6ecec58c Author: Roger Leigh Date: Wed Mar 8 18:56:18 2006 +0000 * sbuild: - Add a $conf::sbuild_mode, used to switch behaviour between user and buildd defaults. - Add a --quiet option, to opposite action to --verbose. * sbuild.conf.local: Add $sbuild_mode. * sbuild.1: Document --quiet. commit 49cebfcb4c4d977e974fd90dc42bb43d72b2835d Author: Roger Leigh Date: Wed Mar 8 13:18:16 2006 +0000 * sbuild: get_command_internal(): When running schroot, preserve the user environment, needed for APT_CONFIG, DEBIAN_FRONTEND, etc.. commit 5c6983a5ce5499468e426a0d91f36e29ee521c3c Author: Roger Leigh Date: Wed Mar 8 12:28:49 2006 +0000 * sbuild: - log_command(): Add an additional priority argument. If nonzero, the message is always logged, otherwise is only logged if debug is enabled. - get_command(), run_command(), exec_command(), get_apt_command(), run_apt_command(): Add an additional priority argument to control the urgency of the log message, and pass this to log_command(). commit b4e85f0b511678afb513d7401288c8db43db1b46 Author: Roger Leigh Date: Wed Mar 8 12:10:01 2006 +0000 * sbuild: move setpgrp() calls, so that all child processes run in the same process group as the parent. commit 60a92e40c812995be8d038fb8e7b04650bb06e8f Author: Roger Leigh Date: Tue Mar 7 22:06:21 2006 +0000 * sbuild: - get_apt_command_internal(): Always add $main::chroot_apt_options. - get_command(), run_command(), exec_command(), get_apt_command(), run_apt_command(): chdir to $main::cwd to make sure the directory location also exists inside the chroot. commit 0b95de5854143c15bc7f8e9102e7aa2521f85451 Author: Roger Leigh Date: Tue Mar 7 21:17:55 2006 +0000 * sbuild: - get_virtuals(): Remove usage of $main::chroot_apt_options, which is added automatically by get_apt_command(). - setup_options(): + Ensure APT_CONFIG is set to the correct path depending upon the chroot_mode. $chroot_aptconf is the absolute path to the file from the host system, while $aptconf is the absolute path when apt is run. + Only set $main::chroot_apt_options when chroot_mode is "split". + Always regenerate apt.conf, because when chroot_mode is changed, it will break APT unless rewritten. + Don't set "Dir" in $chroot_aptconf when in chroot_mode is "schroot" (because apt is run inside the chroot). * Sbuild.pm: Remove unused module 'IO'. * debian/control: Depend on perl-modules (for File::Temp). commit 7857799554c6b819d2300df8036b6c3136cf7e04 Author: Roger Leigh Date: Tue Mar 7 16:58:12 2006 +0000 * Sbuild.pm: Remove unused module 'IO'. commit e9fceb79a8e84b21874d151cd84b90ca5991018f Author: Roger Leigh Date: Mon Mar 6 21:56:20 2006 +0000 * sbuild: get_command(), run_command() and exec_command() only log the full command when debugging is enabled, otherwise only the short form is logged (Closes: #355043). commit 5c7259fe025971588142d587ac8902c452cad06d Author: Roger Leigh Date: Mon Feb 27 19:09:10 2006 +0000 * Version 0.41. commit a41c1093e0b597510fa15b15e315580d32aa3058 Author: Roger Leigh Date: Mon Feb 27 11:39:39 2006 +0000 * sbuild: setup_options(): Correct usage of a scalar reference rather than the scalar $main::chroot_dir (Closes: #354520). commit 433356f4b137fde4687ad76b032dceda5c56ceb0 Author: Roger Leigh Date: Mon Feb 27 11:20:58 2006 +0000 * sbuild: setup_options(): Set $main::chroot_apt_options in the same manner as upstream. commit cd17e399afe734c934b6abcad2f62db3d49cbf76 Author: Roger Leigh Date: Sun Feb 26 22:22:19 2006 +0000 Version 0.40. commit 2c2fa11d4ff0a506a7184ba3935b5a6242b2d6ae Author: Roger Leigh Date: Sun Feb 26 22:17:56 2006 +0000 * schroot: get_schroot_info(): Parse schroot "--info" Type (chroot type) output, and if "plain", always set $main::dist_sessioncaps to 0 ("plain" chroots may say they are session-managed, but do not support full session management, so they always need cleaning). commit 7b6861fb1f18d8917855fe895d4979b6743c86ed Author: Roger Leigh Date: Sun Feb 26 21:31:40 2006 +0000 * sbuild: get_schroot_info(): Parse schroot "--info" Path (chroot location) output. * debian/control: Recommend schroot (>= 0.2.5), for its "Path" information in --info output, used for determining the chroot location. commit 6a02aa88c031ff30109bcdbd4aa8457e9bf7baac Author: Roger Leigh Date: Sun Feb 26 20:49:23 2006 +0000 * sbuild: Fix typos in debug statement ($main::distribution rather than $main::distribtion, and $main::schroot_session rather than $main::scroot_session). Thanks to Adeodato Sim�� for this fix (Closes: #354456). commit c4732e93e10f7e0a9c8ca576b9b25cc2e5804312 Author: Ryan Murray Date: Fri Feb 24 08:28:39 2006 +0000 Remove \n from pkg_file filename, pointed out by rleigh@d.o commit be370543eec9576e7c7a36ba5439ddd796272c2f Author: Ryan Murray Date: Fri Feb 24 08:26:07 2006 +0000 Update svn:ignore for everything a debian package build produces commit bee62e9f031695e13ebcc3614ef2b67505c3c15c Author: Roger Leigh Date: Tue Feb 21 23:44:47 2006 +0000 * Version 0.39. commit ada43387eea36d38257a97b35f1e674dd00ac190 Author: Roger Leigh Date: Tue Feb 21 20:36:07 2006 +0000 * sbuild: Add two debugging messages. commit d0b2e535cca4581cd46933e65fcf86694fd0312b Author: Roger Leigh Date: Tue Feb 21 19:29:40 2006 +0000 * sbuild: - Add %main::sessioncaps to store whether or not a chroot is session-capable. Check the schroot "Session Managed" attribute to determine session capability. - If a chroot is session-capable, skip running uninstall_deps(). * debian/control: - Recommend schroot (>= 0.2.3-2), for its "Session Managed" information in --info output, used for skipping chroot cleanup. commit db34d9f54c62aa52596ccb58c28fd044d9ccc751 Author: Ryan Murray Date: Fri Feb 17 03:31:17 2006 +0000 * Remove \n from strftime calls. Suggested by bod@d.o after going over the sbuild segfault on mips and arm in gdb. commit 602ffb65b93f7b2203f48a14cb069f7c5d9c2f8e Author: Roger Leigh Date: Thu Feb 16 21:36:36 2006 +0000 * Update copyright notice (add myself as a copyright holder). commit e4e6d921c7ee09a7e2a4c478d5fe833dbb0c8345 Author: Roger Leigh Date: Wed Feb 15 20:41:29 2006 +0000 * fetch_source_files(): Merge from upstream SVN (cset 94); Strip trailing whitespace from each line in $dscfile/debian/.sbuild-build-deps early on, making all subsequent regexes simpler. commit 4afdfe1e1dc22e93d19a029f1ec1846ca1fe6a3b Author: Roger Leigh Date: Wed Feb 15 18:13:59 2006 +0000 Version 0.38. commit 1bd0726d424297b9d4c12bc2a9211373cfae6a6b Author: Roger Leigh Date: Wed Feb 15 18:11:56 2006 +0000 * get_apt_command() and run_apt_command() take an additional parameter, the user to run as, because not all commands need (or should) run as root. commit 1ec726e07a88d470d59c06cb67ce10e86ebd5bef Author: Roger Leigh Date: Wed Feb 15 16:42:52 2006 +0000 Don't include full-stops in section headings. commit a81f384f9ce28e42c711257b2b1e5bd282d4267e Author: Roger Leigh Date: Wed Feb 15 16:28:42 2006 +0000 * Cleanups to all manual pages. commit 2f88d0aa42e8326928d81a6aabcb99ac5f4aafc2 Author: Roger Leigh Date: Wed Feb 15 15:40:43 2006 +0000 * chroot/buildd.chroot: - Use "set -e" to abort on all errors (Closes: #342357). - Correctly quote all shell variables. - Use cdebootstrap rather than debootstrap. * debian/control: Recommend cdebootstrap rather than debootstrap. commit bd4d16a99c5c9404ec03e080e33e104c212d827a Author: Roger Leigh Date: Wed Feb 15 14:52:55 2006 +0000 * chroot/buildd.chroot.pre-sarge: Remove. * chroot/README-buildd.chroot.pre-sarge: Remove (Closes: #308065). commit b20b17a50c749c47ebf73e8bdf9da4d1d454da5b Author: Roger Leigh Date: Wed Feb 15 14:30:46 2006 +0000 * sbuild-setup.7: New manpage. This describes how to set up a chroot (Closes: #311363). commit bb81bf9c7bb7296c357632eb0730b54f17d03251 Author: Roger Leigh Date: Wed Feb 15 10:13:13 2006 +0000 * #287669 is also closed now full sudo access is no longer required. * example.sbuildrc: Single quote example email addresses in $maintainer_name, $uploader_name, and $key_id (Closes: #341327). commit 198495bcc024548587099a9a80a58fe65ada7935 Author: Roger Leigh Date: Wed Feb 15 00:31:41 2006 +0000 Correct command-line summary (Closes: #311589). commit 5972ce476c837098984073d13a4268f1d14bed65 Author: Roger Leigh Date: Tue Feb 14 22:20:21 2006 +0000 * sbuild.1: Update outdated information. Correct macro usage and reindent. * debian/control: Recommend schroot. * debian/README.Debian: Update information about src-deps and schroot. commit a93ad4239aa33886cd6a3490c5bb230b9a4fca03 Author: Roger Leigh Date: Tue Feb 14 19:18:46 2006 +0000 * Add missing newline to log message. commit 3b5b03e2cfeb04d7e08c2a43e82a83300c6dc99e Author: Roger Leigh Date: Tue Feb 14 19:16:25 2006 +0000 * sbuild: Add schroot session management. Sessions are created, run and removed automatically. The current session is stored in $main::schroot_session. setup_options is called once per build, in order to set up the session options. * sbuild.conf: $schroot_options defaults to "-q" to match the built-in default. commit 40cae2d5806f0e3dffe65b37319520c45aa6cd93 Author: Roger Leigh Date: Tue Feb 14 19:10:24 2006 +0000 * Use new commands for running commands inside and outside chroots: + Signing options for dpkg-buildpackage are double-quoted rather than single-quoted (because the main command is single-quoted). + All commands run in a pipeline are obtained with get_command() or get_apt_command(). + All other commands are run with run_command(), exec_command() or run_apt_command(). + check_space() only requires root access in the chroot. * Full sudo access is no longer mandatory when using the schroot chroot_mode. commit 624bc099f3f9581367f5e83d3b525dc91a1cae4d Author: Roger Leigh Date: Tue Feb 14 18:52:41 2006 +0000 - New functions log_command() to log a command being run, get_command_internal() and get_apt_command_internal() to get a command string without logging it; these are used by get_command(), run_command, exec_command(), get_apt_command() and run_apt_command(), which do log the command being run. Commands are logged in for all chroot modes. - get_apt_command() and run_apt_command() take an additional parameter, the command to run (apt-get or apt-cache). commit 867788796f856dba3e0894d6a562fe0da1972d77 Author: Roger Leigh Date: Tue Feb 14 13:20:21 2006 +0000 New function exec_command(). This is the same as run_command(), but runs the command with exec rather than system(). commit 6fd78e6b4c79d342419c09d071611cea41a152ea Author: Roger Leigh Date: Mon Feb 13 23:40:07 2006 +0000 run_apt_command: When using schroot, run command in a chroot, otherwise run on the host system. commit 0c0d14d9f0333b750ee7f76a6a299294aa7a540f Author: Roger Leigh Date: Mon Feb 13 21:43:59 2006 +0000 New functions get_command(), run_command(), get_apt_command() and run_apt_command() to run a command inside or outside the build chroot under the specified user, or run apt inside or outside the chroot (depending on the chroot_mode), respectively. commit 59454777ee7763624fd23879ca7d39f4e3e6fe4b Author: Ryan Murray Date: Mon Feb 13 01:20:41 2006 +0000 save some backtracking. Thanks to bod@d.o commit d7fe31c0595d6569ff865a8a3d26ce1d6795748d Author: Roger Leigh Date: Sun Feb 12 20:39:05 2006 +0000 When $chroot_mode == "schroot", clear %main::dist_order and %main::dist_locations using an empty array, rather than undef. commit a8d24a7457e7043f69bb855e0c79d5b90eb89cf1 Author: Roger Leigh Date: Sun Feb 12 19:22:15 2006 +0000 Remove check_dpkg_version(). This has not been necessary since the release of potato (Debian 2.2), which had a dpkg version 1.6.14. commit 521e358d4c2c3ed2538837d2f7f6bc0f4b6439ea Author: Roger Leigh Date: Wed Feb 1 22:07:57 2006 +0000 Parse both "Location" (for backwards-compatibility) and "Mount Location". commit a6145e29fe82bbfe107a13caeda6573c8818bd41 Author: Roger Leigh Date: Wed Feb 1 10:30:37 2006 +0000 Move path and APT setup into a separate function, setup_options(). commit 3e0fa2d88a685b1e0d3f1385e29b1bbf0c724b42 Author: Roger Leigh Date: Wed Feb 1 10:23:02 2006 +0000 Move schroot metadata parsing to a separate function, get_schroot_info(). commit 4497ec425477e5056d22f47872f212b161e504b0 Author: Roger Leigh Date: Tue Jan 31 13:03:15 2006 +0000 Fix mail address. commit e75204cde827dd695d5dba4bc2c11af006964ea7 Author: Roger Leigh Date: Tue Jan 31 12:59:23 2006 +0000 Version 0.37. commit 49252114c5792540ae82cf3105a311716c388ce9 Author: Roger Leigh Date: Tue Jan 31 12:50:13 2006 +0000 * sbuild: - Parse the .changes rather than debian/files, so that the .dsc/.diff.gz/.orig.tar.gz are also copied back to ~/build. - Print information and contents of arch-all packages (closes: #321640). * debian/control: The maintainer field contains the list address. * debian/changelog: Close a number of historical bugs fixed with this release. commit 28c3e0f511a9483e17cf124c4c72f86eb8c775b6 Author: Ryan Murray Date: Mon Jan 30 22:54:07 2006 +0000 add DEBIAN_FRONTEND to sudoers example defaults commit acfd00606425bb8e1efeaa10ac0e8e85f89b7fc9 Author: Ryan Murray Date: Mon Jan 30 20:22:03 2006 +0000 As buildd-uploader now calls dupload with a single changes file, any error return from dupload most likely means that the job failed, so we treat it as such. commit 6a1d7813b8f10ecea757d61d38bcc4615ee69f86 Author: Ryan Murray Date: Mon Jan 30 09:00:57 2006 +0000 Add comments of the needed sudoers entries, including Defaults entry needed for the stable security update commit 12bc8a5feed56535dd9248772729732260778637 Author: Ryan Murray Date: Sun Jan 8 23:42:15 2006 +0000 Fix to delete symlinks, too commit 42fa7e6c3d9d4d305c29a48495657ea085a6b667 Author: Ryan Murray Date: Sun Jan 8 23:37:44 2006 +0000 update version commit 66b72fdcfb29fc351d8afa01ced5c7ca9726325c Author: Ryan Murray Date: Sun Jan 8 23:35:34 2006 +0000 * setup_system: don't bother with /etc/source-dependencies-* anymore * sbuild.postinst: remove obsolete /etc/source-dependencies-* files. commit 1776cfb31314c6c55a64ad625240ad693aa37def Author: Ryan Murray Date: Sun Jan 8 23:33:16 2006 +0000 remove unmaintained rbuilder commit a1f23504d6b1a3db0a0e2850742980b5db7b29af Author: Ryan Murray Date: Sun Jan 8 23:28:02 2006 +0000 don't install update-sourcedeps in the sbuild package anymore commit ecfcec5e440766a7bd9802790c9d510d29225fa0 Author: Ryan Murray Date: Sun Jan 8 22:59:10 2006 +0000 * make existance of source-dependencies optional * move username to end of su command commit 96ef542518bb01261d89b2ec002d930fb7c2cc49 Author: Ryan Murray Date: Mon Dec 12 00:00:14 2005 +0000 make the sources.list more column-ized, use the mirror specified for initial install in the generated sources.list, fix up security related entries. commit be425b072ce19dfe3945a995888c20764acacc64 Author: Roger Leigh Date: Fri Dec 9 09:37:00 2005 +0000 Add support for building from experimental. commit 2b71643dab11ee3f56fa4e0a440aa0da4682e136 Author: Roger Leigh Date: Thu Dec 8 23:12:08 2005 +0000 Move "Package claims to have built" error message to the same place as upstream. commit 7026a6c8bfc339a1d7703c159efab475f54fb3ec Author: Roger Leigh Date: Thu Dec 8 22:45:26 2005 +0000 cleanup_close: Set $main::current_job to "" and shutdown if $main::HOME/EXIT-DAEMON-PLEASE exists and we are running in batchmode. commit 3a29a48bd4ba2f066a57ce273514b1ee450efab8 Author: Roger Leigh Date: Thu Dec 8 22:25:55 2005 +0000 Add support for $conf::chroot_only, and default to only running in a chroot for security and safety. commit 90e7d6057de509b66256a257bfe52e063af3c0ad Author: Ryan Murray Date: Fri Dec 2 07:33:59 2005 +0000 remove Binary-NMU fields when a Dep-Wait'd package has a new sourceful version uploaded. commit 6d3adc1c629a8d487cf79132aa5bcbaa72ff9b9b Author: Roger Leigh Date: Thu Dec 1 22:48:57 2005 +0000 Support new --make-binNMU options. commit 75b56219ca51bd7f2805be2802079e124d49ee77 Author: Roger Leigh Date: Thu Dec 1 22:44:45 2005 +0000 Add support for auto_giveback_socket: add an extra argument to --auto-give-back and add an ssh '-S' option to analyze_fail_stage(). commit d714e21f4eb27962f1f85fcfd34a07d2f9199da7 Author: Roger Leigh Date: Thu Dec 1 20:39:40 2005 +0000 Merge whitespace changes. commit 0b147dbbd24a77deba77f9754721af53a41dac13 Author: Roger Leigh Date: Wed Nov 30 22:45:26 2005 +0000 Fix typo. commit ee819e81eb30228af88e813896179f16067e311f Author: Roger Leigh Date: Wed Nov 30 22:36:09 2005 +0000 When running dpkg --set-selections, use $main::chroot_dir rather than $main::cwd/$main::chroot_dir, since we already include $main::cwd in $main::chroot_dir. commit c3d09b6f0a88eabd4abd7c664dc178b63d222c0e Author: Roger Leigh Date: Wed Nov 30 22:30:17 2005 +0000 fetch_source_files(): Support versioned fetches with apt-get. commit 4cd6cc659826651798be996a12607096a4110f4a Author: Roger Leigh Date: Wed Nov 30 22:22:49 2005 +0000 install_deps(): purge packages with "dpkg --set-selections". schroot support added in addition to upstream changes. commit f23a60358a4fb9b5898b7784b3670503e60af698 Author: Roger Leigh Date: Wed Nov 30 22:11:09 2005 +0000 run_apt(): Remove '*' from $pkgs and $rpkgs. commit b3c7fc6b8600ca3aa6ed0e503d39fc343ae17253 Author: Roger Leigh Date: Wed Nov 30 22:06:35 2005 +0000 get_dpkg_status(): Check $version is set and compute $result in the same manner as upstream. commit 6dae96dae5328294d2cc6b5f5d9495bca29f0556 Author: Roger Leigh Date: Wed Nov 30 21:58:47 2005 +0000 Remove support for --store-built-packages. commit 51e9d136a7b645eb18d6e48b47939898371b5fc6 Author: Roger Leigh Date: Wed Nov 30 21:56:21 2005 +0000 merge_pkg_build_deps(): Correctly separate depdendencies in $deps, and don't immediately return if there are missing packages. commit 1307dd9a05b34b7658168cedfcbc10adc1d9f75f Author: Roger Leigh Date: Tue Nov 29 23:35:02 2005 +0000 build(): Remove dpkg-buildpackage debugging statements. commit 19d67fc25bfb90ec4694db606c1d6f6e5f12b213 Author: Roger Leigh Date: Tue Nov 29 23:26:34 2005 +0000 Add --use-snapshot for building with gcc-snapshot. commit f6e90863729b343da640a788564990e3edfbf557 Author: Roger Leigh Date: Tue Nov 29 23:02:10 2005 +0000 run_apt(): Complete support for "install-deps-env". commit a201c197e735dc3cc4f3e31b705bb3f1261daae8 Author: Roger Leigh Date: Tue Nov 29 22:54:26 2005 +0000 check_space(): Redirect stderr of du to /dev/null. commit cd805b8514155f7fb3bc61928abb492b9fdcea8a Author: Roger Leigh Date: Tue Nov 29 22:52:50 2005 +0000 More whitespace and indentation changes. commit ad9654e0384e5b76d1deb4afa4a75df1cda9c239 Author: Roger Leigh Date: Tue Nov 29 22:03:31 2005 +0000 analyze_fail_stage(): support install-deps-env() and chdir to $main::cwd. commit 00ca2e88d66f2535fbf68fc45b7a81d0e99b6f69 Author: Roger Leigh Date: Tue Nov 29 21:57:28 2005 +0000 Add @main::toolchain_pkgs and @toolchain_regex. commit 8cba8e37d6849d54fdab5a20b3719df721534419 Author: Roger Leigh Date: Tue Nov 29 21:40:47 2005 +0000 Set $main::arch using $conf::dpkg. commit 11316a2bc0bbe64280d0847e38f612eb1f25ed05 Author: Roger Leigh Date: Tue Nov 29 21:16:59 2005 +0000 read_build_essential(): Read build-essential from $main::chroot_dir instead of the root filesystem. commit 618cb4450318981925ca5775499e0fcc9c695864 Author: Roger Leigh Date: Tue Nov 29 21:10:13 2005 +0000 Remove redundant assignment. commit 63a476043a37d008e8857b287830943d1c4c9cf1 Author: Roger Leigh Date: Tue Nov 29 20:50:01 2005 +0000 shutdown(): Don't close the package log if there is no current job. commit 9a6dbdbbb9fd2db9a3f93e3512ae3459b6a4d3cd Author: Roger Leigh Date: Tue Nov 29 20:32:38 2005 +0000 + Merge whitespace and indentation changes. + Fix typos. commit 2749d7f55b0791a83aef03dacf57a01c07c61e4b Author: Ryan Murray Date: Tue Nov 29 10:14:04 2005 +0000 Fix Revision output to just have the revision Forget binNMU info when a new source comes along. Warn on packages that are in state Installed, but the version installed is less than the source version in w-b. If a package is in state Installed, but it doesn't have binaries from the current source version in parse_quinn, also move to Needs-Build. commit b1268f5c2609d17170309c528718192787101fbc Author: Roger Leigh Date: Mon Nov 28 22:38:05 2005 +0000 Fix typo. commit 055defc652520ccd739b27d03a12c6aa25be358c Author: Roger Leigh Date: Mon Nov 28 22:36:56 2005 +0000 Add $build_env_cmnd. commit 6bdb3434effbd3efec0d177ebe3536fbf5be395f Author: Roger Leigh Date: Mon Nov 28 22:02:52 2005 +0000 Add $conf::dpkg_source. commit 9924cea957a00dec1b877ddf56bbb666aacde9f6 Author: Ryan Murray Date: Mon Nov 28 03:20:50 2005 +0000 * watch for EOF from STDIN when reading failure messages * update the source version if it's less than the packages in parse_packages (fixing the "why does that buildd build what was uploaded with the source?" problem) commit 917a3f55c31689227a5a676e2ca1b7dbd94c48f5 Author: Roger Leigh Date: Sun Nov 27 18:57:49 2005 +0000 Move sbuild.conf.local changes outside the SVN merge section. commit c48945a2b4802027a402ecf5bd2e517de42adb85 Author: Roger Leigh Date: Sun Nov 27 18:57:35 2005 +0000 Make strftime() usage more consistent, with no trailing newline. This fixes an issue with the "current" symlink not being created due to the command-line being split over two lines. commit 94192475d2358f3cf5bb0281daeac8c9a8513165 Author: Roger Leigh Date: Sun Nov 27 18:25:47 2005 +0000 - sbuild.conf: + Update alternatives. + Comment out example %individual_stalled_pkg_timeout. + Empty @ignore_watches_no_build_deps. - sbuild.conf.local: + Use FHS-compliant pathnames, as in sbuild.conf. commit 918085fb107bc9aaf45cdf16190d5884500e8523 Author: Roger Leigh Date: Sun Nov 27 18:08:47 2005 +0000 Add full stop to SEE ALSO line. commit 5986ea2137857d7bf1c2db42afbb87f0453b93d9 Author: Roger Leigh Date: Sun Nov 27 18:05:40 2005 +0000 example.sbuildrc: + Remove $hack_changes_for_frozen. + Update comments. commit 9d3b6af9d78b811dc6c13dc97a3e76dc74f74b91 Author: Roger Leigh Date: Sun Nov 27 18:02:38 2005 +0000 Add $conf::chroot_only for compatibility with upstream, even though we don't use it ourselves. commit 774f63a3eb679810c4fedbaabd16c335e9bd9947 Author: Roger Leigh Date: Sun Nov 27 14:59:33 2005 +0000 avg-pkg-build-space.1: Update text. commit e4faf938b4137ecb4a67e617c9de62827705b755 Author: Roger Leigh Date: Sun Nov 27 14:22:19 2005 +0000 + Remove watches. + Update alternatives. commit 0026822d091016689962686c2d8194d61f6bb5a3 Author: Roger Leigh Date: Sun Nov 27 14:13:00 2005 +0000 + Delete binary-all packages that we didn't ask to be built. + By default, set APT::Get::AllowUnauthenticated to "true". commit eaa7a85150b8c3e51f33685ee7be8f407a1b4b82 Author: Roger Leigh Date: Sun Nov 27 13:58:23 2005 +0000 + Add REDO support for binNMUs. + Add stats generation for download+install, build and remove times. + Disassociate from the controlling terminal and make stdin /dev/null for the dpkg-buildpackage process. + Don't create entries to the sbuild log when a package claims to build an _all.deb, but doesn't. Instead, warn to the build log. commit 9a4bda864db5ec369a6fd50c6daf2d76bf772c3b Author: Roger Leigh Date: Sun Nov 27 12:26:55 2005 +0000 Add Sbuild.pm (upstream WannaBuild.pm), and replace version_cmp() with Sbuild::version_compare(). commit 8e053c4127b741601e20a1847db512173583fe89 Author: Roger Leigh Date: Sun Nov 27 11:54:33 2005 +0000 Fix support for '~' in version numbers. commit a3fa6eb5d6356f78662772d708c9d1382acfa303 Author: Roger Leigh Date: Sun Nov 27 11:50:58 2005 +0000 Hardware DEBIAN_FRONTEND to "noninteractive" when installing and purging packages. commit fd022436e2512bcd35aad8e1a814fdfbca564f67 Author: Roger Leigh Date: Sun Nov 27 11:42:49 2005 +0000 Allow arch: all packages to be built when $main::build_arch_all is true. commit 9de4cc584cbbf31f893db89aaa89b432a50a4931 Author: Roger Leigh Date: Sun Nov 27 11:31:55 2005 +0000 Use /var/lib/sbuild/apt.conf if it exists, and create it if it does not. This fixes the problem of the root filesystem /etc/apt/apt.conf and /etc/apt/apt.conf.d directories being used, while the copies in the chroot filesystem are ignored. commit 48f8b8a660fa519734e35ee6dbe3c47021f570ad Author: Roger Leigh Date: Sun Nov 27 10:56:30 2005 +0000 Use strftime() and getpwuid() instead of the external commands date and whoami. commit c1173eb1e87f4226a20bee5c0b677ed9b7029a07 Author: Roger Leigh Date: Sun Nov 27 00:59:15 2005 +0000 Output purged packages line by line, rather than all at once. commit 348ae7362fb75bff86c4e07db5a6230de5d4e92c Author: Roger Leigh Date: Sat Nov 26 21:34:19 2005 +0000 Always purge packages when building in a chroot. commit dcb5bf45d57d23e3f0630fcd627461f0aad9c279 Author: Roger Leigh Date: Sat Nov 26 21:28:06 2005 +0000 Split changes files sent in the log every 989 characters, to better conform to mail RFCs. commit 1c55570f22498aa1515a173ac1ca68a7a8353298 Author: Roger Leigh Date: Sat Nov 26 21:21:19 2005 +0000 Always show versions of installed build dependencies. commit b7ae3083cbd8ecb8719d68955facef66231e75b8 Author: Roger Leigh Date: Sat Nov 26 21:10:17 2005 +0000 Split changes files sent in the log every 1000 characters, to better conform to mail RFCs. commit 0b87cef16b53f406f581beba07b623465afe0c56 Author: Roger Leigh Date: Sat Nov 26 20:53:41 2005 +0000 Update copyright notice with current FSF postal address. commit b4126ac27254ca58fab4ab859ba0c7276eab7d90 Author: Ryan Murray Date: Wed Nov 23 19:36:15 2005 +0000 Fix duplicate copy of binNMU_version function for new versioning commit de2e4bee7a6e7595510b90dc9623fc979e5a6950 Author: Ryan Murray Date: Tue Nov 15 08:28:42 2005 +0000 * (sbuild): Delete binary-all packages that we didn't ask to be built. * (buildd): specify a username when asking what's to be built (needs new wanna-build) * (wanna-build): store last seen timestamp for each buildd * update changelog version commit 913b92b32efca113a3e4eeb13be0aba9c1eb94e0 Author: Ryan Murray Date: Tue Nov 15 07:11:36 2005 +0000 Include more setup commands. Lay out chroot's by codename, for future auto suite-switching code (hopefully for etch release) commit 4f505dfceb0e82d8498f3a5135a86b40dade98bb Author: Ryan Murray Date: Tue Nov 15 07:01:30 2005 +0000 change defaults for security to use security-master commit 6305164107853cf9e2cf746a747455d7ae85e6a2 Author: Ryan Murray Date: Tue Nov 15 06:59:20 2005 +0000 * move parse_date here from wanna-build binary. * change binNMU numbering to be {sourceversion}+b{binNMUnumber} commit c2883a1ae12683e9c2df51c3272eca4ea7ddb72b Author: Ryan Murray Date: Fri Nov 4 04:00:29 2005 +0000 add pwd infront of target if not specified, so the fstab entries will always work commit 553d775cd50130ec7ac59b4603fabe736e895b66 Author: Ryan Murray Date: Thu Oct 13 07:44:21 2005 +0000 fix typo of database name commit 8d9074b7ed69ffb87b7afb579dc4296a8333ae4c Author: Ryan Murray Date: Wed Oct 12 08:55:03 2005 +0000 fix already building binNMU error message output what database w-b is running on when run with -v on the version line commit 7290a7899f5869e39b1db2764be94a7d4be5dc1b Author: Ryan Murray Date: Tue Oct 11 16:50:10 2005 +0000 Add regex for failure to connect to the ssh socket for newer openssh versions commit 747938720a7010c3af576479dc27dbc8ef24371b Author: Ryan Murray Date: Tue Oct 11 10:42:08 2005 +0000 * Add optional admin_users array that lists which users are allowed to use overall database admin commands such as --merge-*, --import, and --manual-edit * Ensure to-be registered binNMU version is newer than the currently installed version. commit c92d85906d8c9fb552c9988d9cf01c981c8bbbd4 Author: Ryan Murray Date: Mon Oct 3 05:24:35 2005 +0000 Fix broken pkg_version_eq calls commit b7c4f23fb4b1ba3c0c13dfe37a76e4154c576185 Author: Ryan Murray Date: Sun Oct 2 00:14:00 2005 +0000 * (wanna-build): add support for storing binary NMUs in the wanna-build db with --binNMU=# where # is the binNMU number to create. You will be asked for the changelog entry if not specified with -m. The Version field of the database entry will always track the source version from the sources files now, rather than the Packages files. Version numbers for binNMUs can be specified as either the source version, or the full binNMU version number. * (buildd): add support for taking binNMUs from wanna-build, passing them to sbuild, and adding them to REDO. Older buildds will delete binNMU redo lines from the redo file as being invalid, and will take binNMUs, but not attempt to build them. BinNMUs are scheduled ahead of regular builds, and are always taken one-at-a-time, like weak_no_autobuild. binNMUs show in the logfile as !#!pkg_ver, where # is the binNMU version number. * (sbuild): Add REDO support for binNMUs. binNMU packages will only appear in the progress file as their binNMU version number while actually building, so buildd-vlog continues to work. Otherwise, it will be the source version. * (buildd-uploader): Large rewrite to work better for buildds with slow or intermittent links. The logfile is no longer locked the whole time buildd-uploader runs, so mail can still be processed. Each package is uploaded in a seperate dupload process, and wanna-build state updated right after the upload is successful. This also has the effect that one stalled upload will not prevent attempts at uploading the other packages. Ensure that no more than one buildd-uploader can run at once; previously, after 15 minutes, buildd-uploader would run anyways, possibly uploading duplicates. Take distribution field from changes files, rather than requiring the distribution field to be in a hardcoded list. * (buildd): removed stats generation for build time. * (sbuild): add stats generation for download+install, build, and remove times. * (buildd-watcher): output new time stats. These won't be fully accurate from when one upgrades until the next stats generation, after which, they should reflect the full stats time period (one week by default) * (debian/control): update dependencies to indicate that buildd and sbuild need the latest versions of each other, due to the REDO format change and time stats changes. * (sbuild): disassociate from the controlling terminal and make stdin /dev/null for the dpkg-buildpackage process. buildd already does this, but you didn't get that when run from the command line. * (sbuild): don't create entries to the sbuild log when a package claims to build an _all.deb, but doesn't. Instead, warn to the build log. * (sbuild): workaround race condition while apt-ftparchive is running on the archive host. The signed Release file doesn't match what is downloaded, so current apt deletes the list. These cases are now given-back, rather than failed. * (abort-current-build): use a sudo'd perl to kill the dpkg-buildpackage process, incase sudo is being used by sbuild * (buildd): report errors while waiting for sbuild, and don't keep waiting for it if there are no children at all. * (sbuild.conf): default watch list to empty, most buildds run with clean chroots * (sbuild.conf): update alternatives, remove some ancient ones that aren't used anymore * (wanna-build): remove db entries that don't have any binary packages in the Packages files anymore. If something is added to P-a-s, and the binaries removed, it was still showing as "installed" with the last built version. * (setup_system): add additional commented out adduser command for when you already have a buildd group * (setup_system): update chroot build command I: * (buildd-make-chroot): create /etc/hosts file in chroot * (buildd-make-chroot): Update debootstrap call to work with modern debootstrap that pull Build-Essential from the packages files. * (buildd-make-chroot): support etch * (many): Update FSF address again. commit 720c817db9b8f6b7321099d8a630daf3cdcf5164 Author: Roger Leigh Date: Sun Sep 11 09:23:18 2005 +0000 Update debhelper build dependency. commit 57fd5ec9caf588c3cbffe52d16f8a490402302a3 Author: Roger Leigh Date: Sun Sep 11 09:18:21 2005 +0000 * debian/control: Update to Standards-Version 3.6.2. * debian/copyright: Use the new FSF address. * debian/conffiles: Remove. * debian/rules: - Use debhelper version 4 compatibility mode. - Move the find -maxdepth option to before non-option arguments, to fix find warnings. - Remove template comments. - avg-pkg-build-space symbolic link should be relative. commit 6756b2a6919cb058453b21363c3816b71aed8eda Author: Roger Leigh Date: Sun Sep 11 08:48:46 2005 +0000 * debian/changelog: Convert to UTF-8. * sbuild: - Don't fail in the absence of central sourcedeps. These are no longer required now source packages are required to have build dependencies, so this should not be fatal. - Added support for schroot: + Added $conf::chroot_mode. This may be set to "split" (the historical default), or "schroot" (use schroot instead of sudo). + All operations using sudo now check the value of $chroot_mode, and use sudo or schroot accordingly. + When using schroot, %main::dist_order is filled using the schroot chroot priorities. + Added %main::dist_locations to store the location of the available chroots. - Print a readable error if a chroot does not exist. commit 39249aaf24ef113bd1331a8376ae9ff51b7f9c36 Author: Ryan Murray Date: Mon Aug 22 08:28:10 2005 +0000 add missing $change++ in parse_quinn so that changes will actually be committed. commit 4935441122dd605df2d340a9305cdde3efe6e58c Author: Ryan Murray Date: Mon Aug 22 04:04:53 2005 +0000 really fix --uploaded with current buildd-uploader arbitrary priorities can be specified for a package. It will apply to the current package for Needs-Build, Building, and Uploaded. It will apply to the next version of the package for Failed and Dep-Wait. The priority will be reverted after that build. There is also a permanent priority setting, to change the default that the package will be returned to. commit 85e6fea27754298e07774a7396ccca011820822a Author: Ryan Murray Date: Sat Aug 20 07:16:12 2005 +0000 ensure --uploaded works with existing buildd-uploaders and epochs commit 61a8d9022411121f6b89e779000333335c12140b Author: Ryan Murray Date: Fri Aug 19 22:08:44 2005 +0000 AutoDepWait V1. Catches the package (>= version) and (>> version) cases. Only applies to packages just moved to Needs-Build by the quinn merge, so there is a way to get out from behind them, if they are wrong for whatever reason. * split WB version compare functions to seperate perl module * use them from sbuild instead of forking dpkg for each comparison * further MLDBM optimizations and fixes commit 6b043abdf21d288a7b533613dd34d35dde431fbe Author: Ryan Murray Date: Fri Aug 5 06:05:03 2005 +0000 fix small error in dupload strings update commit c4a7337e8961cdd973624b481096d727e63c69a4 Author: Ryan Murray Date: Tue Jul 19 20:30:58 2005 +0000 more removal of non-US. also check the security upload dir for deletions in one more place commit f685bdbd533671032844f1f830b405cbceb205b2 Author: Ryan Murray Date: Tue Jul 19 20:23:12 2005 +0000 update dupload error strings for modern dupload commit 119d78d8e0de1df24a690570737fa224b0a8c1f3 Author: Ryan Murray Date: Fri Jul 15 18:19:32 2005 +0000 parameters weren't being passed to pretend_avail() commit 67d44c268170484b9d2733ea890e3e342fae9242 Author: Ryan Murray Date: Wed Jul 13 22:36:25 2005 +0000 Treat "-" in quinn-diff priority fields as "unknown", rather than "-" commit 4f4bcd77d5d5506f43ca6032a9e0572374e90c4f Author: Ryan Murray Date: Sun Jul 10 07:44:21 2005 +0000 Ensure a hash exists before a reference is passed to change_state, or the state change won't be recorded. commit f098a5f660faf5386d703fdb2488bedd05684c3f Author: Ryan Murray Date: Sun Jul 10 05:59:13 2005 +0000 disable strict refs for now commit 17a1011af3aee2dcc07e150f7235b501053dfd6e Author: Ryan Murray Date: Sun Jul 10 05:45:42 2005 +0000 Patch from Brendan O'Dea for version comparisons to support ~ correctly. commit 96404757d522ffd83c49ab71c8a2b4d392a4447e Author: Ryan Murray Date: Sun Jul 10 03:15:56 2005 +0000 And the big efficiency rewrite required by MLDBM. It actually works now :) commit 24fdeacfab8abc4d0902801feddac10a1c9922ed Author: Ryan Murray Date: Sun Jul 10 00:26:04 2005 +0000 fix strftime calls add --merge-all option to take exactly one of Packages, quinn-diff, and Sources. Import them all, then clean the db. Saves multiple opens of the database for daily maintenance. commit a6f96efff2a25a3a09442983a0213dbde32ff54f Author: Ryan Murray Date: Sat Jul 9 23:59:45 2005 +0000 use strftime instead of `date`, don't set a default arch (only used for parsing packages, which should always be specified), and only call hostname if we actually send mail. commit f6f2dadbdc3bb8ba6aadea81bdf7b4a69acdf68b Author: Ryan Murray Date: Sat Jul 9 23:39:28 2005 +0000 switch to Storable for MLDBM, as this is faster than the default of Data::Dumper. commit fd29c13eb8261c9227991e9f6a4a53108e1c54c3 Author: Ryan Murray Date: Sat Jul 9 23:19:30 2005 +0000 Replace wanna-build's WrapDB class with MLDBM, resulting in a 3x speed improvement on database accesses. This change requires you to first --export your database with the old version, and then --import with the new one. commit 9d15b00cda74a6dfe6f8000a8c3c980c567c3c3f Author: Ryan Murray Date: Wed Jul 6 21:07:55 2005 +0000 Fix ~ support in versions. commit 11d04b611f1e599807de9f79ecdbdbf559834bcd Author: Ryan Murray Date: Wed Jul 6 15:29:55 2005 +0000 set DEBIAN_FRONTEND to noninteractive when purging packages, too. commit 63d85d7cafdf7d439d916fce3f134c1c1129bde3 Author: Ryan Murray Date: Wed Jul 6 07:33:05 2005 +0000 commented out example of chroot_only option commit 5ba44ab9bfd09a4ea048e3dff06c19fff2f01589 Author: Ryan Murray Date: Wed Jul 6 07:27:05 2005 +0000 add chroot_only mode, where sbuild will die if it's not building inside a chroot, rather than using the root commit b11b8ffa291f8679ed450a1dd6ae34f0a52c8cd5 Author: Ryan Murray Date: Wed Jul 6 07:16:15 2005 +0000 fix buildd-watcher to correctly report old files in chroots, too. commit 3cef923cbaeb6b2c9348a51542ee29bb4ccf6aea Author: Ryan Murray Date: Wed Jul 6 03:42:02 2005 +0000 update $no_warn_pattern for ssh socket. commit d0f117e3ad52b69b5df2b3350851bd562c7ae05e Author: Ryan Murray Date: Mon Jun 6 06:29:24 2005 +0000 don't bother creating upload-non-US anymore commit dd379661f443dd594aab6d77f49e12334b734564 Author: Ryan Murray Date: Thu Jun 2 07:32:55 2005 +0000 Update version commit 7234ea2a5b1a9ae54a292d834292e9863e4bcfa1 Author: Ryan Murray Date: Wed Jun 1 09:28:43 2005 +0000 sync with newraff, pointed out by Lamont. commit 5bc1845716a33ba1de40812a0bac4ea1595cca7d Author: Ryan Murray Date: Wed Jun 1 09:24:55 2005 +0000 From Lamont: allow arch: all packages to be built when $main::build_arch_all is true. commit 806fb95a857632addcffee014d8df172043a7ff0 Author: Ryan Murray Date: Wed Jun 1 09:16:58 2005 +0000 Make sbuild more resilient about cruft in the status file (again), without undoing the provides and real package at the same time fix. commit 457cd7b9dfb4c8fa7fff53c04d03e639a569cc5b Author: Ryan Murray Date: Wed Jun 1 08:39:10 2005 +0000 fix typo in fallback code commit 1a048e98ff548e7191529091bebe712004aca9b2 Author: Ryan Murray Date: Wed Jun 1 08:37:21 2005 +0000 use /var/debbuild/apt.conf if it exists. If it doesn't exist, try to create it with the Dir ""; directive for the chroot. If it can't be created, use the existing logic. This fixes the problem of the root's /etc/apt/apt.conf and /etc/apt/apt.conf.d directories being used, while the chroot's are ignored. commit 46729936f744384598db96e65d8960e8e0723ab2 Author: Ryan Murray Date: Wed Jun 1 05:39:33 2005 +0000 make it "work" commit f8555668a822f44648fd9e5f1b95a2584e0c7024 Author: Ryan Murray Date: Sat May 28 22:31:25 2005 +0000 remove buildd incoming dir from testing chroots commit 8a3c00748b3be6fd39d0f8c0930a7c7cfe9d16a1 Author: Ryan Murray Date: Mon May 16 03:32:09 2005 +0000 output commands to add to fstab commit a574032cdfe9132c5322760d9f5172f9584c8f73 Author: Ryan Murray Date: Sun May 15 23:54:34 2005 +0000 update line break code for the longest size mutt likes: 989. commit e2edc4f21c5784ba30eef82a798e6afc9599055b Author: Ryan Murray Date: Thu May 5 07:37:50 2005 +0000 update version commit 78cd724a9a25c82a74dfd5d28cddf2a1f6910dac Author: Ryan Murray Date: Sun May 1 19:32:30 2005 +0000 remove use of external utilities where we already have functions imported that do the same thing commit 68a23a1824e05fb2a37a8f79f5837e73af01c8ff Author: Ryan Murray Date: Sun May 1 17:11:49 2005 +0000 install buildd-make-chroot in /usr/sbin, rather than /usr/bin commit 87f66453d87391aae5707113e133ff5bfc614979 Author: Ryan Murray Date: Thu Apr 28 01:57:51 2005 +0000 check EXIT-DAEMON-PLEASE in check_restart() instead of at the top of mainloop. commit 33606561df12eeecbc03925ea1295efa1acaaed7 Author: Ryan Murray Date: Mon Apr 25 11:00:50 2005 +0000 fix for versioned depends with both provided and actual package installed; The versioned depends should always happen off the actual package. commit 68875ef4a71fbbc530c9e23ff44e16e8e3c675d5 Author: Ryan Murray Date: Thu Apr 21 09:35:29 2005 +0000 include buildd-make-chroot in the sbuild package commit 4ec8e3d938949f50469dd24f495f4fd72db21186 Author: Michael Banck Date: Fri Apr 1 18:32:26 2005 +0000 Final changes for 0.35 upload commit dd1f3e83bc574f3a1eda7c817145e76a01fa5d5a Author: Michael Banck Date: Thu Mar 31 16:50:33 2005 +0000 Reformatted changelog entry to comply with earlier bug-closing mannors commit 06873dbdbc79d3c364875c426e66dcc3ec21f0f6 Author: Michael Banck Date: Thu Mar 31 16:43:43 2005 +0000 Add closes: tag for #292717 commit e4da82d2ab21f9726f17dadc55ce82e9b5e5ceec Author: Michael Banck Date: Thu Mar 31 16:42:48 2005 +0000 * sbuild: Tolerate '0' as version number, thanks Santiago Vila. (closes: #300205) commit 8bc963af8e83dacd8f8d7a6db27473ec2f1ba8ed Author: Michael Banck Date: Wed Mar 30 23:45:04 2005 +0000 * Applied patch by Santiago Vila: - Moves scripts from /usr/lib/sbuild to /usr/share/sbuild and modifies all callers accordingly. - Add -n option to tail to comply with POSIX. - Call /usr/sbin/sendmail instead of /usr/lib/sendmail. commit 8e41a44a369fb725f402db1c5c1280ef31c66ba1 Author: Michael Banck Date: Wed Mar 30 23:29:13 2005 +0000 * example.sbuildrc: Clarify that $maintainer_name is not mandatory and overrides Maintainer: field, whereas $uploader_name overrides the Changed-By: field in changes. commit 04396ac6ef0ce6b9cf86f43e814a792d72408cce Author: Michael Banck Date: Wed Mar 30 00:56:25 2005 +0000 * sbuild: Specify full path for Dir::Etc::main and Dir::Etc::parts. commit 39bbeb1f9cc51e5d7db3a4e2d274d087c2be71b7 Author: Michael Banck Date: Wed Mar 30 00:38:55 2005 +0000 * sbuild: Only override Distribution in .changes if specified as option on the command-line. (closes: #300145) commit 2a06ec8caf7cd41bfc4b430a34de3abad979f1be Author: Ryan Murray Date: Sat Mar 26 23:50:39 2005 +0000 update version commit c2fef5394a73d2e95e048a5c6a8fe22dae131e94 Author: Ryan Murray Date: Sat Mar 26 22:47:49 2005 +0000 output purged packages line by line like other external processes, rather than outputting everything all at once after the process finishes. commit b1b1e9be28a835d242b29208f5a3cd014fb4ba6d Author: Ryan Murray Date: Sat Mar 26 21:28:37 2005 +0000 move unset_env call to read_config, remove from all the binaries. Environment is unset before reading the config, so that any binaries referenced in the config with ` will have the sanitized environment. commit 6f43b5fe49df8495423f2b3aae23e5a2b72bbedd Author: Ryan Murray Date: Sat Mar 26 21:21:27 2005 +0000 always purge packages if we're building in a chroot. commit a7336ebfec167832a89bf707fd0e9a79bc0b5b3c Author: Ryan Murray Date: Fri Mar 25 19:25:43 2005 +0000 move environment cleansing to Buildd.pm unset_env cleanse environment from buildd-mail, buildd-watcher, and buildd-uploader, too. commit 51892028d341aae333d0a5c6ed93dc4ab3224752 Author: Ryan Murray Date: Fri Mar 25 08:15:58 2005 +0000 change length limit in changes to 990. The RFC says 998, postfix's default is 990, and others are somewhere in the 998-1000 range, or don't care... commit 04979df8d31cda1365091f42f628d28f87c5f17e Author: Ryan Murray Date: Tue Mar 22 07:06:01 2005 +0000 update version commit 08609e7f929612ecc2c686b0943e963f6f7312ae Author: Ryan Murray Date: Tue Mar 22 07:02:13 2005 +0000 re-append the slave option after the config is reloaded commit bbeb9f598d8806b9f6bbd40daec76adc197f3038 Author: Ryan Murray Date: Sun Mar 20 19:24:39 2005 +0000 setup master link before doing rebuilds, incase they auto-giveback commit 606ec7881540a4aafa5f851b32cb942a04a01752 Author: Ryan Murray Date: Sun Mar 20 02:55:27 2005 +0000 unset all locale related environment variables at startup kill ssh with TERM (which is caught) instead of HUP (which isn't) watch for the error message when the master is dead and the socket is left behind (Connection refused). commit e7720a786b0587146397423f4abcf024b33b45b8 Author: Ryan Murray Date: Sun Mar 20 00:53:19 2005 +0000 update version commit 7a48c0f43f9075c1a51b5d72043e8cdc62ccd4d8 Author: Ryan Murray Date: Sun Mar 20 00:22:10 2005 +0000 Always show versions of installed build dependencies. commit 31909998e2cdc53c0d704777f9b09c3aaccd0430 Author: Ryan Murray Date: Sat Mar 19 23:18:02 2005 +0000 add support for passing the buildd sshsocket to sbuild for autogivebacks. commit 7a1e83f30df388d23a904581a18881d6b4363ab0 Author: Ryan Murray Date: Sat Mar 19 22:14:47 2005 +0000 Make the mailing of rotated logs optional. commit a18fc803b3dcbd0c224b7dfcee29d4e7b7704f9d Author: Ryan Murray Date: Sat Mar 19 18:08:11 2005 +0000 finish conversion of weak_no_auto to be per-dist commit 77eb3fc5a4e548bdbd8cff4af9ec3f5d1736529a Author: Ryan Murray Date: Sat Mar 19 16:48:48 2005 +0000 add comment indicating that the socket must be a relative path commit 52bb13f764a9f08f60ac252eed583d711fa8ccc2 Author: Ryan Murray Date: Fri Mar 18 22:01:25 2005 +0000 fix case where $conf::should_build_msgs is off to only build the prevfailed package once. commit 9827d00f8ec15b75460250d3ceb58d1927b1e5c6 Author: Ryan Murray Date: Wed Mar 16 08:12:08 2005 +0000 fix kill parameters and check for existence of the socket before starting a new master. commit 88752911d2ee52c1b55f8834e7662fe48ed2fa1a Author: Ryan Murray Date: Wed Mar 16 08:04:21 2005 +0000 fix missing package qualifiers commit ef4ec7580b319ed26b498c83ade6bbf5a92d4270 Author: Ryan Murray Date: Wed Mar 16 08:03:57 2005 +0000 kill the ssh process before exiting or shutting down commit ea8bcaad18c8d785aa973dc1820da653ffdd3d84 Author: Ryan Murray Date: Wed Mar 16 07:47:49 2005 +0000 Revert wait-for-sbuild test, the extra check for ssh isn't needed. Add socket support to buildd-mail and buildd-uploader commit ec3f139f23ce71d046d7f67ede4d1cdc58d34302 Author: Ryan Murray Date: Wed Mar 16 06:56:44 2005 +0000 add support for ssh 3.9's -M and -S options. set $conf::sshsocket to the filename for the socket. Requires ssh 3.9 on both ends, and doesn't attempt to fall back if you have an older version installed. commit 512e6aef6a9d90dc28608c21e1e225eae964a0dc Author: Ryan Murray Date: Wed Mar 16 04:46:09 2005 +0000 fix $conf::should_build_msgs and setting $conf::nice_level to 0 commit 75cdd378c73d27c239f6b05008730793df55f085 Author: Ryan Murray Date: Wed Mar 16 03:28:26 2005 +0000 build weak_no_auto packages at the end of each dist, rather than after all dists, making it useful for security buildds. commit 2d3681782f7a715149eef36ea8ddcb398115b1ed Author: Ryan Murray Date: Wed Mar 16 02:36:38 2005 +0000 add missing file handle commit b8e396928d0930cdf387523b68779ee2cdb0e210 Author: Ryan Murray Date: Wed Mar 16 02:10:46 2005 +0000 Split changes files sent in the log correctly, every 1000 characters, to better behave the mail RFCs. commit 07257bdd0bf35a2ac6466c8cfb8ebb2622436b49 Author: Ryan Murray Date: Wed Mar 16 02:01:18 2005 +0000 Misc cleanups to the source: * Add license to repository. * Update FSF address. * Update Copyright. * Set svn:eol-style to LF for all files * Set svn:keywords to appropriate values for files that use them. * Remove $Log$ keyword and contents where used (see revision 1 for the log) * Set svn:mime-type for several files commit 64a4283468acad981b80d49accb7b6594aeff630 Author: Ryan Murray Date: Tue Mar 15 20:05:09 2005 +0000 initial import to svn commit 36979e460b959ea3f6bc28d08b2e3f47b6de83e8 Author: Subversion Mirror Date: Fri Jun 9 11:26:15 2006 +0000 SVM: initializing mirror for /trunk/buildd commit bc65d30105e767ef8ed0606e2a14bd6288cc2b22 Author: Roger Leigh Date: Fri Jun 9 09:39:53 2006 +0000 Add buildd project. commit beff91eebe2b47aa3d2f404e84162e1d29c0b623 Author: Michael Banck Date: Tue Jan 25 11:19:59 2005 +0000 Fixed up changelog to not get CVS commit messages commit 58fc2f0facc5cc118b8a4d0faa5ac004461691e2 Author: Michael Banck Date: Tue Jan 25 11:14:38 2005 +0000 Add closes #287672 to changelog commit 93aa87c75a0854d63a89ec27a2c90c2daefa5a87 Author: Michael Banck Date: Tue Jan 25 10:40:52 2005 +0000 * sbuild: Removed check for specific distributions. Instead, fail if build/chroot-$dist is not there. commit 0396469e73652e461801c0bc9cdb53ccb37c3572 Author: Michael Banck Date: Sat Jan 8 23:08:34 2005 +0000 * sbuild: Set the locale to `POSIX' to make debconf and debhelper calls in the chroot not spew out locale warnings all the time. commit 190b929bca6b118f166ba7eec0d3c2f4136da1e4 Author: Michael Banck Date: Sat Jan 8 22:39:12 2005 +0000 * bin/abort-current-build: Remove the `-B' from the grep line as `sbuild -s' does not pass that option to dpkg-configure and abort- current-build fails in that case. commit 3b7d782fb1ccb89ddc12dfec60ee54d53a30c437 Author: Michael Banck Date: Sat Jan 8 22:27:21 2005 +0000 * bin/abort-current-build: Remove the -B from the grep line as sbuild -s does not pass that option to dpkg-configure and abort-current-build fails in that case. commit ca7ee72a00c211fa0f7ec2bbb091120307024f60 Author: Francesco Paolo Lovergine Date: Thu Sep 30 11:19:17 2004 +0000 Little modification to last note. commit 0c360071e0b01681971a61720768d8298eb50feb Author: Francesco Paolo Lovergine Date: Thu Sep 30 11:16:53 2004 +0000 Missing file cvslogs.old added to CVS repo. Changed rules to correctly manage configs and chroot files copies, due to new CVS dirs. commit 6116491261c325af339b7da6a903a955f8efd433 Author: Francesco Paolo Lovergine Date: Thu Sep 30 11:06:14 2004 +0000 Minimal change to doc for configs. commit 92f6d3a0055b6ecb35bd549e0e979d320fb39272 Author: Francesco Paolo Lovergine Date: Wed Sep 29 12:58:10 2004 +0000 New ref-* uptodate for sarge/sid. Changed depends and checkchroot to solve critical bug. commit 3aa23f7bf188b4e8b0ea1a841a3d1c5909c25806 Author: Francesco Paolo Lovergine Date: Fri Sep 17 13:17:40 2004 +0000 Initial revision