summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/bash_completion.in2
-rw-r--r--contrib/zsh_completion.in1
-rw-r--r--doc/makepkg.8.txt3
-rw-r--r--lib/libalpm/alpm.h7
-rw-r--r--lib/libalpm/conflict.c8
-rw-r--r--scripts/makepkg.sh.in24
-rw-r--r--src/pacman/callback.c14
-rw-r--r--test/pacman/pmpkg.py2
-rw-r--r--test/pacman/tests/ignore005.py2
-rw-r--r--test/pacman/tests/sync140.py2
-rw-r--r--test/pacman/tests/sync141.py2
-rw-r--r--test/pacman/tests/unresolvable001.py2
-rw-r--r--test/pacman/tests/upgrade090.py2
-rw-r--r--test/pacman/util.py2
-rwxr-xr-xtest/scripts/parseopts_test.sh2
15 files changed, 41 insertions, 34 deletions
diff --git a/contrib/bash_completion.in b/contrib/bash_completion.in
index 28981ae4..519aa6dc 100644
--- a/contrib/bash_completion.in
+++ b/contrib/bash_completion.in
@@ -77,7 +77,7 @@ _makepkg() {
if [[ $cur = -* && ! $prev =~ ^-(-(config|help)$|\w*[Chp]) ]]; then
opts=('allsource asdeps asroot check clean config force geninteg help holdver ignorearch
install key log needed nobuild nocheck nocolor noconfirm nodeps noextract
- noprogressbar nosign pkg repackage rmdeps sign skipchecksums skipinteg
+ noprepare noprogressbar nosign pkg repackage rmdeps sign skipchecksums skipinteg
skippgpcheck source syncdeps verifysource version'
'A L R S c d e f g h i m o p r s')
_arch_ptr2comp opts
diff --git a/contrib/zsh_completion.in b/contrib/zsh_completion.in
index c150144c..67aa40a7 100644
--- a/contrib/zsh_completion.in
+++ b/contrib/zsh_completion.in
@@ -589,6 +589,7 @@ _makepkg_longopts=(
'--holdver[Prevent automatic version bumping for development PKGBUILDs]'
'--key[Specify key to use for gpg signing instead of the default]: :_keys'
'--nocheck[Do not run the check() function in the PKGBUILD]'
+ '--noprepare[Do not run the prepare() function in the PKGBUILD]'
'--nosign[Do not create a signature for the package]'
'--pkg[Only build listed packages from a split package]'
'--sign[Sign the resulting package with gpg]'
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index bb7a9a3f..a10242d2 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -165,6 +165,9 @@ Options
*\--nocheck*::
Do not run the check() function in the PKGBUILD or handle the checkdepends.
+*\--noprepare*::
+ Do not run the prepare() function in the PKGBUILD.
+
*\--sign*::
Sign the resulting package with gpg, overriding the setting in
linkman:makepkg.conf[5].
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index ccbdd1c6..2277a69c 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -405,10 +405,9 @@ typedef enum _alpm_question_t {
ALPM_QUESTION_REPLACE_PKG = (1 << 1),
ALPM_QUESTION_CONFLICT_PKG = (1 << 2),
ALPM_QUESTION_CORRUPTED_PKG = (1 << 3),
- ALPM_QUESTION_LOCAL_NEWER = (1 << 4),
- ALPM_QUESTION_REMOVE_PKGS = (1 << 5),
- ALPM_QUESTION_SELECT_PROVIDER = (1 << 6),
- ALPM_QUESTION_IMPORT_KEY = (1 << 7)
+ ALPM_QUESTION_REMOVE_PKGS = (1 << 4),
+ ALPM_QUESTION_SELECT_PROVIDER = (1 << 5),
+ ALPM_QUESTION_IMPORT_KEY = (1 << 6)
} alpm_question_t;
/** Question callback */
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c
index 18e29a89..041a04ef 100644
--- a/lib/libalpm/conflict.c
+++ b/lib/libalpm/conflict.c
@@ -556,11 +556,13 @@ alpm_list_t *_alpm_db_find_fileconflicts(alpm_handle_t *handle,
/* Look at all the targets to see if file has changed hands */
for(k = upgrade; k && !resolved_conflict; k = k->next) {
- alpm_pkg_t *p2 = k->data;
- if(!p2 || strcmp(p1->name, p2->name) == 0) {
+ alpm_pkg_t *localp2, *p2 = k->data;
+ if(!p2 || p1 == p2) {
+ /* skip p1; both p1 and p2 come directly from the upgrade list
+ * so they can be compared directly */
continue;
}
- alpm_pkg_t *localp2 = _alpm_db_get_pkgfromcache(handle->db_local, p2->name);
+ localp2 = _alpm_db_get_pkgfromcache(handle->db_local, p2->name);
/* localp2->files will be removed (target conflicts are handled by CHECK 1) */
_alpm_filelist_resolve(handle, alpm_pkg_get_files(localp2));
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 08dcf4ce..a59e13e5 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -2506,6 +2506,7 @@ usage() {
printf -- "$(gettext " --holdver Do not update VCS sources")\n"
printf -- "$(gettext " --key <key> Specify a key to use for %s signing instead of the default")\n" "gpg"
printf -- "$(gettext " --nocheck Do not run the %s function in the %s")\n" "check()" "$BUILDSCRIPT"
+ printf -- "$(gettext " --noprepare Do not run the %s function in the %s")\n" "prepare()" "$BUILDSCRIPT"
printf -- "$(gettext " --nosign Do not create a signature for the package")\n"
printf -- "$(gettext " --pkg <list> Only build listed packages from a split package")\n"
printf -- "$(gettext " --sign Sign the resulting package with %s")\n" "gpg"
@@ -2548,7 +2549,7 @@ ARGLIST=("$@")
OPT_SHORT="AcdefFghiLmop:rRsSV"
OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'config:' 'force' 'geninteg'
'help' 'holdver' 'ignorearch' 'install' 'key:' 'log' 'nobuild' 'nocolor'
- 'nocheck' 'nodeps' 'noextract' 'nosign' 'pkg:' 'repackage' 'rmdeps'
+ 'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'pkg:' 'repackage' 'rmdeps'
'sign' 'skipchecksums' 'skipinteg' 'skippgpcheck' 'source' 'syncdeps'
'verifysource' 'version')
@@ -2587,6 +2588,7 @@ while true; do
-L|--log) LOGGING=1 ;;
-m|--nocolor) USE_COLOR='n' ;;
--nocheck) RUN_CHECK='n' ;;
+ --noprepare) RUN_PREPARE='n' ;;
--nosign) SIGNPKG='n' ;;
-o|--nobuild) NOBUILD=1 ;;
-p) shift; BUILDFILE=$1 ;;
@@ -2663,12 +2665,12 @@ if [[ -t 2 && ! $USE_COLOR = "n" ]] && check_buildenv "color" "y"; then
RED="${BOLD}$(tput setaf 1)"
YELLOW="${BOLD}$(tput setaf 3)"
else
- ALL_OFF="\e[1;0m"
- BOLD="\e[1;1m"
- BLUE="${BOLD}\e[1;34m"
- GREEN="${BOLD}\e[1;32m"
- RED="${BOLD}\e[1;31m"
- YELLOW="${BOLD}\e[1;33m"
+ ALL_OFF="\e[0m"
+ BOLD="\e[1m"
+ BLUE="${BOLD}\e[34m"
+ GREEN="${BOLD}\e[32m"
+ RED="${BOLD}\e[31m"
+ YELLOW="${BOLD}\e[33m"
fi
fi
readonly ALL_OFF BOLD BLUE GREEN RED YELLOW
@@ -2767,8 +2769,7 @@ if [[ ! -f $BUILDFILE ]]; then
source_safe "$BUILDFILE"
fi
else
- crlftest=$(file "$BUILDFILE" | grep -F 'CRLF' || true)
- if [[ -n $crlftest ]]; then
+ if [[ $(<"$BUILDFILE") = *$'\r'* ]]; then
error "$(gettext "%s contains %s characters and cannot be sourced.")" "$BUILDFILE" "CRLF"
exit 1
fi
@@ -2820,7 +2821,10 @@ fi
# test for available PKGBUILD functions
if declare -f prepare >/dev/null; then
- PREPAREFUNC=1
+ # "Hide" prepare() function if not going to be run
+ if [[ $RUN_PREPARE != "n" ]]; then
+ PREPAREFUNC=1
+ fi
fi
if declare -f build >/dev/null; then
BUILDFUNC=1
diff --git a/src/pacman/callback.c b/src/pacman/callback.c
index 12c80d36..c57ef34a 100644
--- a/src/pacman/callback.c
+++ b/src/pacman/callback.c
@@ -309,6 +309,11 @@ void cb_question(alpm_question_t event, void *data1, void *data2,
void *data3, int *response)
{
if(config->print) {
+ if(event == ALPM_QUESTION_INSTALL_IGNOREPKG) {
+ *response = 1;
+ } else {
+ *response = 0;
+ }
return;
}
switch(event) {
@@ -377,15 +382,6 @@ void cb_question(alpm_question_t event, void *data1, void *data2,
*response = select_question(count);
}
break;
- case ALPM_QUESTION_LOCAL_NEWER:
- if(!config->op_s_downloadonly) {
- *response = yesno(_("%s-%s: local version is newer. Upgrade anyway?"),
- alpm_pkg_get_name(data1),
- alpm_pkg_get_version(data1));
- } else {
- *response = 1;
- }
- break;
case ALPM_QUESTION_CORRUPTED_PKG:
*response = yesno(_("File %s is corrupted (%s).\n"
"Do you want to delete it?"),
diff --git a/test/pacman/pmpkg.py b/test/pacman/pmpkg.py
index 988c73f3..9b3147a3 100644
--- a/test/pacman/pmpkg.py
+++ b/test/pacman/pmpkg.py
@@ -160,6 +160,8 @@ class pmpkg(object):
info = tarfile.TarInfo(fileinfo["filename"])
if fileinfo["hasperms"]:
info.mode = fileinfo["perms"]
+ elif fileinfo["isdir"]:
+ info.mode = 0755
if fileinfo["isdir"]:
info.type = tarfile.DIRTYPE
tar.addfile(info)
diff --git a/test/pacman/tests/ignore005.py b/test/pacman/tests/ignore005.py
index 274e44c3..51bcba39 100644
--- a/test/pacman/tests/ignore005.py
+++ b/test/pacman/tests/ignore005.py
@@ -36,7 +36,7 @@ self.addpkg2db("sync", packageA5up)
self.option["IgnorePkg"] = ["packageA3"]
-self.args = "-S packageA1 packageA2 --ask=32"
+self.args = "-S packageA1 packageA2 --ask=16"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_VERSION=packageA1|1.0-1")
diff --git a/test/pacman/tests/sync140.py b/test/pacman/tests/sync140.py
index ce21cc33..fbe750f2 100644
--- a/test/pacman/tests/sync140.py
+++ b/test/pacman/tests/sync140.py
@@ -18,7 +18,7 @@ sp3.depends = ["gcc-libs"]
for p in sp1, sp2, sp3:
self.addpkg2db("sync", p)
-self.args = "-Su --ignore %s --ask=32" % sp1.name
+self.args = "-Su --ignore %s --ask=16" % sp1.name
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_VERSION=glibc|1.0-1")
diff --git a/test/pacman/tests/sync141.py b/test/pacman/tests/sync141.py
index f2f01364..02f7be81 100644
--- a/test/pacman/tests/sync141.py
+++ b/test/pacman/tests/sync141.py
@@ -18,7 +18,7 @@ sp3.depends = ["b_gcc-libs"]
for p in sp1, sp2, sp3:
self.addpkg2db("sync", p)
-self.args = "-Su --ignore %s --ask=32" % sp1.name
+self.args = "-Su --ignore %s --ask=16" % sp1.name
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_VERSION=c_glibc|1.0-1")
diff --git a/test/pacman/tests/unresolvable001.py b/test/pacman/tests/unresolvable001.py
index 9d54c3e5..4e5da6f3 100644
--- a/test/pacman/tests/unresolvable001.py
+++ b/test/pacman/tests/unresolvable001.py
@@ -11,7 +11,7 @@ packageA2up = pmpkg("package")
packageA2up.depends = ["dep"];
self.addpkg2db("sync", packageA2up)
-self.args = "-S package dep --ask=32"
+self.args = "-S package dep --ask=16"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=package")
diff --git a/test/pacman/tests/upgrade090.py b/test/pacman/tests/upgrade090.py
index 26e531c9..cdd4cace 100644
--- a/test/pacman/tests/upgrade090.py
+++ b/test/pacman/tests/upgrade090.py
@@ -16,7 +16,7 @@ sp = pmpkg("dep")
sp.files = ["bin/dep"]
self.addpkg2db("sync", sp)
-self.args = "-U %s --ask=32" % " ".join([p.filename() for p in p1, p2, p3])
+self.args = "-U %s --ask=16" % " ".join([p.filename() for p in p1, p2, p3])
self.addrule("PACMAN_RETCODE=0")
for p in p1, p2, sp:
diff --git a/test/pacman/util.py b/test/pacman/util.py
index be99cd57..65540ed3 100644
--- a/test/pacman/util.py
+++ b/test/pacman/util.py
@@ -100,7 +100,7 @@ def mkfile(base, name, data=""):
def writedata(filename, data):
if isinstance(data, list):
data = "\n".join(data)
- fd = file(filename, "w")
+ fd = open(filename, "w")
if data:
fd.write(data)
if data[-1] != "\n":
diff --git a/test/scripts/parseopts_test.sh b/test/scripts/parseopts_test.sh
index 2862caec..b7e5d08a 100755
--- a/test/scripts/parseopts_test.sh
+++ b/test/scripts/parseopts_test.sh
@@ -18,7 +18,7 @@ fi
OPT_SHORT="AcdefFghiLmop:rRsV"
OPT_LONG=('allsource' 'asroot' 'ignorearch' 'check' 'clean:' 'cleanall' 'nodeps'
'noextract' 'force' 'forcever:' 'geninteg' 'help' 'holdver'
- 'install' 'key:' 'log' 'nocolor' 'nobuild' 'nocheck' 'nosign' 'pkg:' 'rmdeps'
+ 'install' 'key:' 'log' 'nocolor' 'nobuild' 'nocheck' 'noprepare' 'nosign' 'pkg:' 'rmdeps'
'repackage' 'skipinteg' 'sign' 'source' 'syncdeps' 'version' 'config:'
'noconfirm' 'noprogressbar')