summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/makepkg55
-rw-r--r--src/pacman/pacman.c14
2 files changed, 51 insertions, 18 deletions
diff --git a/scripts/makepkg b/scripts/makepkg
index 7a387320..718ddc87 100755
--- a/scripts/makepkg
+++ b/scripts/makepkg
@@ -2,7 +2,7 @@
#
# makepkg
#
-# Copyright (c) 2002-2005 by Judd Vinet <jvinet@zeroflux.org>
+# Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
#
# 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
@@ -43,6 +43,8 @@ NOEXTRACT=0
NOSTRIP=0
RMDEPS=0
+PACMAN_OPTS=
+
# source Arch's abs.conf if it's present
[ -f /etc/abs/abs.conf ] && source /etc/abs/abs.conf
@@ -108,7 +110,7 @@ checkdeps() {
[ $# -gt 0 ] || return
- missdep=`pacman -T $*`
+ missdep=`pacman $PACMAN_OPTS -T $*`
ret=$?
if [ "$ret" != "0" ]; then
if [ "$ret" = "127" ]; then
@@ -148,7 +150,7 @@ handledeps() {
if [ "$DEP_BIN" = "1" ]; then
# install missing deps from binary packages (using pacman -S)
msg "Installing missing dependencies..."
- pacman -D $deplist
+ pacman $PACMAN_OPTS -D $deplist
if [ "$?" = "127" ]; then
error "Failed to install missing dependencies."
exit 1
@@ -163,7 +165,7 @@ handledeps() {
FAKEROOTKEY2=$FAKEROOTKEY
unset FAKEROOTKEY
fi
- sudo pacman -D $deplist
+ sudo pacman $PACMAN_OPTS -D $deplist
if [ "$INFAKEROOT" = "1" ]; then
export FAKEROOTKEY=$FAKEROOTKEY2
unset FAKEROOTKEY2
@@ -224,8 +226,10 @@ handledeps() {
usage() {
echo "makepkg version $myver"
- echo "usage: $0 [options]"
- echo "options:"
+ echo
+ echo "Usage: $0 [options]"
+ echo
+ echo "Options:"
echo " -b, --builddeps Build missing dependencies from source"
echo " -B, --noccache Do not use ccache during build"
echo " -c, --clean Clean up work files after build"
@@ -246,8 +250,12 @@ usage() {
echo " -S, --sudosync Install missing dependencies with pacman and sudo"
echo " -w <destdir> Write package to <destdir> instead of the working dir"
echo
- echo " if -p is not specified, makepkg will look for a PKGBUILD"
- echo " file in the current directory."
+ echo "These options can be passed to pacman:"
+ echo
+ echo " --noconfirm Do not ask for confirmation when resolving dependencies"
+ echo " --noprogressbar Do not show a progress bar when downloading files"
+ echo
+ echo "If -p is not specified, makepkg will look for ./PKGBUILD"
echo
}
@@ -255,6 +263,10 @@ ARGLIST=$@
while [ "$#" -ne "0" ]; do
case $1 in
+# pacman
+ --noconfirm) PACMAN_OPTS="$PACMAN_OPTS --noconfirm" ;;
+ --noprogressbar) PACMAN_OPTS="$PACMAN_OPTS --noprogressbar" ;;
+# makepkg
--clean) CLEANUP=1 ;;
--cleancache) CLEANCACHE=1 ;;
--syncdeps) DEP_BIN=1 ;;
@@ -378,7 +390,8 @@ fi
if [ -f $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz -a "$FORCE" = "0" -a "$GENMD5" = "0" ]; then
if [ "$INSTALL" = "1" ]; then
warning "a package has already been built, installing existing package."
- pacman --upgrade $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz
+ echo pacman $PACMAN_OPTS -U $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz
+ pacman $PACMAN_OPTS -U $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz
exit $?
else
error "a package has already been built. (use -f to overwrite)"
@@ -680,6 +693,18 @@ if [ ! "`check_option NOSTRIP`" -a "$NOSTRIP" = "0" ]; then
| grep -v "No such file" | grep -v "format not recognized"
fi
+# remove libtool (.la) files
+if [ "`check_option NOLIBTOOL`" ]; then
+ msg "Removing libtool .la files..."
+ find pkg -type f -name "*.la" -exec rm -f -- '{}' \;
+fi
+
+# remove empty directories
+if [ "`check_option NOEMPTYDIRS`" ]; then
+ msg "Removing empty directories..."
+ find pkg -mindepth 1 -type d -empty -exec rmdir {} \;
+fi
+
# get some package meta info
builddate=`LC_ALL= ; LANG= ; date -u "+%a %b %e %H:%M:%S %Y"`
if [ "$PACKAGER" != "" ]; then
@@ -757,14 +782,14 @@ fi
if [ "$RMDEPS" = "1" -a "`id -u`" = "0" -a "$INFAKEROOT" != "1" -a \( ! -z "$deplist" -o ! -z "$makedeplist" \) ]; then
msg "Removing installed dependencies..."
- pacman -R $makedeplist $deplist
+ pacman $PACMAN_OPTS -R $makedeplist $deplist
elif [ "$RMDEPS" = "1" -a "$DEP_SUDO" = "1" ]; then
msg "Removing installed dependencies..."
if [ "$INFAKEROOT" = "1" ]; then
FAKEROOTKEY2=$FAKEROOTKEY
unset FAKEROOTKEY
fi
- sudo pacman -R $makedeplist $deplist
+ sudo pacman $PACMAN_OPTS -R $makedeplist $deplist
if [ "$INFAKEROOT" = "1" ]; then
export FAKEROOTKEY=$FAKEROOTKEY2
unset FAKEROOTKEY2
@@ -774,16 +799,16 @@ fi
msg "Finished making: $pkgname (`date`)"
if [ "$INSTALL" = "1" -a "`id -u`" = "0" -a "$INFAKEROOT" != "1" ]; then
- msg "Running pacman --upgrade..."
- pacman --upgrade $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz
+ msg "Installing package with pacman -U..."
+ pacman $PACMAN_OPTS -U $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz
exit $?
elif [ "$INSTALL" = "1" -a "$DEP_SUDO" = "1" ]; then
- msg "Running pacman --upgrade..."
+ msg "Installing package with pacman -U..."
if [ "$INFAKEROOT" = "1" ]; then
FAKEROOTKEY2=$FAKEROOTKEY
unset FAKEROOTKEY
fi
- sudo pacman --upgrade $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz
+ sudo pacman $PACMAN_OPTS -U $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz
if [ "$INFAKEROOT" = "1" ]; then
export FAKEROOTKEY=$FAKEROOTKEY2
unset FAKEROOTKEY2
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 75ce1bca..82765342 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -193,6 +193,13 @@ int main(int argc, char *argv[])
cleanup(1);
}
+ if(list_count(pm_targets) == 0 && !(config->op == PM_OP_QUERY || (config->op == PM_OP_SYNC
+ && (config->op_s_sync || config->op_s_upgrade || config->op_s_clean || config->group
+ || config->op_q_list)))) {
+ ERR(NL, "no targets specified (use -h for help)\n");
+ cleanup(1);
+ }
+
/* start the requested operation */
switch(config->op) {
case PM_OP_ADD: ret = pacman_add(pm_targets); break;
@@ -205,9 +212,6 @@ int main(int argc, char *argv[])
ERR(NL, "no operation specified (use -h for help)\n");
ret = 1;
}
- if(ret != 0 && config->op_d_vertest == 0) {
- MSG(NL, "\n");
- }
cleanup(ret);
/* not reached */
@@ -218,6 +222,10 @@ void cleanup(int signum)
{
list_t *lp;
+ if(signum != 0 && config->op_d_vertest == 0) {
+ fprintf(stderr, "\n");
+ }
+
/* free alpm library resources */
if(alpm_release() == -1) {
ERR(NL, "%s\n", alpm_strerror(pm_errno));