* Merge Siegfried-Angel Gevatter Pujals' branch

This commit is contained in:
Luke Yelavich 2007-10-28 13:50:33 -04:00
commit 8c771266cb
8 changed files with 154 additions and 11 deletions

6
README
View File

@ -16,6 +16,12 @@ dch-repeat [--help]
get-branches <directory> <team> [checkout|branch]
... will branch / checkout all the Bazaar branches in a Launchpad team.
get-build-deps [<packages list or file containing a list of packages>]
... will install the build dependencies for a package, if you are inside
it's source file. Alternatively, you can pass it the name of a file
containing a list of packages, one on each line, or just pass them all
as parameters, and it will get their build dependencies.
hugdaylist [-n <number>] <bug list url>
... will create a list of <number> bug list for a hug day listing

5
debian/changelog vendored
View File

@ -7,7 +7,10 @@ ubuntu-dev-tools (0.21) UNRELEASED; urgency=low
[ Kees Cook ]
* mk-sbuild-lv: fix gnupg install, adjust symlink creation
-- Kees Cook <kees@ubuntu.com> Tue, 23 Oct 2007 10:22:44 -0700
[ Siegfried-Angel Gevatter Pujals (RainCT) ]
* Add get-build-deps and it's documentation.
-- Siegfried-Angel Gevatter Pujals (RainCT) <sgevatter@ubuntu.cat> Sat, 27 Oct 2007 23:03:42 +0200
ubuntu-dev-tools (0.20) hardy; urgency=low

4
debian/copyright vendored
View File

@ -45,7 +45,7 @@ submittodebian, update-maintainer, and what-patch are licensed under GPLv2:
On Debian systems, the complete text of the GNU General Public License v2
can be found in `/usr/share/common-licenses/GPL-2'.
get-branches and suspicious-source are licensed under GPLv3:
get-branches, suspicious-source and get-build-deps are licensed under GPLv3:
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
@ -63,4 +63,4 @@ On Debian systems, the complete text of the GNU General Public License v3
can be found in `/usr/share/common-licenses/GPL-3'.
The following of the scripts can be used, at your option, regarding any later version
of the previously specified license: pbuilder-dist and suspicious-source.
of the previously specified license: pbuilder-dist, suspicious-source and get-build-deps.

55
doc/get-build-deps.1 Normal file
View File

@ -0,0 +1,55 @@
.\" Title: get-build-deps
.\" Author: Siegfried-Angel Gevatter Pujals
.\" Contact details: siggi.gevatter@gmail.com
.\"
.TH GET\-BUILD\-DEPS 1 "October 27, 2007"
.\"
.SH NAME
get\-build\-deps \- install build dependencies for one or more packages
.\"
.SH SYNOPSIS
\fBget\-build\-deps\fP [\fIPACKAGE(S)\fR]
.\"
.SH DESCRIPTION
\fBget\-build\-deps\fP is a script to install the build dependencies for either a
local source package or one or more packages from the repositories.
.PP
In order to obtain all missing build dependencies for a package on which source
you are currently working, just run this script without any argument, and it'll
read it's debian/control file to determine the missing build dependencies.
.PP
Alternatively, you can call it with a list of space-separated package names, or the
name of a single file which contains the package names each on a line. Then it will
install the missing dependencies for those packages using "apt-get build-dep".
.\"
.SH EXAMPLES
.TP
get\-build\-deps
Looks for a the debian/control file in the current working directory and installs the
dependencies listed there.
.TP
get\-build\-deps geany
Installs the build dependencies for version of «geany» that's in the repositories.
.TP
get\-build\-deps geany epiphany-browser rhythmbox
Same as the previous example but also with the dependencies for «epiphany-browser»
and «rhythmbox».
.TP
get\-build\-deps ./package_list.txt
Reads the file «package_list.txt» (relatively to the current working directory),
where each line contains the name of a package, and installs the dependencies
for the versions of all those that's in the repositories.
.\"
.SH KNOWN BUGS AND LIMITATIONS
When it's being used to install the missing dependencies for a local source package
(ie, no arguments are passed to it) it doesn't check for the dependencies to match
the indicated versions, but just installs the newest one available in the repositories.
.\"
.SH SEE ALSO
\fBdpkg-checkbuilddeps(1)\fR,
\fBapt-get(8)\fR
.SH AUTHORS
.\"
\fBget\-build\-deps\fP and this manual page have been written by Siegfried-Angel
Gevatter Pujals <siggi.gevatter@gmail.com>. They are released under the GNU General
Public License, version 3 or later.

View File

@ -22,4 +22,4 @@ It expects to find the .dsc and diff.gz of the current version (which you likely
.BR reportbug (1).
.br
.SH AUTHOR
submittodebian and this man page was written by Soren Hansen <soren@ubuntu.com>.
submittodebian and this man page were written by Soren Hansen <soren@ubuntu.com>.

79
get-build-deps Executable file
View File

@ -0,0 +1,79 @@
#!/bin/bash
# Copyright 2007 (C) Siegfried-A. Gevatter <siggi.gevatter@gmail.com>
# License: GPLv3 or later
#
# If you don't pass it any argument, this script will check if
# there's a control (debian/control) file somewhere in the current
# directory, and if it's so, it'll install the build dependencies
# listed there.
#
# If it gets a single argument, and it's the name of a file, it will
# read it, supposing that each line contains the name of a package,
# and install the build dependencies for all those.
#
# Otherwise, if there is more than one argument, or the given argument
# isn't the name of an existing file, it will suppose that the each
# argument is the name of a package, and install the dependencies for
# all of them.
if [ $# -eq 0 ]
then
#########################################################
# Install the dependencies for the source package the
# user is working on.
if [ -f ../debian/control ]; then
cd ..
elif [ ! -f ./debian/control ]; then
echo "\
Couldn't find the file debian/control. You have to be inside the \
source directory of a Debian package or pass the name of the \
package(s) whose build dependencies you want to install in order \
to use this script."
exit 1
fi
filepath="`pwd`/debian/control"
missing_dependencies=$(dpkg-checkbuilddeps 2>&1)
if [ -z "$missing_dependencies" ]; then
echo "The build dependencies described in «$filepath» are already satisfied."
exit 0
fi
echo "Installing the build dependencies described in «$filepath»..."
if [ -x /usr/lib/pbuilder/pbuilder-satisfydepends ]
then
sudo /usr/lib/pbuilder/pbuilder-satisfydepends
else
echo "Warning: «pbuilder» isn\'t installed, falling back to «dpkg-checkbuilddeps»."
sudo aptitude install $(echo $missing_dependencies | awk -F: '{ print $3 }' | sed 's/([^)]*)//g' | sed 's/|\s[^\s]*//g')
#' <--- Fix to avoid Geanys markup breaking
fi
exit 0
elif [ $# -eq 1 ]
then
#########################################################
# Check if the given argument is a file name, else
# continue after the if.
if [ -f $1 ]
then
packages=''
echo "Installing the build dependencies for the following packages:"
while read line
do
echo $line
packages="$packages $line"
done < $1
echo
sudo apt-get build-dep $packages
exit 0
fi
fi
#########################################################
# All arguments should be package names, install
# their build dependencies.
sudo apt-get build-dep $*

View File

@ -29,7 +29,7 @@ setup(name='ubuntu-dev-tools',
'requestsync',
'hugdaylist',
'massfile',
'submittodebian'
'submittodebian',
'get-build-deps'
],
)