mirror of
https://github.com/moparisthebest/pacman
synced 2024-12-21 23:38:49 -05:00
Merge branch 'maint'
Conflicts: contrib/pacsysclean.in src/pacman/conf.h
This commit is contained in:
commit
3849c3aec1
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# pacsysclean - Sort installed packages by decreasing installed size. Useful for system clean-up.
|
||||
# pacsysclean - Sort installed packages by increasing installed size. Useful for system clean-up.
|
||||
|
||||
declare -r myname='pacsysclean'
|
||||
declare -r myver='@PACKAGE_VERSION@'
|
||||
@ -8,7 +8,7 @@ declare -r myver='@PACKAGE_VERSION@'
|
||||
PACMAN_OPTS=
|
||||
|
||||
usage() {
|
||||
echo "$myname - Sort installed packages by decreasing installed size."
|
||||
echo "$myname - Sort installed packages by increasing installed size."
|
||||
echo
|
||||
echo "Usage: $myname [options]"
|
||||
echo
|
||||
@ -35,6 +35,9 @@ fi
|
||||
IFS=$'\n'
|
||||
name="^Name.*: (.*)$"
|
||||
size="^Installed Size.*: (.*) KiB$"
|
||||
|
||||
[[ $PACMAN_OPTS != -* ]] && PACMAN_OPTS="-$PACMAN_OPTS"
|
||||
|
||||
for line in $(LANG=C pacman -Qi $PACMAN_OPTS); do
|
||||
if [[ $line =~ $name ]]; then
|
||||
printf "%s\t" ${BASH_REMATCH[1]}
|
||||
|
@ -411,13 +411,6 @@ system upgrade and install/upgrade the foo package in the same operation.
|
||||
*\--needed*::
|
||||
Do not reinstall the targets that are already up to date.
|
||||
|
||||
*\--recursive*::
|
||||
Recursively reinstall all dependencies of the targets. This forces upgrades
|
||||
or reinstalls of all dependencies without requiring explicit version
|
||||
requirements. This is most useful in combination with the '\--needed' flag,
|
||||
which will induce a deep dependency upgrade without any unnecessary
|
||||
reinstalls.
|
||||
|
||||
|
||||
Handling Config Files[[HCF]]
|
||||
----------------------------
|
||||
|
@ -723,12 +723,6 @@ int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t *localpkgs,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(handle->trans->flags & ALPM_TRANS_FLAG_RECURSE) {
|
||||
/* removing local packages from the equation causes the entire dep chain to
|
||||
* get pulled for each target- e.g., pactree -u output */
|
||||
localpkgs = NULL;
|
||||
}
|
||||
|
||||
/* Create a copy of the packages list, so that it can be restored
|
||||
on error */
|
||||
packages_copy = alpm_list_copy(*packages);
|
||||
@ -781,29 +775,6 @@ int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t *localpkgs,
|
||||
alpm_list_free(deps);
|
||||
}
|
||||
|
||||
if(handle->trans->flags & ALPM_TRANS_FLAG_NEEDED) {
|
||||
/* remove any deps that were pulled that match installed version */
|
||||
/* odd loop syntax so we can modify the list as we iterate */
|
||||
i = *packages;
|
||||
while(i) {
|
||||
alpm_pkg_t *tpkg = i->data;
|
||||
alpm_pkg_t *local = _alpm_db_get_pkgfromcache(
|
||||
handle->db_local, tpkg->name);
|
||||
if(local && _alpm_pkg_compare_versions(tpkg, local) == 0) {
|
||||
/* with the NEEDED flag, packages up to date are not reinstalled */
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG,
|
||||
"not adding dep %s-%s as it is not needed, same version\n",
|
||||
local->name, local->version);
|
||||
j = i;
|
||||
i = i->next;
|
||||
*packages = alpm_list_remove_item(*packages, j);
|
||||
free(j);
|
||||
} else {
|
||||
i = i->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(ret != 0) {
|
||||
alpm_list_free(*packages);
|
||||
*packages = packages_copy;
|
||||
|
@ -188,8 +188,20 @@ static alpm_mountpoint_t *match_mount_point(const alpm_list_t *mount_points,
|
||||
for(mp = mount_points; mp != NULL; mp = mp->next) {
|
||||
alpm_mountpoint_t *data = mp->data;
|
||||
|
||||
/* first, check if the prefix matches */
|
||||
if(strncmp(data->mount_dir, real_path, data->mount_dir_len) == 0) {
|
||||
return data;
|
||||
/* now, the hard work- a file like '/etc/myconfig' shouldn't map to a
|
||||
* mountpoint '/e', but only '/etc'. If the mountpoint ends in a trailing
|
||||
* slash, we know we didn't have a mismatch, otherwise we have to do some
|
||||
* more sanity checks. */
|
||||
if(data->mount_dir[data->mount_dir_len - 1] == '/') {
|
||||
return data;
|
||||
} else if(strlen(real_path) >= data->mount_dir_len) {
|
||||
const char next = real_path[data->mount_dir_len];
|
||||
if(next == '/' || next == '\0') {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -436,8 +436,8 @@ static int curl_download_internal(struct dload_payload *payload,
|
||||
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, localf);
|
||||
|
||||
/* ignore any SIGPIPE signals- these may occur if our FTP socket dies or
|
||||
* something along those lines. Store the old signal handler first. */
|
||||
/* Ignore any SIGPIPE signals. With libcurl, these shouldn't be happening,
|
||||
* but better safe than sorry. Store the old signal handler first. */
|
||||
mask_signal(SIGPIPE, SIG_IGN, &orig_sig_pipe);
|
||||
mask_signal(SIGINT, &inthandler, &orig_sig_int);
|
||||
|
||||
|
@ -23,17 +23,15 @@ parse_options() {
|
||||
[[ ${match} = ${1:2}:: && -n $2 && ${2:0:1} != "-" ]] && needsargument=1
|
||||
|
||||
if (( ! needsargument )); then
|
||||
printf ' %s' "$1"
|
||||
OPTRET+=("$1")
|
||||
else
|
||||
if [[ -n $2 ]]; then
|
||||
printf ' %s ' "$1"
|
||||
OPTRET+=("$1" "$2")
|
||||
shift
|
||||
printf "'%q" "$1"
|
||||
while [[ -n $2 && ${2:0:1} != "-" ]]; do
|
||||
shift
|
||||
printf " %q" "$1"
|
||||
OPTRET+=("$1")
|
||||
done
|
||||
printf "'"
|
||||
else
|
||||
printf "@SCRIPTNAME@: $(gettext "option %s requires an argument\n")" "'$1'" >&2
|
||||
ret=1
|
||||
@ -57,26 +55,22 @@ parse_options() {
|
||||
( -n ${1:$i+1} || ( -n $2 && ${2:0:1} != "-" ) ) ]] && needsargument=1
|
||||
|
||||
if (( ! needsargument )); then
|
||||
printf ' -%s' "${1:i:1}"
|
||||
OPTRET+=("-${1:i:1}")
|
||||
else
|
||||
if [[ -n ${1:$i+1} ]]; then
|
||||
printf ' -%s ' "${1:i:1}"
|
||||
printf "'%q" "${1:$i+1}"
|
||||
OPTRET+=("-${1:i:1}" "${1:i+1}")
|
||||
while [[ -n $2 && ${2:0:1} != "-" ]]; do
|
||||
shift
|
||||
printf " %q" "$1"
|
||||
OPTRET+=("$1")
|
||||
done
|
||||
printf "'"
|
||||
else
|
||||
if [[ -n $2 ]]; then
|
||||
printf ' -%s ' "${1:i:1}"
|
||||
OPTRET+=("-${1:i:1}" "$2")
|
||||
shift
|
||||
printf "'%q" "$1"
|
||||
while [[ -n $2 && ${2:0:1} != "-" ]]; do
|
||||
shift
|
||||
printf " %q" "$1"
|
||||
OPTRET+=("$1")
|
||||
done
|
||||
printf "'"
|
||||
|
||||
else
|
||||
printf "@SCRIPTNAME@: $(gettext "option %s requires an argument\n")" "'-${1:i:1}'" >&2
|
||||
@ -91,15 +85,11 @@ parse_options() {
|
||||
fi
|
||||
done
|
||||
else
|
||||
unused_options="${unused_options} '$1'"
|
||||
unused_options+=("$1")
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
printf " --"
|
||||
[[ $unused_options ]] && printf ' %s' "${unused_options[@]}"
|
||||
[[ $1 ]] && printf " '%s'" "$@"
|
||||
printf "\n"
|
||||
|
||||
OPTRET+=('--' "${unused_options[@]}")
|
||||
return $ret
|
||||
}
|
||||
}
|
||||
|
@ -36,6 +36,8 @@ export TEXTDOMAINDIR='@localedir@'
|
||||
|
||||
# file -i does not work on Mac OSX unless legacy mode is set
|
||||
export COMMAND_MODE='legacy'
|
||||
# Ensure CDPATH doesn't screw with our cd calls
|
||||
unset CDPATH
|
||||
|
||||
declare -r myver='@PACKAGE_VERSION@'
|
||||
declare -r confdir='@sysconfdir@'
|
||||
@ -519,7 +521,7 @@ remove_deps() {
|
||||
local deplist
|
||||
deplist=($(grep -xvFf <(printf "%s\n" "${original_pkglist[@]}") \
|
||||
<(printf "%s\n" "${current_pkglist[@]}") || true))
|
||||
if [[ -z deplist ]]; then
|
||||
if [[ -z $deplist ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
@ -1924,11 +1926,11 @@ OPT_LONG+=",version,config:"
|
||||
|
||||
# Pacman Options
|
||||
OPT_LONG+=",noconfirm,noprogressbar"
|
||||
if ! OPT_TEMP="$(parse_options $OPT_SHORT $OPT_LONG "$@")"; then
|
||||
if ! parse_options $OPT_SHORT $OPT_LONG "$@"; then
|
||||
echo; usage; exit 1 # E_INVALID_OPTION;
|
||||
fi
|
||||
eval set -- "$OPT_TEMP"
|
||||
unset OPT_SHORT OPT_LONG OPT_TEMP
|
||||
set -- "${OPTRET[@]}"
|
||||
unset OPT_SHORT OPT_LONG OPTRET
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
|
@ -501,11 +501,11 @@ OPT_LONG="add::,config:,delete:,edit-key:,export::,finger::,gpgdir:"
|
||||
OPT_LONG+=",help,import:,import-trustdb:,init,keyserver:,list-keys::,list-sigs::"
|
||||
OPT_LONG+=",lsign-key:,populate::,recv-keys:,refresh-keys::,updatedb"
|
||||
OPT_LONG+=",verify:,version"
|
||||
if ! OPT_TEMP="$(parse_options $OPT_SHORT $OPT_LONG "$@")"; then
|
||||
if ! parse_options $OPT_SHORT $OPT_LONG "$@"; then
|
||||
echo; usage; exit 1 # E_INVALID_OPTION;
|
||||
fi
|
||||
eval set -- "$OPT_TEMP"
|
||||
unset OPT_SHORT OPT_LONG OPT_TEMP
|
||||
set -- "${OPTRET[@]}"
|
||||
unset OPT_SHORT OPT_LONG OPTRET
|
||||
|
||||
if [[ $1 == "--" ]]; then
|
||||
usage;
|
||||
|
@ -122,8 +122,7 @@ find "$dbroot" -type f | sort | xargs md5sum > "$workdir/pacsums.old"
|
||||
|
||||
# step 2: tar it up
|
||||
msg "$(gettext "Tar'ing up %s...")" "$dbroot"
|
||||
cd "$dbroot"
|
||||
bsdtar -czf "$workdir/pacman-db.tar.gz" ./
|
||||
bsdtar -czf "$workdir/pacman-db.tar.gz" -C "$dbroot" ./
|
||||
if (( $? )); then
|
||||
rm -rf "$workdir"
|
||||
die_r "$(gettext "Tar'ing up %s failed.")" "$dbroot"
|
||||
|
@ -127,7 +127,6 @@ enum {
|
||||
OP_ARCH,
|
||||
OP_PRINTFORMAT,
|
||||
OP_GPGDIR,
|
||||
OP_RECURSIVE,
|
||||
OP_DBONLY,
|
||||
OP_FORCE
|
||||
};
|
||||
|
@ -130,7 +130,6 @@ static void usage(int op, const char * const myname)
|
||||
} else if(op == PM_OP_UPGRADE) {
|
||||
printf("%s: %s {-U --upgrade} [%s] <%s>\n", str_usg, myname, str_opt, str_file);
|
||||
addlist(_(" --needed do not reinstall up to date packages\n"));
|
||||
addlist(_(" --recursive reinstall all dependencies of target packages\n"));
|
||||
printf("%s:\n", str_opt);
|
||||
} else if(op == PM_OP_QUERY) {
|
||||
printf("%s: %s {-Q --query} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg);
|
||||
@ -162,7 +161,6 @@ static void usage(int op, const char * const myname)
|
||||
addlist(_(" -w, --downloadonly download packages but do not install/upgrade anything\n"));
|
||||
addlist(_(" -y, --refresh download fresh package databases from the server\n"));
|
||||
addlist(_(" --needed do not reinstall up to date packages\n"));
|
||||
addlist(_(" --recursive reinstall all dependencies of target packages\n"));
|
||||
} else if(op == PM_OP_DATABASE) {
|
||||
printf("%s: %s {-D --database} <%s> <%s>\n", str_usg, myname, str_opt, str_pkg);
|
||||
printf("%s:\n", str_opt);
|
||||
@ -507,9 +505,6 @@ static int parsearg_remove(int opt)
|
||||
case 'c': config->flags |= ALPM_TRANS_FLAG_CASCADE; break;
|
||||
case 'n': config->flags |= ALPM_TRANS_FLAG_NOSAVE; break;
|
||||
case 's':
|
||||
case OP_RECURSIVE:
|
||||
/* 's' is the legacy flag here, but since recursive is used in -S without
|
||||
* a shortopt, we need to do funky tricks */
|
||||
if(config->flags & ALPM_TRANS_FLAG_RECURSE) {
|
||||
config->flags |= ALPM_TRANS_FLAG_RECURSEALL;
|
||||
} else {
|
||||
@ -532,7 +527,6 @@ static int parsearg_upgrade(int opt)
|
||||
case OP_ASDEPS: config->flags |= ALPM_TRANS_FLAG_ALLDEPS; break;
|
||||
case OP_ASEXPLICIT: config->flags |= ALPM_TRANS_FLAG_ALLEXPLICIT; break;
|
||||
case OP_NEEDED: config->flags |= ALPM_TRANS_FLAG_NEEDED; break;
|
||||
case OP_RECURSIVE: config->flags |= ALPM_TRANS_FLAG_RECURSE; break;
|
||||
case OP_IGNORE:
|
||||
parsearg_util_addlist(&(config->ignorepkg));
|
||||
break;
|
||||
@ -606,6 +600,7 @@ static int parseargs(int argc, char *argv[])
|
||||
{"print", no_argument, 0, 'p'},
|
||||
{"quiet", no_argument, 0, 'q'},
|
||||
{"root", required_argument, 0, 'r'},
|
||||
{"recursive", no_argument, 0, 's'},
|
||||
{"search", no_argument, 0, 's'},
|
||||
{"unrequired", no_argument, 0, 't'},
|
||||
{"upgrades", no_argument, 0, 'u'},
|
||||
@ -632,7 +627,6 @@ static int parseargs(int argc, char *argv[])
|
||||
{"arch", required_argument, 0, OP_ARCH},
|
||||
{"print-format", required_argument, 0, OP_PRINTFORMAT},
|
||||
{"gpgdir", required_argument, 0, OP_GPGDIR},
|
||||
{"recursive", no_argument, 0, OP_RECURSIVE},
|
||||
{"dbonly", no_argument, 0, OP_DBONLY},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
@ -975,8 +975,6 @@ int pacman_sync(alpm_list_t *targets)
|
||||
FREELIST(targs);
|
||||
targs = packages;
|
||||
config->flags = 0;
|
||||
config->flags |= ALPM_TRANS_FLAG_RECURSE;
|
||||
config->flags |= ALPM_TRANS_FLAG_NEEDED;
|
||||
config->op_s_upgrade = 0;
|
||||
} else {
|
||||
FREELIST(packages);
|
||||
|
@ -67,9 +67,13 @@ void trans_init_error(void)
|
||||
pm_printf(ALPM_LOG_ERROR, _("failed to init transaction (%s)\n"),
|
||||
alpm_strerror(err));
|
||||
if(err == ALPM_ERR_HANDLE_LOCK) {
|
||||
fprintf(stderr, _(" if you're sure a package manager is not already\n"
|
||||
" running, you can remove %s\n"),
|
||||
alpm_option_get_lockfile(config->handle));
|
||||
const char *lockfile = alpm_option_get_lockfile(config->handle);
|
||||
pm_printf(ALPM_LOG_ERROR, _("could not lock database: %s\n"),
|
||||
strerror(errno));
|
||||
if(access(lockfile, F_OK) == 0) {
|
||||
fprintf(stderr, _(" if you're sure a package manager is not already\n"
|
||||
" running, you can remove %s\n"), lockfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,12 +38,12 @@ self.option["SyncFirst"] = ["pacman"]
|
||||
self.args = "-Su"
|
||||
|
||||
self.addrule("PACMAN_RETCODE=0")
|
||||
self.addrule("PKG_EXIST=pacman")
|
||||
self.addrule("PKG_VERSION=pacman|1.0-2")
|
||||
self.addrule("PKG_EXIST=glibc")
|
||||
self.addrule("PKG_VERSION=glibc|2.15-1")
|
||||
self.addrule("PKG_EXIST=curl")
|
||||
self.addrule("PKG_VERSION=curl|7.22-1")
|
||||
self.addrule("PKG_EXIST=libarchive")
|
||||
self.addrule("PKG_VERSION=libarchive|2.8.5-1")
|
||||
# TODO: when SyncFirst recursive comes back, re-enable these
|
||||
#self.addrule("PKG_VERSION=glibc|2.15-1")
|
||||
#self.addrule("PKG_VERSION=curl|7.22-1")
|
||||
#self.addrule("PKG_VERSION=libarchive|2.8.5-1")
|
||||
self.addrule("PKG_EXIST=zlib")
|
||||
|
@ -29,10 +29,7 @@ self.option["SyncFirst"] = ["pacman"]
|
||||
self.args = "-Su"
|
||||
|
||||
self.addrule("PACMAN_RETCODE=0")
|
||||
self.addrule("PKG_EXIST=pacman")
|
||||
self.addrule("PKG_VERSION=pacman|1.0-2")
|
||||
self.addrule("PKG_EXIST=glibc-awesome")
|
||||
self.addrule("PKG_VERSION=glibc-awesome|2.13-2")
|
||||
self.addrule("PKG_EXIST=zlib")
|
||||
|
||||
self.expectfailure = True
|
||||
|
@ -19,9 +19,7 @@ self.option["SyncFirst"] = ["pacman"]
|
||||
self.args = "-Su"
|
||||
|
||||
self.addrule("PACMAN_RETCODE=0")
|
||||
self.addrule("PKG_EXIST=pacman")
|
||||
self.addrule("PKG_VERSION=pacman|4.0.1-1")
|
||||
self.addrule("PKG_EXIST=pyalpm")
|
||||
self.addrule("PKG_VERSION=pyalpm|2-1")
|
||||
|
||||
self.expectfailure = True
|
||||
|
@ -61,7 +61,4 @@ self.option["SyncFirst"] = ["pacman"]
|
||||
|
||||
self.args = "-Su"
|
||||
self.addrule("PACMAN_RETCODE=0")
|
||||
self.addrule("PKG_EXIST=pacman")
|
||||
self.addrule("PKG_VERSION=pacman|4.0.1-2")
|
||||
|
||||
self.expectfailure = True
|
||||
|
@ -59,5 +59,4 @@ self.addpkg2db("local", lp7)
|
||||
|
||||
self.args = "-S pacman"
|
||||
self.addrule("PACMAN_RETCODE=0")
|
||||
self.addrule("PKG_EXIST=pacman")
|
||||
self.addrule("PKG_VERSION=pacman|4.0.1-2")
|
||||
|
@ -20,15 +20,15 @@ expat_lpkg = pmpkg("expat", "2.0.1-6")
|
||||
self.addpkg2db("local", expat_lpkg)
|
||||
|
||||
# Sync db
|
||||
curl_sync = pmpkg("curl", "7.21.7-1")
|
||||
self.addpkg2db("sync", curl_sync)
|
||||
perl_sync = pmpkg("perl", "5.14.1-3")
|
||||
perl_sync.depends = ["glibc"]
|
||||
self.addpkg2db("sync", perl_sync)
|
||||
|
||||
glibc_sync = pmpkg("glibc", "2.1.4-4")
|
||||
self.addpkg2db("sync", glibc_sync)
|
||||
|
||||
perl_sync = pmpkg("perl", "5.14.1-3")
|
||||
perl_sync.depends = ["glibc"]
|
||||
self.addpkg2db("sync", perl_sync)
|
||||
curl_sync = pmpkg("curl", "7.21.7-1")
|
||||
self.addpkg2db("sync", curl_sync)
|
||||
|
||||
expat_sync = pmpkg("expat", "2.0.1-6")
|
||||
self.addpkg2db("sync", expat_sync)
|
||||
@ -46,11 +46,10 @@ self.addrule("PKG_DEPENDS=git|perl")
|
||||
self.addrule("PKG_DEPENDS=perl|glibc")
|
||||
self.addrule("PKG_EXIST=git")
|
||||
self.addrule("PKG_VERSION=git|1.7.6-1")
|
||||
self.addrule("PKG_EXIST=curl")
|
||||
self.addrule("PKG_VERSION=curl|7.21.7-1")
|
||||
self.addrule("PKG_EXIST=glibc")
|
||||
self.addrule("PKG_VERSION=glibc|2.1.4-4")
|
||||
self.addrule("PKG_EXIST=perl")
|
||||
self.addrule("PKG_VERSION=perl|5.14.1-3")
|
||||
self.addrule("PKG_EXIST=expat")
|
||||
self.addrule("PKG_VERSION=expat|2.0.1-6")
|
||||
|
||||
# --recursive operation was removed for now
|
||||
self.expectfailure = True
|
||||
|
Loading…
Reference in New Issue
Block a user