diff options
122 files changed, 7501 insertions, 15827 deletions
@@ -3,12 +3,12 @@ Aurelien Foret <aurelien@archlinux.org> Aaron Griffin <aaron@archlinux.org> Dan McGee <dan@archlinux.org> -Mikls Vajna <vmiklos@frugalware.org> +Miklós Vajna <vmiklos@frugalware.org> Christian Hamar <krics@linuxforum.hu> - Josh Wheeler <deltalima@gmail.com> David Kimpe <DNAku@frugalware.org> - James Rosten <seinfeld90@gmail.com> Roman Kyrylych <Roman.Kyrylych@gmail.com> Andrew Fyfe <andrew@neptune-one.net> +Chantry Xavier <shiningxc@gmail.com> +Nagy Gabor <ngaba@petra.hos.u-szeged.hu> diff --git a/Makefile.am b/Makefile.am index 039e2fbe..87bbee6a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,10 +4,17 @@ SUBDIRS = lib/libalpm src/util src/pacman scripts doc etc po pactest contrib # AUTHORS, COPYING, NEWS, README EXTRA_DIST = HACKING +# run the pactest test suite check-local: src/pacman python $(top_srcdir)/pactest/pactest.py --debug=1 \ --test $(top_srcdir)/pactest/tests/*.py \ -p $(top_builddir)/src/pacman/pacman rm -rf $(top_builddir)/root +# create the pacman DB and cache directories upon install +install-data-local: + for dir in "$(DESTDIR)$(localstatedir)/lib/pacman" "$(DESTDIR)$(localstatedir)/cache/pacman/pkg"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done + # vim:set ts=2 sw=2 noet: diff --git a/TRANSLATORS b/TRANSLATORS new file mode 100644 index 00000000..914ebc2a --- /dev/null +++ b/TRANSLATORS @@ -0,0 +1,36 @@ +Thanks to all of those who have helped translate pacman, both in the past +and currently. Here are some of the current translators (past translators +can be found by looking in the GIT history). + +If your language is listed here and you are interested in helping translate, +contact either the pacman mailing list at pacman-dev@archlinux.org, or one +of the translators listed above. + +If your language is not listed here and you wish it was, let the pacman mailing +list know you are interested in making a translation. We will be happy to add +your language to the mix. + +German (de): + Pierre Schmitz <pierre@archlinux.de> +British English (en_GB): + Jeff Bailes <thepizzaking@gmail.com> +Spanish (es): + Juan Pablo González Tognarelli <jotapesan@gmail.com> +French (fr): + solsTiCe d'Hiver <solstice.dhiver@laposte.net> +Hungarian (hu): + Nagy Gabor <ngaba@petra.hos.u-szeged.hu> +Italian (it): + Giovanni 'voidnull' Scafora <linuxmania@gmail.com> + Alessio 'mOLOk' Bolognino <themolok@gmail.com> + Lorenzo '^zanDarK' Masini <lorenxo86@gmail.com> +Polish (pl_PL): + Mateusz Jędrasik <m.jedrasik@gmail.com> +Brazilian Portuguese (pt_BR): + Douglas Soares de Andrade <douglas@archlinux-br.org> + Hugo Doria <hugodoria@archlinux-br.org> + Lincoln de Sousa <lincoln@archlinux-br.org> + Leandro Inácio <leandro@archlinux-br.org> +Russian (ru_RU): + Vladimir Bayrakovskiy <4rayven@gmail.com> + diff --git a/configure.ac b/configure.ac index 17c85ad6..96d8f167 100644 --- a/configure.ac +++ b/configure.ac @@ -3,24 +3,74 @@ # Minimum version of autoconf required AC_PREREQ(2.61) +# UPDATING VERSION NUMBERS FOR RELEASES +# +# libalpm: +# current +# The most recent interface number that this library implements. +# revision +# The implementation number of the current interface. +# age +# The difference between the newest and oldest interfaces that this library +# implements. In other words, the library implements all the interface +# numbers in the range from number current - age to current. +# +# 1. Start with version information of `0:0:0' for each libtool library. +# 2. Update the version information only immediately before a public release of +# your software. More frequent updates are unnecessary, and only guarantee +# that the current interface number gets larger faster. +# 3. If the library source code has changed at all since the last update, then +# increment revision (`c:r:a' becomes `c:r+1:a'). +# 4. If any interfaces have been added, removed, or changed since the last +# update, increment current, and set revision to 0. +# 5. If any interfaces have been added since the last public release, then +# increment age. +# 6. If any interfaces have been removed since the last public release, then +# set age to 0. +# +# pacman: +# Extreme huge major changes: +# pacman_version_major += 1 +# pacman_version_minor = 0 +# pacman_version_micro = 0 +# +# Real releases: +# pacman_version_minor += 1 +# pacman_version_micro = 0 +# +# Bugfix releases: +# pacman_version_micro += 1 +# +# pacman_version_suffix should be similar to one of the following: +# For beta releases: [beta2] +# For code under development: [devel] +# For production releases: [] + +m4_define([lib_current], [2]) +m4_define([lib_revision], [0]) +m4_define([lib_age], [0]) + +m4_define([pacman_version_major], [3]) +m4_define([pacman_version_minor], [1]) +m4_define([pacman_version_micro], [0]) +m4_define([pacman_version_suffix], [devel]) +m4_define([pacman_version], + [pacman_version_major.pacman_version_minor.pacman_version_micro]) +m4_define([pacman_display_version], + pacman_version[]m4_ifdef([pacman_version_suffix],[pacman_version_suffix])) + # Autoconf initialization # AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) -AC_INIT([Pacman Package Manager], 3.1.0-dev, [pacman-dev@archlinux.org], [pacman]) +AC_INIT([Pacman Package Manager], [pacman_display_version], + [pacman-dev@archlinux.org], [pacman]) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADERS([config.h]) AC_CANONICAL_HOST AM_INIT_AUTOMAKE -# Define the libalpm version number here -LIB_MAJOR_VERSION=1 -LIB_MINOR_VERSION=1 -LIB_MICRO_VERSION=1 -LIB_VERSION=$LIB_MAJOR_VERSION.$LIB_MINOR_VERSION.$LIB_MICRO_VERSION -# Needed for libtool to create proper shared lib version. -# This is not completely correct- see -# http://sourceware.org/autobook/autobook/autobook_91.html for details. -LIB_VERSION_INFO=`expr $LIB_MAJOR_VERSION + $LIB_MINOR_VERSION`:$LIB_MICRO_VERSION:$LIB_MINOR_VERSION +LIB_VERSION=`expr lib_current-lib_age`.lib_revision +LIB_VERSION_INFO="lib_current:lib_revision:lib_age" # Set subsitution values for version stuff in Makefiles and anywhere else, # and put LIB_VERSION in config.h @@ -124,7 +174,10 @@ AC_FUNC_STRFTIME AC_FUNC_VPRINTF AC_CHECK_FUNCS([getcwd gettimeofday memmove memset mkdir realpath regcomp \ rmdir setenv setlocale sqrt strcasecmp strchr strdup strerror \ - strndup strrchr strstr strverscmp uname mtrace geteuid]) + strndup strrchr strsep strstr strverscmp uname mtrace geteuid]) + +# Enable large file support if available +AC_SYS_LARGEFILE # Host-dependant flags case "${host}" in @@ -133,45 +186,41 @@ case "${host}" in ;; esac -# Check for architecture +# Check for architecture, used in default makepkg.conf +# (Note single space left after CARCHFLAGS) case "${host}" in i686-*) CARCH="i686" - CARCHFLAGS="i686" - ARCHSWITCH="march" + CARCHFLAGS="-march=i686 " ;; x86_64-*) CARCH="x86_64" - CARCHFLAGS="x86-64" - ARCHSWITCH="march" + CARCHFLAGS="-march=x86-64 " ;; ia64-*) CARCH="ia64" - CARCHFLAGS="ia64" - ARCHSWITCH="march" + CARCHFLAGS="-march=ia64 " ;; sparc-*) CARCH="sparc" - CARCHFLAGS="v9" - ARCHSWITCH="mcpu" + CARCHFLAGS="-mcpu=v9 " ;; ppc-* | powerpc-*) CARCH="ppc" - CARCHFLAGS="750" - ARCHSWITCH="mcpu" + CARCHFLAGS="-mcpu=750 " ;; i386-*) CARCH="i386" - CARCHFLAGS="i386" - ARCHSWITCH="march" + CARCHFLAGS="-march=i386 " ;; arm-*) CARCH="arm" - CARCHFLAGS="armv4" - ARCHSWITCH="march" + CARCHFLAGS="-march=armv4 " ;; *) - AC_MSG_ERROR([[Your architecture is not supported; consider adding it to configure.ac]]) + AC_MSG_WARN([[Your architecture is unknown for makepkg.conf, consider adding it to configure.ac]]) + CARCH="unknown" + CARCHFLAGS="" ;; esac @@ -179,7 +228,6 @@ esac CHOST="${host}" AC_SUBST(CARCH) AC_SUBST(CARCHFLAGS) -AC_SUBST(ARCHSWITCH) AC_SUBST(CHOST) # Check for doxygen support and status @@ -220,7 +268,7 @@ AM_CONDITIONAL(USE_ASCIIDOC, test "x$useasciidoc" = "xyes") AC_MSG_CHECKING(for debug mode request) if test "x$debug" = "xyes" ; then AC_DEFINE([PACMAN_DEBUG], , [Enable debug code]) - CFLAGS="$CFLAGS -g -Wall -Werror -fstack-protector -std=c99" + CFLAGS="$CFLAGS -g -Wall -Werror -fstack-protector-all -std=c99" LDFLAGS="$LDFLAGS -lmcheck" AC_MSG_RESULT(yes) else @@ -269,7 +317,7 @@ Makefile AC_OUTPUT echo " -$PACKAGE_STRING: +pacman_display_version: Build information: source code location : ${srcdir} @@ -284,7 +332,7 @@ $PACKAGE_STRING: defines : ${DEFS} Architecture : ${CARCH} - Architecture flags : -${ARCHSWITCH}=${CARCHFLAGS} + Architecture flags : ${CARCHFLAGS} Host Type : ${CHOST} libalpm version : ${LIB_VERSION} diff --git a/contrib/.gitignore b/contrib/.gitignore index 282522db..e69de29b 100644 --- a/contrib/.gitignore +++ b/contrib/.gitignore @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 3ad85931..73d2130a 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1,8 +1,12 @@ EXTRA_DIST = \ + PKGBUILD.proto \ + PKGBUILD.vim \ bash_completion \ - pacsearch \ + install.proto \ pacdiff \ + pacsearch \ re-pacman \ + vimproject \ wget-xdelta.sh \ zsh_completion \ README diff --git a/contrib/PKGBUILD.proto b/contrib/PKGBUILD.proto new file mode 100644 index 00000000..9e4b69a0 --- /dev/null +++ b/contrib/PKGBUILD.proto @@ -0,0 +1,35 @@ +# This is an example PKGBUILD file. Use this as a start to creating your own, +# and remove these comments. For more information, see 'man PKGBUILD'. +# NOTE: Please fill out the license field for your package! If it is unknown, +# then please put 'unknown'. + +# Contributor: Your Name <youremail@domain.com> +pkgname=NAME +pkgver=VERSION +pkgrel=1 +pkgdesc="" +arch=() +url="" +license=('GPL') +groups=() +depends=() +makedepends=() +provides=() +conflicts=() +replaces=() +backup=() +options=() +install= +source=($pkgname-$pkgver.tar.gz) +noextract=() +md5sums=() #generate with 'makepkg -g' + +build() { + cd "$srcdir/$pkgname-$pkgver" + + ./configure --prefix=/usr + make || return 1 + make DESTDIR="$pkgdir" install +} + +# vim:set ts=2 sw=2 et: diff --git a/contrib/README b/contrib/README index 3cb54a1a..95186aba 100644 --- a/contrib/README +++ b/contrib/README @@ -1,5 +1,8 @@ Here is a brief description of the files included in this directory: +{PKGBUILD,install}.proto - prototype PKGBUILD and install files for creating +packages using makepkg. + PKGBUILD.vim - a vim/gvim syntax file for PKGBUILDs. Colors known variable names, highlights common errors such as invalid characters in pkgname or pkgver, etc. @@ -21,3 +24,7 @@ database entries. Useful for reuse, or possible config file extension. vimproject - a project file for the vim project plugin (some files listed may need to be updated). + +wget-xdelta.sh - A download script for pacman which allows binary deltas +generated with makepkg to be used instead of downloading full binary packages. +This should cut download sizes for some package upgrades significantly. diff --git a/contrib/bash_completion b/contrib/bash_completion index 7018dfeb..a3d5c432 100644 --- a/contrib/bash_completion +++ b/contrib/bash_completion @@ -48,7 +48,7 @@ _available_pkgs () local available_pkgs local enabled_repos enabled_repos=$( grep '\[' /etc/pacman.conf | grep -v -e 'options' -e '^#' | tr -d '[]' ) - available_pkgs=$( for r in $enabled_repos; do echo /var/lib/pacman/$r/*; done ) + available_pkgs=$( for r in $enabled_repos; do echo /var/lib/pacman/sync/$r/*; done ) COMPREPLY=( $( compgen -W "$( for i in $available_pkgs; do j=${i##*/}; echo ${j%-*-*}; done )" -- $cur ) ) } @@ -67,7 +67,7 @@ _available_groups () local available_groups local enabled_repos enabled_repos=$( grep '\[' /etc/pacman.conf | grep -v -e 'options' -e '^#' | tr -d '[]' ) - available_groups=$( for r in $enabled_repos; do sed '/%GROUPS%/,/^$/{//d; p}' /var/lib/pacman/$r/*/desc | sort -u; done ) + available_groups=$( for r in $enabled_repos; do sed '/%GROUPS%/,/^$/{//d; p}' /var/lib/pacman/sync/$r/*/desc | sort -u; done ) COMPREPLY=( $( compgen -W "$( for i in $available_groups; do echo ${i%-*-*}; done )" -- $cur ) ) } diff --git a/contrib/install.proto b/contrib/install.proto new file mode 100644 index 00000000..4bf55280 --- /dev/null +++ b/contrib/install.proto @@ -0,0 +1,40 @@ +# This is a default template for a post-install scriptlet. You can +# remove any functions you don't need (and this header). + +# arg 1: the new package version +pre_install() { + /bin/true +} + +# arg 1: the new package version +post_install() { + /bin/true +} + +# arg 1: the new package version +# arg 2: the old package version +pre_upgrade() { + /bin/true +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + /bin/true +} + +# arg 1: the old package version +pre_remove() { + /bin/true +} + +# arg 1: the old package version +post_remove() { + /bin/true +} + +op=$1 +shift +["$(type -t "$op")" = "function" ] && $op "$@" + +# vim:set ts=2 sw=2 et: diff --git a/contrib/pacsearch b/contrib/pacsearch index 6eed254d..1e1c0504 100755 --- a/contrib/pacsearch +++ b/contrib/pacsearch @@ -72,7 +72,7 @@ done # Print colorized package list and descriptions to screen echo -e "$(sed -r \ - -e "s@current/.*@$CLR1&$BASE@" \ + -e "s@core/.*@$CLR1&$BASE@" \ -e "s@extra/.*@$CLR2&$BASE@" \ -e "s@community/.*@$CLR3&$BASE@" \ -e "s@testing/.*@$CLR4&$BASE@" \ diff --git a/contrib/re-pacman b/contrib/re-pacman index 350fe865..c53ce87d 100755 --- a/contrib/re-pacman +++ b/contrib/re-pacman @@ -48,6 +48,8 @@ make_pkginfo () { done } +LANG="POSIX" + if [ $# -ne 1 ]; then echo "usage: re-pacman <installed package name>" exit 1 diff --git a/contrib/vimproject b/contrib/vimproject index 662bf04f..c84b6762 100644 --- a/contrib/vimproject +++ b/contrib/vimproject @@ -24,16 +24,13 @@ pacman=~/devel/pacman-lib CD=. flags=S { handle.c log.c md5.c - md5driver.c package.c provide.c remove.c server.c - sha1.c sync.c trans.c util.c - versioncmp.c add.h alpm.h alpm_list.h @@ -51,11 +48,9 @@ pacman=~/devel/pacman-lib CD=. flags=S { provide.h remove.h server.h - sha1.h sync.h trans.h util.h - versioncmp.h Makefile.am Makefile.in } diff --git a/contrib/zsh_completion b/contrib/zsh_completion index d7e14864..4607bd7e 100644 --- a/contrib/zsh_completion +++ b/contrib/zsh_completion @@ -227,9 +227,9 @@ _pacman_completions_all_packages() { repositories=( $(_call_program repositories cat /etc/pacman.conf | grep "^\[" | sed "s,\(\[\|\]\),,g" | grep -v "^options" | sort -u) ) # these can be specified as either 'package' or 'repository/package' if [[ "$PREFIX" == "" ]] ; then - packages=( $(_call_program packages ls /var/lib/pacman/${^repositories} | grep -v "^/" | sed "s,\-[^-]*\-[^-]*$,," | sort -u) ) + packages=( $(_call_program packages ls /var/lib/pacman/sync/${^repositories} | grep -v "^/" | sed "s,\-[^-]*\-[^-]*$,," | sort -u) ) else - packages=( $(_call_program packages ls /var/lib/pacman/${^repositories} | grep -v "^/" | grep -e \^$PREFIX | sed "s,\-[^-]*\-[^-]*$,," | sort -u) ) + packages=( $(_call_program packages ls /var/lib/pacman/sync/${^repositories} | grep -v "^/" | grep -e \^$PREFIX | sed "s,\-[^-]*\-[^-]*$,," | sort -u) ) fi compadd "$@" -a packages } diff --git a/doc/.gitignore b/doc/.gitignore index 6fee5088..e10f61a4 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1,5 +1,3 @@ -Makefile -Makefile.in PKGBUILD.5 libalpm.3 makepkg.8 diff --git a/etc/.gitignore b/etc/.gitignore index 19f2216d..7c5f1e2b 100644 --- a/etc/.gitignore +++ b/etc/.gitignore @@ -1,4 +1,2 @@ -Makefile -Makefile.in makepkg.conf pacman.conf diff --git a/etc/abs/Makefile.am b/etc/abs/Makefile.am index 530540e0..b6b64f03 100644 --- a/etc/abs/Makefile.am +++ b/etc/abs/Makefile.am @@ -1,7 +1,7 @@ EXTRA_DIST = \ abs.conf \ - supfile.arch \ supfile.community \ + supfile.core \ supfile.extra \ supfile.testing \ supfile.unstable diff --git a/etc/abs/abs.conf b/etc/abs/abs.conf index 66ba5277..782b269b 100644 --- a/etc/abs/abs.conf +++ b/etc/abs/abs.conf @@ -9,5 +9,5 @@ # Supfiles to be parsed by abs (in this order) # (prefix a module with a ! to disable it) # -SUPFILES=(arch extra !unstable !community !testing) +SUPFILES=(core extra !unstable !community !testing) diff --git a/etc/abs/supfile.arch b/etc/abs/supfile.core index 4ab4e499..2e052bce 100644 --- a/etc/abs/supfile.arch +++ b/etc/abs/supfile.core @@ -1,8 +1,8 @@ # -# supfile.arch +# supfile.core # -# this is the host containing the current PKGBUILD files +# this is the host containing the core PKGBUILD files *default host=cvs.archlinux.org *default release=cvs @@ -12,4 +12,4 @@ #*default umask=002 *default tag=CURRENT -arch +core diff --git a/etc/abs/supfile.testing b/etc/abs/supfile.testing index d2fc6106..70fc6551 100644 --- a/etc/abs/supfile.testing +++ b/etc/abs/supfile.testing @@ -12,5 +12,5 @@ #*default umask=002 *default tag=TESTING -arch +core extra diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in index 615ad440..d13c3d69 100644 --- a/etc/makepkg.conf.in +++ b/etc/makepkg.conf.in @@ -27,10 +27,10 @@ CARCH="@CARCH@" CHOST="@CHOST@" #-- Exclusive: will only run on @CARCHFLAGS@ -# -mtune builds exclusively for an architecture -# -mcpu optimizes for an architecture, but builds for the whole processor family -CFLAGS="-@ARCHSWITCH@=@CARCHFLAGS@ -mtune=generic -O2 -pipe" -CXXFLAGS="-@ARCHSWITCH@=@CARCHFLAGS@ -mtune=generic -O2 -pipe" +# -march (or -mcpu) builds exclusively for an architecture +# -mtune optimizes for an architecture, but builds for whole processor family +CFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe" +CXXFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe" #-- Make Flags: change this for DistCC/SMP systems #MAKEFLAGS="-j2" diff --git a/etc/pacman.conf.in b/etc/pacman.conf.in index 33ef1814..7a775bfe 100644 --- a/etc/pacman.conf.in +++ b/etc/pacman.conf.in @@ -23,23 +23,23 @@ HoldPkg = pacman glibc # have identical names, regardless of version number # #[testing] -#Include = @sysconfdir@/pacman.d/testing +#Include = @sysconfdir@/pacman.d/mirrorlist -[current] +[core] # Add your preferred servers here, they will be used first -Include = @sysconfdir@/pacman.d/current +Include = @sysconfdir@/pacman.d/mirrorlist [extra] # Add your preferred servers here, they will be used first -Include = @sysconfdir@/pacman.d/extra +Include = @sysconfdir@/pacman.d/mirrorlist [community] # Add your preferred servers here, they will be used first -Include = @sysconfdir@/pacman.d/community +Include = @sysconfdir@/pacman.d/mirrorlist #[unstable] # Add your preferred servers here, they will be used first -#Include = @sysconfdir@/pacman.d/unstable +#Include = @sysconfdir@/pacman.d/mirrorlist # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. diff --git a/etc/pacman.d/.gitignore b/etc/pacman.d/.gitignore index c7001838..b47959b7 100644 --- a/etc/pacman.d/.gitignore +++ b/etc/pacman.d/.gitignore @@ -1,8 +1 @@ -Makefile -Makefile.in -community -current -extra -release -unstable -testing +mirrorlist diff --git a/etc/pacman.d/Makefile.am b/etc/pacman.d/Makefile.am index 940282dc..e1f33c76 100644 --- a/etc/pacman.d/Makefile.am +++ b/etc/pacman.d/Makefile.am @@ -1,5 +1,5 @@ pkgsysconfdir = ${sysconfdir}/pacman.d -dist_pkgsysconf_DATA = community current extra release testing unstable +dist_pkgsysconf_DATA = mirrorlist EXTRA_DIST = mirrorlist.in # # Files that should be removed, but which Automake does not know. @@ -8,16 +8,10 @@ MOSTLYCLEANFILES = $(dist_pkgsysconf_DATA) $(dist_pkgsysconf_DATA): Makefile rm -f $@ $@.tmp sed \ - -e "s|@REPO[@]|$@|g" \ -e 's|@CARCH[@]|$(CARCH)|g' \ $(srcdir)/mirrorlist.in >$@.tmp mv $@.tmp $@ -community: $(srcdir)/mirrorlist.in -current: $(srcdir)/mirrorlist.in -extra: $(srcdir)/mirrorlist.in -release: $(srcdir)/mirrorlist.in -testing: $(srcdir)/mirrorlist.in -unstable: $(srcdir)/mirrorlist.in +mirrorlist: $(srcdir)/mirrorlist.in # vim:set ts=2 sw=2 noet: diff --git a/etc/pacman.d/mirrorlist.in b/etc/pacman.d/mirrorlist.in index 28895376..1b97a752 100644 --- a/etc/pacman.d/mirrorlist.in +++ b/etc/pacman.d/mirrorlist.in @@ -1,82 +1,83 @@ # -# @REPO@: Arch Linux @REPO@ repository +# $repo: Arch Linux @REPO@ repository # # United States -Server = ftp://ftp.archlinux.org/@REPO@/os/@CARCH@ -Server = ftp://ftp.nethat.com/pub/linux/archlinux/@REPO@/os/@CARCH@ -Server = ftp://locke.suu.edu/linux/dist/archlinux/@REPO@/os/@CARCH@ -Server = ftp://mirrors.unixheads.org/archlinux/@REPO@/os/@CARCH@ -Server = ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/archlinux/@REPO@/os/@CARCH@ -Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/@REPO@/os/@CARCH@ -Server = http://mirrors.easynews.com/linux/archlinux/@REPO@/os/@CARCH@ -Server = ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.archlinux.org/$repo/os/@CARCH@ +Server = ftp://ftp.nethat.com/pub/linux/archlinux/$repo/os/@CARCH@ +Server = ftp://locke.suu.edu/linux/dist/archlinux/$repo/os/@CARCH@ +Server = ftp://mirrors.unixheads.org/archlinux/$repo/os/@CARCH@ +Server = ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/archlinux/$repo/os/@CARCH@ +Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/@CARCH@ +Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/@CARCH@ +Server = ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/@CARCH@ # South America # - Brazil -Server = http://archlinux.c3sl.ufpr.br/@REPO@/os/@CARCH@ +Server = http://archlinux.c3sl.ufpr.br/$repo/os/@CARCH@ # Europe # - Austria -Server = ftp://gd.tuwien.ac.at/opsys/linux/archlinux/@REPO@/os/@CARCH@ +Server = ftp://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/@CARCH@ # - Belgium -Server = ftp://ftp.belnet.be/packages/archlinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.belnet.be/packages/archlinux/$repo/os/@CARCH@ # - Czech Republic -Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/@REPO@/os/@CARCH@ +Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/@CARCH@ # - Estonia -Server = ftp://ftp.estpak.ee/pub/archlinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.estpak.ee/pub/archlinux/$repo/os/@CARCH@ # - Finland -Server = ftp://ftp.sixnix.net/pub/archlinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.sixnix.net/pub/archlinux/$repo/os/@CARCH@ # - France -Server = ftp://ftp.rez-gif.supelec.fr/pub/Linux/distrib/archlinux/@REPO@/os/@CARCH@ -Server = ftp://mir1.archlinuxfr.org/archlinux/@REPO@/os/@CARCH@ -Server = ftp://mir2.archlinuxfr.org/archlinux/@REPO@/os/@CARCH@ -Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.rez-gif.supelec.fr/pub/Linux/distrib/archlinux/$repo/os/@CARCH@ +Server = ftp://mir1.archlinuxfr.org/archlinux/$repo/os/@CARCH@ +Server = ftp://mir2.archlinuxfr.org/archlinux/$repo/os/@CARCH@ +Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux/$repo/os/@CARCH@ # - Germany -Server = ftp://ftp.tu-chemnitz.de/pub/linux/sunsite.unc-mirror/distributions/archlinux/@REPO@/os/@CARCH@ -Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/@REPO@/os/@CARCH@ -Server = ftp://ftp.archlinuxppc.org/i686/@REPO@/os/@CARCH@ -Server = http://mirror.archlinux.de/@REPO@/os/@CARCH@ +Server = ftp://ftp.tu-chemnitz.de/pub/linux/sunsite.unc-mirror/distributions/archlinux/$repo/os/@CARCH@ +Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/@CARCH@ +Server = ftp://ftp.archlinuxppc.org/i686/$repo/os/@CARCH@ # - Great Britain -Server = http://ftp.parrswood.manchester.sch.uk/Mirrors/ftp.archlinux.org/@REPO@/os/@CARCH@ +Server = http://ftp.parrswood.manchester.sch.uk/Mirrors/ftp.archlinux.org/$repo/os/@CARCH@ # - Greece -Server = ftp://ftp.ntua.gr/pub/linux/archlinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.ntua.gr/pub/linux/archlinux/$repo/os/@CARCH@ # - Ireland -Server = ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/@REPO@/os/@CARCH@ +Server = ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/@CARCH@ # - Italy -Server = ftp://mi.mirror.garr.it/mirrors/archlinux/@REPO@/os/@CARCH@ +Server = ftp://mi.mirror.garr.it/mirrors/archlinux/$repo/os/@CARCH@ # - Lithuania -Server = ftp://saule.mintis.lt/pub/linux/@REPO@/os/@CARCH@ +Server = ftp://saule.mintis.lt/pub/linux/$repo/os/@CARCH@ # - Netherlands -Server = ftp://ftp.nluug.nl/pub/metalab/distributions/archlinux/@REPO@/os/@CARCH@ -Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.nluug.nl/pub/metalab/distributions/archlinux/$repo/os/@CARCH@ +Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/$repo/os/@CARCH@ # - Norway -Server = ftp://mirror.djzradio.net/archlinux/@REPO@/os/@CARCH@ +Server = ftp://mirror.djzradio.net/archlinux/$repo/os/@CARCH@ # - Poland -Server = ftp://sunsite.icm.edu.pl/site/linux-sunsite/distributions/archlinux/@REPO@/os/@CARCH@ -Server = ftp://mirror.icis.pcz.pl/archlinux/@REPO@/os/@CARCH@ +Server = ftp://sunsite.icm.edu.pl/site/linux-sunsite/distributions/archlinux/$repo/os/@CARCH@ +Server = ftp://mirror.icis.pcz.pl/archlinux/$repo/os/@CARCH@ # - Portugal -Server = ftp://gul.est.ips.pt/repos/archlinux/@REPO@/os/@CARCH@ -Server = ftp://cesium.di.uminho.pt/pub/archlinux/@REPO@/os/@CARCH@ -Server = ftp://darkstar.ist.utl.pt/pub/archlinux/@REPO@/os/@CARCH@ +Server = ftp://gul.est.ips.pt/repos/archlinux/$repo/os/@CARCH@ +Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/@CARCH@ +Server = ftp://darkstar.ist.utl.pt/pub/archlinux/$repo/os/@CARCH@ # - Romania -Server = ftp://ftp.iasi.roedu.net/mirrors/archlinux.org/@REPO@/os/@CARCH@ +Server = ftp://ftp.iasi.roedu.net/mirrors/archlinux.org/$repo/os/@CARCH@ # - Russia -Server = http://archlinux.freeside.ru/@REPO@/os/@CARCH@ +Server = http://archlinux.freeside.ru/$repo/os/@CARCH@ +Server = ftp://mirror.yandex.ru/archlinux/$repo/os/@CARCH@ # - Sweden -Server = ftp://ftp.ds.hj.se/pub/os/linux/archlinux/@REPO@/os/@CARCH@ -Server = ftp://ftp.gigabit.nu/@REPO@/os/@CARCH@ +Server = ftp://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/@CARCH@ +Server = ftp://ftp.gigabit.nu/$repo/os/@CARCH@ # - Switzerland -Server = ftp://archlinux.puzzle.ch/@REPO@/os/@CARCH@ +Server = ftp://archlinux.puzzle.ch/$repo/os/@CARCH@ # - Turkey -Server = ftp://ftp.linux.org.tr/pub/archlinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.linux.org.tr/pub/archlinux/$repo/os/@CARCH@ # - Ukraine -Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/@REPO@/os/@CARCH@ +Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/$repo/os/@CARCH@ +Server = ftp://hell.org.ua/archlinux/$repo/os/@CARCH@ # Asia # - Israel -Server = http://mirror.isoc.org.il/pub/archlinux/@REPO@/os/@CARCH@ +Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/@CARCH@ # Australia -Server = ftp://mirror.pacific.net.au/linux/archlinux/@REPO@/os/@CARCH@ +Server = ftp://mirror.pacific.net.au/linux/archlinux/$repo/os/@CARCH@ diff --git a/lib/libalpm/.gitignore b/lib/libalpm/.gitignore index 09980ae6..36d41441 100644 --- a/lib/libalpm/.gitignore +++ b/lib/libalpm/.gitignore @@ -1,6 +1,4 @@ .deps .libs -Makefile -Makefile.in *.lo *.la diff --git a/lib/libalpm/Makefile.am b/lib/libalpm/Makefile.am index 20e7203d..37053707 100644 --- a/lib/libalpm/Makefile.am +++ b/lib/libalpm/Makefile.am @@ -24,16 +24,13 @@ libalpm_la_SOURCES = \ handle.h handle.c \ log.h log.c \ md5.h md5.c \ - md5driver.c \ package.h package.c \ provide.h provide.c \ remove.h remove.c \ server.h server.c \ - sha1.h sha1.c \ sync.h sync.c \ trans.h trans.c \ - util.h util.c \ - versioncmp.h versioncmp.c + util.h util.c libalpm_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION_INFO) libalpm_la_LIBADD = -larchive -ldownload diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c index df01cb43..98906879 100644 --- a/lib/libalpm/add.c +++ b/lib/libalpm/add.c @@ -1,11 +1,7 @@ /* * add.c * - * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org> - * Copyright (c) 2005 by Aurelien Foret <orelien@chez.com> - * Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu> - * Copyright (c) 2006 by David Kimpe <dnaku@frugalware.org> - * Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org> + * Copyright (c) 2002-2007 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 @@ -28,9 +24,11 @@ #include <stdlib.h> #include <errno.h> #include <time.h> -#include <fcntl.h> #include <string.h> #include <limits.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> /* libarchive */ #include <archive.h> @@ -43,9 +41,6 @@ #include "util.h" #include "error.h" #include "cache.h" -#include "versioncmp.h" -#include "md5.h" -#include "sha1.h" #include "log.h" #include "backup.h" #include "package.h" @@ -70,7 +65,7 @@ int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name) ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); ASSERT(name != NULL && strlen(name) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - _alpm_log(PM_LOG_DEBUG, _("loading target '%s'"), name); + _alpm_log(PM_LOG_DEBUG, "loading target '%s'\n", name); /* TODO FS#5120 we need a better way to check if a package is a valid package, * and read the metadata instead of relying on the filename for package name @@ -115,7 +110,7 @@ int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name) if(strcmp(pkg->name, pkgname) == 0) { if(_alpm_versioncmp(pkg->version, pkgver) < 0) { pmpkg_t *newpkg; - _alpm_log(PM_LOG_WARNING, _("replacing older version %s-%s by %s in target list"), + _alpm_log(PM_LOG_WARNING, _("replacing older version %s-%s by %s in target list\n"), pkg->name, pkg->version, pkgver); if((newpkg = _alpm_pkg_load(name)) == NULL) { /* pm_errno is already set by pkg_load() */ @@ -124,14 +119,14 @@ int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name) _alpm_pkg_free(i->data); i->data = newpkg; } else { - _alpm_log(PM_LOG_WARNING, _("newer version %s-%s is in the target list -- skipping"), + _alpm_log(PM_LOG_WARNING, _("newer version %s-%s is in the target list -- skipping\n"), pkg->name, pkg->version); } return(0); } } - _alpm_log(PM_LOG_DEBUG, _("reading '%s' metadata"), pkgname); + _alpm_log(PM_LOG_DEBUG, "reading '%s' metadata\n", pkgname); info = _alpm_pkg_load(name); if(info == NULL) { /* pm_errno is already set by pkg_load() */ @@ -181,7 +176,7 @@ int _alpm_add_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data) EVENT(trans, PM_TRANS_EVT_CHECKDEPS_START, NULL, NULL); /* look for unsatisfied dependencies */ - _alpm_log(PM_LOG_DEBUG, _("looking for unsatisfied dependencies")); + _alpm_log(PM_LOG_DEBUG, "looking for unsatisfied dependencies\n"); lp = _alpm_checkdeps(db, trans->type, trans->packages); if(lp != NULL) { if(data) { @@ -193,13 +188,13 @@ int _alpm_add_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data) } /* no unsatisfied deps, so look for conflicts */ - _alpm_log(PM_LOG_DEBUG, _("looking for conflicts")); + _alpm_log(PM_LOG_DEBUG, "looking for conflicts\n"); lp = _alpm_checkconflicts(db, trans->packages); for(i = lp; i; i = i->next) { pmdepmissing_t *miss = i->data; - _alpm_log(PM_LOG_ERROR, _("replacing packages with -A and -U is not supported yet")); - _alpm_log(PM_LOG_ERROR, _("please remove '%s' first, using -Rd"), miss->depend.name); + _alpm_log(PM_LOG_ERROR, _("replacing packages with -A and -U is not supported yet\n")); + _alpm_log(PM_LOG_ERROR, _("please remove '%s' first, using -Rd\n"), miss->depend.name); RET_ERR(PM_ERR_CONFLICTING_DEPS, -1); /* Attempt to resolve conflicts */ @@ -240,7 +235,7 @@ int _alpm_add_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data) } /* re-order w.r.t. dependencies */ - _alpm_log(PM_LOG_DEBUG, _("sorting by dependencies")); + _alpm_log(PM_LOG_DEBUG, "sorting by dependencies\n"); lp = _alpm_sortbydeps(trans->packages, PM_TRANS_TYPE_ADD); /* free the old alltargs */ alpm_list_free(trans->packages); @@ -253,7 +248,7 @@ int _alpm_add_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data) if(!(trans->flags & PM_TRANS_FLAG_FORCE)) { EVENT(trans, PM_TRANS_EVT_FILECONFLICTS_START, NULL, NULL); - _alpm_log(PM_LOG_DEBUG, _("looking for file conflicts")); + _alpm_log(PM_LOG_DEBUG, "looking for file conflicts\n"); lp = _alpm_db_find_conflicts(db, trans, handle->root); if(lp != NULL) { if(data) { @@ -270,601 +265,658 @@ int _alpm_add_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data) return(0); } -/* TODO clean up this monster 554 line function */ -int _alpm_add_commit(pmtrans_t *trans, pmdb_t *db) -{ - int i, ret = 0, errors = 0, pkg_count = 0; - struct archive *archive; - struct archive_entry *entry; - char cwd[PATH_MAX] = ""; - alpm_list_t *targ; - const int archive_flags = ARCHIVE_EXTRACT_OWNER | - ARCHIVE_EXTRACT_PERM | - ARCHIVE_EXTRACT_TIME; +static int upgrade_remove(pmpkg_t *oldpkg, pmpkg_t *newpkg, pmtrans_t *trans, pmdb_t *db) { + /* this is kinda odd. If the old package exists, at this point we make a + * NEW transaction, unrelated to handle->trans, and instantiate a "remove" + * with the type PM_TRANS_TYPE_REMOVEUPGRADE. TODO: kill this weird + * behavior. */ + pmtrans_t *tr = _alpm_trans_new(); + _alpm_log(PM_LOG_DEBUG, "removing old package first (%s-%s)\n", + oldpkg->name, oldpkg->version); + + if(!tr) { + RET_ERR(PM_ERR_TRANS_ABORT, -1); + } - ALPM_LOG_FUNC; + if(_alpm_trans_init(tr, PM_TRANS_TYPE_REMOVEUPGRADE, trans->flags, + NULL, NULL, NULL) == -1) { + _alpm_trans_free(tr); + tr = NULL; + RET_ERR(PM_ERR_TRANS_ABORT, -1); + } - ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); - ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); + if(_alpm_remove_loadtarget(tr, db, newpkg->name) == -1) { + _alpm_trans_free(tr); + tr = NULL; + RET_ERR(PM_ERR_TRANS_ABORT, -1); + } - if(trans->packages == NULL) { - return(0); + /* copy the remove skiplist over */ + tr->skip_remove = alpm_list_strdup(trans->skip_remove); + const alpm_list_t *b; + + /* Add files in the NEW package's backup array to the noupgrade array + * so this removal operation doesn't kill them */ + /* TODO if we add here, all backup=() entries for all targets, new and + * old, we cover all bases, including backup=() locations changing hands. + * But is this viable? */ + alpm_list_t *old_noupgrade = alpm_list_strdup(handle->noupgrade); + for(b = alpm_pkg_get_backup(newpkg); b; b = b->next) { + const char *backup = b->data; + _alpm_log(PM_LOG_DEBUG, "adding %s to the NoUpgrade array temporarily\n", + backup); + handle->noupgrade = alpm_list_add(handle->noupgrade, strdup(backup)); } - pkg_count = alpm_list_count(trans->targets); - - for(targ = trans->packages; targ; targ = targ->next) { - char scriptlet[PATH_MAX+1]; - int targ_count = 0, is_upgrade = 0, use_md5 = 0; - double percent = 0.0; - pmpkg_t *newpkg = (pmpkg_t *)targ->data; - pmpkg_t *oldpkg = NULL; - errors = 0; + int ret = _alpm_remove_commit(tr, db); - if(handle->trans->state == STATE_INTERRUPTED) { - break; - } + _alpm_trans_free(tr); + tr = NULL; - snprintf(scriptlet, PATH_MAX, "%s%s-%s/install", db->path, - alpm_pkg_get_name(newpkg), alpm_pkg_get_version(newpkg)); + /* restore our "NoUpgrade" list to previous state */ + alpm_list_free_inner(handle->noupgrade, free); + alpm_list_free(handle->noupgrade); + handle->noupgrade = old_noupgrade; - /* check if we have a valid sha1sum, if not, use MD5 */ - if(strlen(newpkg->sha1sum) == 0) { - use_md5 = 1; - } + if(ret == -1) { + RET_ERR(PM_ERR_TRANS_ABORT, -1); + } - /* see if this is an upgrade. if so, remove the old package first */ - pmpkg_t *local = _alpm_db_get_pkgfromcache(db, newpkg->name); - if(local) { - is_upgrade = 1; - - EVENT(trans, PM_TRANS_EVT_UPGRADE_START, newpkg, NULL); - _alpm_log(PM_LOG_DEBUG, _("upgrading package %s-%s"), newpkg->name, newpkg->version); - - /* we'll need to save some record for backup checks later */ - oldpkg = _alpm_pkg_new(local->name, local->version); - if(oldpkg) { - oldpkg->backup = alpm_list_strdup(alpm_pkg_get_backup(local)); - oldpkg->provides = alpm_list_strdup(alpm_pkg_get_provides(local)); - strncpy(oldpkg->name, local->name, PKG_NAME_LEN); - strncpy(oldpkg->version, local->version, PKG_VERSION_LEN); - } else { - RET_ERR(PM_ERR_MEMORY, -1); - } + return(0); +} - /* copy over the install reason */ - newpkg->reason = alpm_pkg_get_reason(local); +static int extract_single_file(struct archive *archive, + struct archive_entry *entry, pmpkg_t *newpkg, pmpkg_t *oldpkg, + pmtrans_t *trans, pmdb_t *db) +{ + const char *entryname; /* the name of the file in the archive */ + mode_t entrymode; + char filename[PATH_MAX]; /* the actual file we're extracting */ + int needbackup = 0, notouch = 0; + char *hash_orig = NULL; + const int archive_flags = ARCHIVE_EXTRACT_OWNER | + ARCHIVE_EXTRACT_PERM | + ARCHIVE_EXTRACT_TIME; + int errors = 0; + + entryname = archive_entry_pathname(entry); + entrymode = archive_entry_mode(entry); + + memset(filename, 0, PATH_MAX); /* just to be sure */ + + if(strcmp(entryname, ".INSTALL") == 0) { + /* the install script goes inside the db */ + snprintf(filename, PATH_MAX, "%s/%s-%s/install", db->path, + newpkg->name, newpkg->version); + } else if(strcmp(entryname, ".CHANGELOG") == 0) { + /* the changelog goes inside the db */ + snprintf(filename, PATH_MAX, "%s/%s-%s/changelog", db->path, + newpkg->name, newpkg->version); + } else if(*entryname == '.') { + /* for now, ignore all files starting with '.' that haven't + * already been handled (for future possibilities) */ + _alpm_log(PM_LOG_DEBUG, "skipping extraction of '%s'\n", entryname); + archive_read_data_skip(archive); + return(0); + } else { + /* build the new entryname relative to handle->root */ + snprintf(filename, PATH_MAX, "%s%s", handle->root, entryname); + } + + /* if a file is in NoExtract then we never extract it */ + if(alpm_list_find_str(handle->noextract, entryname)) { + _alpm_log(PM_LOG_DEBUG, "%s is in NoExtract, skipping extraction\n", + entryname); + alpm_logaction("note: %s is in NoExtract, skipping extraction", + entryname); + archive_read_data_skip(archive); + return(0); + } - /* pre_upgrade scriptlet */ - if(alpm_pkg_has_scriptlet(newpkg) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) { - _alpm_runscriptlet(handle->root, newpkg->data, "pre_upgrade", newpkg->version, oldpkg->version, trans); + /* if a file is in the add skiplist we never extract it */ + if(alpm_list_find_str(trans->skip_add, filename)) { + _alpm_log(PM_LOG_DEBUG, "%s is in trans->skip_add, skipping extraction\n", entryname); + archive_read_data_skip(archive); + return(0); + } + + /* Check for file existence. This is one of the more crucial parts + * to get 'right'. Here are the possibilities, with the filesystem + * on the left and the package on the top: + * (F=file, N=node, S=symlink, D=dir) + * | F/N | S | D + * non-existent | 1 | 2 | 3 + * F/N | 4 | 5 | 6 + * S | 7 | 8 | 9 + * D | 10 | 11 | 12 + * + * 1,2,3- just extract, no magic necessary. lstat will fail here. + * 4,5,6,7,8- conflict checks should have caught this. either overwrite + * or backup the file. + * 9- follow the symlink, hopefully it is a directory, check it. + * 10- file replacing directory- don't allow it. + * 11- don't extract symlink- a dir exists here. we don't want links to + * links, etc. + * 12- skip extraction, dir already exists. + */ + struct stat lsbuf; + if(lstat(filename, &lsbuf) != 0) { + /* cases 1,2,3: couldn't stat an existing file, skip all backup checks */ + } else { + /* do a stat as well, so we can see what symlinks point to */ + struct stat sbuf; + stat(filename, &sbuf); + + if(S_ISDIR(lsbuf.st_mode) && S_ISDIR(entrymode)) { + /* case 12: existing dir, ignore it */ + if(lsbuf.st_mode != entrymode) { + /* if filesystem perms are different than pkg perms, warn user */ + int mask = 07777; + _alpm_log(PM_LOG_WARNING, _("directory permissions differ on %s\n" + "filesystem: %o package: %o"), entryname, lsbuf.st_mode & mask, + entrymode & mask); + alpm_logaction("warning: directory permissions differ on %s\n" + "filesystem: %o package: %o", entryname, lsbuf.st_mode & mask, + entrymode & mask); } - } else { - is_upgrade = 0; + _alpm_log(PM_LOG_DEBUG, "extract: skipping dir extraction of %s\n", + entryname); + archive_read_data_skip(archive); + return(0); + } else if(S_ISDIR(lsbuf.st_mode) && S_ISLNK(entrymode)) { + /* case 11: existing dir, symlink in package, ignore it */ + _alpm_log(PM_LOG_DEBUG, "extract: skipping symlink extraction of %s\n", + entryname); + archive_read_data_skip(archive); + return(0); + } else if(S_ISLNK(lsbuf.st_mode) && S_ISDIR(entrymode)) { + /* case 9: existing symlink, dir in package */ + if(S_ISDIR(sbuf.st_mode)) { + /* the symlink on FS is to a directory, so we'll use it */ + _alpm_log(PM_LOG_DEBUG, "extract: skipping symlink overwrite of %s\n", + entryname); + archive_read_data_skip(archive); + return(0); + } else { + /* this is BAD. symlink was not to a directory */ + _alpm_log(PM_LOG_ERROR, _("extract: symlink %s does not point to dir\n"), + entryname); + archive_read_data_skip(archive); + return(1); + } + } else if(S_ISDIR(lsbuf.st_mode) && S_ISREG(entrymode)) { + /* case 10: trying to overwrite dir tree with file, don't allow it */ + _alpm_log(PM_LOG_ERROR, _("extract: not overwriting dir with file %s\n"), + entryname); + archive_read_data_skip(archive); + return(1); + } else if(S_ISREG(lsbuf.st_mode) && S_ISDIR(entrymode)) { + /* case 6: trying to overwrite file with dir */ + _alpm_log(PM_LOG_DEBUG, "extract: overwriting file with dir %s\n", + entryname); + } else if(S_ISREG(entrymode)) { + /* case 4,7: */ + /* if file is in NoUpgrade, don't touch it */ + if(alpm_list_find_str(handle->noupgrade, entryname)) { + notouch = 1; + } else { + /* go to the backup array and see if our conflict is there */ + /* check newpkg first, so that adding backup files is retroactive */ + needbackup = alpm_list_find_str(alpm_pkg_get_backup(newpkg), entryname); + + /* check oldpkg for a backup entry, store the hash if available */ + if(oldpkg) { + hash_orig = _alpm_needbackup(entryname, alpm_pkg_get_backup(oldpkg)); + if(hash_orig) { + needbackup = 1; + } + } - EVENT(trans, PM_TRANS_EVT_ADD_START, newpkg, NULL); - _alpm_log(PM_LOG_DEBUG, _("adding package %s-%s"), newpkg->name, newpkg->version); - - /* pre_install scriptlet */ - if(alpm_pkg_has_scriptlet(newpkg) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) { - _alpm_runscriptlet(handle->root, newpkg->data, "pre_install", newpkg->version, NULL, trans); + /* if we force hash_orig to be non-NULL retroactive backup works */ + if(needbackup && !hash_orig) { + hash_orig = strdup(""); + } } } + /* else if(S_ISLNK(entrymode)) { */ + /* case 5,8: don't need to do anything special */ + } - if(oldpkg) { - /* this is kinda odd. If the old package exists, at this point we make a - * NEW transaction, unrelated to handle->trans, and instantiate a "remove" - * with the type PM_TRANS_TYPE_UPGRADE. TODO: kill this weird behavior. */ - pmtrans_t *tr = _alpm_trans_new(); - _alpm_log(PM_LOG_DEBUG, _("removing old package first (%s-%s)"), oldpkg->name, oldpkg->version); + if(needbackup) { + char *tempfile = NULL; + char *hash_local = NULL, *hash_pkg = NULL; + int fd; + + /* extract the package's version to a temporary file and checksum it */ + tempfile = strdup("/tmp/alpm_XXXXXX"); + fd = mkstemp(tempfile); + + archive_entry_set_pathname(entry, tempfile); + + int ret = archive_read_extract(archive, entry, archive_flags); + if(ret == ARCHIVE_WARN) { + /* operation succeeded but a non-critical error was encountered */ + _alpm_log(PM_LOG_DEBUG, "warning extracting %s (%s)\n", + entryname, archive_error_string(archive)); + } else if(ret != ARCHIVE_OK) { + _alpm_log(PM_LOG_ERROR, _("could not extract %s (%s)\n"), + entryname, archive_error_string(archive)); + alpm_logaction("error: could not extract %s (%s)", + entryname, archive_error_string(archive)); + unlink(tempfile); + FREE(hash_orig); + close(fd); + return(1); + } - if(!tr) { - RET_ERR(PM_ERR_TRANS_ABORT, -1); + hash_local = alpm_get_md5sum(filename); + hash_pkg = alpm_get_md5sum(tempfile); + + /* append the new md5 hash to it's respective entry + * in newpkg's backup (it will be the new orginal) */ + alpm_list_t *backups; + for(backups = alpm_pkg_get_backup(newpkg); backups; + backups = alpm_list_next(backups)) { + char *oldbackup = alpm_list_getdata(backups); + if(!oldbackup || strcmp(oldbackup, entryname) != 0) { + continue; } - - if(_alpm_trans_init(tr, PM_TRANS_TYPE_UPGRADE, trans->flags, NULL, NULL, NULL) == -1) { - _alpm_trans_free(tr); - tr = NULL; - RET_ERR(PM_ERR_TRANS_ABORT, -1); + char *backup = NULL; + /* length is tab char, null byte and MD5 (32 char) */ + int backup_len = strlen(oldbackup) + 34; + backup = malloc(backup_len); + if(!backup) { + RET_ERR(PM_ERR_MEMORY, -1); } - if(_alpm_remove_loadtarget(tr, db, newpkg->name) == -1) { - _alpm_trans_free(tr); - tr = NULL; - RET_ERR(PM_ERR_TRANS_ABORT, -1); - } + sprintf(backup, "%s\t%s", oldbackup, hash_pkg); + backup[backup_len-1] = '\0'; + FREE(oldbackup); + backups->data = backup; + } - /* copy the remove skiplist over */ - tr->skip_remove = alpm_list_strdup(trans->skip_remove); - const alpm_list_t *b; - - /* Add files in the NEW package's backup array to the noupgrade array - * so this removal operation doesn't kill them */ - /* TODO if we add here, all backup=() entries for all targets, new and - * old, we cover all bases, including backup=() locations changing hands. - * But is this viable? */ - alpm_list_t *old_noupgrade = alpm_list_strdup(handle->noupgrade); - for(b = alpm_pkg_get_backup(newpkg); b; b = b->next) { - const char *backup = b->data; - _alpm_log(PM_LOG_DEBUG, _("adding %s to the NoUpgrade array temporarily"), backup); - handle->noupgrade = alpm_list_add(handle->noupgrade, strdup(backup)); - } + _alpm_log(PM_LOG_DEBUG, "checking hashes for %s\n", entryname); + _alpm_log(PM_LOG_DEBUG, "current: %s\n", hash_local); + _alpm_log(PM_LOG_DEBUG, "new: %s\n", hash_pkg); + _alpm_log(PM_LOG_DEBUG, "original: %s\n", hash_orig); - int ret = _alpm_remove_commit(tr, db); + if(!oldpkg) { + /* looks like we have a local file that has a different hash as the + * file in the package, move it to a .pacorig */ + if(strcmp(hash_local, hash_pkg) != 0) { + char newpath[PATH_MAX]; + snprintf(newpath, PATH_MAX, "%s.pacorig", filename); - _alpm_trans_free(tr); - tr = NULL; + /* move the existing file to the "pacorig" */ + if(rename(filename, newpath)) { + archive_entry_set_pathname(entry, filename); + _alpm_log(PM_LOG_ERROR, _("could not rename %s (%s)\n"), filename, strerror(errno)); + alpm_logaction("error: could not rename %s (%s)", filename, strerror(errno)); + errors++; + } else { + /* copy the tempfile we extracted to the real path */ + if(_alpm_copyfile(tempfile, filename)) { + archive_entry_set_pathname(entry, filename); + _alpm_log(PM_LOG_ERROR, _("could not copy tempfile to %s (%s)\n"), filename, strerror(errno)); + alpm_logaction("error: could not copy tempfile to %s (%s)", filename, strerror(errno)); + errors++; + } else { + archive_entry_set_pathname(entry, filename); + _alpm_log(PM_LOG_WARNING, _("%s saved as %s\n"), filename, newpath); + alpm_logaction("warning: %s saved as %s", filename, newpath); + } + } + } + } else if(hash_orig) { + /* the fun part */ - /* restore our "NoUpgrade" list to previous state */ - alpm_list_free_inner(handle->noupgrade, free); - alpm_list_free(handle->noupgrade); - handle->noupgrade = old_noupgrade; + if(strcmp(hash_orig, hash_local) == 0) { + /* installed file has NOT been changed by user */ + if(strcmp(hash_orig, hash_pkg) != 0) { + _alpm_log(PM_LOG_DEBUG, "action: installing new file: %s\n", + entryname); - if(ret == -1) { - RET_ERR(PM_ERR_TRANS_ABORT, -1); + if(_alpm_copyfile(tempfile, filename)) { + _alpm_log(PM_LOG_ERROR, _("could not copy tempfile to %s (%s)\n"), filename, strerror(errno)); + errors++; + } + archive_entry_set_pathname(entry, filename); + } else { + /* there's no sense in installing the same file twice, install + * ONLY is the original and package hashes differ */ + _alpm_log(PM_LOG_DEBUG, "action: leaving existing file in place\n"); + } + } else if(strcmp(hash_orig, hash_pkg) == 0) { + /* originally installed file and new file are the same - this + * implies the case above failed - i.e. the file was changed by a + * user */ + _alpm_log(PM_LOG_DEBUG, "action: leaving existing file in place\n"); + } else if(strcmp(hash_local, hash_pkg) == 0) { + /* this would be magical. The above two cases failed, but the + * user changes just so happened to make the new file exactly the + * same as the one in the package... skip it */ + _alpm_log(PM_LOG_DEBUG, "action: leaving existing file in place\n"); + } else { + char newpath[PATH_MAX]; + _alpm_log(PM_LOG_DEBUG, "action: keeping current file and installing new one with .pacnew ending\n"); + snprintf(newpath, PATH_MAX, "%s.pacnew", filename); + if(_alpm_copyfile(tempfile, newpath)) { + _alpm_log(PM_LOG_ERROR, _("could not install %s as %s: %s\n"), filename, newpath, strerror(errno)); + alpm_logaction("error: could not install %s as %s: %s", filename, newpath, strerror(errno)); + } else { + _alpm_log(PM_LOG_WARNING, _("%s installed as %s\n"), filename, newpath); + alpm_logaction("warning: %s installed as %s", filename, newpath); + } } } - if(!(trans->flags & PM_TRANS_FLAG_DBONLY)) { - _alpm_log(PM_LOG_DEBUG, _("extracting files")); + FREE(hash_local); + FREE(hash_pkg); + FREE(hash_orig); + unlink(tempfile); + FREE(tempfile); + close(fd); + } else { + /* we didn't need a backup */ + if(notouch) { + /* change the path to a .pacnew extension */ + _alpm_log(PM_LOG_DEBUG, "%s is in NoUpgrade -- skipping\n", filename); + _alpm_log(PM_LOG_WARNING, _("extracting %s as %s.pacnew\n"), filename, filename); + alpm_logaction("warning: extracting %s as %s.pacnew", filename, filename); + strncat(filename, ".pacnew", PATH_MAX - strlen(filename)); + } else { + _alpm_log(PM_LOG_DEBUG, "extracting %s\n", filename); + } - if ((archive = archive_read_new()) == NULL) { - RET_ERR(PM_ERR_LIBARCHIVE_ERROR, -1); - } + if(trans->flags & PM_TRANS_FLAG_FORCE) { + /* if FORCE was used, unlink() each file (whether it's there + * or not) before extracting. This prevents the old "Text file busy" + * error that crops up if forcing a glibc or pacman upgrade. */ + unlink(filename); + } - archive_read_support_compression_all(archive); - archive_read_support_format_all(archive); + archive_entry_set_pathname(entry, filename); + + int ret = archive_read_extract(archive, entry, archive_flags); + if(ret == ARCHIVE_WARN) { + /* operation succeeded but a non-critical error was encountered */ + _alpm_log(PM_LOG_DEBUG, "warning extracting %s (%s)\n", + entryname, archive_error_string(archive)); + } else if(ret != ARCHIVE_OK) { + _alpm_log(PM_LOG_ERROR, _("could not extract %s (%s)\n"), + entryname, archive_error_string(archive)); + alpm_logaction("error: could not extract %s (%s)", + entryname, archive_error_string(archive)); + return(1); + } + + /* calculate an hash if this is in newpkg's backup */ + alpm_list_t *b; + for(b = alpm_pkg_get_backup(newpkg); b; b = b->next) { + char *backup = NULL, *hash = NULL; + char *oldbackup = alpm_list_getdata(b); + /* length is tab char, null byte and MD5 (32 char) */ + int backup_len = strlen(oldbackup) + 34; - if(archive_read_open_file(archive, newpkg->data, ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) { - RET_ERR(PM_ERR_PKG_OPEN, -1); + if(!oldbackup || strcmp(oldbackup, entryname) != 0) { + return(0); } + _alpm_log(PM_LOG_DEBUG, "appending backup entry for %s\n", filename); - /* save the cwd so we can restore it later */ - if(getcwd(cwd, PATH_MAX) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not get current working directory")); - cwd[0] = 0; + hash = alpm_get_md5sum(filename); + backup = malloc(backup_len); + if(!backup) { + RET_ERR(PM_ERR_MEMORY, -1); } - /* libarchive requires this for extracting hard links */ - chdir(handle->root); - - targ_count = alpm_list_count(targ); - /* call PROGRESS once with 0 percent, as we sort-of skip that here */ - PROGRESS(trans, (is_upgrade ? PM_TRANS_PROGRESS_UPGRADE_START : PM_TRANS_PROGRESS_ADD_START), - newpkg->name, 0, pkg_count, (pkg_count - targ_count +1)); - - for(i = 0; archive_read_next_header(archive, &entry) == ARCHIVE_OK; i++) { - const char *entryname; /* the name of the file in the archive */ - char filename[PATH_MAX]; /* the actual file we're extracting */ - int needbackup = 0, notouch = 0; - char *hash_orig = NULL; - struct stat buf; - - entryname = archive_entry_pathname(entry); - - if(newpkg->size != 0) { - /* Using compressed size for calculations here, as newpkg->isize is not - * exact when it comes to comparing to the ACTUAL uncompressed size - * (missing metadata sizes) */ - unsigned long pos = archive_position_compressed(archive); - percent = (double)pos / (double)newpkg->size; - _alpm_log(PM_LOG_DEBUG, "decompression progress: %f%% (%ld / %ld)", percent*100.0, pos, newpkg->size); - if(percent >= 1.0) { - percent = 1.0; - } - } - - PROGRESS(trans, (is_upgrade ? PM_TRANS_PROGRESS_UPGRADE_START : PM_TRANS_PROGRESS_ADD_START), - newpkg->name, (int)(percent * 100), pkg_count, (pkg_count - targ_count +1)); - - memset(filename, 0, PATH_MAX); /* just to be sure */ - - if(strcmp(entryname, ".PKGINFO") == 0 - || strcmp(entryname, ".FILELIST") == 0) { - archive_read_data_skip(archive); - continue; - } else if(strcmp(entryname, ".INSTALL") == 0) { - /* the install script goes inside the db */ - snprintf(filename, PATH_MAX, "%s/%s-%s/install", db->path, - newpkg->name, newpkg->version); - } else if(strcmp(entryname, ".CHANGELOG") == 0) { - /* the changelog goes inside the db */ - snprintf(filename, PATH_MAX, "%s/%s-%s/changelog", db->path, - newpkg->name, newpkg->version); - } else if(*entryname == '.') { - /* for now, ignore all files starting with '.' that haven't - * already been handled (for future possibilities) */ - _alpm_log(PM_LOG_DEBUG, _("skipping extraction of '%s'"), entryname); - archive_read_data_skip(archive); - continue; - } else { - /* build the new entryname relative to handle->root */ - snprintf(filename, PATH_MAX, "%s%s", handle->root, entryname); - } + sprintf(backup, "%s\t%s", oldbackup, hash); + backup[backup_len-1] = '\0'; + FREE(hash); + FREE(oldbackup); + b->data = backup; + } + } + return(errors); +} - /* if a file is in NoExtract then we never extract it */ - if(alpm_list_find_str(handle->noextract, entryname)) { - _alpm_log(PM_LOG_DEBUG, _("%s is in NoExtract, skipping extraction"), entryname); - alpm_logaction("note: %s is in NoExtract, skipping extraction", entryname); - archive_read_data_skip(archive); - continue; - } +static int commit_single_pkg(pmpkg_t *newpkg, int pkg_current, int pkg_count, + pmtrans_t *trans, pmdb_t *db) +{ + int i, ret = 0, errors = 0; + struct archive *archive; + struct archive_entry *entry; + char cwd[PATH_MAX] = ""; + char scriptlet[PATH_MAX+1]; + int is_upgrade = 0; + double percent = 0.0; + pmpkg_t *oldpkg = NULL; + + snprintf(scriptlet, PATH_MAX, "%s%s-%s/install", db->path, + alpm_pkg_get_name(newpkg), alpm_pkg_get_version(newpkg)); + + /* see if this is an upgrade. if so, remove the old package first */ + pmpkg_t *local = _alpm_db_get_pkgfromcache(db, newpkg->name); + if(local) { + is_upgrade = 1; + + EVENT(trans, PM_TRANS_EVT_UPGRADE_START, newpkg, NULL); + _alpm_log(PM_LOG_DEBUG, "upgrading package %s-%s\n", + newpkg->name, newpkg->version); + + /* we'll need to save some record for backup checks later */ + oldpkg = _alpm_pkg_dup(local); + /* copy over the install reason (unless alldeps is set) */ + if(trans->flags & PM_TRANS_FLAG_ALLDEPS) { + newpkg->reason = PM_PKG_REASON_DEPEND; + } else { + newpkg->reason = alpm_pkg_get_reason(local); + } - /* if a file is in the add skiplist we never extract it */ - if(alpm_list_find_str(trans->skip_add, filename)) { - _alpm_log(PM_LOG_DEBUG, _("%s is in trans->skip_add, skipping extraction"), entryname); - archive_read_data_skip(archive); - continue; - } + /* pre_upgrade scriptlet */ + if(alpm_pkg_has_scriptlet(newpkg) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) { + _alpm_runscriptlet(handle->root, newpkg->origin_data.file, + "pre_upgrade", newpkg->version, oldpkg->version); + } + } else { + is_upgrade = 0; - /* check is file already exists */ - if(stat(filename, &buf) == 0 && !S_ISDIR(buf.st_mode)) { - /* it does, is it a backup=() file? - * always check the newpkg first, so when we do add a backup=() file, - * we don't have to wait a full upgrade cycle */ - needbackup = alpm_list_find_str(alpm_pkg_get_backup(newpkg), entryname); - - if(is_upgrade) { - hash_orig = _alpm_needbackup(entryname, alpm_pkg_get_backup(oldpkg)); - if(hash_orig) { - needbackup = 1; - } - } + EVENT(trans, PM_TRANS_EVT_ADD_START, newpkg, NULL); + _alpm_log(PM_LOG_DEBUG, "adding package %s-%s\n", + newpkg->name, newpkg->version); - /* this is kind of gross. if we force hash_orig to be non-NULL we can - * catch the pro-active backup=() case (when the backup entry is in - * the new package, and not the old */ - if(needbackup && !hash_orig) { - hash_orig = strdup(""); - } - - /* NoUpgrade skips all this backup stuff, because it's just never - * touched */ - if(alpm_list_find_str(handle->noupgrade, entryname)) { - notouch = 1; - needbackup = 0; - } - } + /* pre_install scriptlet */ + if(alpm_pkg_has_scriptlet(newpkg) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) { + _alpm_runscriptlet(handle->root, newpkg->origin_data.file, + "pre_install", newpkg->version, NULL); + } + } - if(needbackup) { - char *tempfile = NULL; - char *hash_local = NULL, *hash_pkg = NULL; - int fd; - - /* extract the package's version to a temporary file and md5 it */ - tempfile = strdup("/tmp/alpm_XXXXXX"); - fd = mkstemp(tempfile); - - archive_entry_set_pathname(entry, tempfile); - - int ret = archive_read_extract(archive, entry, archive_flags); - if(ret == ARCHIVE_WARN) { - /* operation succeeded but a non-critical error was encountered */ - _alpm_log(PM_LOG_DEBUG, _("warning extracting %s (%s)"), - entryname, archive_error_string(archive)); - } else if(ret != ARCHIVE_OK) { - _alpm_log(PM_LOG_ERROR, _("could not extract %s (%s)"), - entryname, archive_error_string(archive)); - alpm_logaction("error: could not extract %s (%s)", - entryname, archive_error_string(archive)); - errors++; - unlink(tempfile); - FREE(hash_orig); - close(fd); - continue; - } + if(oldpkg) { + /* set up fake remove transaction */ + int ret = upgrade_remove(oldpkg, newpkg, trans, db); + if(ret != 0) { + return(ret); + } + } - if(use_md5) { - hash_local = _alpm_MDFile(filename); - hash_pkg = _alpm_MDFile(tempfile); - } else { - hash_local = _alpm_SHAFile(filename); - hash_pkg = _alpm_SHAFile(tempfile); - } + if(!(trans->flags & PM_TRANS_FLAG_DBONLY)) { + _alpm_log(PM_LOG_DEBUG, "extracting files\n"); - /* append the new md5 or sha1 hash to it's respective entry - * in newpkg's backup (it will be the new orginal) */ - alpm_list_t *backups; - for(backups = alpm_pkg_get_backup(newpkg); backups; - backups = alpm_list_next(backups)) { - char *oldbackup = alpm_list_getdata(backups); - if(!oldbackup || strcmp(oldbackup, entryname) != 0) { - continue; - } - char *backup = NULL; - int backup_len = strlen(oldbackup) + 2; /* tab char and null byte */ - - if(use_md5) { - backup_len += 32; /* MD5s are 32 chars in length */ - } else { - backup_len += 40; /* SHA1s are 40 chars in length */ - } - - backup = malloc(backup_len); - if(!backup) { - RET_ERR(PM_ERR_MEMORY, -1); - } - - sprintf(backup, "%s\t%s", oldbackup, hash_pkg); - backup[backup_len-1] = '\0'; - FREE(oldbackup); - backups->data = backup; - } + if ((archive = archive_read_new()) == NULL) { + RET_ERR(PM_ERR_LIBARCHIVE_ERROR, -1); + } - if(use_md5) { - _alpm_log(PM_LOG_DEBUG, _("checking md5 hashes for %s"), entryname); - } else { - _alpm_log(PM_LOG_DEBUG, _("checking sha1 hashes for %s"), entryname); - } - _alpm_log(PM_LOG_DEBUG, _("current: %s"), hash_local); - _alpm_log(PM_LOG_DEBUG, _("new: %s"), hash_pkg); - _alpm_log(PM_LOG_DEBUG, _("original: %s"), hash_orig); - - if(!is_upgrade) { - /* looks like we have a local file that has a different hash as the - * file in the package, move it to a .pacorig */ - if(strcmp(hash_local, hash_pkg) != 0) { - char newpath[PATH_MAX]; - snprintf(newpath, PATH_MAX, "%s.pacorig", filename); - - /* move the existing file to the "pacorig" */ - if(rename(filename, newpath)) { - archive_entry_set_pathname(entry, filename); - _alpm_log(PM_LOG_ERROR, _("could not rename %s (%s)"), filename, strerror(errno)); - alpm_logaction("error: could not rename %s (%s)", filename, strerror(errno)); - errors++; - } else { - /* copy the tempfile we extracted to the real path */ - if(_alpm_copyfile(tempfile, filename)) { - archive_entry_set_pathname(entry, filename); - _alpm_log(PM_LOG_ERROR, _("could not copy tempfile to %s (%s)"), filename, strerror(errno)); - alpm_logaction("error: could not copy tempfile to %s (%s)", filename, strerror(errno)); - errors++; - } else { - archive_entry_set_pathname(entry, filename); - _alpm_log(PM_LOG_WARNING, _("%s saved as %s"), filename, newpath); - alpm_logaction("warning: %s saved as %s", filename, newpath); - } - } - } - } else if(hash_orig) { - /* the fun part */ - - if(strcmp(hash_orig, hash_local) == 0) { - /* installed file has NOT been changed by user */ - if(strcmp(hash_orig, hash_pkg) != 0) { - _alpm_log(PM_LOG_DEBUG, _("action: installing new file: %s"), entryname); - - if(_alpm_copyfile(tempfile, filename)) { - _alpm_log(PM_LOG_ERROR, _("could not copy tempfile to %s (%s)"), filename, strerror(errno)); - errors++; - } - archive_entry_set_pathname(entry, filename); - } else { - /* there's no sense in installing the same file twice, install - * ONLY is the original and package hashes differ */ - _alpm_log(PM_LOG_DEBUG, _("action: leaving existing file in place")); - } - } else if(strcmp(hash_orig, hash_pkg) == 0) { - /* originally installed file and new file are the same - this - * implies the case above failed - i.e. the file was changed by a - * user */ - _alpm_log(PM_LOG_DEBUG, _("action: leaving existing file in place")); - } else if(strcmp(hash_local, hash_pkg) == 0) { - /* this would be magical. The above two cases failed, but the - * user changes just so happened to make the new file exactly the - * same as the one in the package... skip it */ - _alpm_log(PM_LOG_DEBUG, _("action: leaving existing file in place")); - } else { - char newpath[PATH_MAX]; - _alpm_log(PM_LOG_DEBUG, _("action: keeping current file and installing new one with .pacnew ending")); - snprintf(newpath, PATH_MAX, "%s.pacnew", filename); - if(_alpm_copyfile(tempfile, newpath)) { - _alpm_log(PM_LOG_ERROR, _("could not install %s as %s: %s"), filename, newpath, strerror(errno)); - alpm_logaction("error: could not install %s as %s: %s", filename, newpath, strerror(errno)); - } else { - _alpm_log(PM_LOG_WARNING, _("%s installed as %s"), filename, newpath); - alpm_logaction("warning: %s installed as %s", filename, newpath); - } - } - } + archive_read_support_compression_all(archive); + archive_read_support_format_all(archive); - FREE(hash_local); - FREE(hash_pkg); - FREE(hash_orig); - unlink(tempfile); - FREE(tempfile); - close(fd); - } else { /* ! needbackup */ - - if(notouch) { - _alpm_log(PM_LOG_DEBUG, _("%s is in NoUpgrade -- skipping"), filename); - _alpm_log(PM_LOG_WARNING, _("extracting %s as %s.pacnew"), filename, filename); - alpm_logaction("warning: extracting %s as %s.pacnew", filename, filename); - strncat(filename, ".pacnew", PATH_MAX); - } else { - _alpm_log(PM_LOG_DEBUG, _("extracting %s"), filename); - } + if(archive_read_open_filename(archive, newpkg->origin_data.file, + ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) { + RET_ERR(PM_ERR_PKG_OPEN, -1); + } - if(trans->flags & PM_TRANS_FLAG_FORCE) { - /* if FORCE was used, then unlink() each file (whether it's there - * or not) before extracting. this prevents the old "Text file busy" - * error that crops up if one tries to --force a glibc or pacman - * upgrade. - */ - unlink(filename); - } + /* save the cwd so we can restore it later */ + if(getcwd(cwd, PATH_MAX) == NULL) { + _alpm_log(PM_LOG_ERROR, _("could not get current working directory\n")); + cwd[0] = 0; + } - archive_entry_set_pathname(entry, filename); + /* libarchive requires this for extracting hard links */ + chdir(handle->root); - /* FS #7484 - * By default, libarchive 2.2.3 overwrites existing symlinks by directories from the archive, - * which isn't the behavior we want. - * This can be avoided by using the ARCHIVE_EXTRACT_NO_OVERWRITE flag, and this works - * fine because all files where an overwrite could be needed are deleted first : - * 1) if it's an upgrade, existing files are removed when the old pkg is removed - * 2) if there is a file conflict, but --force is used, then files are also removed : see above - */ - int ret = archive_read_extract(archive, entry, archive_flags | ARCHIVE_EXTRACT_NO_OVERWRITE); - if(ret == ARCHIVE_WARN) { - /* operation succeeded but a non-critical error was encountered */ - _alpm_log(PM_LOG_DEBUG, _("warning extracting %s (%s)"), - entryname, archive_error_string(archive)); - } else if(ret != ARCHIVE_OK) { - _alpm_log(PM_LOG_ERROR, _("could not extract %s (%s)"), - entryname, archive_error_string(archive)); - alpm_logaction("error: could not extract %s (%s)", - entryname, archive_error_string(archive)); - errors++; - continue; - } + /* call PROGRESS once with 0 percent, as we sort-of skip that here */ + if(is_upgrade) { + PROGRESS(trans, PM_TRANS_PROGRESS_UPGRADE_START, + alpm_pkg_get_name(newpkg), 0, pkg_count, pkg_current); + } else { + PROGRESS(trans, PM_TRANS_PROGRESS_ADD_START, + alpm_pkg_get_name(newpkg), 0, pkg_count, pkg_current); + } - /* calculate an hash if this is in newpkg's backup */ - alpm_list_t *b; - for(b = alpm_pkg_get_backup(newpkg); b; b = b->next) { - char *backup = NULL, *hash = NULL; - char *oldbackup = alpm_list_getdata(b); - int backup_len = strlen(oldbackup) + 2; /* tab char and null byte */ - - if(!oldbackup || strcmp(oldbackup, entryname) != 0) { - continue; - } - _alpm_log(PM_LOG_DEBUG, _("appending backup entry for %s"), filename); - - if(use_md5) { - backup_len += 32; /* MD5s are 32 chars in length */ - hash = _alpm_MDFile(filename); - } else { - backup_len += 40; /* SHA1s are 40 chars in length */ - hash = _alpm_SHAFile(filename); - } - - backup = malloc(backup_len); - if(!backup) { - RET_ERR(PM_ERR_MEMORY, -1); - } - - sprintf(backup, "%s\t%s", oldbackup, hash); - backup[backup_len-1] = '\0'; - FREE(hash); - FREE(oldbackup); - b->data = backup; - } + for(i = 0; archive_read_next_header(archive, &entry) == ARCHIVE_OK; i++) { + if(newpkg->size != 0) { + /* Using compressed size for calculations here, as newpkg->isize is not + * exact when it comes to comparing to the ACTUAL uncompressed size + * (missing metadata sizes) */ + unsigned long pos = archive_position_compressed(archive); + percent = (double)pos / (double)newpkg->size; + _alpm_log(PM_LOG_DEBUG, "decompression progress: %f%% (%ld / %ld)\n", + percent*100.0, pos, newpkg->size); + if(percent >= 1.0) { + percent = 1.0; } } - archive_read_finish(archive); - /* restore the old cwd is we have it */ - if(strlen(cwd)) { - chdir(cwd); + if(is_upgrade) { + PROGRESS(trans, PM_TRANS_PROGRESS_UPGRADE_START, + alpm_pkg_get_name(newpkg), (int)(percent * 100), pkg_count, + pkg_current); + } else { + PROGRESS(trans, PM_TRANS_PROGRESS_ADD_START, + alpm_pkg_get_name(newpkg), (int)(percent * 100), pkg_count, + pkg_current); } - if(errors) { - ret = 1; - if(is_upgrade) { - _alpm_log(PM_LOG_ERROR, _("problem occurred while upgrading %s"), - newpkg->name); - alpm_logaction("error: problem occurred while upgrading %s", - newpkg->name); - } else { - _alpm_log(PM_LOG_ERROR, _("problem occurred while installing %s"), - newpkg->name); - alpm_logaction("error: problem occurred while installing %s", - newpkg->name); - } - } + /* extract the next file from the archive */ + errors += extract_single_file(archive, entry, newpkg, oldpkg, + trans, db); } + archive_read_finish(archive); - /* Update the requiredby field by scanning the whole database - * looking for packages depending on the package to add */ - _alpm_pkg_update_requiredby(newpkg); - - /* special case: if our provides list has changed from oldpkg to newpkg AND - * we get here, we need to make sure we find the actual provision that - * still satisfies this case, and update its 'requiredby' field... ugh */ - alpm_list_t *provdiff, *prov; - provdiff = alpm_list_diff(alpm_pkg_get_provides(oldpkg), - alpm_pkg_get_provides(newpkg), - _alpm_str_cmp); - for(prov = provdiff; prov; prov = prov->next) { - const char *provname = prov->data; - _alpm_log(PM_LOG_DEBUG, _("provision '%s' has been removed from package %s (%s => %s)"), - provname, alpm_pkg_get_name(oldpkg), - alpm_pkg_get_version(oldpkg), alpm_pkg_get_version(newpkg)); - - alpm_list_t *p = _alpm_db_whatprovides(handle->db_local, provname); - if(p) { - /* we now have all the provisions in the local DB for this virtual - * package... seeing as we can't really determine which is the 'correct' - * provision, we'll use the FIRST for now. - * TODO figure out a way to find a "correct" provision */ - pmpkg_t *provpkg = p->data; - const char *pkgname = alpm_pkg_get_name(provpkg); - _alpm_log(PM_LOG_DEBUG, _("updating '%s' due to provision change (%s)"), pkgname, provname); - _alpm_pkg_update_requiredby(provpkg); - - if(_alpm_db_write(db, provpkg, INFRQ_DEPENDS)) { - _alpm_log(PM_LOG_ERROR, _("could not update provision '%s' from '%s'"), provname, pkgname); - alpm_logaction("error: could not update provision '%s' from '%s'", - provname, pkgname); - RET_ERR(PM_ERR_DB_WRITE, -1); - } - } - } - alpm_list_free(provdiff); - - /* make an install date (in UTC) */ - time_t t = time(NULL); - strncpy(newpkg->installdate, asctime(gmtime(&t)), PKG_DATE_LEN); - /* remove the extra line feed appended by asctime() */ - newpkg->installdate[strlen(newpkg->installdate)-1] = 0; - - _alpm_log(PM_LOG_DEBUG, _("updating database")); - _alpm_log(PM_LOG_DEBUG, _("adding database entry '%s'"), newpkg->name); - - if(_alpm_db_write(db, newpkg, INFRQ_ALL)) { - _alpm_log(PM_LOG_ERROR, _("could not update database entry %s-%s"), - alpm_pkg_get_name(newpkg), alpm_pkg_get_version(newpkg)); - alpm_logaction("error: could not update database entry %s-%s", - alpm_pkg_get_name(newpkg), alpm_pkg_get_version(newpkg)); - RET_ERR(PM_ERR_DB_WRITE, -1); - } - - if(_alpm_db_add_pkgincache(db, newpkg) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not add entry '%s' in cache"), - alpm_pkg_get_name(newpkg)); + /* restore the old cwd is we have it */ + if(strlen(cwd)) { + chdir(cwd); } - /* update dependency packages' REQUIREDBY fields */ - _alpm_trans_update_depends(trans, newpkg); - - PROGRESS(trans, (is_upgrade ? PM_TRANS_PROGRESS_UPGRADE_START : PM_TRANS_PROGRESS_ADD_START), - alpm_pkg_get_name(newpkg), 100, pkg_count, (pkg_count - targ_count +1)); - EVENT(trans, PM_TRANS_EVT_EXTRACT_DONE, NULL, NULL); - - /* run the post-install script if it exists */ - if(alpm_pkg_has_scriptlet(newpkg) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) { + if(errors) { + ret = 1; if(is_upgrade) { - _alpm_runscriptlet(handle->root, scriptlet, "post_upgrade", - alpm_pkg_get_version(newpkg), oldpkg ? alpm_pkg_get_version(oldpkg) : NULL, - trans); + _alpm_log(PM_LOG_ERROR, _("problem occurred while upgrading %s\n"), + newpkg->name); + alpm_logaction("error: problem occurred while upgrading %s", + newpkg->name); } else { - _alpm_runscriptlet(handle->root, scriptlet, "post_install", - alpm_pkg_get_version(newpkg), NULL, trans); + _alpm_log(PM_LOG_ERROR, _("problem occurred while installing %s\n"), + newpkg->name); + alpm_logaction("error: problem occurred while installing %s", + newpkg->name); } } + } - EVENT(trans, (is_upgrade) ? PM_TRANS_EVT_UPGRADE_DONE : PM_TRANS_EVT_ADD_DONE, newpkg, oldpkg); + /* Update the requiredby field by scanning the whole database + * looking for packages depending on the package to add */ + _alpm_pkg_update_requiredby(newpkg); + + /* make an install date (in UTC) */ + time_t t = time(NULL); + strncpy(newpkg->installdate, asctime(gmtime(&t)), PKG_DATE_LEN); + /* remove the extra line feed appended by asctime() */ + newpkg->installdate[strlen(newpkg->installdate)-1] = 0; + + _alpm_log(PM_LOG_DEBUG, "updating database\n"); + _alpm_log(PM_LOG_DEBUG, "adding database entry '%s'\n", newpkg->name); + + if(_alpm_db_write(db, newpkg, INFRQ_ALL)) { + _alpm_log(PM_LOG_ERROR, _("could not update database entry %s-%s\n"), + alpm_pkg_get_name(newpkg), alpm_pkg_get_version(newpkg)); + alpm_logaction("error: could not update database entry %s-%s", + alpm_pkg_get_name(newpkg), alpm_pkg_get_version(newpkg)); + RET_ERR(PM_ERR_DB_WRITE, -1); + } - _alpm_pkg_free(oldpkg); + if(_alpm_db_add_pkgincache(db, newpkg) == -1) { + _alpm_log(PM_LOG_ERROR, _("could not add entry '%s' in cache\n"), + alpm_pkg_get_name(newpkg)); } - /* run ldconfig if it exists */ - if(handle->trans->state != STATE_INTERRUPTED) { - _alpm_log(PM_LOG_DEBUG, _("running \"ldconfig -r %s\""), handle->root); - _alpm_ldconfig(handle->root); + /* update dependency packages' REQUIREDBY fields */ + _alpm_trans_update_depends(trans, newpkg); + + if(is_upgrade) { + PROGRESS(trans, PM_TRANS_PROGRESS_UPGRADE_START, + alpm_pkg_get_name(newpkg), 100, pkg_count, pkg_current); + } else { + PROGRESS(trans, PM_TRANS_PROGRESS_ADD_START, + alpm_pkg_get_name(newpkg), 100, pkg_count, pkg_current); + } + EVENT(trans, PM_TRANS_EVT_EXTRACT_DONE, NULL, NULL); + + /* run the post-install script if it exists */ + if(alpm_pkg_has_scriptlet(newpkg) + && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) { + if(is_upgrade) { + _alpm_runscriptlet(handle->root, scriptlet, "post_upgrade", + alpm_pkg_get_version(newpkg), + oldpkg ? alpm_pkg_get_version(oldpkg) : NULL); + } else { + _alpm_runscriptlet(handle->root, scriptlet, "post_install", + alpm_pkg_get_version(newpkg), NULL); + } + } + + if(is_upgrade) { + EVENT(trans, PM_TRANS_EVT_UPGRADE_DONE, newpkg, oldpkg); + } else { + EVENT(trans, PM_TRANS_EVT_ADD_DONE, newpkg, oldpkg); + } + + _alpm_pkg_free(oldpkg); + + return(0); +} + +int _alpm_add_commit(pmtrans_t *trans, pmdb_t *db) +{ + int pkg_count, pkg_current; + alpm_list_t *targ; + + ALPM_LOG_FUNC; + + ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); + ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); + + if(trans->packages == NULL) { + return(0); } + pkg_count = alpm_list_count(trans->targets); + pkg_current = 1; + + /* loop through our package list adding/upgrading one at a time */ + for(targ = trans->packages; targ; targ = targ->next) { + if(handle->trans->state == STATE_INTERRUPTED) { + return(0); + } + + pmpkg_t *newpkg = (pmpkg_t *)targ->data; + commit_single_pkg(newpkg, pkg_current, pkg_count, trans, db); + pkg_current++; + } + + /* run ldconfig if it exists */ + _alpm_log(PM_LOG_DEBUG, "running \"ldconfig -r %s\"\n", handle->root); + _alpm_ldconfig(handle->root); + return(0); } diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c index 11d00d4d..20d4a746 100644 --- a/lib/libalpm/alpm.c +++ b/lib/libalpm/alpm.c @@ -62,23 +62,12 @@ int SYMEXPORT alpm_initialize(void) */ int SYMEXPORT alpm_release(void) { - int dbs_left = 0; - ALPM_LOG_FUNC; ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); - /* close local database */ - if(handle->db_local) { - alpm_db_unregister(handle->db_local); - handle->db_local = NULL; - } - /* and also sync ones */ - while((dbs_left = alpm_list_count(handle->dbs_sync)) > 0) { - pmdb_t *db = (pmdb_t *)handle->dbs_sync->data; - _alpm_log(PM_LOG_DEBUG, _("removing DB %s, %d remaining..."), db->treename, dbs_left); - alpm_db_unregister(db); - db = NULL; + if(alpm_db_unregister_all() == -1) { + return(-1); } _alpm_handle_free(handle); diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index a7fcb5c2..4a44cc76 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -31,6 +31,8 @@ extern "C" { #include <time.h> /* for time_t */ #include <stdarg.h> /* for va_list */ +#define DEPRECATED __attribute__((deprecated)) + /* * Arch Linux Package Management library */ @@ -93,17 +95,17 @@ alpm_cb_download alpm_option_get_dlcb(); void alpm_option_set_dlcb(alpm_cb_download cb); const char *alpm_option_get_root(); -void alpm_option_set_root(const char *root); +int alpm_option_set_root(const char *root); const char *alpm_option_get_dbpath(); -void alpm_option_set_dbpath(const char *dbpath); +int alpm_option_set_dbpath(const char *dbpath); alpm_list_t *alpm_option_get_cachedirs(); -void alpm_option_add_cachedir(const char *cachedir); +int alpm_option_add_cachedir(const char *cachedir); void alpm_option_set_cachedirs(alpm_list_t *cachedirs); const char *alpm_option_get_logfile(); -void alpm_option_set_logfile(const char *logfile); +int alpm_option_set_logfile(const char *logfile); const char *alpm_option_get_lockfile(); /* no set_lockfile, path is determined from dbpath */ @@ -143,8 +145,11 @@ alpm_list_t *alpm_option_get_syncdbs(); * Databases */ -pmdb_t *alpm_db_register(const char *treename); +/* Preferred interfaces db_register_local and db_register_sync */ +pmdb_t *alpm_db_register_local(void); +pmdb_t *alpm_db_register_sync(const char *treename); int alpm_db_unregister(pmdb_t *db); +int alpm_db_unregister_all(void); const char *alpm_db_get_name(const pmdb_t *db); const char *alpm_db_get_url(const pmdb_t *db); @@ -159,10 +164,9 @@ alpm_list_t *alpm_db_whatprovides(pmdb_t *db, const char *name); pmgrp_t *alpm_db_readgrp(pmdb_t *db, const char *name); alpm_list_t *alpm_db_getgrpcache(pmdb_t *db); -alpm_list_t *alpm_db_test(pmdb_t *db); alpm_list_t *alpm_db_search(pmdb_t *db, const alpm_list_t* needles); -alpm_list_t *alpm_db_get_upgrades(); +alpm_list_t *alpm_db_get_upgrades(void); /* * Packages @@ -187,10 +191,10 @@ typedef enum _pmpkghasarch_t { int alpm_pkg_load(const char *filename, pmpkg_t **pkg); int alpm_pkg_free(pmpkg_t *pkg); int alpm_pkg_checkmd5sum(pmpkg_t *pkg); -int alpm_pkg_checksha1sum(pmpkg_t *pkg); char *alpm_fetch_pkgurl(const char *url); int alpm_pkg_vercmp(const char *ver1, const char *ver2); char *alpm_pkg_name_hasarch(const char *pkgname); +alpm_list_t *alpm_pkg_compute_requiredby(pmpkg_t *pkg); const char *alpm_pkg_get_filename(pmpkg_t *pkg); const char *alpm_pkg_get_name(pmpkg_t *pkg); @@ -202,7 +206,6 @@ const char *alpm_pkg_get_buildtype(pmpkg_t *pkg); const char *alpm_pkg_get_installdate(pmpkg_t *pkg); const char *alpm_pkg_get_packager(pmpkg_t *pkg); const char *alpm_pkg_get_md5sum(pmpkg_t *pkg); -const char *alpm_pkg_get_sha1sum(pmpkg_t *pkg); const char *alpm_pkg_get_arch(pmpkg_t *pkg); unsigned long alpm_pkg_get_size(pmpkg_t *pkg); unsigned long alpm_pkg_get_isize(pmpkg_t *pkg); @@ -247,6 +250,7 @@ void *alpm_sync_get_data(const pmsyncpkg_t *sync); typedef enum _pmtranstype_t { PM_TRANS_TYPE_ADD = 1, PM_TRANS_TYPE_REMOVE, + PM_TRANS_TYPE_REMOVEUPGRADE, PM_TRANS_TYPE_UPGRADE, PM_TRANS_TYPE_SYNC } pmtranstype_t; @@ -331,6 +335,7 @@ int alpm_trans_sysupgrade(void); int alpm_trans_addtarget(char *target); int alpm_trans_prepare(alpm_list_t **data); int alpm_trans_commit(alpm_list_t **data); +int alpm_trans_interrupt(void); int alpm_trans_release(void); /* @@ -351,12 +356,16 @@ typedef enum _pmdeptype_t { pmdepend_t *alpm_splitdep(const char *depstring); int alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep); +alpm_list_t *alpm_checkdeps(pmdb_t *db, pmtranstype_t op, + alpm_list_t *packages); + +const char *alpm_miss_get_target(pmdepmissing_t *miss); +pmdeptype_t alpm_miss_get_type(pmdepmissing_t *miss); +pmdepend_t *alpm_miss_get_dep(pmdepmissing_t *miss); -const char *alpm_dep_get_target(pmdepmissing_t *miss); -pmdeptype_t alpm_dep_get_type(pmdepmissing_t *miss); -pmdepmod_t alpm_dep_get_mod(pmdepmissing_t *miss); -const char *alpm_dep_get_name(pmdepmissing_t *miss); -const char *alpm_dep_get_version(pmdepmissing_t *miss); +pmdepmod_t alpm_dep_get_mod(pmdepend_t *dep); +const char *alpm_dep_get_name(pmdepend_t *dep); +const char *alpm_dep_get_version(pmdepend_t *dep); /* * File conflicts @@ -377,8 +386,7 @@ const char *alpm_conflict_get_ctarget(pmconflict_t *conflict); */ /* checksums */ -char *alpm_get_md5sum(char *name); -char *alpm_get_sha1sum(char *name); +char *alpm_get_md5sum(const char *name); /* * Errors @@ -388,6 +396,7 @@ enum _pmerrno_t { PM_ERR_SYSTEM, PM_ERR_BADPERMS, PM_ERR_NOT_A_FILE, + PM_ERR_NOT_A_DIR, PM_ERR_WRONG_ARGS, /* Interface */ PM_ERR_HANDLE_NULL, @@ -452,6 +461,7 @@ enum _pmerrno_t { extern enum _pmerrno_t pm_errno; const char *alpm_strerror(int err); +const char *alpm_strerrorlast(void); #ifdef __cplusplus } diff --git a/lib/libalpm/alpm_list.c b/lib/libalpm/alpm_list.c index cd99f596..5671b4a2 100644 --- a/lib/libalpm/alpm_list.c +++ b/lib/libalpm/alpm_list.c @@ -46,7 +46,7 @@ * * @return a new alpm_list_t item, or NULL on failure */ -alpm_list_t *alpm_list_new() +alpm_list_t SYMEXPORT *alpm_list_new() { alpm_list_t *list = NULL; @@ -143,7 +143,7 @@ alpm_list_t SYMEXPORT *alpm_list_add(alpm_list_t *list, void *data) * * @return the resultant list */ -alpm_list_t *alpm_list_add_sorted(alpm_list_t *list, void *data, alpm_list_fn_cmp fn) +alpm_list_t SYMEXPORT *alpm_list_add_sorted(alpm_list_t *list, void *data, alpm_list_fn_cmp fn) { if(!fn) { return alpm_list_add(list, data); @@ -187,7 +187,7 @@ alpm_list_t *alpm_list_add_sorted(alpm_list_t *list, void *data, alpm_list_fn_cm * * @return the resultant list */ -alpm_list_t *alpm_list_mmerge(alpm_list_t *left, alpm_list_t *right, alpm_list_fn_cmp fn) +alpm_list_t SYMEXPORT *alpm_list_mmerge(alpm_list_t *left, alpm_list_t *right, alpm_list_fn_cmp fn) { alpm_list_t *newlist, *lp; @@ -242,7 +242,7 @@ alpm_list_t *alpm_list_mmerge(alpm_list_t *left, alpm_list_t *right, alpm_list_f * * @return the resultant list */ -alpm_list_t* alpm_list_msort(alpm_list_t *list, int n, alpm_list_fn_cmp fn) +alpm_list_t SYMEXPORT *alpm_list_msort(alpm_list_t *list, int n, alpm_list_fn_cmp fn) { if (n > 1) { alpm_list_t *left = list; @@ -268,7 +268,7 @@ alpm_list_t* alpm_list_msort(alpm_list_t *list, int n, alpm_list_fn_cmp fn) * * @return the resultant list */ -alpm_list_t *alpm_list_remove(alpm_list_t *haystack, const void *needle, alpm_list_fn_cmp fn, void **data) +alpm_list_t SYMEXPORT *alpm_list_remove(alpm_list_t *haystack, const void *needle, alpm_list_fn_cmp fn, void **data) { /* TODO I modified this to remove ALL matching items. Do we need a remove_first? */ alpm_list_t *i = haystack, *tmp = NULL; @@ -316,7 +316,7 @@ alpm_list_t *alpm_list_remove(alpm_list_t *haystack, const void *needle, alpm_li * * @return the node which took the place of this one */ -alpm_list_t *alpm_list_remove_node(alpm_list_t *node) +alpm_list_t SYMEXPORT *alpm_list_remove_node(alpm_list_t *node) { if(!node) return(NULL); @@ -367,7 +367,7 @@ alpm_list_t SYMEXPORT *alpm_list_remove_dupes(const alpm_list_t *list) * * @return a copy of the original list */ -alpm_list_t *alpm_list_strdup(const alpm_list_t *list) +alpm_list_t SYMEXPORT *alpm_list_strdup(const alpm_list_t *list) { const alpm_list_t *lp = list; alpm_list_t *newlist = NULL; @@ -385,7 +385,7 @@ alpm_list_t *alpm_list_strdup(const alpm_list_t *list) * * @return a new list in reverse order */ -alpm_list_t *alpm_list_reverse(alpm_list_t *list) +alpm_list_t SYMEXPORT *alpm_list_reverse(alpm_list_t *list) { /* TODO any invalid free's from NOT duplicating data here? */ alpm_list_t *lp, *newlist = NULL; @@ -419,7 +419,7 @@ inline alpm_list_t SYMEXPORT *alpm_list_first(const alpm_list_t *list) * * @return an alpm_list_t node for index `n` */ -alpm_list_t *alpm_list_nth(const alpm_list_t *list, int n) +alpm_list_t SYMEXPORT *alpm_list_nth(const alpm_list_t *list, int n) { const alpm_list_t *i = list; while(n--) { @@ -447,7 +447,7 @@ inline alpm_list_t SYMEXPORT *alpm_list_next(const alpm_list_t *node) * * @return the last element in the list */ -alpm_list_t *alpm_list_last(const alpm_list_t *list) +alpm_list_t SYMEXPORT *alpm_list_last(const alpm_list_t *list) { const alpm_list_t *i = list; while(i && i->next) { @@ -545,7 +545,7 @@ int SYMEXPORT alpm_list_find_str(const alpm_list_t *haystack, const char *needle * * @return a list containing all items in `lhs` not present in `rhs` */ -alpm_list_t *alpm_list_diff(const alpm_list_t *lhs, +alpm_list_t SYMEXPORT *alpm_list_diff(const alpm_list_t *lhs, const alpm_list_t *rhs, alpm_list_fn_cmp fn) { const alpm_list_t *i, *j; diff --git a/lib/libalpm/backup.c b/lib/libalpm/backup.c index ffd45086..9cdb7940 100644 --- a/lib/libalpm/backup.c +++ b/lib/libalpm/backup.c @@ -34,7 +34,7 @@ #include "util.h" /* Look for a filename in a pmpkg_t.backup list. If we find it, - * then we return the md5 or sha1 hash (parsed from the same line) + * then we return the md5 hash (parsed from the same line) */ char *_alpm_needbackup(const char *file, const alpm_list_t *backup) { @@ -46,7 +46,7 @@ char *_alpm_needbackup(const char *file, const alpm_list_t *backup) return(NULL); } - /* run through the backup list and parse out the md5 or sha1 hash for our file */ + /* run through the backup list and parse out the md5 hash for our file */ for(lp = backup; lp; lp = lp->next) { char *str = strdup(lp->data); char *ptr; @@ -59,7 +59,7 @@ char *_alpm_needbackup(const char *file, const alpm_list_t *backup) } *ptr = '\0'; ptr++; - /* now str points to the filename and ptr points to the md5 or sha1 hash */ + /* now str points to the filename and ptr points to the md5 hash */ if(strcmp(file, str) == 0) { char *hash = strdup(ptr); FREE(str); diff --git a/lib/libalpm/be_files.c b/lib/libalpm/be_files.c index 83b6072c..8998f678 100644 --- a/lib/libalpm/be_files.c +++ b/lib/libalpm/be_files.c @@ -27,9 +27,6 @@ #include <stdlib.h> #include <errno.h> #include <string.h> -#ifdef __sun__ -#include <strings.h> -#endif #include <sys/stat.h> #include <dirent.h> #ifdef CYGWIN @@ -56,7 +53,7 @@ int _alpm_db_install(pmdb_t *db, const char *dbfile) /* TODO we should not simply unpack the archive, but better parse it and * db_write each entry (see sync_load_dbarchive to get archive content) */ - _alpm_log(PM_LOG_DEBUG, _("unpacking database '%s'"), dbfile); + _alpm_log(PM_LOG_DEBUG, "unpacking database '%s'\n", dbfile); if(_alpm_unpack(dbfile, db->path, NULL)) { RET_ERR(PM_ERR_SYSTEM, -1); @@ -65,38 +62,6 @@ int _alpm_db_install(pmdb_t *db, const char *dbfile) return unlink(dbfile); } -alpm_list_t *_alpm_db_test(pmdb_t *db) -{ - struct dirent *ent; - char path[PATH_MAX]; - char text[PATH_MAX+1]; - struct stat buf; - alpm_list_t *ret = NULL; - - while ((ent = readdir(db->handle)) != NULL) { - if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) { - continue; - } - /* check for desc, depends, and files */ - snprintf(path, PATH_MAX, "%s/%s/desc", db->path, ent->d_name); - if(stat(path, &buf)) { - snprintf(text, PATH_MAX, _("%s: description file is missing"), ent->d_name); - ret = alpm_list_add(ret, strdup(text)); - } - snprintf(path, PATH_MAX, "%s/%s/depends", db->path, ent->d_name); - if(stat(path, &buf)) { - snprintf(text, PATH_MAX, _("%s: dependency file is missing"), ent->d_name); - ret = alpm_list_add(ret, strdup(text)); - } - snprintf(path, PATH_MAX, "%s/%s/files", db->path, ent->d_name); - if(stat(path, &buf)) { - snprintf(text, PATH_MAX, _("%s: file list is missing"), ent->d_name); - ret = alpm_list_add(ret, strdup(text)); - } - } - return(ret); -} - int _alpm_db_open(pmdb_t *db) { ALPM_LOG_FUNC; @@ -105,7 +70,7 @@ int _alpm_db_open(pmdb_t *db) RET_ERR(PM_ERR_DB_NULL, -1); } - _alpm_log(PM_LOG_DEBUG, _("opening database from path '%s'"), db->path); + _alpm_log(PM_LOG_DEBUG, "opening database from path '%s'\n", db->path); db->handle = opendir(db->path); if(db->handle == NULL) { RET_ERR(PM_ERR_DB_OPEN, -1); @@ -209,11 +174,11 @@ pmpkg_t *_alpm_db_scan(pmdb_t *db, const char *target) pkg = _alpm_pkg_new(NULL, NULL); if(pkg == NULL) { - _alpm_log(PM_LOG_DEBUG, _("db scan could not find package: %s"), target); + _alpm_log(PM_LOG_DEBUG, "db scan could not find package: %s\n", target); return(NULL); } if(_alpm_pkg_splitname(ent->d_name, pkg->name, pkg->version, 0) == -1) { - _alpm_log(PM_LOG_ERROR, _("invalid name for database entry '%s'"), ent->d_name); + _alpm_log(PM_LOG_ERROR, _("invalid name for database entry '%s'\n"), ent->d_name); alpm_pkg_free(pkg); pkg = NULL; continue; @@ -224,8 +189,8 @@ pmpkg_t *_alpm_db_scan(pmdb_t *db, const char *target) /* TODO removed corrupt entry from the FS here */ _alpm_pkg_free(pkg); } else { - pkg->data = db; pkg->origin = PKG_FROM_CACHE; + pkg->origin_data.db = db; } } @@ -238,10 +203,6 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) struct stat buf; char path[PATH_MAX+1]; char line[513]; - /* - alpm_list_t *tmplist; - char *locale; - */ ALPM_LOG_FUNC; @@ -250,12 +211,12 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) } if(info == NULL || info->name[0] == 0 || info->version[0] == 0) { - _alpm_log(PM_LOG_DEBUG, _("invalid package entry provided to _alpm_db_read, skipping")); + _alpm_log(PM_LOG_DEBUG, "invalid package entry provided to _alpm_db_read, skipping\n"); return(-1); } if(info->origin == PKG_FROM_FILE) { - _alpm_log(PM_LOG_DEBUG, _("request to read database info for a file-based package '%s', skipping..."), info->name); + _alpm_log(PM_LOG_DEBUG, "request to read database info for a file-based package '%s', skipping...\n", info->name); return(-1); } @@ -268,7 +229,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) /* already loaded this info, do nothing */ return(0); } - _alpm_log(PM_LOG_FUNCTION, _("loading package data for %s : level=%d"), info->name, inforeq); + _alpm_log(PM_LOG_FUNCTION, _("loading package data for %s : level=%d\n"), info->name, inforeq); /* clear out 'line', to be certain - and to make valgrind happy */ memset(line, 0, 513); @@ -276,7 +237,8 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) snprintf(path, PATH_MAX, "%s/%s-%s", db->path, info->name, info->version); if(stat(path, &buf)) { /* directory doesn't exist or can't be opened */ - _alpm_log(PM_LOG_DEBUG, _("cannot find '%s-%s' in db '%s'"), info->name, info->version, db->treename); + _alpm_log(PM_LOG_DEBUG, "cannot find '%s-%s' in db '%s'\n", + info->name, info->version, db->treename); return(-1); } @@ -284,7 +246,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) if(inforeq & INFRQ_DESC) { snprintf(path, PATH_MAX, "%s/%s-%s/desc", db->path, info->name, info->version); if((fp = fopen(path, "r")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s"), path, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno)); goto error; } while(!feof(fp)) { @@ -305,32 +267,6 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) if(fgets(info->desc, sizeof(info->desc), fp) == NULL) { goto error; } - /* - while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) { - info->desc_localized = alpm_list_add(info->desc_localized, strdup(line)); - PKG_ - } - - if((locale = setlocale(LC_ALL, "")) == NULL) { //To fix segfault when locale invalid - setenv("LC_ALL", "C", 1); - locale = setlocale(LC_ALL, ""); - } - - if(info->desc_localized && !info->desc_localized->next) { - snprintf(info->desc, 512, "%s", (char*)info->desc_localized->data); - } else { - for (tmplist = info->desc_localized; tmplist; tmplist = tmplist->next) { - if (tmplist->data && strncmp(tmplist->data, locale, strlen(locale))) { - strncpy(info->desc, (char *)info->desc_localized->data, sizeof(info->desc)); - } else { - char *p = (char *)tmplist->data; - p += strlen(locale) + 1; - strncpy(info->desc, p, sizeof(info->desc)); - break; - } - } - } - */ _alpm_strtrim(info->desc); } else if(!strcmp(line, "%GROUPS%")) { while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) { @@ -355,11 +291,6 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) goto error; } _alpm_strtrim(info->builddate); - } else if(!strcmp(line, "%BUILDTYPE%")) { - if(fgets(info->buildtype, sizeof(info->buildtype), fp) == NULL) { - goto error; - } - _alpm_strtrim(info->buildtype); } else if(!strcmp(line, "%INSTALLDATE%")) { if(fgets(info->installdate, sizeof(info->installdate), fp) == NULL) { goto error; @@ -398,12 +329,6 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) } _alpm_strtrim(tmp); info->isize = atol(tmp); - } else if(!strcmp(line, "%SHA1SUM%")) { - /* SHA1SUM tag only appears in sync repositories, - * not the local one. */ - if(fgets(info->sha1sum, sizeof(info->sha1sum), fp) == NULL) { - goto error; - } } else if(!strcmp(line, "%MD5SUM%")) { /* MD5SUM tag only appears in sync repositories, * not the local one. */ @@ -430,7 +355,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) if(inforeq & INFRQ_FILES) { snprintf(path, PATH_MAX, "%s/%s-%s/files", db->path, info->name, info->version); if((fp = fopen(path, "r")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s"), path, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno)); goto error; } while(fgets(line, 256, fp)) { @@ -453,7 +378,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) if(inforeq & INFRQ_DEPENDS) { snprintf(path, PATH_MAX, "%s/%s-%s/depends", db->path, info->name, info->version); if((fp = fopen(path, "r")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s"), path, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno)); goto error; } while(!feof(fp)) { @@ -541,22 +466,17 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) /* DESC */ if(inforeq & INFRQ_DESC) { - _alpm_log(PM_LOG_DEBUG, _("writing %s-%s DESC information back to db"), info->name, info->version); + _alpm_log(PM_LOG_DEBUG, "writing %s-%s DESC information back to db\n", + info->name, info->version); snprintf(path, PATH_MAX, "%s/%s-%s/desc", db->path, info->name, info->version); if((fp = fopen(path, "w")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s"), path, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno)); retval = -1; goto cleanup; } fprintf(fp, "%%NAME%%\n%s\n\n" "%%VERSION%%\n%s\n\n", info->name, info->version); if(info->desc[0]) { - /*fputs("%DESC%\n", fp); - for(lp = info->desc_localized; lp; lp = lp->next) { - fprintf(fp, "%s\n", (char *)lp->data); - } - fprintf(fp, "\n"); - */ fprintf(fp, "%%DESC%%\n" "%s\n\n", info->desc); } @@ -587,10 +507,6 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) fprintf(fp, "%%BUILDDATE%%\n" "%s\n\n", info->builddate); } - if(info->buildtype[0]) { - fprintf(fp, "%%BUILDTYPE%%\n" - "%s\n\n", info->buildtype); - } if(info->installdate[0]) { fprintf(fp, "%%INSTALLDATE%%\n" "%s\n\n", info->installdate); @@ -617,10 +533,7 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) fprintf(fp, "%%ISIZE%%\n" "%lu\n\n", info->isize); } - if(info->sha1sum) { - fprintf(fp, "%%SHA1SUM%%\n" - "%s\n\n", info->sha1sum); - } else if(info->md5sum) { + if(info->md5sum) { fprintf(fp, "%%MD5SUM%%\n" "%s\n\n", info->md5sum); } @@ -631,10 +544,11 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) /* FILES */ if(local && (inforeq & INFRQ_FILES)) { - _alpm_log(PM_LOG_DEBUG, _("writing %s-%s FILES information back to db"), info->name, info->version); + _alpm_log(PM_LOG_DEBUG, "writing %s-%s FILES information back to db\n", + info->name, info->version); snprintf(path, PATH_MAX, "%s/%s-%s/files", db->path, info->name, info->version); if((fp = fopen(path, "w")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s"), path, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno)); retval = -1; goto cleanup; } @@ -658,10 +572,11 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq) /* DEPENDS */ if(inforeq & INFRQ_DEPENDS) { - _alpm_log(PM_LOG_DEBUG, _("writing %s-%s DEPENDS information back to db"), info->name, info->version); + _alpm_log(PM_LOG_DEBUG, "writing %s-%s DEPENDS information back to db\n", + info->name, info->version); snprintf(path, PATH_MAX, "%s/%s-%s/depends", db->path, info->name, info->version); if((fp = fopen(path, "w")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s"), path, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno)); retval = -1; goto cleanup; } diff --git a/lib/libalpm/cache.c b/lib/libalpm/cache.c index 0a3cd1e2..ef3c71bd 100644 --- a/lib/libalpm/cache.c +++ b/lib/libalpm/cache.c @@ -26,7 +26,6 @@ #include <stdlib.h> #include <errno.h> #include <string.h> -#include <sys/stat.h> /* libalpm */ #include "cache.h" @@ -55,15 +54,15 @@ int _alpm_db_load_pkgcache(pmdb_t *db) _alpm_db_free_pkgcache(db); - _alpm_log(PM_LOG_DEBUG, _("loading package cache for repository '%s'"), + _alpm_log(PM_LOG_DEBUG, "loading package cache for repository '%s'\n", db->treename); _alpm_db_rewind(db); while((info = _alpm_db_scan(db, NULL)) != NULL) { - _alpm_log(PM_LOG_FUNCTION, _("adding '%s' to package cache for db '%s'"), + _alpm_log(PM_LOG_FUNCTION, _("adding '%s' to package cache for db '%s'\n"), alpm_pkg_get_name(info), db->treename); info->origin = PKG_FROM_CACHE; - info->data = db; + info->origin_data.db = db; /* add to the collection */ db->pkgcache = alpm_list_add(db->pkgcache, info); count++; @@ -81,13 +80,14 @@ void _alpm_db_free_pkgcache(pmdb_t *db) return; } - _alpm_log(PM_LOG_DEBUG, _("freeing package cache for repository '%s'"), + _alpm_log(PM_LOG_DEBUG, "freeing package cache for repository '%s'\n", db->treename); alpm_list_t *tmp; for(tmp = db->pkgcache; tmp; tmp = alpm_list_next(tmp)) { _alpm_pkg_free(tmp->data); } + alpm_list_free(db->pkgcache); db->pkgcache = NULL; if(db->grpcache) { @@ -109,7 +109,7 @@ alpm_list_t *_alpm_db_get_pkgcache(pmdb_t *db) /* hmmm, still NULL ?*/ if(!db->pkgcache) { - _alpm_log(PM_LOG_DEBUG, _("error: pkgcache is NULL for db '%s'"), db->treename); + _alpm_log(PM_LOG_DEBUG, "error: pkgcache is NULL for db '%s'\n", db->treename); } return(db->pkgcache); @@ -129,7 +129,7 @@ int _alpm_db_add_pkgincache(pmdb_t *db, pmpkg_t *pkg) if(newpkg == NULL) { return(-1); } - _alpm_log(PM_LOG_DEBUG, _("adding entry '%s' in '%s' cache"), + _alpm_log(PM_LOG_DEBUG, "adding entry '%s' in '%s' cache\n", alpm_pkg_get_name(newpkg), db->treename); db->pkgcache = alpm_list_add_sorted(db->pkgcache, newpkg, _alpm_pkg_cmp); @@ -149,14 +149,14 @@ int _alpm_db_remove_pkgfromcache(pmdb_t *db, pmpkg_t *pkg) return(-1); } - _alpm_log(PM_LOG_DEBUG, _("removing entry '%s' from '%s' cache"), + _alpm_log(PM_LOG_DEBUG, "removing entry '%s' from '%s' cache\n", alpm_pkg_get_name(pkg), db->treename); db->pkgcache = alpm_list_remove(db->pkgcache, pkg, _alpm_pkg_cmp, &vdata); data = vdata; if(data == NULL) { /* package not found */ - _alpm_log(PM_LOG_DEBUG, _("cannot remove entry '%s' from '%s' cache: not found"), + _alpm_log(PM_LOG_DEBUG, "cannot remove entry '%s' from '%s' cache: not found\n", alpm_pkg_get_name(pkg), db->treename); return(-1); } @@ -178,7 +178,8 @@ pmpkg_t *_alpm_db_get_pkgfromcache(pmdb_t *db, const char *target) alpm_list_t *pkgcache = _alpm_db_get_pkgcache(db); if(!pkgcache) { - _alpm_log(PM_LOG_DEBUG, _("error: failed to get '%s' from NULL pkgcache"), target); + _alpm_log(PM_LOG_DEBUG, "error: failed to get '%s' from NULL pkgcache\n", + target); return(NULL); } @@ -201,7 +202,8 @@ int _alpm_db_load_grpcache(pmdb_t *db) _alpm_db_load_pkgcache(db); } - _alpm_log(PM_LOG_DEBUG, _("loading group cache for repository '%s'"), db->treename); + _alpm_log(PM_LOG_DEBUG, "loading group cache for repository '%s'\n", + db->treename); for(lp = _alpm_db_get_pkgcache(db); lp; lp = lp->next) { const alpm_list_t *i; diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index 3755fcd7..d09c996d 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -30,9 +30,6 @@ #include <unistd.h> #include <string.h> #include <limits.h> -#if defined(__APPLE__) || defined(__OpenBSD__) -#include <sys/syslimits.h> -#endif #include <sys/stat.h> /* libalpm */ @@ -47,190 +44,96 @@ #include "deps.h" -/** See if potential conflict 'name' matches package 'pkg'. - * @param target the name of the parent package we're checking - * @param depname the name of the dependency we're checking - * @param pkg the package to check - * @param conflict the name of the possible conflict - * @return A depmissing struct indicating the conflict - * @note The first two paramters are here to simplify the addition - * of new 'depmiss' objects. - * - * TODO WTF is a 'depmissing' doing indicating a conflict?? +/** Check if pkg1 conflicts with pkg2 + * @param pkg1 package we are looking at + * @param conflict name of the possible conflict + * @param pkg2 package to check + * @return 0 for no conflict, non-zero otherwise */ -static pmdepmissing_t *does_conflict(const char *target, const char *depname, - pmpkg_t *pkg, const char *conflict) +static int does_conflict(pmpkg_t *pkg1, const char *conflict, pmpkg_t *pkg2) { - alpm_list_t *i; - - /* check the actual package name, easy */ - if(strcmp(alpm_pkg_get_name(pkg), conflict) == 0) { - _alpm_log(PM_LOG_DEBUG, _(" found conflict '%s' : package '%s'"), conflict, target); - return(_alpm_depmiss_new(target, PM_DEP_TYPE_CONFLICT, - PM_DEP_MOD_ANY, depname, NULL)); - } else { - /* check what this package provides, harder */ - for(i = alpm_pkg_get_provides(pkg); i; i = i->next) { - const char *provision = i->data; - - if(strcmp(provision, conflict) == 0) { - _alpm_log(PM_LOG_DEBUG, _(" found conflict '%s' : package '%s' provides '%s'"), - conflict, target, provision); - return(_alpm_depmiss_new(target, PM_DEP_TYPE_CONFLICT, - PM_DEP_MOD_ANY, depname, NULL)); - } - } + const char *pkg1name = alpm_pkg_get_name(pkg1); + const char *pkg2name = alpm_pkg_get_name(pkg2); + pmdepend_t *conf = alpm_splitdep(conflict); + int match = 0; + + match = alpm_depcmp(pkg2, conf); + if(match) { + _alpm_log(PM_LOG_DEBUG, "package %s conflicts with %s (by %s)\n", + pkg1name, pkg2name, conflict); } - return(NULL); /* not a conflict */ + FREE(conf); + return(match); } -static alpm_list_t *chk_pkg_vs_db(alpm_list_t *baddeps, pmpkg_t *pkg, pmdb_t *db) +/** Adds the pkg1/pkg2 conflict to the baddeps list + * @param *baddeps list to add conflict to + * @param pkg1 first package + * @param pkg2 package causing conflict + */ +/* TODO WTF is a 'depmissing' doing indicating a conflict? */ +static void add_conflict(alpm_list_t **baddeps, const char *pkg1, + const char *pkg2) { - pmdepmissing_t *miss = NULL; - const char *pkgname; - alpm_list_t *i, *j; - - pkgname = alpm_pkg_get_name(pkg); - - for(i = alpm_pkg_get_conflicts(pkg); i; i = i->next) { - const char *conflict = i->data; - - if(strcmp(pkgname, conflict) == 0) { - /* a package cannot conflict with itself -- that's just not nice */ - _alpm_log(PM_LOG_DEBUG, _("package '%s' conflicts with itself - packaging error"), - pkgname); - continue; - } - - /* CHECK 1: check targets against database */ - _alpm_log(PM_LOG_DEBUG, _("checkconflicts: target '%s' vs db"), pkgname); - - for(j = _alpm_db_get_pkgcache(db); j; j = j->next) { - pmpkg_t *dbpkg = j->data; - - if(strcmp(alpm_pkg_get_name(dbpkg), pkgname) == 0) { - /* skip the package we're currently processing */ - continue; - } - - miss = does_conflict(pkgname, alpm_pkg_get_name(dbpkg), dbpkg, conflict); - if(miss && !_alpm_depmiss_isin(miss, baddeps)) { - baddeps = alpm_list_add(baddeps, miss); - } else { - FREE(miss); - } - } + pmdepmissing_t *miss = _alpm_depmiss_new(pkg1, PM_DEP_TYPE_CONFLICT, + PM_DEP_MOD_ANY, pkg2, NULL); + if(miss && !_alpm_depmiss_isin(miss, *baddeps)) { + *baddeps = alpm_list_add(*baddeps, miss); + } else { + FREE(miss); } - return(baddeps); } -static alpm_list_t *chk_pkg_vs_targets(alpm_list_t *baddeps, - pmpkg_t *pkg, pmdb_t *db, - alpm_list_t *targets) -{ - pmdepmissing_t *miss = NULL; - const char *pkgname; - alpm_list_t *i, *j; - - pkgname = alpm_pkg_get_name(pkg); - - for(i = alpm_pkg_get_conflicts(pkg); i; i = i->next) { - const char *conflict = i->data; - - if(strcmp(pkgname, conflict) == 0) { - /* a package cannot conflict with itself -- that's just not nice */ - _alpm_log(PM_LOG_DEBUG, _("package '%s' conflicts with itself - packaging error"), - pkgname); - continue; - } - - /* CHECK 2: check targets against targets */ - _alpm_log(PM_LOG_DEBUG, _("checkconflicts: target '%s' vs all targets"), pkgname); - - for(j = targets; j; j = j->next) { - const char *targetname; - pmpkg_t *target = j->data; - targetname = alpm_pkg_get_name(target); - - if(strcmp(targetname, pkgname) == 0) { - /* skip the package we're currently processing */ - continue; - } +/** Check if packages from list1 conflict with packages from list2. + * This looks at the conflicts fields of all packages from list1, and sees + * if they match packages from list2. + * If a conflict (pkg1, pkg2) is found, it is added to the baddeps list + * in this order if order >= 0, or reverse order (pkg2,pkg1) otherwise. + * + * @param list1 first list of packages + * @param list2 second list of packages + * @param *baddeps list to store conflicts + * @param order if >= 0 the conflict order is preserved, if < 0 it's reversed + */ +static void check_conflict(alpm_list_t *list1, alpm_list_t *list2, + alpm_list_t **baddeps, int order) { + alpm_list_t *i, *j, *k; - miss = does_conflict(pkgname, targetname, target, conflict); - if(miss && !_alpm_depmiss_isin(miss, baddeps)) { - baddeps = alpm_list_add(baddeps, miss); - } else { - FREE(miss); - } - } + if(!baddeps) { + return; } - return(baddeps); -} - -static alpm_list_t *chk_db_vs_targets(alpm_list_t *baddeps, pmpkg_t *pkg, - pmdb_t *db, alpm_list_t *targets) -{ - pmdepmissing_t *miss = NULL; - const char *pkgname; - alpm_list_t *i, *j; - - pkgname = alpm_pkg_get_name(pkg); - - _alpm_log(PM_LOG_DEBUG, _("checkconflicts: db vs target '%s'"), pkgname); - - for(i = _alpm_db_get_pkgcache(db); i; i = i->next) { - alpm_list_t *conflicts = NULL; - const char *dbpkgname; + for(i = list1; i; i = i->next) { + pmpkg_t *pkg1 = i->data; + const char *pkg1name = alpm_pkg_get_name(pkg1); - pmpkg_t *dbpkg = i->data; - dbpkgname = alpm_pkg_get_name(dbpkg); - - if(strcmp(dbpkgname, pkgname) == 0) { - /* skip the package we're currently processing */ - continue; - } - - /* is this db package in the targets? if so use the - * new package's conflict list to pick up new changes */ - int use_newconflicts = 0; - for(j = targets; j; j = j->next) { - pmpkg_t *targ = j->data; - if(strcmp(alpm_pkg_get_name(targ), dbpkgname) == 0) { - _alpm_log(PM_LOG_DEBUG, _("target '%s' is also in target list, using NEW conflicts"), - dbpkgname); - conflicts = alpm_pkg_get_conflicts(targ); - use_newconflicts = 1; - break; - } - } - /* if we didn't find newer conflicts, use the original list */ - if(!use_newconflicts) { - conflicts = alpm_pkg_get_conflicts(dbpkg); - } - - for(j = conflicts; j; j = j->next) { + for(j = alpm_pkg_get_conflicts(pkg1); j; j = j->next) { const char *conflict = j->data; + for(k = list2; k; k = k->next) { + pmpkg_t *pkg2 = k->data; + const char *pkg2name = alpm_pkg_get_name(pkg2); - miss = does_conflict(pkgname, dbpkgname, pkg, conflict); - if(miss && !_alpm_depmiss_isin(miss, baddeps)) { - baddeps = alpm_list_add(baddeps, miss); - } else { - FREE(miss); + if(strcmp(pkg1name, pkg2name) == 0) { + /* skip the package we're currently processing */ + continue; + } + + if(does_conflict(pkg1, conflict, pkg2)) { + if(order >= 0) { + add_conflict(baddeps, pkg1name, pkg2name); + } else { + add_conflict(baddeps, pkg2name, pkg1name); + } + } } } } - return(baddeps); } -/* Returns a alpm_list_t* of pmdepmissing_t pointers. - * - * conflicts are always name only - */ +/* Returns a alpm_list_t* of pmdepmissing_t pointers. */ alpm_list_t *_alpm_checkconflicts(pmdb_t *db, alpm_list_t *packages) { - alpm_list_t *i, *baddeps = NULL; + alpm_list_t *baddeps = NULL; ALPM_LOG_FUNC; @@ -238,28 +141,21 @@ alpm_list_t *_alpm_checkconflicts(pmdb_t *db, alpm_list_t *packages) return(NULL); } - for(i = packages; i; i = i->next) { - pmpkg_t *pkg = i->data; - if(pkg == NULL) { - continue; - } + alpm_list_t *dblist = alpm_list_diff(_alpm_db_get_pkgcache(db), packages, + _alpm_pkg_cmp); - /* run three different conflict checks on each package */ - baddeps = chk_pkg_vs_db(baddeps, pkg, db); - baddeps = chk_pkg_vs_targets(baddeps, pkg, db, packages); - baddeps = chk_db_vs_targets(baddeps, pkg, db, packages); - } - - /* debug loop */ - for(i = baddeps; i; i = i->next) { - pmdepmissing_t *miss = i->data; - _alpm_log(PM_LOG_DEBUG, _("\tCONFLICTS:: %s conflicts with %s"), miss->target, miss->depend.name); - } + /* three checks to be done here for conflicts */ + _alpm_log(PM_LOG_DEBUG, "check targets vs db\n"); + check_conflict(packages, dblist, &baddeps, 1); + _alpm_log(PM_LOG_DEBUG, "check db vs targets\n"); + check_conflict(dblist, packages, &baddeps, -1); + _alpm_log(PM_LOG_DEBUG, "check targets vs targets\n"); + check_conflict(packages, packages, &baddeps, 0); + alpm_list_free(dblist); return(baddeps); } - /* Returns a alpm_list_t* of file conflicts. * Hooray for set-intersects! * Pre-condition: both lists are sorted! @@ -345,7 +241,7 @@ static alpm_list_t *add_fileconflict(alpm_list_t *conflicts, { pmconflict_t *conflict = malloc(sizeof(pmconflict_t)); if(conflict == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmconflict_t)); return(conflicts); } @@ -359,7 +255,7 @@ static alpm_list_t *add_fileconflict(alpm_list_t *conflicts, } conflicts = alpm_list_add(conflicts, conflict); - _alpm_log(PM_LOG_DEBUG, "found file conflict %s, packages %s and %s", + _alpm_log(PM_LOG_DEBUG, "found file conflict %s, packages %s and %s\n", filestr, name1, name2 ? name2 : "(filesystem)"); return(conflicts); @@ -373,6 +269,7 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root) alpm_list_t *i, *conflicts = NULL; alpm_list_t *targets = trans->packages; int numtargs = alpm_list_count(targets); + int current; ALPM_LOG_FUNC; @@ -380,7 +277,7 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root) return(NULL); } - for(i = targets; i; i = i->next) { + for(current = 1, i = targets; i; i = i->next, current++) { alpm_list_t *j, *k, *tmpfiles = NULL; pmpkg_t *p1, *p2, *dbpkg; char path[PATH_MAX+1]; @@ -390,17 +287,16 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root) continue; } - double percent = (double)(alpm_list_count(targets) - alpm_list_count(i) + 1) - / alpm_list_count(targets); + double percent = (double)current / numtargs; PROGRESS(trans, PM_TRANS_PROGRESS_CONFLICTS_START, "", (percent * 100), - numtargs, (numtargs - alpm_list_count(i) +1)); + numtargs, current); /* CHECK 1: check every target against every target */ for(j = i->next; j; j = j->next) { p2 = j->data; if(!p2) { continue; } - _alpm_log(PM_LOG_DEBUG, "searching for file conflicts: %s and %s", + _alpm_log(PM_LOG_DEBUG, "searching for file conflicts: %s and %s\n", alpm_pkg_get_name(p1), alpm_pkg_get_name(p2)); tmpfiles = chk_fileconflicts(alpm_pkg_get_files(p1), alpm_pkg_get_files(p2)); @@ -420,7 +316,7 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root) char *filestr = NULL; /* CHECK 2: check every target against the filesystem */ - _alpm_log(PM_LOG_DEBUG, "searching for filesystem conflicts: %s", p1->name); + _alpm_log(PM_LOG_DEBUG, "searching for filesystem conflicts: %s\n", p1->name); dbpkg = _alpm_db_get_pkgfromcache(db, p1->name); /* Do two different checks here. f the package is currently installed, @@ -440,9 +336,14 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root) snprintf(path, PATH_MAX, "%s%s", root, filestr); - /* stat the file - if it exists and is not a dir, do some checks */ - if(lstat(path, &buf) == 0 && !S_ISDIR(buf.st_mode)) { - _alpm_log(PM_LOG_DEBUG, "checking possible conflict: %s", path); + /* stat the file - if it exists, do some checks */ + if(lstat(path, &buf) != 0) { + continue; + } + if(S_ISDIR(buf.st_mode)) { + _alpm_log(PM_LOG_DEBUG, "%s is a directory, not a conflict\n", path); + } else { + _alpm_log(PM_LOG_DEBUG, "checking possible conflict: %s\n", path); /* Make sure the possible conflict is not a symlink that points to a * path in the old package. This is kind of dirty with inode usage */ @@ -452,10 +353,9 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root) unsigned ok = 0; for(k = dbpkg->files; k; k = k->next) { snprintf(str, PATH_MAX, "%s%s", root, (char*)k->data); - lstat(str, &buf2); - if(buf.st_ino == buf2.st_ino) { + if(!lstat(str, &buf2) && buf.st_ino == buf2.st_ino) { ok = 1; - _alpm_log(PM_LOG_DEBUG, "conflict was a symlink: %s", path); + _alpm_log(PM_LOG_DEBUG, "conflict was a symlink: %s\n", path); break; } } @@ -486,7 +386,7 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root) /* keep file intact if it is in backup array */ trans->skip_add = alpm_list_add(trans->skip_add, strdup(path)); trans->skip_remove = alpm_list_add(trans->skip_remove, strdup(path)); - _alpm_log(PM_LOG_DEBUG, "file in backup array, adding to add and remove skiplist: %s", filestr); + _alpm_log(PM_LOG_DEBUG, "file in backup array, adding to add and remove skiplist: %s\n", filestr); resolved_conflict = 1; break; } else { @@ -494,19 +394,17 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root) * package from removing the file when it was already installed * by its new owner */ trans->skip_remove = alpm_list_add(trans->skip_remove, strdup(path)); - _alpm_log(PM_LOG_DEBUG, "file changed packages, adding to remove skiplist: %s", filestr); + _alpm_log(PM_LOG_DEBUG, "file changed packages, adding to remove skiplist: %s\n", filestr); resolved_conflict = 1; break; } } } if(!resolved_conflict) { - _alpm_log(PM_LOG_DEBUG, "file found in conflict: %s", path); + _alpm_log(PM_LOG_DEBUG, "file found in conflict: %s\n", path); conflicts = add_fileconflict(conflicts, PM_CONFLICT_TYPE_FILE, path, p1->name, NULL); } - } else { - _alpm_log(PM_LOG_DEBUG, "%s is a directory, not a conflict", path); } } alpm_list_free_inner(tmpfiles, &free); diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index 95a1ecb3..b06a970c 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -53,11 +53,11 @@ * @{ */ -/** Register a package database - * @param treename the name of the repository +/** Register a sync database of packages. + * @param treename the name of the sync repository * @return a pmdb_t* on success (the value), NULL on error */ -pmdb_t SYMEXPORT *alpm_db_register(const char *treename) +pmdb_t SYMEXPORT *alpm_db_register_sync(const char *treename) { ALPM_LOG_FUNC; @@ -67,7 +67,64 @@ pmdb_t SYMEXPORT *alpm_db_register(const char *treename) /* Do not register a database if a transaction is on-going */ ASSERT(handle->trans == NULL, RET_ERR(PM_ERR_TRANS_NOT_NULL, NULL)); - return(_alpm_db_register(treename)); + return(_alpm_db_register_sync(treename)); +} + +/** Register the local package database. + * @return a pmdb_t* representing the local database, or NULL on error + */ +pmdb_t SYMEXPORT *alpm_db_register_local(void) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, NULL)); + /* Do not register a database if a transaction is on-going */ + ASSERT(handle->trans == NULL, RET_ERR(PM_ERR_TRANS_NOT_NULL, NULL)); + + return(_alpm_db_register_local()); +} + +/* Helper function for alpm_db_unregister{_all} */ +static void _alpm_db_unregister(pmdb_t *db) +{ + if(db == NULL) { + return; + } + + _alpm_log(PM_LOG_DEBUG, "closing database '%s'\n", db->treename); + _alpm_db_close(db); + + _alpm_log(PM_LOG_DEBUG, "unregistering database '%s'\n", db->treename); + _alpm_db_free(db); +} + +/** Unregister all package databases + * @return 0 on success, -1 on error (pm_errno is set accordingly) + */ +int SYMEXPORT alpm_db_unregister_all(void) +{ + alpm_list_t *i; + + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); + /* Do not unregister a database if a transaction is on-going */ + ASSERT(handle->trans == NULL, RET_ERR(PM_ERR_TRANS_NOT_NULL, -1)); + + /* close local database */ + _alpm_db_unregister(handle->db_local); + handle->db_local = NULL; + + /* and also sync ones */ + for(i = handle->dbs_sync; i; i = i->next) { + pmdb_t *db = i->data; + _alpm_db_unregister(db); + i->data = NULL; + } + FREELIST(handle->dbs_sync); + return(0); } /** Unregister a package database @@ -90,8 +147,13 @@ int SYMEXPORT alpm_db_unregister(pmdb_t *db) handle->db_local = NULL; found = 1; } else { + /* Warning : this function shouldn't be used to unregister all sync + * databases by walking through the list returned by + * alpm_option_get_syncdbs, because the db is removed from that list here. + */ void *data; - handle->dbs_sync = alpm_list_remove(handle->dbs_sync, db, _alpm_db_cmp, &data); + handle->dbs_sync = alpm_list_remove(handle->dbs_sync, + db, _alpm_db_cmp, &data); if(data) { found = 1; } @@ -101,16 +163,7 @@ int SYMEXPORT alpm_db_unregister(pmdb_t *db) RET_ERR(PM_ERR_DB_NOT_FOUND, -1); } - _alpm_log(PM_LOG_DEBUG, _("unregistering database '%s'"), db->treename); - - /* Cleanup */ - _alpm_db_free_pkgcache(db); - - _alpm_log(PM_LOG_DEBUG, _("closing database '%s'"), db->treename); - _alpm_db_close(db); - - _alpm_db_free(db); - + _alpm_db_unregister(db); return(0); } @@ -121,6 +174,7 @@ int SYMEXPORT alpm_db_unregister(pmdb_t *db) */ int SYMEXPORT alpm_db_setserver(pmdb_t *db, const char *url) { + alpm_list_t *i; int found = 0; ALPM_LOG_FUNC; @@ -128,18 +182,11 @@ int SYMEXPORT alpm_db_setserver(pmdb_t *db, const char *url) /* Sanity checks */ ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - if(strcmp(db->treename, "local") == 0) { - if(handle->db_local != NULL) { + for(i = handle->dbs_sync; i && !found; i = i->next) { + pmdb_t *sdb = i->data; + if(strcmp(db->treename, sdb->treename) == 0) { found = 1; } - } else { - alpm_list_t *i; - for(i = handle->dbs_sync; i && !found; i = i->next) { - pmdb_t *sdb = i->data; - if(strcmp(db->treename, sdb->treename) == 0) { - found = 1; - } - } } if(!found) { RET_ERR(PM_ERR_DB_NOT_FOUND, -1); @@ -152,11 +199,11 @@ int SYMEXPORT alpm_db_setserver(pmdb_t *db, const char *url) return(-1); } db->servers = alpm_list_add(db->servers, server); - _alpm_log(PM_LOG_DEBUG, _("adding new server to database '%s': protocol '%s', server '%s', path '%s'"), + _alpm_log(PM_LOG_DEBUG, "adding new server to database '%s': protocol '%s', server '%s', path '%s'\n", db->treename, server->s_url->scheme, server->s_url->host, server->s_url->doc); } else { FREELIST(db->servers); - _alpm_log(PM_LOG_DEBUG, _("serverlist flushed for '%s'"), db->treename); + _alpm_log(PM_LOG_DEBUG, "serverlist flushed for '%s'\n", db->treename); } return(0); @@ -200,7 +247,7 @@ int SYMEXPORT alpm_db_update(int force, pmdb_t *db) /* get the lastupdate time */ _alpm_db_getlastupdate(db, lastupdate); if(strlen(lastupdate) == 0) { - _alpm_log(PM_LOG_DEBUG, _("failed to get lastupdate time for %s (no big deal)"), db->treename); + _alpm_log(PM_LOG_DEBUG, "failed to get lastupdate time for %s (no big deal)\n", db->treename); } } @@ -219,21 +266,23 @@ int SYMEXPORT alpm_db_update(int force, pmdb_t *db) } else if(ret == -1) { /* we use downloadLastErrString and downloadLastErrCode here, error returns from * libdownload */ - _alpm_log(PM_LOG_DEBUG, _("failed to sync db: %s [%d]"), downloadLastErrString, downloadLastErrCode); + _alpm_log(PM_LOG_DEBUG, "failed to sync db: %s [%d]\n", + downloadLastErrString, downloadLastErrCode); RET_ERR(PM_ERR_DB_SYNC, -1); } else { if(strlen(newmtime)) { - _alpm_log(PM_LOG_DEBUG, _("sync: new mtime for %s: %s"), db->treename, newmtime); + _alpm_log(PM_LOG_DEBUG, "sync: new mtime for %s: %s\n", + db->treename, newmtime); _alpm_db_setlastupdate(db, newmtime); } snprintf(path, PATH_MAX, "%s%s" DBEXT, dbpath, db->treename); /* remove the old dir */ - _alpm_log(PM_LOG_DEBUG, _("flushing database %s%s"), db->path); + _alpm_log(PM_LOG_DEBUG, "flushing database %s%s\n", db->path); for(lp = _alpm_db_get_pkgcache(db); lp; lp = lp->next) { pmpkg_t *pkg = lp->data; if(pkg && _alpm_db_remove(db, pkg) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not remove database entry %s%s"), db->treename, + _alpm_log(PM_LOG_ERROR, _("could not remove database entry %s%s\n"), db->treename, alpm_pkg_get_name(pkg)); RET_ERR(PM_ERR_DB_REMOVE, -1); } @@ -369,19 +418,6 @@ alpm_list_t SYMEXPORT *alpm_db_getgrpcache(pmdb_t *db) return(_alpm_db_get_grpcache(db)); } -/** Tests a database - * @param db pointer to the package database to search in - * @return the list of problems found on success, NULL on error - */ -alpm_list_t SYMEXPORT *alpm_db_test(pmdb_t *db) -{ - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(db != NULL, return(NULL)); - - return(_alpm_db_test(db)); -} - /** Searches a database * @param db pointer to the package database to search in * @param needles the list of strings to search for @@ -404,7 +440,7 @@ alpm_list_t SYMEXPORT *alpm_db_search(pmdb_t *db, const alpm_list_t* needles) /** Get a list of upgradable packages on the current system * @return a pmsyncpkg_t list of packages that are out of date */ -alpm_list_t SYMEXPORT *alpm_db_get_upgrades() +alpm_list_t SYMEXPORT *alpm_db_get_upgrades(void) { alpm_list_t *syncpkgs = NULL; const alpm_list_t *i, *j, *k, *m; @@ -413,7 +449,7 @@ alpm_list_t SYMEXPORT *alpm_db_get_upgrades() /* TODO holy nested loops, Batman! */ /* check for "recommended" package replacements */ - _alpm_log(PM_LOG_DEBUG, _("checking for package replacements")); + _alpm_log(PM_LOG_DEBUG, "checking for package replacements\n"); for(i = handle->dbs_sync; i; i = i->next) { for(j = _alpm_db_get_pkgcache(i->data); j; j = j->next) { pmpkg_t *spkg = j->data; @@ -424,10 +460,10 @@ alpm_list_t SYMEXPORT *alpm_db_get_upgrades() pmpkg_t *lpkg = m->data; if(strcmp(k->data, alpm_pkg_get_name(lpkg)) == 0) { - _alpm_log(PM_LOG_DEBUG, _("checking replacement '%s' for package '%s'"), k->data, - alpm_pkg_get_name(spkg)); + _alpm_log(PM_LOG_DEBUG, "checking replacement '%s' for package '%s'\n", + k->data, alpm_pkg_get_name(spkg)); if(alpm_list_find_str(handle->ignorepkg, alpm_pkg_get_name(lpkg))) { - _alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (to be replaced by %s-%s)"), + _alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (to be replaced by %s-%s)\n"), alpm_pkg_get_name(lpkg), alpm_pkg_get_version(lpkg), alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg)); } else { @@ -457,7 +493,7 @@ alpm_list_t SYMEXPORT *alpm_db_get_upgrades() sync->data = alpm_list_add(NULL, dummy); syncpkgs = alpm_list_add(syncpkgs, sync); } - _alpm_log(PM_LOG_DEBUG, _("%s-%s elected for upgrade (to be replaced by %s-%s)"), + _alpm_log(PM_LOG_DEBUG, "%s-%s elected for upgrade (to be replaced by %s-%s)\n", alpm_pkg_get_name(lpkg), alpm_pkg_get_version(lpkg), alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg)); } @@ -479,7 +515,8 @@ alpm_list_t SYMEXPORT *alpm_db_get_upgrades() spkg = _alpm_db_get_pkgfromcache(j->data, alpm_pkg_get_name(local)); } if(spkg == NULL) { - _alpm_log(PM_LOG_DEBUG, _("'%s' not found in sync db -- skipping"), alpm_pkg_get_name(local)); + _alpm_log(PM_LOG_DEBUG, "'%s' not found in sync db -- skipping\n", + alpm_pkg_get_name(local)); continue; } @@ -493,13 +530,13 @@ alpm_list_t SYMEXPORT *alpm_db_get_upgrades() } } if(replace) { - _alpm_log(PM_LOG_DEBUG, _("'%s' is already elected for removal -- skipping"), + _alpm_log(PM_LOG_DEBUG, "'%s' is already elected for removal -- skipping\n", alpm_pkg_get_name(local)); continue; } if(alpm_pkg_compare_versions(local, spkg)) { - _alpm_log(PM_LOG_DEBUG, _("%s elected for upgrade (%s => %s)"), + _alpm_log(PM_LOG_DEBUG, "%s elected for upgrade (%s => %s)\n", alpm_pkg_get_name(local), alpm_pkg_get_version(local), alpm_pkg_get_version(spkg)); @@ -547,15 +584,13 @@ pmdb_t *_alpm_db_new(const char *dbpath, const char *treename) db = calloc(1, sizeof(pmdb_t)); if(db == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failed: could not allocate %d bytes"), - sizeof(pmdb_t)); + _alpm_log(PM_LOG_ERROR, "calloc : %s\n", strerror(errno)); RET_ERR(PM_ERR_MEMORY, NULL); } db->path = calloc(1, pathsize); if(db->path == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failed: could not allocate %d bytes"), - pathsize); + _alpm_log(PM_LOG_ERROR, "calloc : %s\n", strerror(errno)); FREE(db); RET_ERR(PM_ERR_MEMORY, NULL); } @@ -568,12 +603,17 @@ pmdb_t *_alpm_db_new(const char *dbpath, const char *treename) void _alpm_db_free(pmdb_t *db) { + alpm_list_t *tmp; + ALPM_LOG_FUNC; - alpm_list_t *tmp; + /* cleanup pkgcache */ + _alpm_db_free_pkgcache(db); + /* cleanup server list */ for(tmp = db->servers; tmp; tmp = alpm_list_next(tmp)) { _alpm_server_free(tmp->data); } + alpm_list_free(db->servers); FREE(db->path); FREE(db); @@ -601,7 +641,7 @@ alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles) continue; } targ = i->data; - _alpm_log(PM_LOG_DEBUG, "searching for target '%s'", targ); + _alpm_log(PM_LOG_DEBUG, "searching for target '%s'\n", targ); if(regcomp(®, targ, REG_EXTENDED | REG_NOSUB | REG_ICASE | REG_NEWLINE) != 0) { RET_ERR(PM_ERR_INVALID_REGEX, NULL); @@ -632,7 +672,7 @@ alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles) } if(matched != NULL) { - _alpm_log(PM_LOG_DEBUG, " search target '%s' matched '%s'", + _alpm_log(PM_LOG_DEBUG, " search target '%s' matched '%s'\n", targ, matched); ret = alpm_list_add(ret, pkg); } @@ -644,7 +684,7 @@ alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles) return(ret); } -pmdb_t *_alpm_db_register(const char *treename) +pmdb_t *_alpm_db_register_local(void) { struct stat buf; pmdb_t *db; @@ -653,56 +693,97 @@ pmdb_t *_alpm_db_register(const char *treename) ALPM_LOG_FUNC; - if(strcmp(treename, "local") == 0) { - if(handle->db_local != NULL) { - _alpm_log(PM_LOG_WARNING, _("attempt to re-register the 'local' DB")); - RET_ERR(PM_ERR_DB_NOT_NULL, NULL); - } - } else { - alpm_list_t *i; - for(i = handle->dbs_sync; i; i = i->next) { - pmdb_t *sdb = i->data; - if(strcmp(treename, sdb->treename) == 0) { - _alpm_log(PM_LOG_DEBUG, _("attempt to re-register the '%s' database, using existing"), sdb->treename); - return sdb; - } - } + if(handle->db_local != NULL) { + _alpm_log(PM_LOG_WARNING, _("attempt to re-register the 'local' DB\n")); + RET_ERR(PM_ERR_DB_NOT_NULL, NULL); } - - _alpm_log(PM_LOG_DEBUG, _("registering database '%s'"), treename); + + _alpm_log(PM_LOG_DEBUG, "registering local database\n"); /* make sure the database directory exists */ dbpath = alpm_option_get_dbpath(); if(!dbpath) { - _alpm_log(PM_LOG_WARNING, _("database path is undefined")); + _alpm_log(PM_LOG_WARNING, _("database path is undefined\n")); RET_ERR(PM_ERR_DB_OPEN, NULL); } - snprintf(path, PATH_MAX, "%s%s", dbpath, treename); + snprintf(path, PATH_MAX, "%slocal", dbpath); + /* TODO this is rediculous, we try to do this even if we can't */ if(stat(path, &buf) != 0 || !S_ISDIR(buf.st_mode)) { - _alpm_log(PM_LOG_DEBUG, _("database directory '%s' does not exist, creating it"), + _alpm_log(PM_LOG_DEBUG, "database dir '%s' does not exist, creating it\n", path); if(_alpm_makepath(path) != 0) { RET_ERR(PM_ERR_SYSTEM, NULL); } } - db = _alpm_db_new(handle->dbpath, treename); + db = _alpm_db_new(dbpath, "local"); if(db == NULL) { RET_ERR(PM_ERR_DB_CREATE, NULL); } - _alpm_log(PM_LOG_DEBUG, _("opening database '%s'"), db->treename); + _alpm_log(PM_LOG_DEBUG, "opening database '%s'\n", db->treename); if(_alpm_db_open(db) == -1) { _alpm_db_free(db); RET_ERR(PM_ERR_DB_OPEN, NULL); } - if(strcmp(treename, "local") == 0) { - handle->db_local = db; - } else { - handle->dbs_sync = alpm_list_add(handle->dbs_sync, db); + handle->db_local = db; + return(db); +} + +pmdb_t *_alpm_db_register_sync(const char *treename) +{ + struct stat buf; + pmdb_t *db; + const char *dbpath; + char path[PATH_MAX]; + alpm_list_t *i; + + ALPM_LOG_FUNC; + + for(i = handle->dbs_sync; i; i = i->next) { + pmdb_t *sdb = i->data; + if(strcmp(treename, sdb->treename) == 0) { + _alpm_log(PM_LOG_DEBUG, "attempt to re-register the '%s' database, using existing\n", sdb->treename); + return sdb; + } + } + + _alpm_log(PM_LOG_DEBUG, "registering sync database '%s'\n", treename); + + /* make sure the database directory exists */ + dbpath = alpm_option_get_dbpath(); + if(!dbpath) { + _alpm_log(PM_LOG_WARNING, _("database path is undefined\n")); + RET_ERR(PM_ERR_DB_OPEN, NULL); + } + /* all sync DBs now reside in the sync/ subdir of the dbpath */ + snprintf(path, PATH_MAX, "%ssync/%s", dbpath, treename); + /* TODO this is rediculous, we try to do this even if we can't */ + if(stat(path, &buf) != 0 || !S_ISDIR(buf.st_mode)) { + _alpm_log(PM_LOG_DEBUG, "database dir '%s' does not exist, creating it\n", + path); + if(_alpm_makepath(path) != 0) { + RET_ERR(PM_ERR_SYSTEM, NULL); + } + } + + /* Ensure the db gets the real path. */ + path[0] = '\0'; + snprintf(path, PATH_MAX, "%ssync/", dbpath); + + db = _alpm_db_new(path, treename); + if(db == NULL) { + RET_ERR(PM_ERR_DB_CREATE, NULL); + } + + _alpm_log(PM_LOG_DEBUG, "opening database '%s'\n", db->treename); + if(_alpm_db_open(db) == -1) { + _alpm_db_free(db); + RET_ERR(PM_ERR_DB_OPEN, NULL); } + handle->dbs_sync = alpm_list_add(handle->dbs_sync, db); return(db); } diff --git a/lib/libalpm/db.h b/lib/libalpm/db.h index 2597c8c4..3ee49770 100644 --- a/lib/libalpm/db.h +++ b/lib/libalpm/db.h @@ -52,11 +52,11 @@ pmdb_t *_alpm_db_new(const char *dbpath, const char *treename); void _alpm_db_free(pmdb_t *db); int _alpm_db_cmp(const void *db1, const void *db2); alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles); -pmdb_t *_alpm_db_register(const char *treename); +pmdb_t *_alpm_db_register_local(void); +pmdb_t *_alpm_db_register_sync(const char *treename); /* be.c, backend specific calls */ int _alpm_db_install(pmdb_t *db, const char *dbfile); -alpm_list_t *_alpm_db_test(pmdb_t *db); int _alpm_db_open(pmdb_t *db); void _alpm_db_close(pmdb_t *db); void _alpm_db_rewind(pmdb_t *db); diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c index 524136bd..946a42ff 100644 --- a/lib/libalpm/deps.c +++ b/lib/libalpm/deps.c @@ -26,9 +26,6 @@ #include <stdlib.h> #include <stdio.h> #include <string.h> -#ifdef __sun__ -#include <strings.h> -#endif /* libalpm */ #include "deps.h" @@ -40,7 +37,6 @@ #include "db.h" #include "cache.h" #include "provide.h" -#include "versioncmp.h" #include "handle.h" extern pmhandle_t *handle; @@ -77,7 +73,7 @@ pmdepmissing_t *_alpm_depmiss_new(const char *target, pmdeptype_t type, miss = malloc(sizeof(pmdepmissing_t)); if(miss == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmdepmissing_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmdepmissing_t)); RET_ERR(PM_ERR_MEMORY, NULL); } @@ -111,6 +107,46 @@ int _alpm_depmiss_isin(pmdepmissing_t *needle, alpm_list_t *haystack) return(0); } +/* Convert a list of pmpkg_t * to a graph structure, + * with a edge for each dependency. + * Returns a list of vertices (one vertex = one package) + * (used by alpm_sortbydeps) + */ +static alpm_list_t *_alpm_graph_init(alpm_list_t *targets) +{ + alpm_list_t *i, *j, *k; + alpm_list_t *vertices = NULL; + /* We create the vertices */ + for(i = targets; i; i = i->next) { + pmgraph_t *vertex = _alpm_graph_new(); + vertex->data = (void *)i->data; + vertices = alpm_list_add(vertices, vertex); + } + + /* We compute the edges */ + for(i = vertices; i; i = i->next) { + pmgraph_t *vertex_i = i->data; + pmpkg_t *p_i = vertex_i->data; + /* TODO this should be somehow combined with _alpm_checkdeps */ + for(j = vertices; j; j = j->next) { + pmgraph_t *vertex_j = j->data; + pmpkg_t *p_j = vertex_j->data; + int child = 0; + for(k = alpm_pkg_get_depends(p_i); k && !child; k = k->next) { + pmdepend_t *depend = alpm_splitdep(k->data); + child = alpm_depcmp(p_j, depend); + free(depend); + } + if(child) { + vertex_i->children = + alpm_list_add(vertex_i->children, vertex_j); + } + } + vertex_i->childptr = vertex_i->children; + } + return(vertices); +} + /* Re-order a list of target packages with respect to their dependencies. * * Example (PM_TRANS_TYPE_ADD): @@ -129,7 +165,6 @@ int _alpm_depmiss_isin(pmdepmissing_t *needle, alpm_list_t *haystack) alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, pmtranstype_t mode) { alpm_list_t *newtargs = NULL; - alpm_list_t *i, *j, *k; alpm_list_t *vertices = NULL; alpm_list_t *vptr; pmgraph_t *vertex; @@ -140,34 +175,9 @@ alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, pmtranstype_t mode) return(NULL); } - _alpm_log(PM_LOG_DEBUG, _("started sorting dependencies")); - - /* We create the vertices */ - for(i = targets; i; i = i->next) { - pmgraph_t *vertex = _alpm_graph_new(); - vertex->data = (void *)i->data; - vertices = alpm_list_add(vertices, vertex); - } + _alpm_log(PM_LOG_DEBUG, "started sorting dependencies\n"); - /* We compute the edges */ - for(i = vertices; i; i = i->next) { - pmgraph_t *vertex_i = i->data; - pmpkg_t *p_i = vertex_i->data; - /* TODO this should be somehow combined with _alpm_checkdeps */ - for(j = vertices; j; j = j->next) { - pmgraph_t *vertex_j = j->data; - pmpkg_t *p_j = vertex_j->data; - int child = 0; - for(k = alpm_pkg_get_depends(p_i); k && !child; k = k->next) { - pmdepend_t *depend = alpm_splitdep(k->data); - child = alpm_depcmp(p_j, depend); - free(depend); - } - if(child) vertex_i->children = - alpm_list_add(vertex_i->children, vertex_j); - } - vertex_i->childptr = vertex_i->children; - } + vertices = _alpm_graph_init(targets); vptr = vertices; vertex = vertices->data; @@ -203,7 +213,7 @@ alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, pmtranstype_t mode) } } - _alpm_log(PM_LOG_DEBUG, _("sorting dependencies finished")); + _alpm_log(PM_LOG_DEBUG, "sorting dependencies finished\n"); if(mode == PM_TRANS_TYPE_REMOVE) { /* we're removing packages, so reverse the order */ @@ -218,12 +228,19 @@ alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, pmtranstype_t mode) return(newtargs); } -/** Checks dependencies and returns missing ones in a list. Dependencies can include versions with depmod operators. +/** Checks dependencies and returns missing ones in a list. + * Dependencies can include versions with depmod operators. * @param db pointer to the local package database * @param op transaction type * @param packages an alpm_list_t* of packages to be checked - * @return an alpm_list_t* of missing_t pointers. + * @return an alpm_list_t* of pmpkg_t* of missing_t pointers. */ +alpm_list_t SYMEXPORT *alpm_checkdeps(pmdb_t *db, pmtranstype_t op, + alpm_list_t *packages) +{ + return(_alpm_checkdeps(db, op, packages)); +} + alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, alpm_list_t *packages) { @@ -246,12 +263,12 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, pmpkg_t *newpkg = i->data; pmpkg_t *oldpkg; if(newpkg == NULL) { - _alpm_log(PM_LOG_DEBUG, _("null package found in package list")); + _alpm_log(PM_LOG_DEBUG, "null package found in package list\n"); continue; } if((oldpkg = _alpm_db_get_pkgfromcache(db, alpm_pkg_get_name(newpkg))) == NULL) { - _alpm_log(PM_LOG_DEBUG, _("cannot find package installed '%s'"), + _alpm_log(PM_LOG_DEBUG, "cannot find package installed '%s'\n", alpm_pkg_get_name(newpkg)); continue; } @@ -284,7 +301,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, pmpkg_t *pkg = l->data; if(alpm_depcmp(pkg, depend)) { - _alpm_log(PM_LOG_DEBUG, _("checkdeps: dependency '%s' has moved from '%s' to '%s'"), + _alpm_log(PM_LOG_DEBUG, "checkdeps: dependency '%s' has moved from '%s' to '%s'\n", depend->name, alpm_pkg_get_name(oldpkg), alpm_pkg_get_name(pkg)); satisfied = 1; break; @@ -300,7 +317,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, if(alpm_depcmp(pkg, depend) && !_alpm_pkg_find(alpm_pkg_get_name(pkg), packages)) { /* we ignore packages that will be updated because we know * that the updated ones don't satisfy depend */ - _alpm_log(PM_LOG_DEBUG, _("checkdeps: dependency '%s' satisfied by installed package '%s'"), + _alpm_log(PM_LOG_DEBUG, "checkdeps: dependency '%s' satisfied by installed package '%s'\n", depend->name, alpm_pkg_get_name(pkg)); satisfied = 1; break; @@ -309,7 +326,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, } if(!satisfied) { - _alpm_log(PM_LOG_DEBUG, _("checkdeps: updated '%s' won't satisfy a dependency of '%s'"), + _alpm_log(PM_LOG_DEBUG, "checkdeps: updated '%s' won't satisfy a dependency of '%s'\n", alpm_pkg_get_name(oldpkg), alpm_pkg_get_name(p)); miss = _alpm_depmiss_new(p->name, PM_DEP_TYPE_DEPEND, depend->mod, depend->name, depend->version); @@ -320,7 +337,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, } } } - free(depend); + FREE(depend); } } } @@ -330,7 +347,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, for(i = packages; i; i = i->next) { pmpkg_t *tp = i->data; if(tp == NULL) { - _alpm_log(PM_LOG_DEBUG, _("null package found in package list")); + _alpm_log(PM_LOG_DEBUG, "null package found in package list\n"); continue; } @@ -358,7 +375,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, /* else if still not found... */ if(!found) { - _alpm_log(PM_LOG_DEBUG, _("missing dependency '%s' for package '%s'"), + _alpm_log(PM_LOG_DEBUG, "missing dependency '%s' for package '%s'\n", depend->name, alpm_pkg_get_name(tp)); miss = _alpm_depmiss_new(alpm_pkg_get_name(tp), PM_DEP_TYPE_DEPEND, depend->mod, depend->name, depend->version); @@ -368,7 +385,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, FREE(miss); } } - free(depend); + FREE(depend); } } } else if(op == PM_TRANS_TYPE_REMOVE) { @@ -377,7 +394,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, pmpkg_t *rmpkg = alpm_list_getdata(i); if(rmpkg == NULL) { - _alpm_log(PM_LOG_DEBUG, _("null package found in package list")); + _alpm_log(PM_LOG_DEBUG, "null package found in package list\n"); continue; } for(j = alpm_pkg_get_requiredby(rmpkg); j; j = j->next) { @@ -404,7 +421,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, for(l = _alpm_db_get_pkgcache(db); l; l = l->next) { pmpkg_t *pkg = l->data; if(alpm_depcmp(pkg, depend) && !_alpm_pkg_find(alpm_pkg_get_name(pkg), packages)) { - _alpm_log(PM_LOG_DEBUG, _("checkdeps: dependency '%s' satisfied by installed package '%s'"), + _alpm_log(PM_LOG_DEBUG, "checkdeps: dependency '%s' satisfied by installed package '%s'\n", depend->name, alpm_pkg_get_name(pkg)); satisfied = 1; break; @@ -412,7 +429,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, } if(!satisfied) { - _alpm_log(PM_LOG_DEBUG, _("checkdeps: found %s which requires %s"), + _alpm_log(PM_LOG_DEBUG, "checkdeps: found %s which requires %s\n", alpm_pkg_get_name(p), alpm_pkg_get_name(rmpkg)); miss = _alpm_depmiss_new(alpm_pkg_get_name(p), PM_DEP_TYPE_DEPEND, depend->mod, depend->name, @@ -424,7 +441,7 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, } } } - free(depend); + FREE(depend); } } } @@ -433,6 +450,61 @@ alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, return(baddeps); } +static int _alpm_dep_vercmp(const char *version1, pmdepmod_t mod, + const char *version2) +{ + int equal = 0; + + if(mod == PM_DEP_MOD_ANY) { + equal = 1; + } else { + int cmp = _alpm_versioncmp(version1, version2); + switch(mod) { + case PM_DEP_MOD_EQ: equal = (cmp == 0); break; + case PM_DEP_MOD_GE: equal = (cmp >= 0); break; + case PM_DEP_MOD_LE: equal = (cmp <= 0); break; + default: equal = 1; break; + } + } + return(equal); +} + +int SYMEXPORT alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep) +{ + int equal = 0; + + ALPM_LOG_FUNC; + + const char *pkgname = alpm_pkg_get_name(pkg); + const char *pkgversion = alpm_pkg_get_version(pkg); + + if(strcmp(pkgname, dep->name) == 0 + || alpm_list_find_str(alpm_pkg_get_provides(pkg), dep->name)) { + + equal = _alpm_dep_vercmp(pkgversion, dep->mod, dep->version); + + char *mod = "~="; + switch(dep->mod) { + case PM_DEP_MOD_EQ: mod = "=="; break; + case PM_DEP_MOD_GE: mod = ">="; break; + case PM_DEP_MOD_LE: mod = "<="; break; + default: break; + } + + if(strlen(dep->version) > 0) { + _alpm_log(PM_LOG_DEBUG, "depcmp: %s-%s %s %s-%s => %s\n", + pkgname, pkgversion, + mod, dep->name, dep->version, (equal ? "match" : "no match")); + } else { + _alpm_log(PM_LOG_DEBUG, "depcmp: %s-%s %s %s => %s\n", + pkgname, pkgversion, + mod, dep->name, (equal ? "match" : "no match")); + } + } + + return(equal); +} + pmdepend_t SYMEXPORT *alpm_splitdep(const char *depstring) { pmdepend_t *depend; @@ -446,7 +518,7 @@ pmdepend_t SYMEXPORT *alpm_splitdep(const char *depstring) depend = malloc(sizeof(pmdepend_t)); if(depend == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmdepend_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmdepend_t)); return(NULL); } @@ -482,10 +554,12 @@ pmdepend_t SYMEXPORT *alpm_splitdep(const char *depstring) return(depend); } -/* These parameters are messy. We check if this package, given a list of - * targets (and a db), is safe to remove. We do NOT remove it if it is in the - * target list */ -static int can_remove_package(pmdb_t *db, pmpkg_t *pkg, alpm_list_t *targets) +/* These parameters are messy. We check if this package, given a list of + * targets and a db is safe to remove. We do NOT remove it if it is in the + * target list, or if if the package was explictly installed and + * include_explicit == 0 */ +static int can_remove_package(pmdb_t *db, pmpkg_t *pkg, alpm_list_t *targets, + int include_explicit) { alpm_list_t *i; @@ -493,12 +567,21 @@ static int can_remove_package(pmdb_t *db, pmpkg_t *pkg, alpm_list_t *targets) return(0); } - /* see if it was explicitly installed */ - if(alpm_pkg_get_reason(pkg) == PM_PKG_REASON_EXPLICIT) { - _alpm_log(PM_LOG_DEBUG, _("excluding %s -- explicitly installed"), alpm_pkg_get_name(pkg)); - return(0); + if(!include_explicit) { + /* see if it was explicitly installed */ + if(alpm_pkg_get_reason(pkg) == PM_PKG_REASON_EXPLICIT) { + _alpm_log(PM_LOG_DEBUG, "excluding %s -- explicitly installed\n", + alpm_pkg_get_name(pkg)); + return(0); + } } + /* TODO: checkdeps could be used here, it handles multiple providers + * better, but that also makes it slower. + * Also this would require to first add the package to the targets list, + * then call checkdeps with it, then remove the package from the targets list + * if checkdeps detected it would break something */ + /* see if other packages need it */ for(i = alpm_pkg_get_requiredby(pkg); i; i = i->next) { pmpkg_t *reqpkg = _alpm_db_get_pkgfromcache(db, i->data); @@ -511,89 +594,76 @@ static int can_remove_package(pmdb_t *db, pmpkg_t *pkg, alpm_list_t *targets) return(1); } -/* return a new alpm_list_t target list containing all packages in the original - * target list, as well as all their un-needed dependencies. By un-needed, - * I mean dependencies that are *only* required for packages in the target - * list, so they can be safely removed. This function is recursive. +/** + * @brief Adds unneeded dependencies to an existing list of packages. + * By unneeded, we mean dependencies that are only required by packages in the + * target list, so they can be safely removed. + * + * @param db package database to do dependency tracing in + * @param *targs pointer to a list of packages + * @param include_explicit if 0, explicitly installed packages are not included */ -alpm_list_t *_alpm_removedeps(pmdb_t *db, alpm_list_t *targs) +void _alpm_recursedeps(pmdb_t *db, alpm_list_t **targs, int include_explicit) { alpm_list_t *i, *j, *k; - alpm_list_t *newtargs = targs; ALPM_LOG_FUNC; - if(db == NULL) { - return(newtargs); + if(db == NULL || targs == NULL) { + return; } - for(i = targs; i; i = i->next) { - pmpkg_t *pkg = i->data; - for(j = alpm_pkg_get_depends(pkg); j; j = j->next) { - pmdepend_t *depend = alpm_splitdep(j->data); - pmpkg_t *deppkg; - if(depend == NULL) { - continue; - } - - deppkg = _alpm_db_get_pkgfromcache(db, depend->name); - if(deppkg == NULL) { - /* package not found... look for a provision instead */ - alpm_list_t *provides = _alpm_db_whatprovides(db, depend->name); - if(!provides) { - /* Not found, that's fine, carry on */ - _alpm_log(PM_LOG_DEBUG, _("cannot find package \"%s\" or anything that provides it!"), depend->name); + /* TODO: the while loop should be removed if we can assume + * that alpm_list_add (or another function) adds to the end of the list, + * and that the target list is topo sorted (by _alpm_sortbydeps()). + */ + int ready = 0; + while(!ready) { + ready = 1; + for(i = *targs; i; i = i->next) { + pmpkg_t *pkg = i->data; + for(j = alpm_pkg_get_depends(pkg); j; j = j->next) { + pmdepend_t *depend = alpm_splitdep(j->data); + if(depend == NULL) { continue; } - for(k = provides; k; k = k->next) { - pmpkg_t *provpkg = k->data; - if(can_remove_package(db, provpkg, newtargs)) { - pmpkg_t *pkg = _alpm_pkg_dup(provpkg); - - _alpm_log(PM_LOG_DEBUG, _("adding '%s' to the targets"), alpm_pkg_get_name(pkg)); + for(k = _alpm_db_get_pkgcache(db); k; k = k->next) { + pmpkg_t *deppkg = k->data; + if(alpm_depcmp(deppkg,depend) + && can_remove_package(db, deppkg, *targs, include_explicit)) { + _alpm_log(PM_LOG_DEBUG, "adding '%s' to the targets\n", + alpm_pkg_get_name(deppkg)); /* add it to the target list */ - newtargs = alpm_list_add(newtargs, pkg); - newtargs = _alpm_removedeps(db, newtargs); + *targs = alpm_list_add(*targs, _alpm_pkg_dup(deppkg)); + ready = 0; } } - alpm_list_free(provides); - } else if(can_remove_package(db, deppkg, newtargs)) { - pmpkg_t *pkg = _alpm_pkg_dup(deppkg); - - _alpm_log(PM_LOG_DEBUG, _("adding '%s' to the targets"), alpm_pkg_get_name(pkg)); - - /* add it to the target list */ - newtargs = alpm_list_add(newtargs, pkg); - newtargs = _alpm_removedeps(db, newtargs); + FREE(depend); } - free(depend); } } - - return(newtargs); } /* populates *list with packages that need to be installed to satisfy all * dependencies (recursive) for syncpkg * - * make sure *list and *trail are already initialized + * make sure **list is already initialized */ int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *syncpkg, - alpm_list_t *list, alpm_list_t *trail, pmtrans_t *trans, - alpm_list_t **data) + alpm_list_t **list, pmtrans_t *trans, alpm_list_t **data) { - alpm_list_t *i, *j; + alpm_list_t *i, *j, *k; alpm_list_t *targ; alpm_list_t *deps = NULL; ALPM_LOG_FUNC; - if(local == NULL || dbs_sync == NULL || syncpkg == NULL) { + if(local == NULL || dbs_sync == NULL || syncpkg == NULL || list == NULL) { return(-1); } - _alpm_log(PM_LOG_DEBUG, _("started resolving dependencies")); + _alpm_log(PM_LOG_DEBUG, "started resolving dependencies\n"); targ = alpm_list_add(NULL, syncpkg); deps = _alpm_checkdeps(local, PM_TRANS_TYPE_ADD, targ); alpm_list_free(targ); @@ -605,14 +675,15 @@ int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *syncpkg, for(i = deps; i; i = i->next) { int found = 0; pmdepmissing_t *miss = i->data; + pmdepend_t *missdep = &(miss->depend); pmpkg_t *sync = NULL; - /* check if one of the packages in *list already provides this dependency */ - for(j = list; j && !found; j = j->next) { + /* check if one of the packages in *list already satisfies this dependency */ + for(j = *list; j && !found; j = j->next) { pmpkg_t *sp = j->data; - if(alpm_list_find_str(alpm_pkg_get_provides(sp), miss->depend.name)) { - _alpm_log(PM_LOG_DEBUG, _("%s provides dependency %s -- skipping"), - alpm_pkg_get_name(sp), miss->depend.name); + if(alpm_depcmp(sp, missdep)) { + _alpm_log(PM_LOG_DEBUG, "%s satisfies dependency %s -- skipping\n", + alpm_pkg_get_name(sp), missdep->name); found = 1; } } @@ -622,29 +693,27 @@ int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *syncpkg, /* find the package in one of the repositories */ /* check literals */ - for(j = dbs_sync; !sync && j; j = j->next) { - sync = _alpm_db_get_pkgfromcache(j->data, miss->depend.name); + for(j = dbs_sync; j && !found; j = j->next) { + if((sync = _alpm_db_get_pkgfromcache(j->data, missdep->name))) { + found = alpm_depcmp(sync, missdep); + } } - /*TODO this autoresolves the first 'provides' package... we should fix this + /*TODO this autoresolves the first 'satisfier' package... we should fix this * somehow */ /* check provides */ - if(!sync) { - for(j = dbs_sync; !sync && j; j = j->next) { - alpm_list_t *provides; - provides = _alpm_db_whatprovides(j->data, miss->depend.name); - if(provides) { - sync = provides->data; - } - alpm_list_free(provides); + for(j = dbs_sync; j && !found; j = j->next) { + for(k = _alpm_db_get_pkgcache(j->data); k && !found; k = k->next) { + sync = k->data; + found = alpm_depcmp(sync, missdep); } } - if(!sync) { - _alpm_log(PM_LOG_ERROR, _("cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)"), - miss->target, miss->depend.name); + if(!found) { + _alpm_log(PM_LOG_ERROR, _("cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)\n"), + miss->target, missdep->name); if(data) { if((miss = malloc(sizeof(pmdepmissing_t))) == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmdepmissing_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmdepmissing_t)); FREELIST(*data); pm_errno = PM_ERR_MEMORY; goto error; @@ -655,53 +724,40 @@ int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *syncpkg, pm_errno = PM_ERR_UNSATISFIED_DEPS; goto error; } - if(_alpm_pkg_find(alpm_pkg_get_name(sync), list)) { - /* this dep is already in the target list */ - _alpm_log(PM_LOG_DEBUG, _("dependency %s is already in the target list -- skipping"), - alpm_pkg_get_name(sync)); - continue; + /* check pmo_ignorepkg and pmo_s_ignore to make sure we haven't pulled in + * something we're not supposed to. + */ + int usedep = 1; + if(alpm_list_find_str(handle->ignorepkg, alpm_pkg_get_name(sync))) { + pmpkg_t *dummypkg = _alpm_pkg_new(miss->target, NULL); + QUESTION(trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, dummypkg, sync, NULL, &usedep); + _alpm_pkg_free(dummypkg); } - - if(!_alpm_pkg_find(alpm_pkg_get_name(sync), trail)) { - /* check pmo_ignorepkg and pmo_s_ignore to make sure we haven't pulled in - * something we're not supposed to. - */ - int usedep = 1; - if(alpm_list_find_str(handle->ignorepkg, alpm_pkg_get_name(sync))) { - pmpkg_t *dummypkg = _alpm_pkg_new(miss->target, NULL); - QUESTION(trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, dummypkg, sync, NULL, &usedep); - _alpm_pkg_free(dummypkg); + if(usedep) { + _alpm_log(PM_LOG_DEBUG, "pulling dependency %s (needed by %s)\n", + alpm_pkg_get_name(sync), alpm_pkg_get_name(syncpkg)); + *list = alpm_list_add(*list, sync); + if(_alpm_resolvedeps(local, dbs_sync, sync, list, trans, data)) { + goto error; } - if(usedep) { - trail = alpm_list_add(trail, sync); - if(_alpm_resolvedeps(local, dbs_sync, sync, list, trail, trans, data)) { + } else { + _alpm_log(PM_LOG_ERROR, _("cannot resolve dependencies for \"%s\"\n"), miss->target); + if(data) { + if((miss = malloc(sizeof(pmdepmissing_t))) == NULL) { + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmdepmissing_t)); + FREELIST(*data); + pm_errno = PM_ERR_MEMORY; goto error; } - _alpm_log(PM_LOG_DEBUG, _("pulling dependency %s (needed by %s)"), - alpm_pkg_get_name(sync), alpm_pkg_get_name(syncpkg)); - list = alpm_list_add(list, sync); - } else { - _alpm_log(PM_LOG_ERROR, _("cannot resolve dependencies for \"%s\""), miss->target); - if(data) { - if((miss = malloc(sizeof(pmdepmissing_t))) == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmdepmissing_t)); - FREELIST(*data); - pm_errno = PM_ERR_MEMORY; - goto error; - } - *miss = *(pmdepmissing_t *)i->data; - *data = alpm_list_add(*data, miss); - } - pm_errno = PM_ERR_UNSATISFIED_DEPS; - goto error; + *miss = *(pmdepmissing_t *)i->data; + *data = alpm_list_add(*data, miss); } - } else { - /* cycle detected -- skip it */ - _alpm_log(PM_LOG_DEBUG, _("dependency cycle detected: %s"), sync->name); + pm_errno = PM_ERR_UNSATISFIED_DEPS; + goto error; } } - _alpm_log(PM_LOG_DEBUG, _("finished resolving dependencies")); + _alpm_log(PM_LOG_DEBUG, "finished resolving dependencies\n"); FREELIST(deps); @@ -712,7 +768,7 @@ error: return(-1); } -const char SYMEXPORT *alpm_dep_get_target(pmdepmissing_t *miss) +const char SYMEXPORT *alpm_miss_get_target(pmdepmissing_t *miss) { ALPM_LOG_FUNC; @@ -723,7 +779,7 @@ const char SYMEXPORT *alpm_dep_get_target(pmdepmissing_t *miss) return miss->target; } -pmdeptype_t SYMEXPORT alpm_dep_get_type(pmdepmissing_t *miss) +pmdeptype_t SYMEXPORT alpm_miss_get_type(pmdepmissing_t *miss) { ALPM_LOG_FUNC; @@ -734,36 +790,48 @@ pmdeptype_t SYMEXPORT alpm_dep_get_type(pmdepmissing_t *miss) return miss->type; } -pmdepmod_t SYMEXPORT alpm_dep_get_mod(pmdepmissing_t *miss) +pmdepend_t SYMEXPORT *alpm_miss_get_dep(pmdepmissing_t *miss) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(miss != NULL, return(NULL)); + + return &miss->depend; +} + +pmdepmod_t SYMEXPORT alpm_dep_get_mod(pmdepend_t *dep) { ALPM_LOG_FUNC; /* Sanity checks */ ASSERT(handle != NULL, return(-1)); - ASSERT(miss != NULL, return(-1)); + ASSERT(dep != NULL, return(-1)); - return miss->depend.mod; + return dep->mod; } -const char SYMEXPORT *alpm_dep_get_name(pmdepmissing_t *miss) +const char SYMEXPORT *alpm_dep_get_name(pmdepend_t *dep) { ALPM_LOG_FUNC; /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); - ASSERT(miss != NULL, return(NULL)); + ASSERT(dep != NULL, return(NULL)); - return miss->depend.name; + return dep->name; } -const char SYMEXPORT *alpm_dep_get_version(pmdepmissing_t *miss) +const char SYMEXPORT *alpm_dep_get_version(pmdepend_t *dep) { ALPM_LOG_FUNC; /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); - ASSERT(miss != NULL, return(NULL)); + ASSERT(dep != NULL, return(NULL)); - return miss->depend.version; + return dep->version; } + /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/deps.h b/lib/libalpm/deps.h index 2edbb503..59b26307 100644 --- a/lib/libalpm/deps.h +++ b/lib/libalpm/deps.h @@ -58,10 +58,9 @@ int _alpm_depmiss_isin(pmdepmissing_t *needle, alpm_list_t *haystack); alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, pmtranstype_t mode); alpm_list_t *_alpm_checkdeps(pmdb_t *db, pmtranstype_t op, alpm_list_t *packages); -alpm_list_t *_alpm_removedeps(pmdb_t *db, alpm_list_t *targs); +void _alpm_recursedeps(pmdb_t *db, alpm_list_t **targs, int include_explicit); int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *syncpkg, - alpm_list_t *list, alpm_list_t *trail, pmtrans_t *trans, - alpm_list_t **data); + alpm_list_t **list, pmtrans_t *trans, alpm_list_t **data); #endif /* _ALPM_DEPS_H */ diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c index 29ee61ad..f81d22da 100644 --- a/lib/libalpm/error.c +++ b/lib/libalpm/error.c @@ -30,6 +30,11 @@ #include "alpm.h" /* TODO does this really need a file all on its own? */ +const char SYMEXPORT *alpm_strerrorlast(void) +{ + return alpm_strerror(pm_errno); +} + const char SYMEXPORT *alpm_strerror(int err) { switch(err) { @@ -42,6 +47,8 @@ const char SYMEXPORT *alpm_strerror(int err) return _("insufficient privileges"); case PM_ERR_NOT_A_FILE: return _("could not find or read file"); + case PM_ERR_NOT_A_DIR: + return _("could not find or read directory"); case PM_ERR_WRONG_ARGS: return _("wrong or NULL argument passed"); /* Interface */ diff --git a/lib/libalpm/error.h b/lib/libalpm/error.h index 6294f05b..8e9e7c80 100644 --- a/lib/libalpm/error.h +++ b/lib/libalpm/error.h @@ -22,7 +22,7 @@ #define _ALPM_ERROR_H #define RET_ERR(err, ret) do { pm_errno = (err); \ - _alpm_log(PM_LOG_DEBUG, _("returning error %d from %s : %s\n"), err, __func__, alpm_strerror(err)); \ + _alpm_log(PM_LOG_DEBUG, "returning error %d from %s : %s\n", err, __func__, alpm_strerrorlast()); \ return(ret); } while(0) #endif /* _ALPM_ERROR_H */ diff --git a/lib/libalpm/group.c b/lib/libalpm/group.c index 58759d0d..7a6db163 100644 --- a/lib/libalpm/group.c +++ b/lib/libalpm/group.c @@ -41,7 +41,7 @@ pmgrp_t *_alpm_grp_new() grp = calloc(1, sizeof(pmgrp_t)); if(grp == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmgrp_t)); RET_ERR(PM_ERR_MEMORY, NULL); } diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index 7cee5020..ea252adb 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -30,6 +30,8 @@ #include <sys/types.h> #include <syslog.h> #include <time.h> +#include <sys/stat.h> +#include <errno.h> /* libalpm */ #include "handle.h" @@ -47,37 +49,16 @@ pmhandle_t *_alpm_handle_new() handle = malloc(sizeof(pmhandle_t)); if(handle == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmhandle_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmhandle_t)); RET_ERR(PM_ERR_MEMORY, NULL); } memset(handle, 0, sizeof(pmhandle_t)); handle->lckfd = -1; + handle->logstream = NULL; -#ifndef CYGWIN /* see if we're root or not */ handle->uid = geteuid(); -//#ifndef FAKEROOT -// if(!handle->uid && getenv("FAKEROOTKEY")) { -// /* fakeroot doesn't count, we're non-root */ -// handle->uid = 99; -// } -//#endif -// -// /* see if we're root or not (fakeroot does not count) */ -//#ifndef FAKEROOT -// if(handle->uid == 0 && !getenv("FAKEROOTKEY")) { -// /* } make vim indent work - stupid ifdef's */ -//#else -// if(handle->uid == 0) { -//#endif -// handle->access = PM_ACCESS_RW; -// } else { -// handle->access = PM_ACCESS_RO; -// } -//#else - handle->access = PM_ACCESS_RW; -#endif handle->root = NULL; handle->dbpath = NULL; handle->cachedirs = NULL; @@ -95,10 +76,10 @@ void _alpm_handle_free(pmhandle_t *handle) return; } - /* close logfiles */ - if(handle->logfd) { - fclose(handle->logfd); - handle->logfd = NULL; + /* close logfile */ + if(handle->logstream) { + fclose(handle->logstream); + handle->logstream= NULL; } if(handle->usesyslog) { handle->usesyslog = 0; @@ -147,76 +128,112 @@ void SYMEXPORT alpm_option_set_logcb(alpm_cb_log cb) { handle->logcb = cb; } void SYMEXPORT alpm_option_set_dlcb(alpm_cb_download cb) { handle->dlcb = cb; } -void SYMEXPORT alpm_option_set_root(const char *root) +int SYMEXPORT alpm_option_set_root(const char *root) { + struct stat st; + char *realroot; + size_t rootlen; + ALPM_LOG_FUNC; - if(handle->root) FREE(handle->root); + if(!root) { + pm_errno = PM_ERR_WRONG_ARGS; + return(-1); + } + if(stat(root, &st) == -1 || !S_ISDIR(st.st_mode)) { + pm_errno = PM_ERR_NOT_A_DIR; + return(-1); + } /* According to the man page, realpath is safe to use IFF the second arg is * NULL. */ - char *realroot = realpath(root, NULL); - if(realroot) { - root = realroot; - } else { - _alpm_log(PM_LOG_ERROR, _("cannot canonicalize specified root path '%s'"), root); + realroot = realpath(root, NULL); + if(!realroot) { + pm_errno = PM_ERR_NOT_A_DIR; + return(-1); } - if(root) { - /* verify root ends in a '/' */ - int rootlen = strlen(realroot); - if(realroot[rootlen-1] != '/') { - rootlen += 1; - } - handle->root = calloc(rootlen+1, sizeof(char)); - strncpy(handle->root, realroot, rootlen); - handle->root[rootlen-1] = '/'; + /* verify root ends in a '/' */ + rootlen = strlen(realroot); + if(realroot[rootlen-1] != '/') { + rootlen += 1; } - if(realroot) { - free(realroot); + if(handle->root) { + FREE(handle->root); } + handle->root = calloc(rootlen + 1, sizeof(char)); + strncpy(handle->root, realroot, rootlen); + handle->root[rootlen-1] = '/'; + FREE(realroot); + _alpm_log(PM_LOG_DEBUG, "option 'root' = %s\n", handle->root); + return(0); } -void SYMEXPORT alpm_option_set_dbpath(const char *dbpath) +int SYMEXPORT alpm_option_set_dbpath(const char *dbpath) { + struct stat st; + size_t dbpathlen, lockfilelen; + const char *lf = "db.lck"; + ALPM_LOG_FUNC; - if(handle->dbpath) FREE(handle->dbpath); - if(handle->lockfile) FREE(handle->lockfile); - if(dbpath) { - /* verify dbpath ends in a '/' */ - int dbpathlen = strlen(dbpath); - if(dbpath[dbpathlen-1] != '/') { - dbpathlen += 1; - } - handle->dbpath = calloc(dbpathlen+1, sizeof(char)); - strncpy(handle->dbpath, dbpath, dbpathlen); - handle->dbpath[dbpathlen-1] = '/'; - - const char *lf = "db.lck"; - int lockfilelen = strlen(handle->dbpath) + strlen(lf); - handle->lockfile = calloc(lockfilelen + 1, sizeof(char)); - snprintf(handle->lockfile, lockfilelen, "%s%s", handle->dbpath, lf); + if(!dbpath) { + pm_errno = PM_ERR_WRONG_ARGS; + return(-1); } + if(stat(dbpath, &st) == -1 || !S_ISDIR(st.st_mode)) { + pm_errno = PM_ERR_NOT_A_DIR; + return(-1); + } + /* verify dbpath ends in a '/' */ + dbpathlen = strlen(dbpath); + if(dbpath[dbpathlen-1] != '/') { + dbpathlen += 1; + } + if(handle->dbpath) { + FREE(handle->dbpath); + } + handle->dbpath = calloc(dbpathlen+1, sizeof(char)); + strncpy(handle->dbpath, dbpath, dbpathlen); + handle->dbpath[dbpathlen-1] = '/'; + _alpm_log(PM_LOG_DEBUG, "option 'dbpath' = %s\n", handle->dbpath); + if(handle->lockfile) { + FREE(handle->lockfile); + } + lockfilelen = strlen(handle->dbpath) + strlen(lf) + 1; + handle->lockfile = calloc(lockfilelen, sizeof(char)); + snprintf(handle->lockfile, lockfilelen, "%s%s", handle->dbpath, lf); + _alpm_log(PM_LOG_DEBUG, "option 'lockfile' = %s\n", handle->lockfile); + return(0); } -void SYMEXPORT alpm_option_add_cachedir(const char *cachedir) +int SYMEXPORT alpm_option_add_cachedir(const char *cachedir) { + struct stat st; + char *newcachedir; + size_t cachedirlen; + ALPM_LOG_FUNC; - if(cachedir) { - char *newcachedir; - /* verify cachedir ends in a '/' */ - int cachedirlen = strlen(cachedir); - if(cachedir[cachedirlen-1] != '/') { - cachedirlen += 1; - } - newcachedir = calloc(cachedirlen + 1, sizeof(char)); - strncpy(newcachedir, cachedir, cachedirlen); - newcachedir[cachedirlen-1] = '/'; - handle->cachedirs = alpm_list_add(handle->cachedirs, newcachedir); - _alpm_log(PM_LOG_DEBUG, _("option 'cachedir' = %s"), newcachedir); + if(!cachedir) { + pm_errno = PM_ERR_WRONG_ARGS; + return(-1); } + if(stat(cachedir, &st) == -1 || !S_ISDIR(st.st_mode)) { + pm_errno = PM_ERR_NOT_A_DIR; + return(-1); + } + /* verify cachedir ends in a '/' */ + cachedirlen = strlen(cachedir); + if(cachedir[cachedirlen-1] != '/') { + cachedirlen += 1; + } + newcachedir = calloc(cachedirlen + 1, sizeof(char)); + strncpy(newcachedir, cachedir, cachedirlen); + newcachedir[cachedirlen-1] = '/'; + handle->cachedirs = alpm_list_add(handle->cachedirs, newcachedir); + _alpm_log(PM_LOG_DEBUG, "option 'cachedir' = %s\n", newcachedir); + return(0); } void SYMEXPORT alpm_option_set_cachedirs(alpm_list_t *cachedirs) @@ -225,21 +242,48 @@ void SYMEXPORT alpm_option_set_cachedirs(alpm_list_t *cachedirs) if(cachedirs) handle->cachedirs = cachedirs; } -void SYMEXPORT alpm_option_set_logfile(const char *logfile) +int SYMEXPORT alpm_option_set_logfile(const char *logfile) { + char *oldlogfile = handle->logfile; + FILE *oldlogstream = handle->logstream; + ALPM_LOG_FUNC; - if(handle->logfile) { - FREE(handle->logfile); - if(handle->logfd) { - fclose(handle->logfd); - handle->logfd = NULL; + if(!logfile) { + pm_errno = PM_ERR_WRONG_ARGS; + return(-1); + } + + handle->logfile = strdup(logfile); + handle->logstream = fopen(logfile, "a"); + if(handle->logstream == NULL) { + /* TODO we probably want to do this at some point, but right now + * it just blows up when a user calls pacman without privilages */ + _alpm_log(PM_LOG_DEBUG, "couldn't open logfile for writing, ignoring\n"); + /* + if(errno == EACCES) { + pm_errno = PM_ERR_BADPERMS; + } else if(errno == ENOENT) { + pm_errno = PM_ERR_NOT_A_DIR; + } else { + pm_errno = PM_ERR_SYSTEM; } + * reset logfile to its previous value * + FREE(handle->logfile); + handle->logfile = oldlogfile; + handle->logstream = oldlogstream; + return(-1); + */ + } + + if(oldlogfile) { + FREE(oldlogfile); } - if(logfile) { - handle->logfile = strdup(logfile); - handle->logfd = fopen(logfile, "a"); + if(oldlogstream) { + fclose(oldlogstream); } + _alpm_log(PM_LOG_DEBUG, "option 'logfile' = %s\n", handle->logfile); + return(0); } void SYMEXPORT alpm_option_set_usesyslog(unsigned short usesyslog) @@ -273,6 +317,7 @@ void SYMEXPORT alpm_option_add_ignorepkg(const char *pkg) { handle->ignorepkg = alpm_list_add(handle->ignorepkg, strdup(pkg)); } + void alpm_option_set_ignorepkgs(alpm_list_t *ignorepkgs) { if(handle->ignorepkg) FREELIST(handle->ignorepkg); @@ -283,6 +328,7 @@ void SYMEXPORT alpm_option_add_holdpkg(const char *pkg) { handle->holdpkg = alpm_list_add(handle->holdpkg, strdup(pkg)); } + void SYMEXPORT alpm_option_set_holdpkgs(alpm_list_t *holdpkgs) { if(handle->holdpkg) FREELIST(handle->holdpkg); diff --git a/lib/libalpm/handle.h b/lib/libalpm/handle.h index b0e80338..cf2e9d5c 100644 --- a/lib/libalpm/handle.h +++ b/lib/libalpm/handle.h @@ -30,40 +30,37 @@ #include "alpm.h" #include "trans.h" -typedef enum _pmaccess_t { - PM_ACCESS_RO, - PM_ACCESS_RW -} pmaccess_t; - typedef struct _pmhandle_t { - /* Internal */ - pmaccess_t access; - uid_t uid; - pmdb_t *db_local; - alpm_list_t *dbs_sync; /* List of (pmdb_t *) */ - FILE *logfd; - int lckfd; + /* internal usage */ + uid_t uid; /* current UID */ /* TODO is this used? */ + pmdb_t *db_local; /* local db pointer */ + alpm_list_t *dbs_sync; /* List of (pmdb_t *) */ + FILE *logstream; /* log file stream pointer */ + int lckfd; /* lock file descriptor if one exists */ pmtrans_t *trans; - /* options */ - alpm_cb_log logcb; /* Log callback function */ - alpm_cb_download dlcb; /* Download callback function */ - char *root; /* Root path, default '/' */ - char *dbpath; /* Base path to pacman's DBs */ - alpm_list_t *cachedirs; /* Paths to pacman cache directories */ - char *logfile; /* Name of the file to log to */ /*TODO is this used?*/ - char *lockfile; /* Name of the lock file */ - unsigned short usesyslog; /* Use syslog instead of logfile? */ /* TODO move to frontend */ - - alpm_list_t *noupgrade; /* List of packages NOT to be upgraded */ - alpm_list_t *noextract; /* List of packages NOT to extract */ /*TODO is this used?*/ - alpm_list_t *ignorepkg; /* List of packages to ignore */ - alpm_list_t *holdpkg; /* List of packages which 'hold' pacman */ + /* callback functions */ + alpm_cb_log logcb; /* Log callback function */ + alpm_cb_download dlcb; /* Download callback function */ - time_t upgradedelay; /* Amount of time to wait before upgrading a package */ - /* servers */ - char *xfercommand; /* External download command */ + /* filesystem paths */ + char *root; /* Root path, default '/' */ + char *dbpath; /* Base path to pacman's DBs */ + char *logfile; /* Name of the log file */ + char *lockfile; /* Name of the lock file */ + alpm_list_t *cachedirs; /* Paths to pacman cache directories */ + + /* package lists */ + alpm_list_t *noupgrade; /* List of packages NOT to be upgraded */ + alpm_list_t *noextract; /* List of packages NOT to extract */ /*TODO is this used?*/ + alpm_list_t *ignorepkg; /* List of packages to ignore */ + alpm_list_t *holdpkg; /* List of packages which 'hold' pacman */ + + /* options */ + unsigned short usesyslog; /* Use syslog instead of logfile? */ /* TODO move to frontend */ unsigned short nopassiveftp; /* Don't use PASV ftp connections */ + time_t upgradedelay; /* Time to wait before upgrading a package */ + char *xfercommand; /* External download command */ } pmhandle_t; extern pmhandle_t *handle; diff --git a/lib/libalpm/log.c b/lib/libalpm/log.c index 19f41283..f4564fc9 100644 --- a/lib/libalpm/log.c +++ b/lib/libalpm/log.c @@ -52,7 +52,7 @@ int SYMEXPORT alpm_logaction(char *fmt, ...) ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); va_start(args, fmt); - ret = _alpm_logaction(handle->usesyslog, handle->logfd, fmt, args); + ret = _alpm_logaction(handle->usesyslog, handle->logstream, fmt, args); va_end(args); /* TODO We should add a prefix to log strings depending on who called us. diff --git a/lib/libalpm/md5.c b/lib/libalpm/md5.c index 6d5aa6a3..8d6fe049 100644 --- a/lib/libalpm/md5.c +++ b/lib/libalpm/md5.c @@ -1,307 +1,336 @@ -/* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm +/* + * RFC 1321 compliant MD5 implementation + * + * Copyright (C) 2006-2007 Christophe Devine + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License, version 2.1 as published by the Free Software Foundation. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA */ - -/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All -rights reserved. - -License to copy and use this software is granted provided that it -is identified as the "RSA Data Security, Inc. MD5 Message-Digest -Algorithm" in all material mentioning or referencing this software -or this function. - -License is also granted to make and use derivative works provided -that such works are identified as "derived from the RSA Data -Security, Inc. MD5 Message-Digest Algorithm" in all material -mentioning or referencing the derived work. - -RSA Data Security, Inc. makes no representations concerning either -the merchantability of this software or the suitability of this -software for any particular purpose. It is provided "as is" -without express or implied warranty of any kind. - -These notices must be retained in any copies of any part of this -documentation and/or software. +/* + * The MD5 algorithm was designed by Ron Rivest in 1991. + * + * http://www.ietf.org/rfc/rfc1321.txt */ +/* + * Pacman Notes: + * + * Taken from the XySSL project at www.xyssl.org under terms of the + * LGPL. This is from version 0.7 of the library, and has been modified + * as following, which may be helpful for future updates: + * * change include from "xyssl/md5.h" to "md5.h" + * * removal of HMAC code + * * removal of SELF_TEST code + * * removal of ipad and opad from the md5_context struct in md5.h + * * change of md5_file prototype from + * int md5_file( char *path, unsigned char *output ) + * to + * int md5_file( const char *path, unsigned char *output ) + */ + +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE 1 +#endif #include <string.h> +#include <stdio.h> #include "md5.h" -/* Constants for MD5Transform routine. +/* + * 32-bit integer manipulation macros (little endian) */ +#ifndef GET_UINT32_LE +#define GET_UINT32_LE(n,b,i) \ +{ \ + (n) = ( (unsigned long) (b)[(i) ] ) \ + | ( (unsigned long) (b)[(i) + 1] << 8 ) \ + | ( (unsigned long) (b)[(i) + 2] << 16 ) \ + | ( (unsigned long) (b)[(i) + 3] << 24 ); \ +} +#endif + +#ifndef PUT_UINT32_LE +#define PUT_UINT32_LE(n,b,i) \ +{ \ + (b)[(i) ] = (unsigned char) ( (n) ); \ + (b)[(i) + 1] = (unsigned char) ( (n) >> 8 ); \ + (b)[(i) + 2] = (unsigned char) ( (n) >> 16 ); \ + (b)[(i) + 3] = (unsigned char) ( (n) >> 24 ); \ +} +#endif -#define S11 7 -#define S12 12 -#define S13 17 -#define S14 22 -#define S21 5 -#define S22 9 -#define S23 14 -#define S24 20 -#define S31 4 -#define S32 11 -#define S33 16 -#define S34 23 -#define S41 6 -#define S42 10 -#define S43 15 -#define S44 21 - -static void MD5Transform(UINT4 [4], unsigned char [64]); -static void Encode(unsigned char *, UINT4 *, unsigned int); -static void Decode(UINT4 *, unsigned char *, unsigned int); - -static unsigned char PADDING[64] = { - 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -/* F, G, H and I are basic MD5 functions. +/* + * MD5 context setup */ -#define F(x, y, z) (((x) & (y)) | ((~x) & (z))) -#define G(x, y, z) (((x) & (z)) | ((y) & (~z))) -#define H(x, y, z) ((x) ^ (y) ^ (z)) -#define I(x, y, z) ((y) ^ ((x) | (~z))) +void md5_starts( md5_context *ctx ) +{ + ctx->total[0] = 0; + ctx->total[1] = 0; -/* ROTATE_LEFT rotates x left n bits. - */ -#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) + ctx->state[0] = 0x67452301; + ctx->state[1] = 0xEFCDAB89; + ctx->state[2] = 0x98BADCFE; + ctx->state[3] = 0x10325476; +} -/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. -Rotation is separate from addition to prevent recomputation. - */ -#define FF(a, b, c, d, x, s, ac) { \ - (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \ - (a) = ROTATE_LEFT ((a), (s)); \ - (a) += (b); \ - } -#define GG(a, b, c, d, x, s, ac) { \ - (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \ - (a) = ROTATE_LEFT ((a), (s)); \ - (a) += (b); \ - } -#define HH(a, b, c, d, x, s, ac) { \ - (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \ - (a) = ROTATE_LEFT ((a), (s)); \ - (a) += (b); \ - } -#define II(a, b, c, d, x, s, ac) { \ - (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \ - (a) = ROTATE_LEFT ((a), (s)); \ - (a) += (b); \ - } - -/* MD5 initialization. Begins an MD5 operation, writing a new context. - */ -void _alpm_MD5Init (context) -MD5_CTX *context; /* context */ +static void md5_process( md5_context *ctx, unsigned char data[64] ) { - context->count[0] = context->count[1] = 0; - /* Load magic initialization constants. -*/ - context->state[0] = 0x67452301; - context->state[1] = 0xefcdab89; - context->state[2] = 0x98badcfe; - context->state[3] = 0x10325476; + unsigned long X[16], A, B, C, D; + + GET_UINT32_LE( X[ 0], data, 0 ); + GET_UINT32_LE( X[ 1], data, 4 ); + GET_UINT32_LE( X[ 2], data, 8 ); + GET_UINT32_LE( X[ 3], data, 12 ); + GET_UINT32_LE( X[ 4], data, 16 ); + GET_UINT32_LE( X[ 5], data, 20 ); + GET_UINT32_LE( X[ 6], data, 24 ); + GET_UINT32_LE( X[ 7], data, 28 ); + GET_UINT32_LE( X[ 8], data, 32 ); + GET_UINT32_LE( X[ 9], data, 36 ); + GET_UINT32_LE( X[10], data, 40 ); + GET_UINT32_LE( X[11], data, 44 ); + GET_UINT32_LE( X[12], data, 48 ); + GET_UINT32_LE( X[13], data, 52 ); + GET_UINT32_LE( X[14], data, 56 ); + GET_UINT32_LE( X[15], data, 60 ); + +#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n))) + +#define P(a,b,c,d,k,s,t) \ +{ \ + a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \ +} + + A = ctx->state[0]; + B = ctx->state[1]; + C = ctx->state[2]; + D = ctx->state[3]; + +#define F(x,y,z) (z ^ (x & (y ^ z))) + + P( A, B, C, D, 0, 7, 0xD76AA478 ); + P( D, A, B, C, 1, 12, 0xE8C7B756 ); + P( C, D, A, B, 2, 17, 0x242070DB ); + P( B, C, D, A, 3, 22, 0xC1BDCEEE ); + P( A, B, C, D, 4, 7, 0xF57C0FAF ); + P( D, A, B, C, 5, 12, 0x4787C62A ); + P( C, D, A, B, 6, 17, 0xA8304613 ); + P( B, C, D, A, 7, 22, 0xFD469501 ); + P( A, B, C, D, 8, 7, 0x698098D8 ); + P( D, A, B, C, 9, 12, 0x8B44F7AF ); + P( C, D, A, B, 10, 17, 0xFFFF5BB1 ); + P( B, C, D, A, 11, 22, 0x895CD7BE ); + P( A, B, C, D, 12, 7, 0x6B901122 ); + P( D, A, B, C, 13, 12, 0xFD987193 ); + P( C, D, A, B, 14, 17, 0xA679438E ); + P( B, C, D, A, 15, 22, 0x49B40821 ); + +#undef F + +#define F(x,y,z) (y ^ (z & (x ^ y))) + + P( A, B, C, D, 1, 5, 0xF61E2562 ); + P( D, A, B, C, 6, 9, 0xC040B340 ); + P( C, D, A, B, 11, 14, 0x265E5A51 ); + P( B, C, D, A, 0, 20, 0xE9B6C7AA ); + P( A, B, C, D, 5, 5, 0xD62F105D ); + P( D, A, B, C, 10, 9, 0x02441453 ); + P( C, D, A, B, 15, 14, 0xD8A1E681 ); + P( B, C, D, A, 4, 20, 0xE7D3FBC8 ); + P( A, B, C, D, 9, 5, 0x21E1CDE6 ); + P( D, A, B, C, 14, 9, 0xC33707D6 ); + P( C, D, A, B, 3, 14, 0xF4D50D87 ); + P( B, C, D, A, 8, 20, 0x455A14ED ); + P( A, B, C, D, 13, 5, 0xA9E3E905 ); + P( D, A, B, C, 2, 9, 0xFCEFA3F8 ); + P( C, D, A, B, 7, 14, 0x676F02D9 ); + P( B, C, D, A, 12, 20, 0x8D2A4C8A ); + +#undef F + +#define F(x,y,z) (x ^ y ^ z) + + P( A, B, C, D, 5, 4, 0xFFFA3942 ); + P( D, A, B, C, 8, 11, 0x8771F681 ); + P( C, D, A, B, 11, 16, 0x6D9D6122 ); + P( B, C, D, A, 14, 23, 0xFDE5380C ); + P( A, B, C, D, 1, 4, 0xA4BEEA44 ); + P( D, A, B, C, 4, 11, 0x4BDECFA9 ); + P( C, D, A, B, 7, 16, 0xF6BB4B60 ); + P( B, C, D, A, 10, 23, 0xBEBFBC70 ); + P( A, B, C, D, 13, 4, 0x289B7EC6 ); + P( D, A, B, C, 0, 11, 0xEAA127FA ); + P( C, D, A, B, 3, 16, 0xD4EF3085 ); + P( B, C, D, A, 6, 23, 0x04881D05 ); + P( A, B, C, D, 9, 4, 0xD9D4D039 ); + P( D, A, B, C, 12, 11, 0xE6DB99E5 ); + P( C, D, A, B, 15, 16, 0x1FA27CF8 ); + P( B, C, D, A, 2, 23, 0xC4AC5665 ); + +#undef F + +#define F(x,y,z) (y ^ (x | ~z)) + + P( A, B, C, D, 0, 6, 0xF4292244 ); + P( D, A, B, C, 7, 10, 0x432AFF97 ); + P( C, D, A, B, 14, 15, 0xAB9423A7 ); + P( B, C, D, A, 5, 21, 0xFC93A039 ); + P( A, B, C, D, 12, 6, 0x655B59C3 ); + P( D, A, B, C, 3, 10, 0x8F0CCC92 ); + P( C, D, A, B, 10, 15, 0xFFEFF47D ); + P( B, C, D, A, 1, 21, 0x85845DD1 ); + P( A, B, C, D, 8, 6, 0x6FA87E4F ); + P( D, A, B, C, 15, 10, 0xFE2CE6E0 ); + P( C, D, A, B, 6, 15, 0xA3014314 ); + P( B, C, D, A, 13, 21, 0x4E0811A1 ); + P( A, B, C, D, 4, 6, 0xF7537E82 ); + P( D, A, B, C, 11, 10, 0xBD3AF235 ); + P( C, D, A, B, 2, 15, 0x2AD7D2BB ); + P( B, C, D, A, 9, 21, 0xEB86D391 ); + +#undef F + + ctx->state[0] += A; + ctx->state[1] += B; + ctx->state[2] += C; + ctx->state[3] += D; } -/* MD5 block update operation. Continues an MD5 message-digest - operation, processing another message block, and updating the - context. +/* + * MD5 process buffer */ -void _alpm_MD5Update (context, input, inputLen) -MD5_CTX *context; /* context */ -unsigned char *input; /* input block */ -unsigned int inputLen; /* length of input block */ +void md5_update( md5_context *ctx, unsigned char *input, int ilen ) { - unsigned int i, index, partLen; - - /* Compute number of bytes mod 64 */ - index = (unsigned int)((context->count[0] >> 3) & 0x3F); + int fill; + unsigned long left; + + if( ilen <= 0 ) + return; + + left = ctx->total[0] & 0x3F; + fill = 64 - left; + + ctx->total[0] += ilen; + ctx->total[0] &= 0xFFFFFFFF; + + if( ctx->total[0] < (unsigned long) ilen ) + ctx->total[1]++; + + if( left && ilen >= fill ) + { + memcpy( (void *) (ctx->buffer + left), + (void *) input, fill ); + md5_process( ctx, ctx->buffer ); + input += fill; + ilen -= fill; + left = 0; + } + + while( ilen >= 64 ) + { + md5_process( ctx, input ); + input += 64; + ilen -= 64; + } + + if( ilen > 0 ) + { + memcpy( (void *) (ctx->buffer + left), + (void *) input, ilen ); + } +} - /* Update number of bits */ - if ((context->count[0] += ((UINT4)inputLen << 3)) +static const unsigned char md5_padding[64] = +{ + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; - < ((UINT4)inputLen << 3)) - context->count[1]++; - context->count[1] += ((UINT4)inputLen >> 29); +/* + * MD5 final digest + */ +void md5_finish( md5_context *ctx, unsigned char *output ) +{ + unsigned long last, padn; + unsigned long high, low; + unsigned char msglen[8]; - partLen = 64 - index; + high = ( ctx->total[0] >> 29 ) + | ( ctx->total[1] << 3 ); + low = ( ctx->total[0] << 3 ); - /* Transform as many times as possible. -*/ - if (inputLen >= partLen) { - memcpy ((POINTER)&context->buffer[index], (POINTER)input, partLen); - MD5Transform (context->state, context->buffer); + PUT_UINT32_LE( low, msglen, 0 ); + PUT_UINT32_LE( high, msglen, 4 ); - for (i = partLen; i + 63 < inputLen; i += 64) - MD5Transform (context->state, &input[i]); + last = ctx->total[0] & 0x3F; + padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last ); - index = 0; - } - else - i = 0; + md5_update( ctx, (unsigned char *) md5_padding, padn ); + md5_update( ctx, msglen, 8 ); - /* Buffer remaining input */ - memcpy ((POINTER)&context->buffer[index], (POINTER)&input[i], inputLen-i); + PUT_UINT32_LE( ctx->state[0], output, 0 ); + PUT_UINT32_LE( ctx->state[1], output, 4 ); + PUT_UINT32_LE( ctx->state[2], output, 8 ); + PUT_UINT32_LE( ctx->state[3], output, 12 ); } -/* MD5 finalization. Ends an MD5 message-digest operation, writing the - the message digest and zeroizing the context. +/* + * Output = MD5( input buffer ) */ -void _alpm_MD5Final (digest, context) -unsigned char digest[16]; /* message digest */ -MD5_CTX *context; /* context */ +void md5( unsigned char *input, int ilen, + unsigned char *output ) { - unsigned char bits[8]; - unsigned int index, padLen; + md5_context ctx; - /* Save number of bits */ - Encode (bits, context->count, 8); + md5_starts( &ctx ); + md5_update( &ctx, input, ilen ); + md5_finish( &ctx, output ); - /* Pad out to 56 mod 64. -*/ - index = (unsigned int)((context->count[0] >> 3) & 0x3f); - padLen = (index < 56) ? (56 - index) : (120 - index); - _alpm_MD5Update (context, PADDING, padLen); - - /* Append length (before padding) */ - _alpm_MD5Update (context, bits, 8); - - /* Store state in digest */ - Encode (digest, context->state, 16); - - /* Zeroize sensitive information. -*/ - memset ((POINTER)context, 0, sizeof (*context)); + memset( &ctx, 0, sizeof( md5_context ) ); } -/* MD5 basic transformation. Transforms state based on block. +/* + * Output = MD5( file contents ) */ -static void MD5Transform (state, block) -UINT4 state[4]; -unsigned char block[64]; +int md5_file( const char *path, unsigned char *output ) { - UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; - - Decode (x, block, 64); - - /* Round 1 */ - FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */ - FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */ - FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */ - FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */ - FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */ - FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */ - FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */ - FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */ - FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */ - FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */ - FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ - FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ - FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ - FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ - FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ - FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ - - /* Round 2 */ - GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */ - GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */ - GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ - GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */ - GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */ - GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */ - GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ - GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */ - GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */ - GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ - GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */ - - GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */ - GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ - GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */ - GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */ - GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */ - - /* Round 3 */ - HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */ - HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */ - HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ - HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ - HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */ - HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */ - HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */ - HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ - HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ - HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */ - HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */ - HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */ - HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */ - HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ - HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ - HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */ - - /* Round 4 */ - II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */ - II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */ - II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ - II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */ - II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ - II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */ - II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ - II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */ - II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */ - II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ - II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */ - II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ - II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */ - II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ - II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */ - II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */ - - state[0] += a; - state[1] += b; - state[2] += c; - state[3] += d; - - /* Zeroize sensitive information. - -*/ - memset ((POINTER)x, 0, sizeof (x)); -} + FILE *f; + size_t n; + md5_context ctx; + unsigned char buf[1024]; -/* Encodes input (UINT4) into output (unsigned char). Assumes len is - a multiple of 4. - */ -static void Encode (output, input, len) -unsigned char *output; -UINT4 *input; -unsigned int len; -{ - unsigned int i, j; - - for (i = 0, j = 0; j < len; i++, j += 4) { - output[j] = (unsigned char)(input[i] & 0xff); - output[j+1] = (unsigned char)((input[i] >> 8) & 0xff); - output[j+2] = (unsigned char)((input[i] >> 16) & 0xff); - output[j+3] = (unsigned char)((input[i] >> 24) & 0xff); - } -} + if( ( f = fopen( path, "rb" ) ) == NULL ) + return( 1 ); -/* Decodes input (unsigned char) into output (UINT4). Assumes len is - a multiple of 4. - */ -static void Decode (output, input, len) -UINT4 *output; -unsigned char *input; -unsigned int len; -{ - unsigned int i, j; + md5_starts( &ctx ); + + while( ( n = fread( buf, 1, sizeof( buf ), f ) ) > 0 ) + md5_update( &ctx, buf, (int) n ); + + md5_finish( &ctx, output ); + + memset( &ctx, 0, sizeof( md5_context ) ); + + if( ferror( f ) != 0 ) + { + fclose( f ); + return( 2 ); + } - for (i = 0, j = 0; j < len; i++, j += 4) - output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) | - (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24); + fclose( f ); + return( 0 ); } -/* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/md5.h b/lib/libalpm/md5.h index 8ae324e3..7af70749 100644 --- a/lib/libalpm/md5.h +++ b/lib/libalpm/md5.h @@ -1,53 +1,91 @@ -/* MD5.H - header file for MD5C.C +/* + * RFC 1321 compliant MD5 implementation + * + * Copyright (C) 2006-2007 Christophe Devine + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License, version 2.1 as published by the Free Software Foundation. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA */ -/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All -rights reserved. - -License to copy and use this software is granted provided that it -is identified as the "RSA Data Security, Inc. MD5 Message-Digest -Algorithm" in all material mentioning or referencing this software -or this function. - -License is also granted to make and use derivative works provided -that such works are identified as "derived from the RSA Data -Security, Inc. MD5 Message-Digest Algorithm" in all material -mentioning or referencing the derived work. - -RSA Data Security, Inc. makes no representations concerning either -the merchantability of this software or the suitability of this -software for any particular purpose. It is provided "as is" -without express or implied warranty of any kind. - -These notices must be retained in any copies of any part of this -documentation and/or software. */ -#ifndef _ALPM_MD5_H -#define _ALPM_MD5_H +/** + * \file md5.h + */ +#ifndef _MD5_H +#define _MD5_H -/* POINTER defines a generic pointer type */ -typedef unsigned char *POINTER; +#ifdef __cplusplus +extern "C" { +#endif -/* UINT2 defines a two byte word */ -typedef unsigned short int UINT2; +/** + * \brief MD5 context structure + */ +typedef struct +{ + unsigned long total[2]; /*!< number of bytes processed */ + unsigned long state[4]; /*!< intermediate digest state */ + unsigned char buffer[64]; /*!< data block being processed */ +} +md5_context; -/* UINT4 defines a four byte word */ -typedef unsigned int UINT4; +/** + * \brief MD5 context setup + * + * \param ctx context to be initialized + */ +void md5_starts( md5_context *ctx ); +/** + * \brief MD5 process buffer + * + * \param ctx MD5 context + * \param input buffer holding the data + * \param ilen length of the input data + */ +void md5_update( md5_context *ctx, unsigned char *input, int ilen ); -/* MD5 context. */ -typedef struct { - UINT4 state[4]; /* state (ABCD) */ - UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ - unsigned char buffer[64]; /* input buffer */ -} MD5_CTX; +/** + * \brief MD5 final digest + * + * \param ctx MD5 context + * \param output MD5 checksum result + */ +void md5_finish( md5_context *ctx, unsigned char *output ); -void _alpm_MD5Init(MD5_CTX *); -void _alpm_MD5Update(MD5_CTX *, unsigned char *, unsigned int); -void _alpm_MD5Final(unsigned char [16], MD5_CTX *); +/** + * \brief Output = MD5( input buffer ) + * + * \param input buffer holding the data + * \param ilen length of the input data + * \param output MD5 checksum result + */ +void md5( unsigned char *input, int ilen, + unsigned char *output ); -char* _alpm_MDFile(char *); -void _alpm_MDPrint(unsigned char [16]); +/** + * \brief Output = MD5( file contents ) + * + * \param path input file name + * \param output MD5 checksum result + * + * \return 0 if successful, 1 if fopen failed, + * or 2 if fread failed + */ +int md5_file( const char *path, unsigned char *output ); -#endif /* _ALPM_MD5_H */ +#ifdef __cplusplus +} +#endif -/* vim: set ts=2 sw=2 noet: */ +#endif /* md5.h */ diff --git a/lib/libalpm/md5driver.c b/lib/libalpm/md5driver.c deleted file mode 100644 index e2821bf0..00000000 --- a/lib/libalpm/md5driver.c +++ /dev/null @@ -1,93 +0,0 @@ -/* MD5DRIVER.C - taken and modified from MDDRIVER.C (license below) */ -/* for use in pacman. */ -/*********************************************************************/ - -/* Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All -rights reserved. - -RSA Data Security, Inc. makes no representations concerning either -the merchantability of this software or the suitability of this -software for any particular purpose. It is provided "as is" -without express or implied warranty of any kind. - -These notices must be retained in any copies of any part of this -documentation and/or software. - */ - -/* The following makes MD default to MD5 if it has not already been - defined with C compiler flags. - */ -#define MD MD5 - -#include "config.h" - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -/* libalpm */ -#include "alpm.h" -#include "log.h" -#include "util.h" -#include "md5.h" - -/* Length of test block, number of test blocks. - */ -#define TEST_BLOCK_LEN 1000 -#define TEST_BLOCK_COUNT 1000 - -#define MD_CTX MD5_CTX -#define MDInit _alpm_MD5Init -#define MDUpdate _alpm_MD5Update -#define MDFinal _alpm_MD5Final - -/** Get the md5 sum of file. - * @param name name of the file - * @return the checksum on success, NULL on error - * @addtogroup alpm_misc - */ -char SYMEXPORT *alpm_get_md5sum(char *name) -{ - ALPM_LOG_FUNC; - - ASSERT(name != NULL, return(NULL)); - - return(_alpm_MDFile(name)); -} - -char* _alpm_MDFile(char *filename) -{ - FILE *file; - MD_CTX context; - int len; - char hex[3]; - unsigned char buffer[1024], digest[16]; - - ALPM_LOG_FUNC; - - if((file = fopen(filename, "rb")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("md5: %s can't be opened\n"), filename); - } else { - char *ret; - int i; - - MDInit(&context); - while((len = fread(buffer, 1, 1024, file))) { - MDUpdate(&context, buffer, len); - } - MDFinal(digest, &context); - fclose(file); - - ret = calloc(33, sizeof(char)); - for(i = 0; i < 16; i++) { - snprintf(hex, 3, "%02x", digest[i]); - strncat(ret, hex, 2); - } - - _alpm_log(PM_LOG_DEBUG, _("md5(%s) = %s"), filename, ret); - return(ret); - } - return(NULL); -} - -/* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index 8a3f6ea1..a841bf58 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -48,7 +48,6 @@ #include "cache.h" #include "provide.h" #include "handle.h" -#include "versioncmp.h" #include "alpm.h" /** \addtogroup alpm_packages Package Functions @@ -63,7 +62,7 @@ */ int SYMEXPORT alpm_pkg_load(const char *filename, pmpkg_t **pkg) { - _alpm_log(PM_LOG_FUNCTION, "enter alpm_pkg_load"); + _alpm_log(PM_LOG_FUNCTION, "enter alpm_pkg_load\n"); /* Sanity checks */ ASSERT(filename != NULL && strlen(filename) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1)); @@ -84,7 +83,7 @@ int SYMEXPORT alpm_pkg_load(const char *filename, pmpkg_t **pkg) */ int SYMEXPORT alpm_pkg_free(pmpkg_t *pkg) { - _alpm_log(PM_LOG_FUNCTION, "enter alpm_pkg_free"); + _alpm_log(PM_LOG_FUNCTION, "enter alpm_pkg_free\n"); ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); @@ -96,67 +95,14 @@ int SYMEXPORT alpm_pkg_free(pmpkg_t *pkg) return(0); } -/** Check the integrity (with sha1) of a package from the sync cache. - * @param pkg package pointer - * @return 0 on success, -1 on error (pm_errno is set accordingly) - */ -int alpm_pkg_checksha1sum(pmpkg_t *pkg) -{ - char path[PATH_MAX]; - struct stat buf; - char *sha1sum = NULL; - alpm_list_t *i; - int retval = 0; - - ALPM_LOG_FUNC; - - ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - /* We only inspect packages from sync repositories */ - ASSERT(pkg->origin == PKG_FROM_CACHE, RET_ERR(PM_ERR_PKG_INVALID, -1)); - ASSERT(pkg->data != handle->db_local, RET_ERR(PM_ERR_PKG_INVALID, -1)); - - /* Loop through the cache dirs until we find a matching file */ - for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) { - snprintf(path, PATH_MAX, "%s%s-%s" PKGEXT, (char*)alpm_list_getdata(i), - alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); - if(stat(path, &buf) == 0) { - break; - } - } - - sha1sum = alpm_get_sha1sum(path); - if(sha1sum == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not get sha1sum for package %s-%s"), - alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); - pm_errno = PM_ERR_NOT_A_FILE; - retval = -1; - } else { - if(strcmp(sha1sum, alpm_pkg_get_sha1sum(pkg)) == 0) { - _alpm_log(PM_LOG_DEBUG, _("sha1sums for package %s-%s match"), - alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); - } else { - _alpm_log(PM_LOG_ERROR, _("sha1sums do not match for package %s-%s"), - alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); - pm_errno = PM_ERR_PKG_INVALID; - retval = -1; - } - } - - FREE(sha1sum); - - return(retval); -} - /** Check the integrity (with md5) of a package from the sync cache. * @param pkg package pointer * @return 0 on success, -1 on error (pm_errno is set accordingly) */ -int alpm_pkg_checkmd5sum(pmpkg_t *pkg) +int SYMEXPORT alpm_pkg_checkmd5sum(pmpkg_t *pkg) { - char path[PATH_MAX]; - struct stat buf; + char *fpath; char *md5sum = NULL; - alpm_list_t *i; int retval = 0; ALPM_LOG_FUNC; @@ -164,43 +110,34 @@ int alpm_pkg_checkmd5sum(pmpkg_t *pkg) ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); /* We only inspect packages from sync repositories */ ASSERT(pkg->origin == PKG_FROM_CACHE, RET_ERR(PM_ERR_PKG_INVALID, -1)); - ASSERT(pkg->data != handle->db_local, RET_ERR(PM_ERR_PKG_INVALID, -1)); - - /* Loop through the cache dirs until we find a matching file */ - for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) { - snprintf(path, PATH_MAX, "%s%s-%s" PKGEXT, (char*)alpm_list_getdata(i), - alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); - if(stat(path, &buf) == 0) { - break; - } - } + ASSERT(pkg->origin_data.db != handle->db_local, RET_ERR(PM_ERR_PKG_INVALID, -1)); + + fpath = _alpm_filecache_find(alpm_pkg_get_filename(pkg)); + md5sum = alpm_get_md5sum(fpath); - md5sum = alpm_get_md5sum(path); if(md5sum == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not get md5sum for package %s-%s"), + _alpm_log(PM_LOG_ERROR, _("could not get md5sum for package %s-%s\n"), alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); pm_errno = PM_ERR_NOT_A_FILE; retval = -1; } else { if(strcmp(md5sum, alpm_pkg_get_md5sum(pkg)) == 0) { - _alpm_log(PM_LOG_DEBUG, _("md5sums for package %s-%s match"), + _alpm_log(PM_LOG_DEBUG, "md5sums for package %s-%s match\n", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); } else { - _alpm_log(PM_LOG_ERROR, _("md5sums do not match for package %s-%s"), + _alpm_log(PM_LOG_ERROR, _("md5sums do not match for package %s-%s\n"), alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); pm_errno = PM_ERR_PKG_INVALID; retval = -1; } } + FREE(fpath); FREE(md5sum); return(retval); } - - - /** Compare versions. * @param ver1 first version * @param ver2 secont version @@ -224,9 +161,7 @@ static char *_supported_archs[] = { /** * @brief Determine if a package name has -ARCH tacked on. - * * @param pkgname name of the package to parse - * * @return pointer to start of -ARCH text if it exists, else NULL */ char SYMEXPORT *alpm_pkg_name_hasarch(const char *pkgname) @@ -261,8 +196,489 @@ char SYMEXPORT *alpm_pkg_name_hasarch(const char *pkgname) return(NULL); } +const char SYMEXPORT *alpm_pkg_get_filename(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(!strlen(pkg->filename)) { + /* construct the file name, it's not in the desc file */ + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + if(pkg->arch && strlen(pkg->arch) > 0) { + snprintf(pkg->filename, PKG_FILENAME_LEN, "%s-%s-%s" PKGEXT, + pkg->name, pkg->version, pkg->arch); + } else { + snprintf(pkg->filename, PKG_FILENAME_LEN, "%s-%s" PKGEXT, + pkg->name, pkg->version); + } + } + + return pkg->filename; +} + +const char SYMEXPORT *alpm_pkg_get_name(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_BASE)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_BASE); + } + return pkg->name; +} + +const char SYMEXPORT *alpm_pkg_get_version(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_BASE)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_BASE); + } + return pkg->version; +} + +const char SYMEXPORT *alpm_pkg_get_desc(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->desc; +} + +const char SYMEXPORT *alpm_pkg_get_url(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->url; +} + +const char SYMEXPORT *alpm_pkg_get_builddate(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->builddate; +} + +const char SYMEXPORT *alpm_pkg_get_installdate(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->installdate; +} + +const char SYMEXPORT *alpm_pkg_get_packager(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->packager; +} + +const char SYMEXPORT *alpm_pkg_get_md5sum(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->md5sum; +} + +const char SYMEXPORT *alpm_pkg_get_arch(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->arch; +} + +unsigned long SYMEXPORT alpm_pkg_get_size(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(-1)); + ASSERT(pkg != NULL, return(-1)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->size; +} + +unsigned long SYMEXPORT alpm_pkg_get_isize(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(-1)); + ASSERT(pkg != NULL, return(-1)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->isize; +} + +pmpkgreason_t SYMEXPORT alpm_pkg_get_reason(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(-1)); + ASSERT(pkg != NULL, return(-1)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->reason; +} + +alpm_list_t SYMEXPORT *alpm_pkg_get_licenses(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->licenses; +} + +alpm_list_t SYMEXPORT *alpm_pkg_get_groups(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->groups; +} + +/* depends */ +alpm_list_t SYMEXPORT *alpm_pkg_get_depends(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DEPENDS)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DEPENDS); + } + return pkg->depends; +} + +alpm_list_t SYMEXPORT *alpm_pkg_get_requiredby(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DEPENDS)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DEPENDS); + } + return pkg->requiredby; +} + +alpm_list_t SYMEXPORT *alpm_pkg_get_conflicts(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DEPENDS)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DEPENDS); + } + return pkg->conflicts; +} + +alpm_list_t SYMEXPORT *alpm_pkg_get_provides(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DEPENDS)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DEPENDS); + } + return pkg->provides; +} + +alpm_list_t SYMEXPORT *alpm_pkg_get_replaces(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + return pkg->replaces; +} + +alpm_list_t SYMEXPORT *alpm_pkg_get_files(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && pkg->origin_data.db == handle->db_local + && !(pkg->infolevel & INFRQ_FILES)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_FILES); + } + return pkg->files; +} + +alpm_list_t SYMEXPORT *alpm_pkg_get_backup(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(pkg != NULL, return(NULL)); + + if(pkg->origin == PKG_FROM_CACHE && pkg->origin_data.db == handle->db_local + && !(pkg->infolevel & INFRQ_FILES)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_FILES); + } + return pkg->backup; +} + +unsigned short SYMEXPORT alpm_pkg_has_scriptlet(pmpkg_t *pkg) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(-1)); + ASSERT(pkg != NULL, return(-1)); + + if(pkg->origin == PKG_FROM_CACHE && pkg->origin_data.db == handle->db_local + && !(pkg->infolevel & INFRQ_SCRIPTLET)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_SCRIPTLET); + } + return pkg->scriptlet; +} + +/** + * @brief Compute the packages requiring a given package. + * @param pkg a package + * @return the list of packages requiring pkg + * + * A depends on B through n depends <=> A listed in B's requiredby n times + * n == 0 or 1 in almost all cases */ +alpm_list_t SYMEXPORT *alpm_pkg_compute_requiredby(pmpkg_t *pkg) +{ + const alpm_list_t *i, *j; + alpm_list_t *reqs = NULL; + + pmdb_t *localdb = alpm_option_get_localdb(); + for(i = _alpm_db_get_pkgcache(localdb); i; i = i->next) { + if(!i->data) { + continue; + } + pmpkg_t *cachepkg = i->data; + const char *cachepkgname = alpm_pkg_get_name(cachepkg); + + for(j = alpm_pkg_get_depends(cachepkg); j; j = j->next) { + pmdepend_t *dep; + int satisfies; + + if(!j->data) { + continue; + } + dep = alpm_splitdep(j->data); + if(dep == NULL) { + continue; + } + + satisfies = alpm_depcmp(pkg, dep); + FREE(dep); + if(satisfies) { + _alpm_log(PM_LOG_DEBUG, "adding '%s' in requiredby field for '%s'\n", + cachepkgname, pkg->name); + reqs = alpm_list_add(reqs, strdup(cachepkgname)); + break; + } + } + } + return(reqs); +} + /** @} */ +/* this function was taken from rpm 4.0.4 and rewritten */ +int _alpm_versioncmp(const char *a, const char *b) +{ + char str1[64], str2[64]; + char *ptr1, *ptr2; + char *one, *two; + char *rel1 = NULL, *rel2 = NULL; + char oldch1, oldch2; + int is1num, is2num; + int rc; + + ALPM_LOG_FUNC; + + if(!strcmp(a,b)) { + return(0); + } + + strncpy(str1, a, 64); + str1[63] = 0; + strncpy(str2, b, 64); + str2[63] = 0; + + /* lose the release number */ + for(one = str1; *one && *one != '-'; one++); + if(one) { + *one = '\0'; + rel1 = ++one; + } + for(two = str2; *two && *two != '-'; two++); + if(two) { + *two = '\0'; + rel2 = ++two; + } + + one = str1; + two = str2; + + while(*one || *two) { + while(*one && !isalnum((int)*one)) one++; + while(*two && !isalnum((int)*two)) two++; + + ptr1 = one; + ptr2 = two; + + /* find the next segment for each string */ + if(isdigit((int)*ptr1)) { + is1num = 1; + while(*ptr1 && isdigit((int)*ptr1)) ptr1++; + } else { + is1num = 0; + while(*ptr1 && isalpha((int)*ptr1)) ptr1++; + } + if(isdigit((int)*ptr2)) { + is2num = 1; + while(*ptr2 && isdigit((int)*ptr2)) ptr2++; + } else { + is2num = 0; + while(*ptr2 && isalpha((int)*ptr2)) ptr2++; + } + + oldch1 = *ptr1; + *ptr1 = '\0'; + oldch2 = *ptr2; + *ptr2 = '\0'; + + /* see if we ran out of segments on one string */ + if(one == ptr1 && two != ptr2) { + return(is2num ? -1 : 1); + } + if(one != ptr1 && two == ptr2) { + return(is1num ? 1 : -1); + } + + /* see if we have a type mismatch (ie, one is alpha and one is digits) */ + if(is1num && !is2num) return(1); + if(!is1num && is2num) return(-1); + + if(is1num) while(*one == '0') one++; + if(is2num) while(*two == '0') two++; + + rc = strverscmp(one, two); + if(rc) return(rc); + + *ptr1 = oldch1; + *ptr2 = oldch2; + one = ptr1; + two = ptr2; + } + + if((!*one) && (!*two)) { + /* compare release numbers */ + if(rel1 && rel2 && strlen(rel1) && strlen(rel2)) return(_alpm_versioncmp(rel1, rel2)); + return(0); + } + + return(*one ? 1 : -1); +} + + pmpkg_t *_alpm_pkg_new(const char *name, const char *version) { pmpkg_t* pkg; @@ -294,13 +710,12 @@ pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg) ALPM_LOG_FUNC; if((newpkg = calloc(1, sizeof(pmpkg_t))) == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmpkg_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmpkg_t)); RET_ERR(PM_ERR_MEMORY, NULL); } memcpy(newpkg, pkg, sizeof(pmpkg_t)); newpkg->licenses = alpm_list_strdup(alpm_pkg_get_licenses(pkg)); - /*newpkg->desc_localized = alpm_list_strdup(pkg->desc_localized);*/ newpkg->requiredby = alpm_list_strdup(alpm_pkg_get_requiredby(pkg)); newpkg->conflicts = alpm_list_strdup(alpm_pkg_get_conflicts(pkg)); newpkg->files = alpm_list_strdup(alpm_pkg_get_files(pkg)); @@ -310,7 +725,11 @@ pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg) newpkg->provides = alpm_list_strdup(alpm_pkg_get_provides(pkg)); newpkg->replaces = alpm_list_strdup(alpm_pkg_get_replaces(pkg)); /* internal */ - newpkg->data = (newpkg->origin == PKG_FROM_FILE) ? strdup(pkg->data) : pkg->data; + if(newpkg->origin == PKG_FROM_FILE) { + newpkg->origin_data.file = strdup(pkg->origin_data.file); + } else { + newpkg->origin_data.db = pkg->origin_data.db; + } return(newpkg); } @@ -324,7 +743,6 @@ void _alpm_pkg_free(pmpkg_t *pkg) } FREELIST(pkg->licenses); - /*FREELIST(pkg->desc_localized);*/ FREELIST(pkg->files); FREELIST(pkg->backup); FREELIST(pkg->depends); @@ -334,7 +752,7 @@ void _alpm_pkg_free(pmpkg_t *pkg) FREELIST(pkg->provides); FREELIST(pkg->replaces); if(pkg->origin == PKG_FROM_FILE) { - FREE(pkg->data); + FREE(pkg->origin_data.file); } FREE(pkg); } @@ -348,7 +766,7 @@ int alpm_pkg_compare_versions(pmpkg_t *local_pkg, pmpkg_t *pkg) if(pkg->origin == PKG_FROM_CACHE) { /* ensure we have the /desc file, which contains the 'force' option */ - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); } /* compare versions and see if we need to upgrade */ @@ -357,7 +775,7 @@ int alpm_pkg_compare_versions(pmpkg_t *local_pkg, pmpkg_t *pkg) if(alpm_list_find_str(handle->ignorepkg, alpm_pkg_get_name(pkg))) { /* package should be ignored (IgnorePkg) */ if(cmp > 0) { - _alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (%s)"), + _alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (%s)\n"), alpm_pkg_get_name(local_pkg), alpm_pkg_get_version(local_pkg), alpm_pkg_get_version(pkg)); } @@ -366,12 +784,12 @@ int alpm_pkg_compare_versions(pmpkg_t *local_pkg, pmpkg_t *pkg) if(cmp != 0 && pkg->force) { cmp = 1; - _alpm_log(PM_LOG_WARNING, _("%s: forcing upgrade to version %s"), + _alpm_log(PM_LOG_WARNING, _("%s: forcing upgrade to version %s\n"), alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); } else if(cmp < 0) { /* local version is newer */ - pmdb_t *db = pkg->data; - _alpm_log(PM_LOG_WARNING, _("%s: local (%s) is newer than %s (%s)"), + pmdb_t *db = pkg->origin_data.db; + _alpm_log(PM_LOG_WARNING, _("%s: local (%s) is newer than %s (%s)\n"), alpm_pkg_get_name(local_pkg), alpm_pkg_get_version(local_pkg), alpm_db_get_name(db), alpm_pkg_get_version(pkg)); cmp = 0; @@ -379,7 +797,7 @@ int alpm_pkg_compare_versions(pmpkg_t *local_pkg, pmpkg_t *pkg) /* we have an upgrade, make sure we should actually do it */ if(_alpm_pkg_istoonew(pkg)) { /* package too new (UpgradeDelay) */ - _alpm_log(PM_LOG_WARNING, _("%s-%s: delaying upgrade of package (%s)"), + _alpm_log(PM_LOG_WARNING, _("%s-%s: delaying upgrade of package (%s)\n"), alpm_pkg_get_name(local_pkg), alpm_pkg_get_version(local_pkg), alpm_pkg_get_version(pkg)); cmp = 0; @@ -416,7 +834,7 @@ static int parse_descfile(const char *descfile, pmpkg_t *info) ALPM_LOG_FUNC; if((fp = fopen(descfile, "r")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s"), descfile, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), descfile, strerror(errno)); return(-1); } @@ -430,7 +848,7 @@ static int parse_descfile(const char *descfile, pmpkg_t *info) ptr = line; key = strsep(&ptr, "="); if(key == NULL || ptr == NULL) { - _alpm_log(PM_LOG_DEBUG, _("%s: syntax error in description file line %d"), + _alpm_log(PM_LOG_DEBUG, "%s: syntax error in description file line %d\n", info->name[0] != '\0' ? info->name : "error", linenum); } else { _alpm_strtrim(key); @@ -441,22 +859,7 @@ static int parse_descfile(const char *descfile, pmpkg_t *info) } else if(!strcmp(key, "PKGVER")) { strncpy(info->version, ptr, sizeof(info->version)); } else if(!strcmp(key, "PKGDESC")) { - /* - char *lang_tmp; - info->desc_localized = alpm_list_add(info->desc_localized, strdup(ptr)); - if((lang_tmp = malloc(strlen(setlocale(LC_ALL, "")))) == NULL) { - RET_ERR(PM_ERR_MEMORY, -1); - } - strncpy(lang_tmp, setlocale(LC_ALL, ""), strlen(setlocale(LC_ALL, ""))); - if(info->desc_localized && !info->desc_localized->next) { - */ strncpy(info->desc, ptr, sizeof(info->desc)); - /* - } else if (ptr && !strncmp(ptr, lang_tmp, strlen(lang_tmp))) { - strncpy(info->desc, ptr+strlen(lang_tmp)+1, sizeof(info->desc)); - } - FREE(lang_tmp); - */ } else if(!strcmp(key, "GROUP")) { info->groups = alpm_list_add(info->groups, strdup(ptr)); } else if(!strcmp(key, "URL")) { @@ -465,8 +868,6 @@ static int parse_descfile(const char *descfile, pmpkg_t *info) info->licenses = alpm_list_add(info->licenses, strdup(ptr)); } else if(!strcmp(key, "BUILDDATE")) { strncpy(info->builddate, ptr, sizeof(info->builddate)); - } else if(!strcmp(key, "BUILDTYPE")) { - strncpy(info->buildtype, ptr, sizeof(info->buildtype)); } else if(!strcmp(key, "INSTALLDATE")) { strncpy(info->installdate, ptr, sizeof(info->installdate)); } else if(!strcmp(key, "PACKAGER")) { @@ -487,7 +888,7 @@ static int parse_descfile(const char *descfile, pmpkg_t *info) } else if(!strcmp(key, "BACKUP")) { info->backup = alpm_list_add(info->backup, strdup(ptr)); } else { - _alpm_log(PM_LOG_DEBUG, _("%s: syntax error in description file line %d"), + _alpm_log(PM_LOG_DEBUG, "%s: syntax error in description file line %d\n", info->name[0] != '\0' ? info->name : "error", linenum); } } @@ -527,7 +928,8 @@ pmpkg_t *_alpm_pkg_load(const char *pkgfile) archive_read_support_compression_all(archive); archive_read_support_format_all(archive); - if (archive_read_open_file(archive, pkgfile, ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) { + if (archive_read_open_filename(archive, pkgfile, + ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) { RET_ERR(PM_ERR_PKG_OPEN, NULL); } @@ -561,15 +963,15 @@ pmpkg_t *_alpm_pkg_load(const char *pkgfile) archive_read_data_into_fd (archive, fd); /* parse the info file */ if(parse_descfile(descfile, info) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not parse the package description file")); + _alpm_log(PM_LOG_ERROR, _("could not parse the package description file\n")); goto pkg_invalid; } if(!strlen(info->name)) { - _alpm_log(PM_LOG_ERROR, _("missing package name in %s"), pkgfile); + _alpm_log(PM_LOG_ERROR, _("missing package name in %s\n"), pkgfile); goto pkg_invalid; } if(!strlen(info->version)) { - _alpm_log(PM_LOG_ERROR, _("missing package version in %s"), pkgfile); + _alpm_log(PM_LOG_ERROR, _("missing package version in %s\n"), pkgfile); goto pkg_invalid; } config = 1; @@ -604,7 +1006,7 @@ pmpkg_t *_alpm_pkg_load(const char *pkgfile) FREE(str); fclose(fp); if(unlink(fn)) { - _alpm_log(PM_LOG_WARNING, _("could not remove tempfile %s"), fn); + _alpm_log(PM_LOG_WARNING, _("could not remove tempfile %s\n"), fn); } FREE(fn); close(fd); @@ -620,27 +1022,27 @@ pmpkg_t *_alpm_pkg_load(const char *pkgfile) } if(archive_read_data_skip(archive)) { - _alpm_log(PM_LOG_ERROR, _("error while reading package: %s"), archive_error_string(archive)); + _alpm_log(PM_LOG_ERROR, _("error while reading package: %s\n"), archive_error_string(archive)); pm_errno = PM_ERR_LIBARCHIVE_ERROR; goto error; } expath = NULL; } if(ret != ARCHIVE_EOF) { /* An error occured */ - _alpm_log(PM_LOG_ERROR, _("error while reading package: %s"), archive_error_string(archive)); + _alpm_log(PM_LOG_ERROR, _("error while reading package: %s\n"), archive_error_string(archive)); pm_errno = PM_ERR_LIBARCHIVE_ERROR; goto error; } if(!config) { - _alpm_log(PM_LOG_ERROR, _("missing package metadata"), pkgfile); + _alpm_log(PM_LOG_ERROR, _("missing package metadata\n"), pkgfile); goto error; } archive_read_finish(archive); if(!filelist) { - _alpm_log(PM_LOG_ERROR, _("missing package filelist in %s, generating one"), pkgfile); + _alpm_log(PM_LOG_ERROR, _("missing package filelist in %s, generating one\n"), pkgfile); info->files = all_files; } else { alpm_list_free_inner(all_files, free); @@ -653,7 +1055,7 @@ pmpkg_t *_alpm_pkg_load(const char *pkgfile) /* internal */ info->origin = PKG_FROM_FILE; - info->data = strdup(pkgfile); + info->origin_data.file = strdup(pkgfile); info->infolevel = 0xFF; return(info); @@ -750,409 +1152,11 @@ int _alpm_pkg_splitname(const char *target, char *name, char *version, int witha return(0); } -/* scan the local db to fill in requiredby field of package, +/* fill in requiredby field of package, * used when we want to install or add a package */ void _alpm_pkg_update_requiredby(pmpkg_t *pkg) { - const alpm_list_t *i, *j; - - pmdb_t *localdb = alpm_option_get_localdb(); - for(i = _alpm_db_get_pkgcache(localdb); i; i = i->next) { - if(!i->data) { - continue; - } - pmpkg_t *cachepkg = i->data; - const char *cachepkgname = alpm_pkg_get_name(cachepkg); - - for(j = alpm_pkg_get_depends(cachepkg); j; j = j->next) { - pmdepend_t *dep; - int satisfies; - - if(!j->data) { - continue; - } - dep = alpm_splitdep(j->data); - if(dep == NULL) { - continue; - } - - satisfies = alpm_depcmp(pkg, dep); - free(dep); - if(satisfies) { - alpm_list_t *reqs = alpm_pkg_get_requiredby(pkg); - _alpm_log(PM_LOG_DEBUG, _("adding '%s' in requiredby field for '%s'"), - cachepkgname, pkg->name); - reqs = alpm_list_add(reqs, strdup(cachepkgname)); - pkg->requiredby = reqs; - break; - } - } - } -} - -const char SYMEXPORT *alpm_pkg_get_filename(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(!strlen(pkg->filename)) { - /* construct the file name, it's not in the desc file */ - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - if(pkg->arch && strlen(pkg->arch) > 0) { - snprintf(pkg->filename, PKG_FILENAME_LEN, "%s-%s-%s" PKGEXT, - pkg->name, pkg->version, pkg->arch); - } else { - snprintf(pkg->filename, PKG_FILENAME_LEN, "%s-%s" PKGEXT, - pkg->name, pkg->version); - } - } - - return pkg->filename; -} - -const char SYMEXPORT *alpm_pkg_get_name(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_BASE)) { - _alpm_db_read(pkg->data, pkg, INFRQ_BASE); - } - return pkg->name; -} - -const char SYMEXPORT *alpm_pkg_get_version(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_BASE)) { - _alpm_db_read(pkg->data, pkg, INFRQ_BASE); - } - return pkg->version; -} - -const char SYMEXPORT *alpm_pkg_get_desc(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->desc; -} - -const char SYMEXPORT *alpm_pkg_get_url(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->url; -} - -const char SYMEXPORT *alpm_pkg_get_builddate(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->builddate; -} - -const char SYMEXPORT *alpm_pkg_get_buildtype(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->buildtype; -} - -const char SYMEXPORT *alpm_pkg_get_installdate(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->installdate; -} - -const char SYMEXPORT *alpm_pkg_get_packager(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->packager; -} - -const char SYMEXPORT *alpm_pkg_get_md5sum(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->md5sum; -} - -const char SYMEXPORT *alpm_pkg_get_sha1sum(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->sha1sum; -} - -const char SYMEXPORT *alpm_pkg_get_arch(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->arch; -} - -unsigned long SYMEXPORT alpm_pkg_get_size(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(-1)); - ASSERT(pkg != NULL, return(-1)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->size; -} - -unsigned long SYMEXPORT alpm_pkg_get_isize(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(-1)); - ASSERT(pkg != NULL, return(-1)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->isize; -} - -pmpkgreason_t SYMEXPORT alpm_pkg_get_reason(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(-1)); - ASSERT(pkg != NULL, return(-1)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->reason; -} - -alpm_list_t SYMEXPORT *alpm_pkg_get_licenses(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->licenses; -} - -alpm_list_t SYMEXPORT *alpm_pkg_get_groups(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->groups; -} - -/* depends */ -alpm_list_t SYMEXPORT *alpm_pkg_get_depends(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DEPENDS)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DEPENDS); - } - return pkg->depends; -} - -alpm_list_t SYMEXPORT *alpm_pkg_get_requiredby(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DEPENDS)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DEPENDS); - } - return pkg->requiredby; -} - -alpm_list_t SYMEXPORT *alpm_pkg_get_conflicts(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DEPENDS)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DEPENDS); - } - return pkg->conflicts; -} - -alpm_list_t SYMEXPORT *alpm_pkg_get_provides(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DEPENDS)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DEPENDS); - } - return pkg->provides; -} - -alpm_list_t SYMEXPORT *alpm_pkg_get_replaces(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->data, pkg, INFRQ_DESC); - } - return pkg->replaces; -} - -alpm_list_t SYMEXPORT *alpm_pkg_get_files(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && pkg->data == handle->db_local - && !(pkg->infolevel & INFRQ_FILES)) { - _alpm_db_read(pkg->data, pkg, INFRQ_FILES); - } - return pkg->files; -} - -alpm_list_t SYMEXPORT *alpm_pkg_get_backup(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(pkg != NULL, return(NULL)); - - if(pkg->origin == PKG_FROM_CACHE && pkg->data == handle->db_local - && !(pkg->infolevel & INFRQ_FILES)) { - _alpm_db_read(pkg->data, pkg, INFRQ_FILES); - } - return pkg->backup; -} - -unsigned short SYMEXPORT alpm_pkg_has_scriptlet(pmpkg_t *pkg) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(-1)); - ASSERT(pkg != NULL, return(-1)); - - if(pkg->origin == PKG_FROM_CACHE && pkg->data == handle->db_local - && !(pkg->infolevel & INFRQ_SCRIPTLET)) { - _alpm_db_read(pkg->data, pkg, INFRQ_SCRIPTLET); - } - return pkg->scriptlet; + pkg->requiredby = alpm_pkg_compute_requiredby(pkg); } /* TODO this should either be public, or done somewhere else */ diff --git a/lib/libalpm/package.h b/lib/libalpm/package.h index fda10800..9a877ffd 100644 --- a/lib/libalpm/package.h +++ b/lib/libalpm/package.h @@ -25,9 +25,7 @@ #ifndef _ALPM_PACKAGE_H #define _ALPM_PACKAGE_H -#if defined(__APPLE__) || defined(__sun__) #include <time.h> -#endif #include "alpm.h" #include "db.h" @@ -48,7 +46,6 @@ typedef enum _pmpkgfrom_t { #define PKG_TYPE_LEN 32 #define PKG_PACKAGER_LEN 64 #define PKG_MD5SUM_LEN 33 -#define PKG_SHA1SUM_LEN 41 #define PKG_ARCH_LEN 32 struct __pmpkg_t { @@ -58,11 +55,9 @@ struct __pmpkg_t { char desc[PKG_DESC_LEN]; char url[PKG_URL_LEN]; char builddate[PKG_DATE_LEN]; - char buildtype[PKG_TYPE_LEN]; char installdate[PKG_DATE_LEN]; char packager[PKG_PACKAGER_LEN]; char md5sum[PKG_MD5SUM_LEN]; - char sha1sum[PKG_SHA1SUM_LEN]; char arch[PKG_ARCH_LEN]; unsigned long size; unsigned long isize; @@ -70,7 +65,6 @@ struct __pmpkg_t { unsigned short force; time_t date; pmpkgreason_t reason; - /* alpm_list_t *desc_localized;*/ alpm_list_t *licenses; alpm_list_t *replaces; alpm_list_t *groups; @@ -82,18 +76,18 @@ struct __pmpkg_t { alpm_list_t *provides; /* internal */ pmpkgfrom_t origin; - void *data; - /* TODO replace 'data' with this: + /* Replaced 'void *data' with this union as follows: origin == PKG_FROM_CACHE, use pkg->origin_data.db - origin == PKG_FROM_FILE, use pkg->origin_data.fd + origin == PKG_FROM_FILE, use pkg->origin_data.file + */ union { - int fd; pmdb_t *db; + char *file; } origin_data; - */ pmdbinfrq_t infolevel; }; +int _alpm_versioncmp(const char *a, const char *b); pmpkg_t* _alpm_pkg_new(const char *name, const char *version); pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg); void _alpm_pkg_free(pmpkg_t *pkg); diff --git a/lib/libalpm/po/.gitignore b/lib/libalpm/po/.gitignore index 50a7b2a4..3be83ffa 100644 --- a/lib/libalpm/po/.gitignore +++ b/lib/libalpm/po/.gitignore @@ -1,5 +1,3 @@ -Makefile -Makefile.in *.gmo POTFILES stamp-po diff --git a/lib/libalpm/po/POTFILES.in b/lib/libalpm/po/POTFILES.in index e668f661..caf68c30 100644 --- a/lib/libalpm/po/POTFILES.in +++ b/lib/libalpm/po/POTFILES.in @@ -14,12 +14,9 @@ lib/libalpm/group.c lib/libalpm/handle.c lib/libalpm/log.c lib/libalpm/md5.c -lib/libalpm/md5driver.c lib/libalpm/package.c lib/libalpm/provide.c lib/libalpm/remove.c -lib/libalpm/sha1.c lib/libalpm/sync.c lib/libalpm/trans.c lib/libalpm/util.c -lib/libalpm/versioncmp.c diff --git a/lib/libalpm/po/de.po b/lib/libalpm/po/de.po index 2d57053c..2b9eb692 100644 --- a/lib/libalpm/po/de.po +++ b/lib/libalpm/po/de.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: 2007-04-17 20:26+0200\n" -"Last-Translator: Pierre Schmitz <pierre@archlinux.de>\n" +"Last-Translator: Matthias Gorissen <matthias@archlinux.de>\n" "Language-Team: German <archlinux.de>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,734 +20,163 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);X-Generator: KBabel 1.11.4\n" "X-Generator: KBabel 1.11.4\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "Lade Ziel '%s'" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "Ersetze ältere Version %s-%s durch %s in der Ziel-Liste" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "Neuere Version %s-%s ist in der Ziel-Liste -- Überspringe" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "Lese Metadaten von '%s'" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "Suche nach ungelösten Abhängigkeiten" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "Suche nach Konflikten" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "Das Ersetzen von Paketen mit -A und -U wird noch nicht unterstützt" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "Entfernen Sie bitte zuerst '%s' mit -Rd" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "Sortiere nach Abhängigkeiten" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "Räume auf" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "Suche nach Dateikonflikten" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "Aktualisiere Paket %s-%s" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "Füge Paket %s-%s hinzu" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "Entferne zuerst altes Paket (%s-%s)" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "Füge %s temporär zum NoUpgrade-Array hinzu" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "Entpacke Dateien" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "Konnte aktuelles Arbeitsverzeichnis nicht ermitteln" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s ist in NoExtract, wird nicht entpackt" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "%s ist in trans->skip_add, wird nicht entpackt" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "Konnte %s nicht entpacken (%s)" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "Prüfe MD5-Hashes für %s" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "Prüfe SHA1-Hashes für %s" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "Aktuell: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "Neu: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "Original: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "Konnte %s nicht umbenennen (%s)" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "Fehler: Konnte %s nicht umbenennen (%s)" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "Konnte temporäre Datei nicht nach %s kopieren (%s)" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "Fehler: Konnte temporäre Datei nicht nach %s kopieren (%s)" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "%s gespeichert als %s" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "Warnung: %s gespeichert als %s" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "Aktion: Installiere neue Datei: %s" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "Aktion: Belasse existierende Datei an ihrem Platz" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"Aktion: Behalte aktuelle Datei und installiere die neue mit der Endung ." -"pacnew" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "Konnte %s nicht als %s installieren: %s" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "Fehler: Konnte %s nicht als %s installieren: %s" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "%s installiert als %s" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "Warnung: %s installiert als %s" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s ist in NoUpgrade -- Überspringe" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "Entpacke %s als %s.pacnew" -#: lib/libalpm/add.c:686 +#: lib/libalpm/add.c:721 #, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "Warnung: Entpacke %s als %s.pacnew" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "Entpacke %s" - -#: lib/libalpm/add.c:705 -#, c-format -msgid "error: could not extract %s (%s)" -msgstr "Fehler: Konnte %s nicht entpacken (%s)" - -#: lib/libalpm/add.c:717 -#, c-format -msgid "appending backup entry for %s" -msgstr "Hänge Sicherungseintrag für %s an" - -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" -msgstr "Fehler traten auf, während %s %s" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "Aktualisiere" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "Installiere" +msgid "could not extract %s (%s)" +msgstr "Konnte %s nicht entpacken (%s)" -#: lib/libalpm/add.c:769 +#: lib/libalpm/add.c:772 #, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "'%s' wird nicht mehr von %s bereitgestellt (%s => %s)" +msgid "problem occurred while upgrading %s" +msgstr "Fehler traten auf, während %s aktualisiert wurde" -#: lib/libalpm/add.c:781 +#: lib/libalpm/add.c:777 #, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "Aktualisiere '%s' aufgrund einer Bereitstellungsänderung (%s)" +msgid "problem occurred while installing %s" +msgstr "Fehler traten auf, während %s installiert wurde" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "Konnte Bereitstellung '%s' von '%s' nicht aktualisieren" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "Aktualisiere Datenbank" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "Füge Datenbankeintrag '%s' hinzu" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "Konnte Datenbankeintrag %s-%s nicht aktualisieren" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "Konnte Eintrag '%s' nicht zum Pufferspeicher hinzufügen" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 -#, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "Führe \"ldconfig -r %s\" aus" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "Entferne Datenbank %s, %d verbleibend..." - -#: lib/libalpm/alpm.c:181 -#, c-format -msgid "unregistering database '%s'" -msgstr "Nicht registrierte Datenbank '%s'" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "Schließe Datenbank '%s'" - -#: lib/libalpm/alpm.c:232 -#, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" -msgstr "" -"Füge neuen Server zur Datenbank '%s' hinzu: Protokoll '%s', Server '%s', " -"Pfad '%s'" - -#: lib/libalpm/alpm.c:236 -#, c-format -msgid "serverlist flushed for '%s'" -msgstr "Server-Liste geleert für '%s'" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" -msgstr "Konnte letzte Update-Zeit für %s nicht ermitteln (nicht schlimm)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "Konnte Datenbank nicht synchronisieren: %s [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "Synchronisation: Neue mtime für %s: %s" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "Leere Datenbank %s%s" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "Konnte Datenbankeintrag %s%s nicht entfernen" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "Konnte SHA1-Prüfsumme für Paket %s-%s nicht ermitteln" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "SHA1-Prüfsummen für Paket %s-%s stimmen überein" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "SHA1-Prüfsummen für Paket %s-%s stimmen nicht überein" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "Konnte MD5-Prüfsumme für Paket %s-%s nicht ermitteln" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "MD5-Prüfsummen für Paket %s-%s stimmen überein" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "MD5-Prüfsummen für Paket %s-%s stimmen nicht überein" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "Konnte Sperrdatei %s nicht entfernen" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "Warnung: Konnte Sperrdatei %s nicht entfernen" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "Konfiguration: Neuer Abschnitt '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "Konfiguration: nopassiveftp" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "Konfiguration: usesyslog" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "Konfiguration: chomp" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "Konfiguration: usecolor" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "Konfiguration: including %s" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "Konfiguration: noupgrade: %s" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "Konfiguration: noextract: %s" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "Konfiguration: ignorepkg: %s" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "Konfiguration: holdpkg: %s" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "Konfiguration: dbpath: %s" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "Konfiguration: cachedir: %s" - -#: lib/libalpm/alpm.c:1050 -#, c-format -msgid "config: rootdir: %s" -msgstr "Konfiguration: rootdir: %s" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "Konfiguration: logfile: %s" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "Konfiguration: xfercommand: %s" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "Konfiguration: upgradedelay: %d" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "Prüfe auf Paketersetzungen" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "Prüfe Ersetzung '%s' für Paket '%s'" - -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 -#, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -msgstr "%s-%s: Ignoriere zu aktualisierendes Packet (zu ersetzen durch %s-%s)" - -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 -#, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" -msgstr "%s-%s wurde zur Aktualisierung ausgewählt (wird durch %s-%s ersetzt)" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "'%s' nicht in Sync-DB gefunden -- Überspringe" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "'%s' ist bereits zum Entfernen ausgewählt -- Überspringe" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "%s wurde zur Aktualisierung ausgewählt (%s => %s)" - -#: lib/libalpm/be_files.c:61 +#: lib/libalpm/be_files.c:83 #, c-format -msgid "unpacking database '%s'" -msgstr "Entpacke Datenbank '%s'" +msgid "%s: description file is missing" +msgstr "%s: Beschreibungsdatei fehlt" -#: lib/libalpm/be_files.c:78 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "opening database from path '%s'" -msgstr "Öffne Datenbank aus Pfad '%s'" +msgid "%s: dependency file is missing" +msgstr "%s: Abhängige Datei fehlt" -#: lib/libalpm/be_files.c:182 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "db scan could not find package: %s" -msgstr "Konnte Paket nicht in Datenbank finden: %s" +msgid "%s: file list is missing" +msgstr "%s: Dateiliste fehlt" -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "Falscher Name für Datenbank-Eintrag '%s'" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "Ungültiger Paket-Eintrag wurde an _alpm_db_read übergeben, überspringe" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" -"Überspringe das Lesen der Datenbank-Information für das Datei-basierte Paket " -"'%s'..." - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "Lade Paket-Daten für %s : level=%d" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "Kann %s-%s nicht in der Datenbank '%s' finden" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "Konnte Datei %s nicht öffnen: %s" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "Schreibe %s-%s Informationen aus DESC-Datei zurück in die Datenbank" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "Schreibe %s-%s Informationen aus FILES-Datei zurück in die Datenbank" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "Schreibe %s-%s Informationen aus DEPENDS-Datei zurück in die Datenbank" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "Lade Paketpuffer für Repositorium '%s'" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "Füge '%s' zum Paketpuffer der Datenbank '%s' hinzu" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "Lösche Paketpuffer für Repositorium '%s'" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "Fehler: Paketpuffer ist NULL für Datenbank '%s'" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "Füge Eintrag '%s' zu '%s'-Puffer hinzu" - -#: lib/libalpm/cache.c:149 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "Entferne Eintrag '%s' aus '%s'-Puffer" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "Konnte Eintrag '%s' aus '%s'-Puffer nicht entfernen: nicht gefunden" - -#: lib/libalpm/cache.c:178 -#, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "Fehler: Konnte Eintrag '%s' nicht aus dem NULL Paketpuffer laden" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "Lade Gruppenpuffer für Repositorium '%s'" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr " Konflikt gefunden '%s' : Paket '%s'" - -#: lib/libalpm/conflict.c:78 -#, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr " Konflikt '%s' gefunden: Paket '%s' stellt '%s' bereit" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "Paket '%s' steht im Konflikt mit sich selbst - ist falsch gepackt" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "checkconflicts: Ziel '%s' gegen Datenbank" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "checkconflicts: Ziel '%s' gegen alle Ziele" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "checkconflicts: Datenbank gegen Ziel '%s'" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" -msgstr "Ziel '%s' ist auch in der Ziel-Liste, benutze neue Konflikte" +msgid "malloc failure: could not allocate %d bytes" +msgstr "malloc-Fehler: Konnte %d Bytes nicht zuweisen" -#: lib/libalpm/conflict.c:257 +#: lib/libalpm/db.c:238 #, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "\tCONFLICTS:: %s steht im Konflikt mit %s" +msgid "could not remove database entry %s%s" +msgstr "Konnte Datenbankeintrag %s%s nicht entfernen" -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "malloc failure: could not allocate %d bytes" -msgstr "malloc-Fehler: Konnte %d Bytes nicht zuweisen" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" +msgstr "%s-%s: Ignoriere zu aktualisierendes Packet (zu ersetzen durch %s-%s)" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "malloc fehlgeschlagen: Konnte %d Bytes nicht zuweisen" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "Versuche die lokale Datenbank neu zu registrieren" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "Versuche die %s Datenbank neu zu registrieren, verwende die bestehende" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "Registriere Datenbank '%s'" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "Datenbank-Verzeichnis '%s' ist nicht vorhanden, erstelle es" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "Öffne Datenbank '%s'" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "Sortieren von Abhängigkeiten gestartet" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "Möglicher Abhängigkeitszyklus gefunden" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "Sortieren von Abhängigkeiten beendet" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "Ein leeres Paket wurde in der Paketliste gefunden" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "Konnte installiertes Paket '%s' nicht finden" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "checkdeps: Abhängigkeit'%s' wurde von '%s' nach '%s' verschoben" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "checkdeps: Abhängigkeit '%s' von installiertem Paket '%s' erfüllt" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "" -"checkdeps: aktualisiertes '%s' wird die Abhängigkeit von '%s' nicht erfüllen" +#: lib/libalpm/db.c:680 +msgid "database path is undefined" +msgstr "Datenbank-Pfad ist nicht definiert" -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "Abhängigkeit '%s' für Paket '%s' fehlt" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "checkdeps: %s wird von %s benötigt" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "Schließe %s aus -- Ausdrücklich installiert" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "" -"Kann Paket \"%s\" oder irgendwas, das es zur Verfügung stellt, nicht finden!" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "Füge '%s' zu der Ziel-Liste hinzu" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "Starte das Auflösen der Abhängigkeiten" +#: lib/libalpm/deps.c:187 +msgid "dependency cycle detected\n" +msgstr "Abhängigkeits-Zyklus entdeckt\n" -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "%s stellt Abhängigkeit %s zur Verfügung -- Überspringe" - -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" @@ -755,764 +184,445 @@ msgstr "" "Kann Abhängigkeiten für \"%s\" nicht auflösen (\"%s\" ist nicht in " "Paketliste enthalten)" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "Abhängigkeit %s ist bereits in der Ziel-Liste -- Überspringe" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "Ziehe Abhängigkeit %s (benötigt von %s)" - -#: lib/libalpm/deps.c:671 +#: lib/libalpm/deps.c:687 #, c-format msgid "cannot resolve dependencies for \"%s\"" msgstr "Kann Abhängigkeiten für \"%s\" nicht auflösen" -#: lib/libalpm/deps.c:687 -#, c-format -msgid "dependency cycle detected: %s" -msgstr "Abhängigkeits-Zyklus entdeckt: %s" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" -msgstr "Auflösen von Abhängigkeiten beendet" - -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "Speicher ist voll!" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "Unerwarteter Systemfehler" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "Unzureichende Rechte" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "Konnte Datei nicht finden oder lesen" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "Falsches oder NULL-Argument übergeben" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "Bibliothek nicht initialisiert" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "Bibliothek bereits initialisiert" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "Kann Datenbank nicht sperren" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "Konnte Datenbank nicht öffnen" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "Konnte Datenbank nicht erstellen" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "Datenbank nicht initialisiert" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "Datenbank bereits registriert" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "Konnte Datenbank nicht finden" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "Konnte Datenbank nicht aktualisieren" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "Konnte Datenbank-Eintrag nicht entfernen" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "Ungültige URL für den Server" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "Konnte Parameter nicht setzen" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" -msgstr "Vorgang wurde schon gestartet" +msgstr "Vorgang bereits gestartet" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "Vorgang nicht gestartet" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "Doppelte Ziele" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "Vorgang nicht vorbereitet" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "Vorgang abgebrochen" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "Operation nicht mit dem Vorgangs-Typ kompatibel" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "Konnte den Vorgang nicht durchführen" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "Konnte nicht alle Dateien herunterladen" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "Konnte Paket nicht finden oder lesen" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "Ungültiges oder beschädigtes Paket" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "Kann Paketdatei nicht öffnen" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "Kann Paketdaten nicht laden" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "Paket ist bereits installiert" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "Paket ist nicht installiert oder ältere Version" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "Konnte nicht alle Dateien des Paketes entfernen" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "Paketname ist nicht gültig" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "Beschädigtes Paket" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "Kein solches Repositorium" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "Gruppe nicht gefunden" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "Kann Abhängigkeiten nicht erfüllen" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "In Konflikt stehende Abhängigkeiten" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "In Konflikt stehende Dateien" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "Benutzer brach die Aktion ab" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "Interner Fehler" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "libarchive-Fehler" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "Nicht genügend Speicherplatz" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "Nicht bestätigt" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "Ungültiger Abschnittsname" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "'local' ist reserviert und kann nicht als Repositorium benutzt werden" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "Falsche Syntax in Beschreibungsdatei" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "Alle Anweisungen müssen zu einem Abschnitt gehören" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "Ungültiger Regulärer Ausdruck" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "Verbindung zum Server fehlgeschlagen" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "Unerwarteter Fehler" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" -msgstr "Kann das spezifizierte Wurzelverzeichnis nicht anerkennen '%s'" +msgstr "Kann das spezifizierte Wurzelverzeichnis '%s' nicht anerkennen" -#: lib/libalpm/handle.c:175 +#: lib/libalpm/md5driver.c:69 #, c-format -msgid "option 'root' = %s" -msgstr "Konfiguration 'root' = %s" +msgid "md5: %s can't be opened\n" +msgstr "md5: %s kann nicht geöffnet werden\n" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "Konfiguration 'dbpath' = %s" +msgid "could not get sha1sum for package %s-%s" +msgstr "Konnte SHA1-Prüfsumme für Paket %s-%s nicht ermitteln" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "Konfiguration 'cachedir' = %s" +msgid "sha1sums do not match for package %s-%s" +msgstr "SHA1-Prüfsummen für Paket %s-%s stimmen nicht überein" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "%s kann nicht geöffnet werden\n" +msgid "could not get md5sum for package %s-%s" +msgstr "Konnte MD5-Prüfsumme für Paket %s-%s nicht ermitteln" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "MD5(%s) = %s" +msgid "md5sums do not match for package %s-%s" +msgstr "MD5-Prüfsummen für Paket %s-%s stimmen nicht überein" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "%s-%s: Ignoriere Paketaktualisierung (%s)" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "%s: Erzwungene Aktualisierung auf Version %s" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "%s: Lokale Version (%s) ist neuer als %s (%s)" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "%s-%s: Verzögere die Aktualisierung von Paket (%s)" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "%s: Falscher Syntax in Beschreibungsdatei, Zeile %d" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "Konnte Paket-Beschreibungsdatei nicht analysieren" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "Fehlender Paketname in %s" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "Fehlende Paketversion in %s" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "Konnte tempfile %s nicht entfernen" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "Fehler beim Lesen des Paketes: %s" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "Fehlende Paket-Metadaten" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "Fehlende Paket-Dateiliste in %s, erstelle eine" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "Füge '%s' zum requiredby-Feld für '%s' hinzu" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "Füge '%s' zum requiredby-Feld für '%s' hinzu (stellt bereit: %s)" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "Konnte %s nicht in der Datenbank finden" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "Füge %s zur Ziel-Liste hinzu" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "Ziehe %s in die Ziel-Liste" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "Konnte %s nicht in Datenbank finden -- Überspringe" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "Finde entfernbare Abhängigkeiten" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "Kann Datei '%s' nicht entfernen: %s" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "Überspringe das Entfernen von '%s' wegen NoUpgrade" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "Datei %s existiert nicht" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "Behalte Verzeichnis %s" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "Entferne Verzeichnis %s" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "%s ist in trans->skip_remove, überspringe das Entfernen" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "Vorgang wurde auf NOSAVE gesetzt, '%s' wird nicht gesichert" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "Lösche %s" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "Kann Datei %s nicht entfernen: %s" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "Entferne Paket %s-%s" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "Paket '%s' wird nicht entfernt, konnte nicht alle Dateien löschen" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "Entferne %d Dateien" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "Entferne Datenbank-Eintrag '%s'" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "Konnte Datenbank-Eintrag %s-%s nicht entfernen" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "Konnte Eintrag '%s' nicht aus dem Puffer entfernen" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "sha1: %s kann nicht geöffnet werden\n" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "sha1(%s) = %s" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "Suche nach Paketaktualisierungen" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "%s-%s ausgewählt für Aktualisierung (%s => %s)" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "Suche nach Ziel in Repositorium '%s'" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "Ziel '%s' wurde nicht gefunden -- suche nach Ähnlichem" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "'%s' stellt '%s' bereit" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "Repositorium '%s' nicht gefunden" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "%s-%s ist aktuell -- Überspringe" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "Füge das Ziel '%s' zur Vorgangsliste hinzu" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "Auflösen von Ziel-Abhängigkeiten" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "Füge Paket %s-%s zur Vorgangszielen hinzu" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "Suche nach unlösbaren Abhängigkeiten" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "Paket '%s' steht im Konflikt mit '%s'" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "'%s' wurde nicht in der Vorgangsliste gefunden -- überspringe" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "Paket '%s' steht im Konflikt mit sich selbst" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "'%s' ist in der Ziel-Liste -- ich behalte es" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "Entferne '%s' von Ziel-Liste" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "Löse Paket-Konflikt '%s'" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "Wähle '%s' zum Entfernen aus" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "Nicht lösbare Paketkonflikte gefunden" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "Überprüfe die Abhängigkeiten der zu entfernenden Pakete" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "etwas ist fürchterlich schief gegangen" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "'%s' stellt '%s' bereit -- Konflikt abgewandt" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "%s ist bereits im Puffer\n" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "Es existiert kein %s-Puffer. Erstelle... \n" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "Warnung: Es existiert kein %s Puffer. Erstelle..." - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" -msgstr "Konnte Paketpuffer nicht erstellen, benutze stattdessen /tmp\n" +#: lib/libalpm/sync.c:804 +msgid "couldn't create package cache, using /tmp instead" +msgstr "Konnte Paketpuffer nicht erstellen, benutze stattdessen /tmp" -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "Warnung: Konnte Paketpuffer nicht erstellen; benutze stattdessen /tmp" - -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "Konnte manche Dateien von %s nicht übertragen\n" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "Kann MD5- oder SHA1-Prüfsumme für Paket %s nicht ermitteln\n" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "Archiv %s war beschädigt (falsche MD5- oder SHA1-Prüfsumme)\n" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "Archiv %s ist beschädigt (falsche MD5- oder SHA1-Prüfsumme)\n" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "Konnte den Lösch-Vorgang nicht erstellen" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "Konnte den Lösch-Vorgang nicht beginnen" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "Entferne im Konflikt stehende und zu ersetzende Pakete" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "Konnte Lösch-Vorgang nicht vorbereiten" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "Konnte Lösch-Vorgang nicht durchführen" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "Installiere Pakete" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "Konnte den Vorgang nicht erstellen" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "Konnte den Vorgang nicht beginnen" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "Konnte den Vorgang nicht vorbereiten" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "Aktualisiere Datenbank für die Abhängigkeiten der ersetzten Pakete" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "Konnte requiredby für Datenbank-Eintrag %s-%s nicht aktualisieren" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "Konnte neuen Datenbank-Eintrag %s-%s nicht aktualisieren" -#: lib/libalpm/sync.c:1079 -#, c-format -msgid "found package '%s-%s' in sync" -msgstr "Paket '%s-%s' gefunden" - -#: lib/libalpm/sync.c:1085 -#, c-format -msgid "package '%s' not found in sync" -msgstr "Paket '%s' nicht in Datenbank gefunden" - -#: lib/libalpm/trans.c:271 +#: lib/libalpm/trans.c:205 #, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "Aktualisiere requiredby-Felder abhängiger Pakete für %s-%s" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "" -"Paket besitzt keine Abhängigkeiten, kein anderes Paket muß aktualisiert " -"werden" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 -#, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "Aktualisiere requiredby-Feld für Paket '%s'" +msgid "could not remove lock file %s" +msgstr "Konnte Sperrdatei %s nicht entfernen" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "Konnte requiredby-Eintrag %s-%s nicht aktualisieren" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "Konnte Abhängigkeit '%s' nicht finden" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "Konnte Pfad nicht erstellen '%s' : %s" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "Konnte Datei %s nicht öffnen: %s\n" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "Konnte %s nicht entpacken: %s\n" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "Log-Aktion aufgerufen: %s" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "Konnte temp-Verzeichnis nicht erstellen" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "Konnte nicht zu Verzeichnis %s wechseln (%s)" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "Führe %s-Skript aus ..." - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "Konnte keinen neuen Prozess starten (%s)" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "chroot in %s" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "Konnte root-Verzeichnis nicht wechseln (%s)" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "Konnte nicht zu Verzeichnis / wechseln (%s)" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "Führe \"%s\" aus" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "Aufruf von 'popen' fehlgeschlagen (%s)" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "Aufruf von 'waitpid' fehlgeschlagen (%s)" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "Konnte tmpdir %s nicht entfernen" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "Konnte freien Speicher von %s nicht ermitteln: %s" +msgid "failed to make path '%s' : %s" +msgstr "Konnte Pfad nicht erstellen '%s' : %s" -#: lib/libalpm/util.c:609 +#: lib/libalpm/util.c:325 #, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" -msgstr "Prüfe freien Speicher: Gesamte pkg-Größe: %lld, Speicherplatz: %lld" +msgid "could not open %s: %s\n" +msgstr "Konnte Datei %s nicht öffnen: %s\n" -#: lib/libalpm/versioncmp.c:279 +#: lib/libalpm/util.c:346 #, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" -msgstr "depcmp: %s-%s %s %s-%s => %s" +msgid "could not extract %s (%s)\n" +msgstr "Konnte %s nicht entpacken (%s)\n" -#: lib/libalpm/versioncmp.c:284 -#, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "depcmp: %s-%s %s %s => %s" diff --git a/lib/libalpm/po/en_GB.po b/lib/libalpm/po/en_GB.po index c771cc00..5f7f4e6a 100644 --- a/lib/libalpm/po/en_GB.po +++ b/lib/libalpm/po/en_GB.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Pacman package manager 3.0.0\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: 2007-03-07 21:05+1100\n" "Last-Translator: Jeff Bailes <thepizzaking@gmail.com>\n" "Language-Team: English <en_gb@li.org>\n" @@ -16,1491 +16,611 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "loading target '%s'" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "replacing older version %s-%s by %s in target list" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "newer version %s-%s is in the target list -- skipping" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "reading '%s' metadata" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "looking for unsatisfied dependencies" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "looking for conflicts" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "replacing packages with -A and -U is not supported yet" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "please remove '%s' first, using -Rd" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "sorting by dependencies" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "cleaning up" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "looking for file conflicts" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "upgrading package %s-%s" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "adding package %s-%s" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "removing old package first (%s-%s)" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "adding %s to the NoUpgrade array temporarily" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "extracting files" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "could not get current working directory" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s is in NoExtract, skipping extraction" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "%s is in trans->skip_add, skipping extraction" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "could not extract %s (%s)" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "checking md5 hashes for %s" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "checking sha1 hashes for %s" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "current: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "new: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "original: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "could not rename %s (%s)" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "error: could not rename %s (%s)" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "could not copy tempfile to %s (%s)" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "error: could not copy tempfile to %s (%s)" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "%s saved as %s" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "warning: %s saved as %s" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "action: installing new file: %s" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "action: leaving existing file in place" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"action: keeping current file and installing new one with .pacnew ending" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "could not install %s as %s: %s" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "error: could not install %s as %s: %s" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "%s installed as %s" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "warning: %s installed as %s" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s is in NoUpgrade -- skipping" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "extracting %s as %s.pacnew" -#: lib/libalpm/add.c:686 -#, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "warning: extracting %s as %s.pacnew" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "extracting %s" - -#: lib/libalpm/add.c:705 -#, c-format -msgid "error: could not extract %s (%s)" -msgstr "error: could not extract %s (%s)" - -#: lib/libalpm/add.c:717 +#: lib/libalpm/add.c:721 #, c-format -msgid "appending backup entry for %s" -msgstr "appending backup entry for %s" +msgid "could not extract %s (%s)" +msgstr "could not extract %s (%s)" -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" +#: lib/libalpm/add.c:772 +#, fuzzy, c-format +msgid "problem occurred while upgrading %s" msgstr "errors occurred while %s %s" -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "upgrading" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "installing" - -#: lib/libalpm/add.c:769 -#, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "provision '%s' has been removed from package %s (%s => %s)" - -#: lib/libalpm/add.c:781 -#, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "updating '%s' due to provision change (%s)" +#: lib/libalpm/add.c:777 +#, fuzzy, c-format +msgid "problem occurred while installing %s" +msgstr "errors occurred while %s %s" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "could not update provision '%s' from '%s'" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "updating database" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "adding database entry '%s'" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "could not update database entry %s-%s" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "could not add entry '%s' in cache" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 -#, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "running \"ldconfig -r %s\"" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "removing DB %s, %d remaining..." - -#: lib/libalpm/alpm.c:181 -#, c-format -msgid "unregistering database '%s'" -msgstr "unregistering database '%s'" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "closing database '%s'" - -#: lib/libalpm/alpm.c:232 -#, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" -msgstr "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" - -#: lib/libalpm/alpm.c:236 -#, c-format -msgid "serverlist flushed for '%s'" -msgstr "serverlist flushed for '%s'" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" -msgstr "failed to get lastupdate time for %s (no big deal)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "failed to sync db: %s [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "sync: new mtime for %s: %s" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "flushing database %s%s" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "could not remove database entry %s%s" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "could not get sha1sum for package %s-%s" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "sha1sums for package %s-%s match" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "sha1sums do not match for package %s-%s" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "could not get md5sum for package %s-%s" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "md5sums for package %s-%s match" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "md5sums do not match for package %s-%s" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "could not remove lock file %s" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "warning: could not remove lock file %s" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "config: new section '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "config: nopassiveftp" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "config: usesyslog" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "config: chomp" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "config: usecolor" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "config: including %s" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "config: noupgrade: %s" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "config: noextract: %s" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "config: ignorepkg: %s" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "config: holdpkg: %s" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "config: dbpath: %s" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "config: cachedir: %s" - -#: lib/libalpm/alpm.c:1050 +#: lib/libalpm/be_files.c:83 #, fuzzy, c-format -msgid "config: rootdir: %s" -msgstr "config: cachedir: %s" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "config: logfile: %s" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "config: xfercommand: %s" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "config: upgradedelay: %d" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "checking for package replacements" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "checking replacement '%s' for package '%s'" - -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 -#, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -msgstr "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" - -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 -#, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" -msgstr "%s-%s elected for upgrade (to be replaced by %s-%s)" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "'%s' not found in sync db -- skipping" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "'%s' is already elected for removal -- skipping" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "%s elected for upgrade (%s => %s)" - -#: lib/libalpm/be_files.c:61 -#, c-format -msgid "unpacking database '%s'" -msgstr "unpacking database '%s'" +msgid "%s: description file is missing" +msgstr "%s: syntax error in description file line %d" -#: lib/libalpm/be_files.c:78 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "opening database from path '%s'" -msgstr "opening database from path '%s'" +msgid "%s: dependency file is missing" +msgstr "" -#: lib/libalpm/be_files.c:182 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "db scan could not find package: %s" -msgstr "db scan could not find package: %s" +msgid "%s: file list is missing" +msgstr "" -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "invalid name for database entry '%s'" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "invalid package entry provided to _alpm_db_read, skipping" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" -"request to read database info for a file-based package '%s', skipping..." - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "loading package data for %s : level=%d" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "cannot find '%s-%s' in db '%s'" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "could not open file %s: %s" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "writing %s-%s DESC information back to db" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "writing %s-%s FILES information back to db" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "writing %s-%s DEPENDS information back to db" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "loading package cache for repository '%s'" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "adding '%s' to package cache for db '%s'" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "freeing package cache for repository '%s'" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "error: pkgcache is NULL for db '%s'" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "adding entry '%s' in '%s' cache" - -#: lib/libalpm/cache.c:149 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "removing entry '%s' from '%s' cache" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "cannot remove entry '%s' from '%s' cache: not found" - -#: lib/libalpm/cache.c:178 -#, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "error: failed to get '%s' from NULL pkgcache" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "loading group cache for repository '%s'" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr " found conflict '%s' : package '%s'" - -#: lib/libalpm/conflict.c:78 -#, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr " found conflict '%s' : package '%s' provides '%s'" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "package '%s' conflicts with itself - packaging error" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "checkconflicts: target '%s' vs db" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "checkconflicts: target '%s' vs all targets" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "checkconflicts: db vs target '%s'" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" -msgstr "target '%s' is also in target list, using NEW conflicts" +msgid "malloc failure: could not allocate %d bytes" +msgstr "malloc failure: could not allocate %d bytes" -#: lib/libalpm/conflict.c:257 +#: lib/libalpm/db.c:238 #, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "\tCONFLICTS:: %s conflicts with %s" +msgid "could not remove database entry %s%s" +msgstr "could not remove database entry %s%s" -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "malloc failure: could not allocate %d bytes" -msgstr "malloc failure: could not allocate %d bytes" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" +msgstr "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "malloc failed: could not allocate %d bytes" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "attempt to re-register the 'local' DB" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "attempt to re-register the '%s' database, using existing" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "registering database '%s'" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "database directory '%s' does not exist, creating it" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "opening database '%s'" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "started sorting dependencies" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "possible dependency cycle detected" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "sorting dependencies finished" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "null package found in package list" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "cannot find package installed '%s'" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "checkdeps: dependency '%s' has moved from '%s' to '%s'" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "checkdeps: dependency '%s' satisfied by installed package '%s'" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "checkdeps: updated '%s' won't satisfy a dependency of '%s'" - -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "missing dependency '%s' for package '%s'" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "checkdeps: found %s as required by %s" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "excluding %s -- explicitly installed" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "cannot find package \"%s\" or anything that provides it!" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "adding '%s' to the targets" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "started resolving dependencies" +#: lib/libalpm/db.c:680 +#, fuzzy +msgid "database path is undefined" +msgstr "database not initialised" -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "%s provides dependency %s -- skipping" +#: lib/libalpm/deps.c:187 +#, fuzzy +msgid "dependency cycle detected\n" +msgstr "dependency cycle detected: %s" -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" msgstr "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "dependency %s is already in the target list -- skipping" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "pulling dependency %s (needed by %s)" - -#: lib/libalpm/deps.c:671 +#: lib/libalpm/deps.c:687 #, c-format msgid "cannot resolve dependencies for \"%s\"" msgstr "cannot resolve dependencies for \"%s\"" -#: lib/libalpm/deps.c:687 -#, c-format -msgid "dependency cycle detected: %s" -msgstr "dependency cycle detected: %s" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" -msgstr "finished resolving dependencies" - -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "out of memory!" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "unexpected system error" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "insufficient privileges" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "could not find or read file" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "wrong or NULL argument passed" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "library not initialised" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "library already initialised" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "unable to lock database" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "could not open database" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "could not create database" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "database not initialised" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "database already registered" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "could not find database" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "could not update database" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "could not remove database entry" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "invalid url for server" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "could not set parameter" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "transaction already initialised" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "transaction not initialised" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "duplicate target" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "transaction not prepared" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "transaction aborted" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "operation not compatible with the transaction type" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "could not commit transaction" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "could not download all files" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "could not find or read package" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "invalid or corrupted package" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "cannot open package file" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "cannot load package data" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "package already installed" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "package not installed or lesser version" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "cannot remove all files for package" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "package name is not valid" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "corrupted package" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "no such repository" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "group not found" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "could not satisfy dependencies" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "conflicting dependencies" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "conflicting files" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "user aborted the operation" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "internal error" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "libarchive error" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "not enough space on disk" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "not confirmed" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "bad configuration section name" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "'local' is reserved and cannot be used as a repository name" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "syntax error in config file" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "all directives must belong to a section" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "invalid regular expression" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "connection to remote host failed" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "unexpected error" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" msgstr "cannot canonicalise specified root path '%s'" -#: lib/libalpm/handle.c:175 -#, c-format -msgid "option 'root' = %s" -msgstr "option 'root' = %s" +#: lib/libalpm/md5driver.c:69 +#, fuzzy, c-format +msgid "md5: %s can't be opened\n" +msgstr "%s can't be opened\n" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "option 'dbpath' = %s" +msgid "could not get sha1sum for package %s-%s" +msgstr "could not get sha1sum for package %s-%s" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "option 'cachedir' = %s" +msgid "sha1sums do not match for package %s-%s" +msgstr "sha1sums do not match for package %s-%s" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "%s can't be opened\n" +msgid "could not get md5sum for package %s-%s" +msgstr "could not get md5sum for package %s-%s" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "md5(%s) = %s" +msgid "md5sums do not match for package %s-%s" +msgstr "md5sums do not match for package %s-%s" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "%s-%s: ignoring package upgrade (%s)" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "%s: forcing upgrade to version %s" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "%s: local (%s) is newer than %s (%s)" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "%s-%s: delaying upgrade of package (%s)" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "%s: syntax error in description file line %d" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "could not parse the package description file" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "missing package name in %s" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "missing package version in %s" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "could not remove tempfile %s" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "error while reading package: %s" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "missing package metadata" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "missing package filelist in %s, generating one" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "adding '%s' in requiredby field for '%s'" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "adding '%s' in requiredby field for '%s' (provides: %s)" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "could not find %s in database" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "adding %s in the targets list" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "pulling %s in the targets list" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "could not find %s in database -- skipping" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "finding removable dependencies" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "cannot remove file '%s': %s" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "Skipping removal of '%s' due to NoUpgrade" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "file %s does not exist" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "keeping directory %s" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "removing directory %s" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "%s is in trans->skip_remove, skipping removal" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "transaction is set to NOSAVE, not backing up '%s'" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "unlinking %s" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "cannot remove file %s: %s" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "removing package %s-%s" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "not removing package '%s', can't remove all files" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "removing %d files" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "removing database entry '%s'" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "could not remove database entry %s-%s" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "could not remove entry '%s' from cache" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "sha1: %s can't be opened\n" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "sha1(%s) = %s" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "checking for package upgrades" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "%s-%s elected for upgrade (%s => %s)" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "searching for target in repo '%s'" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "target '%s' not found -- looking for provisions" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "found '%s' as a provision for '%s'" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "repository '%s' not found" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "%s-%s is up to date -- skipping" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "adding target '%s' to the transaction set" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "resolving target's dependencies" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "adding package %s-%s to the transaction targets" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "looking for unresolvable dependencies" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "package '%s' conflicts with '%s'" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "'%s' not found in transaction set -- skipping" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "package '%s' provides its own conflict" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "'%s' is in the target list -- keeping it" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "removing '%s' from target list" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "resolving package '%s' conflict" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "electing '%s' for removal" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "unresolvable package conflicts detected" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "checking dependencies of packages designated for removal" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "something has gone horribly wrong" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "found '%s' as a provision for '%s' -- conflict aborted" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "%s is already in the cache\n" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "no %s cache exists, creating...\n" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "warning: no %s cache exists, creating..." - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" +#: lib/libalpm/sync.c:804 +#, fuzzy +msgid "couldn't create package cache, using /tmp instead" msgstr "couldn't create package cache, using /tmp instead\n" -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "warning: couldn't create package cache, using /tmp instead" - -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "failed to retrieve some files from %s\n" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "can't get md5 or sha1 checksum for package %s\n" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "could not create removal transaction" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "could not initialise the removal transaction" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "removing conflicting and to-be-replaced packages" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "could not prepare removal transaction" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "could not commit removal transaction" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "installing packages" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "could not create transaction" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "could not initialise transaction" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "could not prepare transaction" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "updating database for replaced packages' dependencies" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "could not update requiredby for database entry %s-%s" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "could not update new database entry %s-%s" -#: lib/libalpm/sync.c:1079 -#, c-format -msgid "found package '%s-%s' in sync" -msgstr "found package '%s-%s' in sync" - -#: lib/libalpm/sync.c:1085 -#, c-format -msgid "package '%s' not found in sync" -msgstr "package '%s' not found in sync" - -#: lib/libalpm/trans.c:271 -#, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "updating dependency packages 'requiredby' fields for %s-%s" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "package has no dependencies, no other packages to update" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 +#: lib/libalpm/trans.c:205 #, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "updating 'requiredby' field for package '%s'" +msgid "could not remove lock file %s" +msgstr "could not remove lock file %s" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "could not update 'requiredby' database entry %s-%s" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "could not find dependency '%s'" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "failed to make path '%s' : %s" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "could not open %s: %s\n" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "could not extract %s: %s\n" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "logaction called: %s" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "could not create temp directory" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "could not change directory to %s (%s)" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "executing %s script..." - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "could not fork a new process (%s)" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "chrooting in %s" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "could not change the root directory (%s)" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "could not change directory to / (%s)" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "executing \"%s\"" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "call to popen failed (%s)" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "call to waitpid failed (%s)" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "could not remove tmpdir %s" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "" +msgid "failed to make path '%s' : %s" +msgstr "failed to make path '%s' : %s" -#: lib/libalpm/util.c:609 +#: lib/libalpm/util.c:325 #, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" -msgstr "check_freespace: total pkg size: %lld, disk space: %lld" +msgid "could not open %s: %s\n" +msgstr "could not open %s: %s\n" -#: lib/libalpm/versioncmp.c:279 -#, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" -msgstr "depcmp: %s-%s %s %s-%s => %s" +#: lib/libalpm/util.c:346 +#, fuzzy, c-format +msgid "could not extract %s (%s)\n" +msgstr "could not extract %s (%s)" -#: lib/libalpm/versioncmp.c:284 -#, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "depcmp: %s-%s %s %s => %s" diff --git a/lib/libalpm/po/es.po b/lib/libalpm/po/es.po index 202dbc7d..f49305c3 100644 --- a/lib/libalpm/po/es.po +++ b/lib/libalpm/po/es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: libalpm\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: 2007-04-20 21:19-0300\n" "Last-Translator: Juan Pablo González Tognarelli <lord_jotape@yahoo.com.ar>\n" "Language-Team: juan pablo gonzález tognarelli <lord_jotape@yahoo.com.ar>\n" @@ -13,741 +13,167 @@ msgstr "" "X-Poedit-Country: CHILE\n" "X-Poedit-SourceCharset: utf-8\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "cargando el archivo '%s'" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "reemplazando la versión antigua %s-%s por %s en la lista de objetivos" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "" "una nueva versión %s-%s esta en la lista de objetivos list -- saltándola" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "leyendo los metadatos '%s'" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "buscando por dependencias no satisfechas" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "buscando por conflictos" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "el reemplazo de paqutes con -A y -U aún no esta soportado" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "por favor quitar '%s' primero, usando -Rd" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "ordenando por dependencias" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "limpiando" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "buscando por conflictos de archivos" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "actualizando el paquete %s-%s" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "agregando el paquete %s-%s" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "quitando el paquete antiguo primero (%s-%s)" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "agregando %s al arreglo NoUpgrade temporalmente" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "descomprimiendo archivos" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "no se pudo obtener el directorio de trabajo actual" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s está en NoExtract. Saltando la extracción" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "%s esta en la extracción trans->skip_add, skipping" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "no se pudo extraer %s (%s)" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "verificando los hash md5 para %s" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "verificando los hash SHA1 para %s" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "actual: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "nuevo: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "original: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "no se pudo renombrar %s (%s)" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "error: no se pudo renombrar %s (%s)" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "no se pudo copiar el archivo temporal a %s (%s)" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "error: no se pudo copiar el archivo temporal a %s (%s)" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "%s guardado como %s" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "advertencia: %s guardado como %s" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "acción: instalando nuevo archivo: %s" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "acción: dejando el archivo existente en su lugar" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"action:manteniendo el archivo actual e instalando un no nuevo con postfijo ." -"pacnew" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "no se pudo instalar %s como %s: %s" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "error: no se pudo instalar %s como %s: %s" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "%s instalado como %s" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "advertencia: %s instalado como %s" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s esta en en los no actualizables -- saltando" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "descomprimiendo %s como %s.pacnew" -#: lib/libalpm/add.c:686 -#, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "advertencia: descomprimiendo %s como %s.pacnew" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "descomprimiendo %s" - -#: lib/libalpm/add.c:705 -#, c-format -msgid "error: could not extract %s (%s)" -msgstr "error: no se pudo descomprimir %s (%s)" - -#: lib/libalpm/add.c:717 +#: lib/libalpm/add.c:721 #, c-format -msgid "appending backup entry for %s" -msgstr "agregando la entrada de respaldo para %s" +msgid "could not extract %s (%s)" +msgstr "no se pudo extraer %s (%s)" -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" +#: lib/libalpm/add.c:772 +#, fuzzy, c-format +msgid "problem occurred while upgrading %s" msgstr "ocurrieron errores mientras %s %s" -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "actualizando" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "instalando" - -#: lib/libalpm/add.c:769 -#, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "el provisional '%s' ha sido eliminado desde el paquete %s (%s => %s)" - -#: lib/libalpm/add.c:781 -#, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "actualizando '%s' debido a un cambio de provisiones (%s)" +#: lib/libalpm/add.c:777 +#, fuzzy, c-format +msgid "problem occurred while installing %s" +msgstr "ocurrieron errores mientras %s %s" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "no se pudo actualizar la provisión '%s' desde '%s'" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "actualizando la base de datos" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "agregando a la base de datos '%s'" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "no se pudo actualizar en la base de datos la entrada %s-%s" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "no se pudo agregar '%s' en la cache" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 -#, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "ejecutando \"ldconfig -r %s\"" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "quitando la base de datos %s, %d quedando..." - -#: lib/libalpm/alpm.c:181 -#, c-format -msgid "unregistering database '%s'" -msgstr "desmarcando la base de datos '%s'" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "cerrando la base de datos '%s'" - -#: lib/libalpm/alpm.c:232 -#, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" -msgstr "" -"agregando un nuevo servidor a la base de datos '%s': protocolo '%s', " -"servidor '%s', ruta '%s'" - -#: lib/libalpm/alpm.c:236 -#, c-format -msgid "serverlist flushed for '%s'" -msgstr "lista de servidores se ha barrido para '%s'" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" -msgstr "" -"fallo al obtener la última fecha de actualización para %s (no es un gran " -"problema)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "fallo al sincronizar la base de datos: %s [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "sync: nuevo mtime para %s: %s" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "barriendo la base de datos %s%s" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "no se pudo quitar la entrada en la base de datos %s%s" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "no se pudo obtener la verificación sha1 para %s-%s" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "verificando sha1 para el paquete %s-%s coincide" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "la verificación sha1 no coincide para %s-%s" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "no se pudo obtener la verificación md5 para %s-%s" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "la verificación md5 para el paquete %s-%s concuerda" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "la verificación md5 para el paquete %s-%s no concuerda" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "no se pudo quitar el archivo de bloqueo %s" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "advertencia: no se pudo eliminar el archivo de bloqueo %s" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "config: nueva sección '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "config: nopassiveftp" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "config: usesyslog" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "config: chomp" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "config: usecolor" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "config: incluyendo %s" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "config: noupgrade: %s" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "config: noextract: %s" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "config: ignorepkg: %s" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "config: holdpkg: %s" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "config: dbpath: %s" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "config: cachedir: %s" - -#: lib/libalpm/alpm.c:1050 +#: lib/libalpm/be_files.c:83 #, fuzzy, c-format -msgid "config: rootdir: %s" -msgstr "config: cachedir: %s" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "config: logfile: %s" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "config: xfercommand: %s" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "config: upgradedelay: %d" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "verificando si hay reemplazo de paquetes" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "verificando el reemplazo '%s' para el paquete '%s'" +msgid "%s: description file is missing" +msgstr "%s: error de sintaxis en la linea de descripción de archivos %d" -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" +msgid "%s: dependency file is missing" msgstr "" -"%s-%s: ignorando la actualización del paquete(para ser reemplazado por %s-%s)" -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" -msgstr "%s-%s escogido para actualizar (para ser reemplazado por %s-%s)" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "'%s' not encontrado en la base -- saltando" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "'%s' está ya seleccionado para quitar -- saltando" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "%s seleccionado para actualizar (%s => %s)" - -#: lib/libalpm/be_files.c:61 -#, c-format -msgid "unpacking database '%s'" -msgstr "desempaquetando la base de datos '%s'" - -#: lib/libalpm/be_files.c:78 -#, c-format -msgid "opening database from path '%s'" -msgstr "abriendo la base de datos desde la ruta '%s'" - -#: lib/libalpm/be_files.c:182 -#, c-format -msgid "db scan could not find package: %s" -msgstr "db scan no pudo encontrar el paquete: %s" +msgid "%s: file list is missing" +msgstr "" -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "nombre invalido para la entrada de la base de datos '%s'" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "entrada de paquete invalida a _alpm_db_read, saltando" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" -"petición para leer la información de la base para el paquete basado en " -"archivo '%s', saltando..." - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "cargando la información del paquete para %s : nivel=%d" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "no se pudo encontrar '%s-%s' en la base '%s'" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "no se pudo abrir el archivo %s: %s" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "escribiendo %s-%s, información DESC en la base" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "escribiendo %s-%s, información FILES en la base" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "escribiendo %s-%s, información DEPENDS en la base" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "cargando la cache de paquetes para el repositorio '%s'" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "agregando '%s' a la cache de paquetes para la base '%s'" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "liberando la cache de paquetes para el repositorio '%s'" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "error: la cache de paquetes es nula para la base de datos '%s'" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "agregando '%s' en la cache '%s'" - -#: lib/libalpm/cache.c:149 -#, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "quitando '%s' de la cache '%s'" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "no se pudo quitar '%s' de la cache '%s': no encontrado" - -#: lib/libalpm/cache.c:178 -#, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "" -"error: se produjo un fallo al obtener '%s' desde la cache de paquetes \"NULL" -"\"" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "cargando la cache de grupo para el repositorio '%s'" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr " se ha encontrado un conflicto '%s' : paquete '%s'" - -#: lib/libalpm/conflict.c:78 -#, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr " se ha encontrado un conflicto '%s' : paquete '%s' provee '%s'" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "el paquete '%s' posee conflictos con si mismo- error del paquete" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "checkconflicts: el objetivo '%s' vs la base de datos" - -#: lib/libalpm/conflict.c:149 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "checkconflicts: el objetivo '%s' vs todos los objetivos" +msgid "malloc failure: could not allocate %d bytes" +msgstr "falla en malloc: no se pudo alocar %d bytes" -#: lib/libalpm/conflict.c:181 +#: lib/libalpm/db.c:238 #, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "checkconflicts: la base de datos vs el objetivo '%s'" +msgid "could not remove database entry %s%s" +msgstr "no se pudo quitar la entrada en la base de datos %s%s" -#: lib/libalpm/conflict.c:201 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "target '%s' is also in target list, using NEW conflicts" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" msgstr "" -"'%s' esta también en la lista de objetivos, usando NEW provoca conflictos" - -#: lib/libalpm/conflict.c:257 -#, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "\tCONFLICTS:: %s posee conflictos con %s" - -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 -#, c-format -msgid "malloc failure: could not allocate %d bytes" -msgstr "falla en malloc: no se pudo alocar %d bytes" +"%s-%s: ignorando la actualización del paquete(para ser reemplazado por %s-%s)" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "malloc falló: no se pudo alocar %d bytes" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "intento para re-registrar la base de datos 'local'" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "intento para re-registrar la base de datos '%s', usando la existente" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "registrando la base de datos '%s'" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "el directorio de base de datos '%s' no existe, creando" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "abriendo la base de datos '%s'" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "empezando a ordenar dependencias" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "posible ciclo de dependencias detectado" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "ordenamiento de dependencias finalizado" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "se ha encontrado un paquete nulo en la lista de paquetes" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "no se pudo encontrar el paquete instalado '%s'" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "checkdeps: la dependencia '%s' ha sido movida desde '%s' a '%s'" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "" -"checkdeps: la dependencia '%s' es satisfecha por el paquete instalado '%s'" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "" -"checkdeps: El paquete actualizado '%s' no satisfará una dependencia de'%s'" - -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "dependencia faltante '%s' para el paquete '%s'" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "checkdeps: encontrado %s como lo requería %s" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "excluyendo %s -- instalado explícitamente" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "no se pudo encontrar el paquete \"%s\" o algo que lo provea!" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "agregando '%s' a los objetivos" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "empezando a resolver dependencias" +#: lib/libalpm/db.c:680 +#, fuzzy +msgid "database path is undefined" +msgstr "base de datos no inicializada" -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "%s provee la dependencia %s -- saltando" +#: lib/libalpm/deps.c:187 +#, fuzzy +msgid "dependency cycle detected\n" +msgstr "ciclo de dependencias detectado: %s" -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" @@ -755,771 +181,448 @@ msgstr "" "no se pudo resolver dependecias para \"%s\" (\"%s\" no está en las listas de " "paquetes)" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "la dependencia %s ya está en la lista de objetivos -- saltando" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "trayendo la dependencia %s (necesitada por %s)" - -#: lib/libalpm/deps.c:671 +#: lib/libalpm/deps.c:687 #, c-format msgid "cannot resolve dependencies for \"%s\"" msgstr "no se pudo resolver las dependencias para \"%s\"" -#: lib/libalpm/deps.c:687 -#, c-format -msgid "dependency cycle detected: %s" -msgstr "ciclo de dependencias detectado: %s" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" -msgstr "se ha finalizado la resolución de dependencias" - -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "no hay memoria!" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "error de sistema inesperado" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "privilegios insuficientes" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "no se pudo encontrar o leer el archivo" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "argumento erroneo o núlo" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "librería no inicializada" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "la librería ya fue inicializada" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "no se pudo bloquear la base de datos" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "no se pudo abrir la base de datos" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "no se pudo crear la base de datos" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "base de datos no inicializada" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "base de datos ya registrada" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "no se pudo encontrar la base de datos" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "no se pudo actualizar la base de datos" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "no se pudo quitar la entrada de la base de datos" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "dirección inválida para el servidor" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "no se pudo fijar el parámetro" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "la operación ya se inicializó" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "operación no inicializada" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "objetivo duplicado" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "operación no lista" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "operación abortada" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "la operación no es compatible con el tipo de transacción" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "no se pudo hacer la transacción" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "no se pudo descargar todos los archivos" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "no se pudo encontrar o leer el paquete" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "paquete invalido o corrupto" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "no se pudo abrir el archivo de paquetes" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "no se pudo cargar la información del paquete" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "el paquete ya está instalado" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "el paquete no está instalado o es una versión menor" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "no se pudo quitar todos los archivos del paquete" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "el nombre del paquete no es válido" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "paquete corrupto" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "no existe el repositorio" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "grupo no encontrado" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "no se pudieron satisfacer las dependencias" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "dependencias en conflicto" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "archivos en conflicto" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "el usuario abortó la operación" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "error interno" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "error de libarchive" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "no hay suficiente espacio en el disco" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "no confirmado" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "nombre de sección de configuración erróneo" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "" -"'local' esta reservado y no puede ser utilizado como nombre de repositorio" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "error de sintaxis en el archivo de configuración" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "todas las directivas deben pertener a una sección" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "expresión regular inválida" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "falló la conexión con el host remoto" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "error inesperado" # canonicalize.. no supe traducirla bien -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" msgstr "no se pudo obtener el la ruta canonica de la raiz especificada '%s'" -#: lib/libalpm/handle.c:175 -#, c-format -msgid "option 'root' = %s" -msgstr "opción 'root' = %s" +#: lib/libalpm/md5driver.c:69 +#, fuzzy, c-format +msgid "md5: %s can't be opened\n" +msgstr "%s no puede ser abierto\n" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "opción 'dbpath' = %s" +msgid "could not get sha1sum for package %s-%s" +msgstr "no se pudo obtener la verificación sha1 para %s-%s" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "opción 'cachedir' = %s" +msgid "sha1sums do not match for package %s-%s" +msgstr "la verificación sha1 no coincide para %s-%s" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "%s no puede ser abierto\n" +msgid "could not get md5sum for package %s-%s" +msgstr "no se pudo obtener la verificación md5 para %s-%s" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "md5(%s) = %s" +msgid "md5sums do not match for package %s-%s" +msgstr "la verificación md5 para el paquete %s-%s no concuerda" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "%s-%s: ignorando la actualización del paquete (%s)" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "%s: forzando la actualización a la versión %s" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "%s: local (%s) es más nuevo que %s (%s)" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "%s-%s: aplazando la actualización del paquete (%s)" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "%s: error de sintaxis en la linea de descripción de archivos %d" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "no se pudo interpretar el archivo de descripción" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "nombre de paquete perdido en %s" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "versión de paquete perdida en %s" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "no se pudo quitar el archivo temporal %s" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "error mientras se leía el paquete : %s" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "falta la metadata del paquete " -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "falta la lita de paquetes en %s. generando una" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "agregando '%s' en el campo requiredby para '%s'" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "agregando '%s' en el campo requiredby para '%s' (provee %s)" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "no se pudo encontrar %s en la base de datos" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "agregando %s en la lista de objetivos" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "poniendo %s en la lista de objetivos" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "no se pudo encontrar %s en la base de datos -- saltando" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "buscando dependencias a eliminar" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "no se pudo quitar el archivo '%s': %s" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "" -"saltando la eliminación de '%s' debido a la condición de no actualización" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "el archivo %s no existe" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "manteniendo el directorio %s" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "quitando el directorio %s" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "%s esta en trans->skip_remove, saltando la eliminación" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "la transacción esta definida como NOSAVE, no se respaldará '%s'" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "desvinculando %s" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "no se pudo quitar el archivo %s: %s" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "quitando el paquete %s-%s" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "no se quitará el paquete '%s', no se puede quitar todos los archivos" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "quitando %d archivos" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "quitando de la base de datos '%s'" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "no se pudo quitar de la base de datos %s-%s" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "no se pudo quitar la entrada '%s' de la cache" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "sha1: %s no puede ser abierto\n" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "sha1(%s) = %s" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "verificando actualizaciones de paquetes" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "%s-%s seleccionada para actualización (%s => %s)" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "buscando el objetivo en el repositorio '%s'" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "'%s' no se encontró -- buscando provisionales" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "encontrado '%s' como provisional para '%s'" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "repositorio '%s' no encontrado" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "%s-%s esta al día -- saltando" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "agregando el objetivo '%s' a la lista de transacciones" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "resolviendo las dependencias" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "agregando el paquete %s-%s como blanco para la transacción" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "buscando dependencias no resueltas" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "el paquete '%s' posee conflictos con '%s'" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "'%s' no se encontró en las transacciones -- saltando" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "el paquete '%s' provee su propio conflicto" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "'%s' esta en la lista de objetivos -- manteniendolo" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "quitando '%s' de la lista de objetivos" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "resolviendo el conflicto del paquete '%s'" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "escogiendo '%s' para quitarlo" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "se han detectado paquetes con conflictos no resueltos" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "verificando dependencias de paquetes indicados para quitar" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "algo ha ido horriblemente mal" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "encontrado '%s' como provisional para '%s' -- conflicto abortado" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "%s ya esta en la cache\n" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "no existe la cache %s, creando...\n" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "advertencia: no existe la cache %s. creándola..." - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" +#: lib/libalpm/sync.c:804 +#, fuzzy +msgid "couldn't create package cache, using /tmp instead" msgstr "no se pudo crear la cache de paquetes, usando /tmp en su lugar\n" -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "" -"advertencia: no se pudo crear la cache para paquetes. usando /tmp en su lugar" - -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "fallo al descargar algunos archivos desde %s\n" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "no se pudo verificar md5 o sha1 para el paquete %s\n" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "" "el archivo %s estaba corrupto (no coincidió la verificación MD5 o SHA1)\n" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "el archivo %s esta corrupto (verificación MD5 o SHA1 errónea)\n" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "no se pudo crear la operación de eliminación" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "no se pudo iniciar la operación de eliminación" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "quitando paquetes conflictivos y los que serán reemplazados" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "no se pudo preparar la operación de eliminación" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "no se pudo asignar la operación de quitado" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "instalando paquetes" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "no se pudo crear la operación" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "no se pudo iniciar la operación" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "no se pudo preparar la transacción" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "" -"actuando la base de datos para las dependencias de los paquetes reemplazados" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "no se pudo actualizar \"requiredby\" para la entrada %s-%s" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "no se pudo actualizar la nueva entrada a la base de datos %s-%s" -#: lib/libalpm/sync.c:1079 -#, c-format -msgid "found package '%s-%s' in sync" -msgstr "paquete encontrado '%s-%s' en la base de sincronización" - -#: lib/libalpm/sync.c:1085 -#, c-format -msgid "package '%s' not found in sync" -msgstr "el paquete '%s' no fue encontrado en la base de sincronización" - -# No me agrada mucho esta traducción. Habrá una mejor manera de indicarlo? -#: lib/libalpm/trans.c:271 -#, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "" -"actualizando los campos 'requeridospor' de los paquetes de dependencias " -"para %s-%s" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "el paquete no posee dependencias, no hay más paquetes para actualizar" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 +#: lib/libalpm/trans.c:205 #, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "actualizando el campo 'requiredby' para '%s'" +msgid "could not remove lock file %s" +msgstr "no se pudo quitar el archivo de bloqueo %s" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "no se pudo actualizar \"requiredby\" para la entrada %s-%s" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "no se pudo encontrar la dependencia '%s'" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "fallo al crear la ruta '%s' : %s" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "no se pudo abrir %s: %s\n" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "no se pudo extraer %s: %s\n" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "acción de registro llamada: %s" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "no se puede crear el directorio temporal " -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "no se pudo cambiar el directorio a %s (%s)" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "ejecutando el script %s..." - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "no se pudo crear un nuevo proceso (%s)" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "haciendo cambio de raiz en %s" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "no se pudo cambiar el directorio raíz (%s)" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "no se pudo cambiar el directorio a / (%s)" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "ejecutando \"%s\"" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "llamada a popen fallida (%s)" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "llamada a waitpid fallida (%s)" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "no se pudo quitar el directorio temporal %s" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "" +msgid "failed to make path '%s' : %s" +msgstr "fallo al crear la ruta '%s' : %s" -#: lib/libalpm/util.c:609 +#: lib/libalpm/util.c:325 #, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" -msgstr "verificando espacio libre: tamaño total: %lld, espacio en disco: %lld" +msgid "could not open %s: %s\n" +msgstr "no se pudo abrir %s: %s\n" -#: lib/libalpm/versioncmp.c:279 -#, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" -msgstr "depcmp: %s-%s %s %s-%s => %s" +#: lib/libalpm/util.c:346 +#, fuzzy, c-format +msgid "could not extract %s (%s)\n" +msgstr "no se pudo extraer %s (%s)" -#: lib/libalpm/versioncmp.c:284 -#, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "depcmp: %s-%s %s %s => %s" diff --git a/lib/libalpm/po/fr.po b/lib/libalpm/po/fr.po index 7e6d0d17..c912acdc 100644 --- a/lib/libalpm/po/fr.po +++ b/lib/libalpm/po/fr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Pacman package manager 3.0.1\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: 2007-04-17 12:45+0100\n" "Last-Translator: nam <37ii11@altern.org>\n" "Language-Team: solsTiCe d'Hiver <solstice.dhiver@laposte.net>\n" @@ -15,744 +15,168 @@ msgstr "" "X-Poedit-Language: French\n" "X-Poedit-Country: FRANCE\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "chargement de la cible '%s'" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "" "remplacement de l'ancienne version %s-%s par %s dans la liste des cibles" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "" "une version plus récente %s-%s est dans la liste des cibles -- paquet ignoré" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "lecture des méta-données '%s'" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "recherche des dépendances non satisfaites" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "recherche des conflits" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "remplacer un paquet avec -A ou -U n'est pas encore possible" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "veuillez supprimer '%s' d'abord, en utilisant -Rd" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "tri par dépendances" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "nettoyage" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "recherche de conflits entre fichiers" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "mise à jour du paquet %s-%s" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "ajout du paquet %s-%s" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "suppression préalable de l'ancien paquet (%s-%s)" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "ajout provisoire de %s parmi les paquets à ne pas mettre à jour" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "extraction des fichiers" - # j'ai traduit chaque fois "could not" par "a échoué" -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "déterminer le répertoire courant a échoué" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s est dans la liste des paquets NoExtract -- extraction non effectuée" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "%s est dans trans->skip_add, extraction ignorée" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "l'extraction de %s (%s) a échoué" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "vérification de la 'signature' md5 pour %s" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "vérification de la 'signature' sha1 pour %s" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "courant: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "nouveau: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "original: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "renommer %s (%s) a échoué" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "erreur: renommer %s (%s) a échoué" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "la copie du fichier temporaire vers %s (%s) a échoué" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "erreur: la copie du fichier temporaire vers %s (%s) a échoué" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "%s enregistré en tant que %s" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "avertissement: %s enregistré en tant que %s" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "action: installation du nouveau fichier: %s" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "action: quitte en préservant les fichiers existants" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"action: conserve le fichier actuel et installe le nouveau avec l'extension ." -"pacnew" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "l'installation de %s en tant que %s: %s a échoué" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "erreur: l'installation de %s en tant que %s: %s a échoué" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "%s installé en tant que %s" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "avertissement: %s installé en tant que %s" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s est parmi les paquets à ne pas mettre à jour -- ignoré" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "extraction de %s comme %s.pacnew" -#: lib/libalpm/add.c:686 -#, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "avertissement: extraction de %s comme %s.pacnew" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "extraction de %s" - -#: lib/libalpm/add.c:705 -#, c-format -msgid "error: could not extract %s (%s)" -msgstr "erreur: l'extraction de %s (%s) a échoué" - -#: lib/libalpm/add.c:717 +#: lib/libalpm/add.c:721 #, c-format -msgid "appending backup entry for %s" -msgstr "ajoute une entrée de sauvegarde pour %s" +msgid "could not extract %s (%s)" +msgstr "l'extraction de %s (%s) a échoué" -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" +#: lib/libalpm/add.c:772 +#, fuzzy, c-format +msgid "problem occurred while upgrading %s" msgstr "des erreurs sont survenues pendant %s %s" -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "mise à jour" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "installation" - -#: lib/libalpm/add.c:769 -#, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "la condition '%s' a été supprimée du paquet %s (%s => %s)" - -#: lib/libalpm/add.c:781 -#, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "mise à jour de '%s' suite à un changement de contenu (%s)" +#: lib/libalpm/add.c:777 +#, fuzzy, c-format +msgid "problem occurred while installing %s" +msgstr "des erreurs sont survenues pendant %s %s" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "la mise à jour du contenu '%s' dans '%s' a échoué" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "mise à jour de la base de données" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "ajout de l'entrée de base de données '%s'" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "la mise à jour l'entrée de base de données %s-%s a échoué" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "l'ajout au cache de l'entrée '%s' a échoué" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 -#, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "exécution de \"ldconfig -r %s\"" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "suppression de la DB %s, %d restant..." - -#: lib/libalpm/alpm.c:181 -#, c-format -msgid "unregistering database '%s'" -msgstr "désenregistrement de la base de données '%s'" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "fermeture de la base de données '%s'" +#: lib/libalpm/be_files.c:83 +#, fuzzy, c-format +msgid "%s: description file is missing" +msgstr "%s: erreur de syntaxe dans le fichier de description à la ligne %d" -#: lib/libalpm/alpm.c:232 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" +msgid "%s: dependency file is missing" msgstr "" -"ajout d'un nouveau serveur à la base '%s': protocole '%s', serveur '%s', " -"chemin '%s'" - -#: lib/libalpm/alpm.c:236 -#, c-format -msgid "serverlist flushed for '%s'" -msgstr "liste des serveurs mise à jour pour '%s'" -#: lib/libalpm/alpm.c:279 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "failed to get lastupdate time for %s (no big deal)" +msgid "%s: file list is missing" msgstr "" -"échec de récupération de la date de dernière mise à jour pour %s (problème " -"mineur)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "échec de synchronisation de la base de données: %s [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "sync: nouveau mtime pour %s: %s" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "mise à jour de la base de données %s%s" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "la suppression de l'entrée de base de données %s%s a échoué" -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "l'obtention de la 'signature' sha1 pour le paquet %s-%s a échoué" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "les 'signatures' sha1 correspondent pour le paquet %s-%s" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "les 'signatures' sha1 ne correspondent pas pour le paquet %s-%s" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "l'obtention de la 'signature' md5 pour le paquet %s-%s a échoué" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "les 'signatures' md5 correspondent pour le paquet %s-%s" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "les 'signatures' md5 ne correspondent pas pour le paquet %s-%s" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "la suppression du fichier de verrouillage %s a échoué" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "avertissement: la suppression du fichier de verrouillage %s a échoué" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "config: nouvelle section '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "config: nopassiveftp" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "config: usesyslog" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "config: chomp" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "config: usecolor" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "config: inclusion de %s" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "config: noupgrade: %s" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "config: noextract: %s" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "config: ignorepkg: %s" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "config: holdpkg: %s" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "config: dbpath: %s" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "config: cachedir: %s" - -#: lib/libalpm/alpm.c:1050 -#, c-format -msgid "config: rootdir: %s" -msgstr "config: rootdir: %s" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "config: logfile: %s" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "config: xfercommand: %s" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "config: upgradedelay: %d" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "analyse de remplacements possibles pour le paquet" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "analyse du remplacement '%s' pour le paquet '%s'" - -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 -#, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -msgstr "%s-%s: ignore la mise à jour du paquet (à remplacer par %s-%s)" - -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 -#, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" -msgstr "%s-%s sélectionné pour mise à jour (à remplacer par %s-%s)" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "'%s' non trouvé dans la liste de synchronisation -- ignoré" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "'%s' est déjà sélectionné pour suppression -- ignoré" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "%s sélectionné pour mise à jour (%s => %s)" - -#: lib/libalpm/be_files.c:61 -#, c-format -msgid "unpacking database '%s'" -msgstr "décompression de la base de données '%s'" - -#: lib/libalpm/be_files.c:78 -#, c-format -msgid "opening database from path '%s'" -msgstr "ouverture de la base de données à partir du chemin '%s'" - -#: lib/libalpm/be_files.c:182 -#, c-format -msgid "db scan could not find package: %s" -msgstr "l'analyse de la base de données n'a pas pu trouver le paquet: %s" - -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "nom invalide pour l'entrée de base de données '%s'" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "paquet invalide fournit à _alpm_db_read, et ignoré" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" -"demande de lecture de la base de données pour un paquet type fichier '%s', " -"ignoré..." - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "chargement des données du paquet %s : niveau=%d" -# j'ai traduit chaque fois "cannot" par "impossible de" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "impossible de trouver %s-%s dans la base de données '%s'" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "l'ouverture du fichier %s: %s a échoué" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "écriture des informations DESC pour %s-%s dans la base de données" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "écriture des informations FILES pour %s-%s dans la base de données" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "écriture des informations DEPENDS pour %s-%s dans la base de données" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "chargement du cache de paquets pour le dépôt '%s'" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "ajout de '%s' au cache de paquets pour la base de données '%s'" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "nettoyage du cache de paquets pour le dépot '%s'" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "erreur: pkgcache est NULL pour la base de données '%s'" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "ajout de l'entrée '%s' dans '%s' cache" - -#: lib/libalpm/cache.c:149 -#, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "suppression de l'entrée '%s' du '%s' cache" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "impossible de supprimer le cache '%s' de l'entrée '%s': non trouvé" - -#: lib/libalpm/cache.c:178 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "erreur: échec d'obtention de '%s' de NULL pkgcache" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "chargement du cache de groupe pour le dépôt '%s'" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr " conflit détecté '%s' : paquet '%s'" - -#: lib/libalpm/conflict.c:78 -#, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr " conflit détecté '%s': paquet '%s' fournit '%s'" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "" -"le paquet '%s' est en conflit avec lui-même - erreur de création de paquet" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "analyse des conflits: cible '%s' comparée à la base" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "analyse des conflits: cible '%s' comparée aux cibles" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "analyse des conflits: base de données comparée à la cible '%s'" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" -msgstr "" -"'%s' est aussi dans la liste de cibles, analyse des nouveaux conflits " -"possibles" +msgid "malloc failure: could not allocate %d bytes" +msgstr "erreur malloc: n'a pas pu allouer %d bytes" -#: lib/libalpm/conflict.c:257 +#: lib/libalpm/db.c:238 #, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "\tCONFLITS:: %s est en conflit avec %s" +msgid "could not remove database entry %s%s" +msgstr "la suppression de l'entrée de base de données %s%s a échoué" -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "malloc failure: could not allocate %d bytes" -msgstr "erreur malloc: n'a pas pu allouer %d bytes" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" +msgstr "%s-%s: ignore la mise à jour du paquet (à remplacer par %s-%s)" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "malloc a echoué: n'a pas pu allouer %d bytes" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "tentative de ré-enregistrer la base de données locale" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "" -"essai de ré-enregistrement de la base de données '%s', utilisant celle qui " -"existe" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "enregistrement de la base de données '%s'" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "le répertoire de base de données '%s' n'existe pas, création" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "ouverture de la base de données '%s'" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "début du tri des dépendances" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "possible cycle de dépendances détecté" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "fin du tri des dépendances" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "aucun paquet trouvé dans la liste des paquets" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "impossible de trouver le paquet installé '%s'" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "checkdeps: dépendance '%s' a changé de '%s' à '%s'" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "checkdeps: dépendance '%s' satisfaite par le paquet installé '%s'" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "checkdeps: '%s' mis à jour ne satisfera pas une dépendance de '%s'" - -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "dépendance manquante '%s' pour le paquet '%s'" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "checkdeps: trouvé %s, comme requis par %s" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "exclusion de %s -- explicitement installé" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "" -"impossible de trouver le paquet \"%s\" ou quoique ce soit qui le fournisse!" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "ajout de '%s' aux cibles" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "début du tri des dépendances" +#: lib/libalpm/db.c:680 +#, fuzzy +msgid "database path is undefined" +msgstr "base de données non initialisée" -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "%s fournit la dépendance %s -- ignoré" +#: lib/libalpm/deps.c:187 +#, fuzzy +msgid "dependency cycle detected\n" +msgstr "cycle de dépendances détecté: %s" -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" @@ -760,919 +184,450 @@ msgstr "" "résolution des dépendances impossible pour \"%s\" (\"%s\" n'est pas parmi " "les paquets)" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "la dépendance %s est déjà dans la liste de cibles -- ignorée" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "récupération de la dépendance %s (requise par %s)" - -#: lib/libalpm/deps.c:671 +#: lib/libalpm/deps.c:687 #, c-format msgid "cannot resolve dependencies for \"%s\"" msgstr "résolution des dépendances impossible pour \"%s\"" -#: lib/libalpm/deps.c:687 -#, c-format -msgid "dependency cycle detected: %s" -msgstr "cycle de dépendances détecté: %s" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" -msgstr "fin du tri des dépendances" - -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "dépassement de mémoire!" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "erreur système non prévue" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "autorisation insuffisante" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "trouver ou lire le fichier a échoué" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "un argument erroné ou nul a été fourni" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "librairie non initialisée" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "librairie déjà initialisée" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "verrouillage de la base de données impossible" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "l'ouverture de la base de données a échoué" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "la création de la base de données a échoué" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "base de données non initialisée" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "base de données déjà enregistrée" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "trouver la base de données a échoué" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "la mise à jour de la base de données a échoué" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "la suppression de l'entrée de base de données a échoué" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "URL invalide pour le serveur" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "définir le paramètre a échoué" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "transaction déjà initialisée" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "transaction non initialisée" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "cible répétée" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "transaction non préparée" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "transaction annulée" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "opération incompatible avec le type de transaction" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "appliquer la transaction a échoué" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "tous les fichiers n'ont pas pu être téléchargés" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "trouver ou de lire le paquet a échoué" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "paquet invalide ou corrompu" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "ouverture du fichier paquet impossible" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "chargement des données du paquet impossible" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "paquet déjà installé" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "paquet non installé ou version plus ancienne" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "suppression de certains fichiers du paquet impossible" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "nom de paquet invalide" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "paquet corrompu" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "ce dépôt n'existe pas" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "groupe non trouvé" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "la satisfaction des dépendances a échoué" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "conflit de dépendances" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "conflit de fichiers" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "opération annulée par l'utilisateur" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "erreur interne" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "erreur de libarchive" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "espace disque insuffisant" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "non confirmé" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "nom de la section de configuration erroné" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "'local' est réservé et ne peut être utilisé comme nom de dépôt" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "erreur de syntaxe dans le fichier de configuration" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "toutes les directives doivent appartenir à une section" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "expression régulière incorrecte" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "échec de connexion à l'hôte distant " -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "erreur non prévue" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" msgstr "normalisation du chemin root '%s' impossible" -#: lib/libalpm/handle.c:175 -#, c-format -msgid "option 'root' = %s" -msgstr "option 'root' = %s" +#: lib/libalpm/md5driver.c:69 +#, fuzzy, c-format +msgid "md5: %s can't be opened\n" +msgstr "l'ouverture de %s a échoué\n" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "option 'dbpath' = %s" +msgid "could not get sha1sum for package %s-%s" +msgstr "l'obtention de la 'signature' sha1 pour le paquet %s-%s a échoué" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "option 'cachedir' = %s" +msgid "sha1sums do not match for package %s-%s" +msgstr "les 'signatures' sha1 ne correspondent pas pour le paquet %s-%s" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "l'ouverture de %s a échoué\n" +msgid "could not get md5sum for package %s-%s" +msgstr "l'obtention de la 'signature' md5 pour le paquet %s-%s a échoué" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "md5(%s) = %s" +msgid "md5sums do not match for package %s-%s" +msgstr "les 'signatures' md5 ne correspondent pas pour le paquet %s-%s" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "%s-%s: ignore la mise à jour du paquet (%s)" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "%s: force la mise à jour à la version %s" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "%s: la version locale (%s) est plus récente que %s (%s)" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "%s-%s: retarde la mise à jour du paquet (%s)" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "%s: erreur de syntaxe dans le fichier de description à la ligne %d" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "l'analyse du fichier de description a échoué" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "nom de paquet manquant dans %s" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "version de paquet manquante dans %s" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "la suppression du fichier temporaire %s a échoué" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "erreur lors de la lecture du paquet: %s" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "méta-données du paquet manquantes" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "liste de fichiers absente du paquet %s, création" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "ajoute '%s' dans le champ 'requis par' pour '%s'" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "ajoute '%s' dans le champ 'requis par' pour '%s' (fournit: %s)" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "trouver %s dans la base de données a échoué" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "ajoute %s dans la liste des cibles" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "ajoute %s à la liste des cibles" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "trouver %s dans la base de données a échoué -- ignoré" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "trouve les dépendances susceptibles d'être supprimées" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "suppression du fichier '%s': %s impossible" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "Ignore la suppression de %s pour cause de NoUpgrade" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "le fichier %s n'existe pas" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "préservation du répertoire %s" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "suppression du répertoire %s" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "%s est dans trans->skip_remove, suppression ignorée" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "la transaction se fait avec option NOSAVE, pas de sauvegarde de '%s'" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "suppression du lien %s" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "suppression du fichier %s: %s impossible" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "suppression du paquet %s-%s" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "paquet '%s' non supprimé, certains fichiers ne peuvent être supprimés" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "suppression de %d fichiers" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "suppression de l'entrée de base de données %s" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "la suppression de l'entrée de base de données %s-%s a échoué" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "la suppression du cache de l'entrée '%s' a échoué" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "sha1: %s ne peut être ouvert\n" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "sha1(%s) = %s" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "vérification des mises à jour disponibles" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "%s-%s sélectionné pour mise à jour (%s => %s)" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "cherche la cible dans le dépôt '%s'" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "cible '%s' non trouvée -- recherche des " - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "trouvé '%s' comme condition pour '%s'" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "dépôt '%s' non trouvé" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "%s-%s est à jour -- ignoré" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "ajout de la cible '%s' au jeu de transactions" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "résolution des dépendances pour la cible" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "ajout du paquet %s-%s aux cibles de la transaction" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "recherche de dépendances impossibles à résoudre" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "le paquet '%s' est en conflit avec '%s'" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "'%s' non trouvé dans le jeu de transactions -- ignoré" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "le paquet '%s' génère son propre conflit" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "'%s' est dans la la liste de cibles -- conservation" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "suppression de '%s' de la liste des cibles" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "résolution des conflits pour le paquet '%s'" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "sélection de '%s' pour suppression" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "un conflit de paquets impossible à résoudre a été détecté" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "analyse des dépendances des paquets sélectionnés pour suppression" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "quelque chose s'est horriblement mal passé" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "trouvé '%s' comme pour '%s' -- conflit annulé" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "%s est déjà dans le cache\n" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "le cache %s n'existe pas, création...\n" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "avertissement: le cache %s n'existe pas, création..." - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" +#: lib/libalpm/sync.c:804 +#, fuzzy +msgid "couldn't create package cache, using /tmp instead" msgstr "n'a pas pu créer le cache de paquets, /tmp sera utilisé à la place\n" -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "" -"avertissement: ne peut créer le cache de paquets, /tmp sera utilisé à la " -"place" - -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "échec de récupération de certains fichiers depuis %s\n" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "ne peut obtenir la 'signature' md5 ou sha1 pour le paquet %s\n" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "l'archive %s était corrompue (mauvaise somme MD5 ou SHA1)\n" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "l'archive %s est corrompue (mauvaise somme MD5 ou SHA1)\n" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "la création de la transaction de suppression a échoué" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "l'initialisation de la transaction de suppression a échoué" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "suppression des paquets en conflit et de ceux à remplacer" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "la préparation de la transaction de suppression a échoué" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "appliquer la transaction de suppression a échoué" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "installation des paquets" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "la création de la transaction a échoué" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "l'initialisation de la transaction a échoué" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "la préparation de la transaction a échoué" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "" -"mise à jour de la base de données avec les dépendances des paquets remplacés" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "" "la mise à jour du champ requiredby pour l'entrée de base de données %s-%s a " "échoué" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "la mise à jour de la nouvelle entrée de base de données %s-%s a échoué" -#: lib/libalpm/sync.c:1079 -#, c-format -msgid "found package '%s-%s' in sync" -msgstr "paquet '%s-%s' trouvé dans sync" - -#: lib/libalpm/sync.c:1085 -#, c-format -msgid "package '%s' not found in sync" -msgstr "paquet '%s' non trouvé dans la liste de synchronisation" - -#: lib/libalpm/trans.c:271 -#, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "mise à jour des dépendances dans les champs 'requiredby' pour %s-%s" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "le paquet n'a aucune dépendance, pas d'autres paquets à mettre à jour" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 +#: lib/libalpm/trans.c:205 #, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "mise à jour du champ 'requiredby' pour le paquet '%s'" +msgid "could not remove lock file %s" +msgstr "la suppression du fichier de verrouillage %s a échoué" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "" "la mise à jour du champ 'requiredby' de l'entrée de base de données %s-%s a " "échoué" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "trouver la dépendance '%s' a échoué" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "échec de la création du chemin '%s' : %s" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "l'ouverture de %s: %s a échoué\n" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "l'extraction de %s: %s a échoué\n" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "logaction called: %s" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "la création du répertoire temporaire a échoué" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "changer de répertoire vers %s (%s) a échoué" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "exécution du script %s ..." - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "la génération d'un nouveau processus (%s) a échoué" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "chroot dans %s" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "changer le répertoire racine (%s) a échoué" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "changer de répertoire vers / (%s) a échoué" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "exécution de \"%s\"" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "l'appel à popen a échoué (%s)" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "call to waitpid failed (%s)" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "la suppression du répertoire temporaire %s a échoué" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "impossible de lire l'information concernant l'espace disque de %s: %s" - -#: lib/libalpm/util.c:609 -#, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" -msgstr "check_freespace: taille totale: %lld, espace disque: %lld" - -#: lib/libalpm/versioncmp.c:279 -#, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" -msgstr "depcmp: %s-%s %s %s-%s => %s" +msgid "failed to make path '%s' : %s" +msgstr "échec de la création du chemin '%s' : %s" -#: lib/libalpm/versioncmp.c:284 +#: lib/libalpm/util.c:325 #, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "depcmp: %s-%s %s %s => %s" - -#~ msgid "%s saved as %s.pacorig" -#~ msgstr "%s sauve en tant que %s.pacorig" - -#~ msgid "could not parse token %s" -#~ msgstr "ne peut analyser l'élément %s" - -#~ msgid "notice: %s is in NoExtract -- skipping extraction" -#~ msgstr "note: %s est dans la liste NoExtract -- ignore l'extraction" - -#~ msgid "loading package cache (infolevel=%#x) for repository '%s'" -#~ msgstr "chargement du cache de paquet (infolevel=%#x) pour le dépot '%s'" - -#, fuzzy -#~ msgid "package cache reloaded (infolevel=%#x) for repository '%s'" -#~ msgstr "chargement du cache de paquet (infolevel=%#x) pour le dépot '%s'" - -#~ msgid "targs vs db: found %s as a conflict for %s" -#~ msgstr "" -#~ "comparaison cibles / base de données : trouve %s comme conflit pour %s" - -#~ msgid "targs vs targs: found %s as a conflict for %s" -#~ msgstr "" -#~ "comparaison cible / liste de cibles : trouve %s comme conflit pour %s" - -#~ msgid "db vs targs: found %s as a conflict for %s" -#~ msgstr "comparaison base de donnée / cibles: trouve %s en conflit avec %s" - -#, fuzzy -#~ msgid "no dependencies for target '%s'" -#~ msgstr "ne peut résoudre les dépendances pour \"%s\"" - -#, fuzzy -#~ msgid "%s-%s: ignoring package upgrade (%s => %s)" -#~ msgstr "%s-%s: ignore la mise à jour du paquet (%s)" - -#~ msgid "adding new package %s-%s" -#~ msgstr "ajout du nouveau paquet %s-%s" - -#~ msgid "error updating database for %s-%s!" -#~ msgstr "erreur lors de la mise a jour de la base de données pour %s-%s!" - -#~ msgid "dep is NULL!" -#~ msgstr "dep est NULL!" - -#~ msgid "loading ALL info for '%s'" -#~ msgstr "chargement de TOUTES les infos pour '%s'" - -#, fuzzy -#~ msgid "could not find dependency '%s' for removal" -#~ msgstr "n'a pas pu trouver la dépendance '%s'" - -#~ msgid "loading FILES info for '%s'" -#~ msgstr "chargement des informations de fichiers pour '%s'" - -#~ msgid "loading DESC info for '%s'" -#~ msgstr "chargement des informations descriptives pour '%s'" - -#, fuzzy -#~ msgid "syntax error" -#~ msgstr "erreur interne" - -#~ msgid "unpacking %s" -#~ msgstr "décompacte %s" - -#~ msgid "loading SCRIPLET info for '%s'" -#~ msgstr "charge les infos de SCRIPLET pour '%s'" - -#, fuzzy -#~ msgid "config: %s: server: %s\n" -#~ msgstr "avertissement: %s sauve en tant que %s" - -#~ msgid "db_write: could not open file %s/desc" -#~ msgstr "db_write: n'a pas pu ouvrir le fichier %s/desc" - -#~ msgid "db_write: could not open file %s/files" -#~ msgstr "db_write: n'a pas pu ouvrir le fichier %s/files" - -#~ msgid "db_write: could not open file %s/depends" -#~ msgstr "db_write: n' pas pu ouvrir le fichier %s/depends" - -#~ msgid "PM_OPT_DBPATH set to '%s'" -#~ msgstr "PM_OPT_DBPATH défini à '%s'" - -#~ msgid "PM_OPT_CACHEDIR set to '%s'" -#~ msgstr "PM_OPT_CACHEDIR défini à '%s'" - -#~ msgid "can't open log file %s" -#~ msgstr "ne peut ouvrir le fichier de log %s" - -#~ msgid "PM_OPT_LOGFILE set to '%s'" -#~ msgstr "PM_OPT_LOGFILE défini à '%s'" - -#~ msgid "'%s' added to PM_OPT_NOUPGRADE" -#~ msgstr "'%s' ajouté à PM_OPT_NOUPGRADE" - -#~ msgid "PM_OPT_NOUPGRADE flushed" -#~ msgstr "PM_OPT_NOUPGRADE rechargé" - -#~ msgid "'%s' added to PM_OPT_NOEXTRACT" -#~ msgstr "'%s' ajouté à PM_OPT_NOEXTRACT" - -#~ msgid "PM_OPT_NOEXTRACT flushed" -#~ msgstr "PM_OPT_NOEXTRACT rechargé" - -#~ msgid "'%s' added to PM_OPT_IGNOREPKG" -#~ msgstr "'%s' ajouté à PM_OPT_IGNOREPKG" - -#~ msgid "PM_OPT_IGNOREPKG flushed" -#~ msgstr "PM_OPT_IGNOREPKG rechargé" - -#, fuzzy -#~ msgid "'%s' added to PM_OPT_HOLDPKG" -#~ msgstr "'%s' ajouté à PM_OPT_IGNOREPKG" - -#, fuzzy -#~ msgid "PM_OPT_HOLDPKG flushed" -#~ msgstr "PM_OPT_IGNOREPKG rechargé" - -#~ msgid "PM_OPT_USESYSLOG set to '%d'" -#~ msgstr "PM_OPT_USESYSLOG défini à '%d'" - -#~ msgid "PM_OPT_LOGMASK set to '%02x'" -#~ msgstr "PM_OPT_LOGMASK défini à '%02x'" - -#, fuzzy -#~ msgid "PM_OPT_PROXYHOST set to '%s'" -#~ msgstr "PM_OPT_DBPATH défini à '%s'" - -#, fuzzy -#~ msgid "PM_OPT_PROXYPORT set to '%d'" -#~ msgstr "PM_OPT_DBPATH défini à '%s'" - -#, fuzzy -#~ msgid "PM_OPT_XFERCOMMAND set to '%s'" -#~ msgstr "PM_OPT_CACHEDIR défini à '%s'" - -#, fuzzy -#~ msgid "PM_OPT_NOPASSIVEFTP set to '%d'" -#~ msgstr "PM_OPT_DBPATH défini à '%s'" - -#, fuzzy -#~ msgid "PM_OPT_CHOMP set to '%d'" -#~ msgstr "PM_OPT_CACHEDIR défini à '%s'" +msgid "could not open %s: %s\n" +msgstr "l'ouverture de %s: %s a échoué\n" -#~ msgid "bad package file in %s" -#~ msgstr "mauvais fichier de paquet dans %s" +#: lib/libalpm/util.c:346 +#, fuzzy, c-format +msgid "could not extract %s (%s)\n" +msgstr "l'extraction de %s (%s) a échoué" -#~ msgid "%s-%s: local version is newer -- skipping" -#~ msgstr "%s-%s: la version locale est plus récente -- ignoré" diff --git a/lib/libalpm/po/hu.po b/lib/libalpm/po/hu.po index bf8ee41e..c22f3c77 100644 --- a/lib/libalpm/po/hu.po +++ b/lib/libalpm/po/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: hu\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-13 14:54+0200\n" "PO-Revision-Date: 2007-03-14 13:45+0100\n" "Last-Translator: Nagy Gabor <ngaba@petra.hos.u-szeged.hu>\n" "Language-Team: <hu@li.org>\n" @@ -17,735 +17,163 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: KBabel 1.11.4\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "cl betltse '%s'" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "a %s-%s-t lecserli a %s a cl listban" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "az jabb verzi (%s-%s) mr elrhet a cl listban -- kihagys" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "'%s' metaadat olvassa" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "elgtelen fggsgek keresse" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "konfliktusok keresse" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "csomagok lecserlse mg nem tmogatott -A s -U esetn" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "krem elszr tvoltsa el '%s'-t a -Rd kapcsolt hasznlva" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "rendezs fggsgek szerint" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "tisztts" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "fjl konfliktusok keresse" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "csomag frisstse: %s-%s" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "csomag hozzadsa %s-%s" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "elsknt a rgi csomag eltvoltsa (%s-%s)" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "fjlok kitmrtse" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "a jelenlegi munkaknyvtr nem kaphat meg" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s a NoExtractben van, kitmrts kihagysa" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "nem sikerlt kitmrteni: %s (%s)" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "md5 sszegek vizsglata a %s szmra" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "sha1 sszegek vizsglata a %s szmra" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "jelenlegi: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "j: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "eredeti: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "nem sikerlt tnevezni: %s (%s)" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "hiba: nem sikerlt tnevezni: %s (%s)" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "nem sikerlt az ideiglenes fjlt ide msolni: %s (%s)" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "hiba: nem sikerlt az ideiglenes fjlt ide msolni: %s (%s)" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "a %s elmentve %s nven" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "figyelmeztets: a %s elmentve %s nven" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "folyamat: j fjl teleptse: %s" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "folyamat: a jelenlegi fjl megtartsa" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"folyamat: a jelenlegi fjl megtartsa s az j .pacnew vgzdssel val " -"teleptse" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "nem sikerlt telepteni a %s-t %s-knt: %s" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "hiba: nem sikerlt telepteni a %s-t %s-knt: %s" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "a %s %s nven lett teleptve" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "figyelmeztets: a %s nven %s lett teleptve" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s a NoUpgrade-ben van -- kihagys" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "%s kitmrtse %s.pacnew nven" -#: lib/libalpm/add.c:686 +#: lib/libalpm/add.c:721 #, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "figyelmeztets: %s kitmrtse %s.pacnew nven" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "a %s kitmrtse" - -#: lib/libalpm/add.c:705 -#, c-format -msgid "error: could not extract %s (%s)" -msgstr "hiba: nem sikerlt kitmrteni: %s (%s)" - -#: lib/libalpm/add.c:717 -#, c-format -msgid "appending backup entry for %s" -msgstr "" - -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" -msgstr "hiba %s kzben: %s" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "frissts" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "telepts" +msgid "could not extract %s (%s)" +msgstr "nem sikerlt kitmrteni: %s (%s)" -#: lib/libalpm/add.c:769 +#: lib/libalpm/add.c:772 #, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "" +msgid "problem occurred while upgrading %s" +msgstr "hiba trtnt a(z) %s frisstse kzben" -#: lib/libalpm/add.c:781 +#: lib/libalpm/add.c:777 #, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "" +msgid "problem occurred while installing %s" +msgstr "hiba trtnt a(z) %s teleptse kzben" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "az adatbzis frisstse" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "adatbzis mez hozzadsa '%s'" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "sikertelen a '%s-%s' adatbzis-bejegyzs frisstse" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "sikertelen a '%s' bejegyzs hozzadsa a gyorsttrhoz" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 +#: lib/libalpm/be_files.c:83 #, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "az \"ldconfig -r %s\" futtatsa" +msgid "%s: description file is missing" +msgstr "%s: hinyz csomagler fjl" -#: lib/libalpm/alpm.c:116 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "removing DB %s, %d remaining..." -msgstr "" +msgid "%s: dependency file is missing" +msgstr "%s: hinyz csomagfggsg fjl" -#: lib/libalpm/alpm.c:181 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "unregistering database '%s'" -msgstr "adatbzis eltvoltsa: '%s'" +msgid "%s: file list is missing" +msgstr "%s: hinyz fjllista" -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "adatbzis bezrsa: '%s'" - -#: lib/libalpm/alpm.c:232 -#, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" -msgstr "" -"j szerver hozzadsa a(z) '%s' adatbzishoz: protokoll '%s', szerver '%s', " -"t '%s'" - -#: lib/libalpm/alpm.c:236 -#, c-format -msgid "serverlist flushed for '%s'" -msgstr "a szerverlista rtve a(z) '%s' szmra" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" -msgstr "" -"nem sikerlt megkapni az utols mdostsi idpontjt a kvetkeznek: %s " -"(nincs sok esly)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "nem sikerlt szinkronizlni a(z) '%s' adatbzist [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "sikertelen a %s%s adatbzis-bejegyzs eltvoltsa" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "sikertelen az sha1 ellenrz sszeg elrse a %s-%s csomag szmra" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "a %s-%s csomag sha1 ellenrz sszegei megegyeznek" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "%s-%s csomag sha1 ellenrz sszegei nem egyeznek meg" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "sikertelen az md5 ellenrz sszeg elrse a %s-%s csomag szmra" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "a %s-%s csomag md5 ellenrz sszegei megegyeznek" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "%s-%s csomag md5 ellenrz sszegei nem egyeznek meg" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "nem sikerlt a zrol fjl (%s) eltvoltsa" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "figyelmeztets: nem sikerlt a zrol fjl (%s) eltvoltsa" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "belltsok: j szekci '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "belltsok: nopassiveftp" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "belltsok: usesyslog" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "belltsok: chomp" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "belltsok: usecolor" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "belltsok: a %s beolvassa" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "belltsok: noupgrade: %s" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "belltsok: noextract: %s" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "belltsok: ignorepkg: %s" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "belltsok: holdpkg: %s" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "belltsok: adatbzistvonal: %s" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "belltsok: gyorsttrknyvtr: %s" - -#: lib/libalpm/alpm.c:1050 -#, fuzzy, c-format -msgid "config: rootdir: %s" -msgstr "belltsok: gyorsttrknyvtr: %s" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "belltsok: naplfjl: %s" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "belltsok: xfercommand: %s" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "belltsok: frissts ksleltetse: %d" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "csomagcserk ellenrzse" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "csere vizsglata: '%s' -> '%s'" - -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 -#, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -msgstr "%s-%s: frissts figyelmen kvl hagysa (a %s-%s fogja lecserlni)" - -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 -#, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" -msgstr "a %s-%s kivlasztva frisstsre (a %s-%s fogja lecserlni)" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "a '%s' nem tallhat a tvoli adatbzisban -- kihagys" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "a '%s' mr kijellve eltvoltsra -- kihagys" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "a(z) %s kivlasztva frisstsre (%s => %s)" - -#: lib/libalpm/be_files.c:61 -#, c-format -msgid "unpacking database '%s'" -msgstr "a(z) '%s' adatbzis kitmrtse" - -#: lib/libalpm/be_files.c:78 -#, c-format -msgid "opening database from path '%s'" -msgstr "" - -#: lib/libalpm/be_files.c:182 -#, c-format -msgid "db scan could not find package: %s" -msgstr "" - -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "rvnytelen nv a '%s' adatbzis-bejegyzs szmra" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "az _alpm_db_read nem rvnyes csomag bejegyzst kapott, kihagys" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" -msgstr "" - -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "nem tallhat '%s-%s' a(z) '%s' adatbzisban" +msgstr "a(z) %s csomag adatainak betltse : szint=%d" -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "nem sikerlt megnyitni a %s fjlt: %s" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "csomaggyorsttr betltse '%s' rep szmra" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "a(z) '%s' csomag hozzadsa a(z) '%s' adatbzis csomaggyorsttrhoz" -#: lib/libalpm/cache.c:85 +#: lib/libalpm/conflict.c:339 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "freeing package cache for repository '%s'" -msgstr "csomaggyorsttr felszabadtsa a '%s' rep szmra" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "a '%s' bejegyzs hozzadsa a '%s' gyorsttrhoz" - -#: lib/libalpm/cache.c:149 -#, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "a '%s' bejegyzs eltvoltsa a '%s' gyorsttrbl" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "" -"nem sikerlt a '%s' bejegyzs eltvoltsa a '%s' gyorsttrbl: nem " -"tallhat" - -#: lib/libalpm/cache.c:178 -#, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "csoportgyorsttr betltse a '%s' rep szmra" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:78 -#, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "a(z) '%s' csomag tkzik sajt magval - csomag hiba" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "checkconflicts: cl '%s' vs db" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "checkconflicts: cl '%s' vs sszes cl" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "checkconflicts: db vs cl '%s'" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" -msgstr "" +msgid "malloc failure: could not allocate %d bytes" +msgstr "malloc problma: nem sikerlt alloklni %d byte-ot" -#: lib/libalpm/conflict.c:257 +#: lib/libalpm/db.c:238 #, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "" +msgid "could not remove database entry %s%s" +msgstr "sikertelen a %s%s adatbzis-bejegyzs eltvoltsa" -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "malloc failure: could not allocate %d bytes" -msgstr "malloc problma: nem sikerlt alloklni %d byte-ot" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" +msgstr "%s-%s: frissts figyelmen kvl hagysa (a %s-%s fogja lecserlni)" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "malloc problma: nem sikerlt alloklni %d byte-ot" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "ksrlet a 'local' adatbzis jraregisztrlsra" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "" -"ksrlet a(z) '%s' adatbzis jraregisztrlsra, a jelenlegi hasznlata" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "adatbzis regisztrlsa: '%s'" +#: lib/libalpm/db.c:680 +msgid "database path is undefined" +msgstr "az adatbzis-tvonal nincs megadva" -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "'%s' adatbzis-knyvtr nem ltezik, ltrehozs" +#: lib/libalpm/deps.c:187 +msgid "dependency cycle detected\n" +msgstr "krkrs fggsg szlelve\n" -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "adatbzis megnyitsa: '%s'" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "a fggsgek rendezse elkezddtt" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "lehetsges krkrs fggsgi problma szlelve" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "a fggsgek rendezse befejezdtt" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "checkdeps: a frisstett '%s' nem elgti ki '%s' egy fggsgt" - -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "hinyz '%s' fggsg a '%s' csomagnl" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "checkdeps: a %s ignyelt a %s ltal" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "a %s kihagysa -- explicit mdon lett teleptve" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "nem tallhat a \"%s\" csomag s nem is szolgltatja semmi!" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "a '%s' hozzadsa a clcsomagokhoz" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "a fggsgek rendezse elkezddtt" - -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "a %s szolgltatja a %s fggsget -- kihagys" - -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" @@ -753,766 +181,445 @@ msgstr "" "nem sikerlt a fggsgek feloldsa a \"%s\" szmra (nem tallhat a \"%s\" " "a csomagok kztt)" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "a %s fggsg mr a clcsomagok kztt szerepel -- kihagys" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "a %s fggsg behozsa (a %s ignyli)" - -#: lib/libalpm/deps.c:671 +#: lib/libalpm/deps.c:687 #, c-format msgid "cannot resolve dependencies for \"%s\"" msgstr "nem sikerlt feloldani a fggsgeket a \"%s\" szmra" -#: lib/libalpm/deps.c:687 -#, c-format -msgid "dependency cycle detected: %s" -msgstr "krkrs fggsg szlelve: %s" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" -msgstr "a fggsgek rendezse elkezddtt" - -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "elfogyott a memria!" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "nemvrt hiba" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "elgtelen jogosultsgok" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "nem tallhat vagy nem olvashat a fjl" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "rossz vagy NULL argumentum rkezett" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "a knyvtr nem inicializlt" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "a knyvtr mr inicializlt" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "nem sikerlt zrolni az adatbzist" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "nem sikerlt megnyitni az adatbzist" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "nem sikerlt ltrehozni az adatbzist" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "az adatbzis nem inicializlt" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "az adatbzis mr regisztrlt" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "nem tallhat az adatbzis" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "nem sikerlt megnyitni az adatbzist" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "nem sikerlt eltvoltani az adatbzis-bejegyzst" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "rvnytelen url" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "nem sikerlt belltani a paramtert" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "a tranzakci mr inicializlt" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "a tranzakci nem inicializlt" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "kt azonos clcsomag" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "a tranzakci nincs elksztve" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "a tranzakci flbeszaktva" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "a mvelet nem egyeztethet ssze a jelenlegi tranzakcitpussal" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "nem sikerlt commitolni a tranzakcit" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "nem sikerlt letlteni az sszes fjlt" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "nem tallhat vagy nem olvashat a csomag" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "nem rvnyes vagy srlt csomag" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "nem sikerlt megnyitni a csomagfjlt" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "nem sikerlt betlteni a csomagadatokat" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "a csomag mr teleptve van" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "a csomag nincs teleptve vagy kisebb verzij" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "nem sikerlt eltvoltani a csomag sszes fjljt" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "nem rvnyes a csomagnv" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "srlt csomag" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "nincs ilyen rep" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "a csoport nem tallhat" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "nem sikerlt kielgteni a fggsgeket" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "tkz fggsgek" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "tkz fjlok" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "felhasznli megszakts" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "bels hiba" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "libarchive hiba" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "nincs elg hely" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "nem megerstett" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "a 'local' nv fenntartott s nem hasznlhat repnvknt" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "szintaktikai hiba a belltsfjlban" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "minden direktvnak egy szekcihoz kell tartoznia" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "rvnytelen regulris kifejezs" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "nem sikerlt csatlakozni a tvoli gphez" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "nemvrt hiba" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" -msgstr "" +msgstr "nem sikerlt rtelmezni a megadott gykrknyvtr-tvonalat: '%s'" -#: lib/libalpm/handle.c:175 +#: lib/libalpm/md5driver.c:69 #, c-format -msgid "option 'root' = %s" -msgstr "" +msgid "md5: %s can't be opened\n" +msgstr "md5: nem sikerlt megnyitni a kvetkezt: %s\n" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "" +msgid "could not get sha1sum for package %s-%s" +msgstr "sikertelen az sha1 ellenrz sszeg elrse a %s-%s csomag szmra" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "" +msgid "sha1sums do not match for package %s-%s" +msgstr "%s-%s csomag sha1 ellenrz sszegei nem egyeznek meg" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "nem sikerlt megnyitni a kvetkezt: %s\n" +msgid "could not get md5sum for package %s-%s" +msgstr "sikertelen az md5 ellenrz sszeg elrse a %s-%s csomag szmra" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "" +msgid "md5sums do not match for package %s-%s" +msgstr "%s-%s csomag md5 ellenrz sszegei nem egyeznek meg" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "%s-%s: a csomagfrissts figyelmen kvl hagysa (%s)" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "%s: erltetett frissts a %s verzira" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "%s: a helyi (%s) jabb, mint %s (%s)" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "%s-%s: a csomag frisstsnek ksleltetse (%s)" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "%s: szintaktikai hiba a lerfjl %d. sorban" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "nem sikerlt rtelmezni a csomagler fjlt" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "hinyz csomagnv itt: %s" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "hinyz csomagverzi itt: %s" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "nem sikerlt eltvoltani a %s ideiglenes fjlt" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "hiba a csomag olvassa kzben: %s" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" -msgstr "" +msgstr "hinyz csomaginformcis fjl" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" -msgstr "" - -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "nem tallhat a %s az adatbzisban" +msgstr "hinyzik a(z) %s csomag fjllistja, generls" -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "a %s hozzadsa a cllisthoz" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "a %s behozsa a cllistba" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "nem tallhat a %s az adatbzisban -- kihagys" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "eltvolthat fggsgek keresse" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "nem sikerlt eltvoltani a '%s' fjlt : %s" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "A '%s' trlsnek kihagysa a NoUpgrade miatt" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "a %s fjl nemltezik" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "a %s knyvtr megtartsa" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "a %s knyvtr trlse" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "a %s trlse" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "nem sikerlt eltvoltani a %s fjlt: %s" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "a %s-%s csomag eltvoltsa" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "" -"nem tvoltom el a(z) '%s' csomagot, nem tudom eltvoltani az sszes fjlt" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "%d fjl trlse" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "a '%s' adatbzis-bejegyzs eltvoltsa" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "nem sikerlt eltvoltani a %s-%s adatbzis-bejegyzst" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "nem sikerlt eltvoltani a '%s' bejegyzst a gyorsttrbl" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "sha2: nem sikerlt megnyitni a kvetkezt: %s\n" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "csomagfrisstsek vizsglata" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "a(z) %s-%s kivlasztva frisstsre (%s => %s)" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "cl keresse a '%s' repban" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "a(z) '%s' cl nem tallhat - szolglatk keresse" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "a(z) '%s' szolgltatja a(z) '%s' csomagot" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "a(z) '%s' rep nem tallhat" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "a(z) %s-%s napraksz -- kihagys" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "a '%s' hozzadsa a tranzakcihoz" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "a clok fggsgeinek feloldsa" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "a '%s-%s' hozzadsa a clcsomagokhoz" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "elgtelen fggsgek keresse" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "a(z) '%s' csomag tkzik a(z) '%s' csomaggal" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "a '%s' nem tallhat a tranzakciban -- kihagys" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "a(z) '%s' csomag sajt magval tkzik" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "a(z) '%s' mr a cl listban -- megtarts" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "a(z) '%s' bejegyzs eltvoltsa a cllistbl" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "konfliktus feloldsa a(z) '%s' csomag szmra" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "a(z) '%s' kivlasztsa eltvoltsra" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "feloldhatatlan csomagtkzsek" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "az eltvoltand csomagok fggsgeinek ellenrzse" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "valami nagyon rosszul ment" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "a(z) '%s' szolgltatja a(z) '%s' csomagot - konfliktus flbeszaktva" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "%s mr a gyorsttrban\n" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "nem ltezik a(z) %s gyorsttr. ltrehozs...\n" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "figyelmeztets: a(z) %s gyorsttr nem ltezik. ltrehozs..." - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" -msgstr "nem sikerlt ltrehozni a csomag gyorsttrat, a /tmp hasznlata\n" - -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "" -"figyelmeztets: nem sikerlt ltrehozni a csomag gyorsttrat, a /tmp " -"hasznlata" +#: lib/libalpm/sync.c:804 +msgid "couldn't create package cache, using /tmp instead" +msgstr "nem sikerlt ltrehozni a csomag gyorsttrat, a /tmp hasznlata" -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "nem sikerlt nhny fjlt letlteni innen: %s\n" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "" "sikertelen az md5 vagy sha1 ellenrz sszeg elrse a %s csomag szmra\n" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "a(z) %s archvum srlt volt (rossz MD5 vagy SHA1 szumma)\n" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "a(z) %s archvum srlt (rossz MD5 vagy SHA1 szumma)\n" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "nem sikerlt ltrehozni az eltvoltsi tranzakcit" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "nem sikerlt inicializlni az eltvoltsi tranzakcit" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "az tkz s lecserlend csomagok eltvoltsa" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "nem sikerlt ltrehozni az eltvoltsi tranzakcit" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "nem sikerlt commitolni az eltvolt tranzakcit" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "csomagok teleptse" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "nem sikerlt ltrehozni a tranzakcit" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "nem sikerlt inicializlni a tranzakcit" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "nem sikerlt elkszteni a tranzakcit" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "a lecserlt csomagok fggsgeinek frisstse az adatbzisban" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "sikertelen a %s-%s 'fgg tle' adatbzis-bejegyzsnek frisstse" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "sikertelen a '%s-%s' adatbzis-bejegyzs frisstse" -#: lib/libalpm/sync.c:1079 -#, c-format -msgid "found package '%s-%s' in sync" -msgstr "" - -#: lib/libalpm/sync.c:1085 -#, c-format -msgid "package '%s' not found in sync" -msgstr "a '%s' csomag nem tallhat a tvoli adatbzisban" - -#: lib/libalpm/trans.c:271 +#: lib/libalpm/trans.c:205 #, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "a csomagnak nincsenek fggsgei, nincs tbb frisstend csomag" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 -#, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "a '%s' csomag 'fgg tle' mezjnek frisstse" +msgid "could not remove lock file %s" +msgstr "nem sikerlt a zrol fjl (%s) eltvoltsa" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "sikertelen a %s-%s 'fgg tle' adatbzis-bejegyzsnek frisstse" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "nem tallhat a '%s' fggsg" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "nem sikerlt a '%s' tvonal ltrehozsa: %s" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "nem sikerlt megnyitni a %s fjlt: %s\n" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "nem sikerlt a(z) %s-t kitmrteni: %s\n" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "nem sikerlt ltrehozni az ideiglenes knyvtrat" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "nem sikerlt a(z) %s knyvtrba vltani (%s)" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "a(z) %s script vgrehajtsa..." - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "nem sikerlt forkolni egy j folyamatot (%s)" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "chrootols a kvetkez knyvtrba: %s" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "nem sikerlt a gykrknyvtrba vltani (%s)" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "nem sikerlt a knyvtrat a /-re vltani (%s)" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "a(z) %s vgrehajtsa" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "a popen hvs sikertelen (%s)" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "a waitpid hvs sikertelen (%s)" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "nem sikerlt eltvoltani a %s ideiglenes knyvtrat" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "" - -#: lib/libalpm/util.c:609 -#, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" -msgstr "check_freespace: teljes csomagmret: %lld, lemezterlet: %lld" +msgid "failed to make path '%s' : %s" +msgstr "nem sikerlt a '%s' tvonal ltrehozsa: %s" -#: lib/libalpm/versioncmp.c:279 +#: lib/libalpm/util.c:325 #, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" -msgstr "" +msgid "could not open %s: %s\n" +msgstr "nem sikerlt megnyitni a %s fjlt: %s\n" -#: lib/libalpm/versioncmp.c:284 +#: lib/libalpm/util.c:346 #, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "" +msgid "could not extract %s (%s)\n" +msgstr "nem sikerlt kitmrteni: %s (%s)\n" diff --git a/lib/libalpm/po/it.po b/lib/libalpm/po/it.po index a735b1a1..cdc60818 100644 --- a/lib/libalpm/po/it.po +++ b/lib/libalpm/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: libalpm VERSION\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: 2007-03-22 12:30+0100\n" "Last-Translator: Giovanni Scafora <linuxmania@gmail.com>\n" "Language-Team: Arch Linux Italian Team <linuxmania@gmail.com>\n" @@ -17,742 +17,166 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bitPlural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "caricamento del pacchetto '%s' in corso" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "sostituzione in corso della vecchia versione %s-%s con %s" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "la versione di %s-%s è più recente e sarà ignorato" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "lettura dei metadata di '%s' in corso" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "ricerca delle dipendenze non soddisfatte" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "ricerca dei conflitti in corso" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "la sostituzione dei pacchetti con -A e -U non è ancora supportata" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "Si consiglia di rimuovere prima '%s', usando -Rd" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "ordinamento per dipendenze in corso" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "pulizia in corso" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "ricerca dei conflitti tra file in corso" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "aggiornamento del pacchetto %s-%s in corso" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "inclusione del pacchetto %s-%s in corso" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "rimozione del vecchio pacchetto (%s-%s) in corso" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "aggiunta temporanea di %s nell'array NoUpgrade in corso" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "estrazione dei file in corso" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "impossibile ottenere la directory corrente" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s è in NoExtract, estrazione ignorata" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "%s è in trans->skip_add, estrazione ignorata" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "impossibile estrarre %s (%s)" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "controllo dell'hash md5 di %s" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "controllo dell'hash sha1 di %s" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "attuale: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "nuovo: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "originale: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "impossibile rinominare %s (%s)" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "errore: impossibile rinominare %s (%s)" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "impossibile copiare il file temporaneo in %s (%s)" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "errore: impossibile copiare il file temporaneo in %s (%s)" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "%s salvato come %s" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "attenzione: %s salvato come %s" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "azione: installazione del nuovo file %s in corso" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "azione: il file non è stato spostato" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"azione: il file attuale non è stato spostato e sarà installato un nuovo file " -"con il suffisso .pacnew" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "impossibile installare %s come %s: %s" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "errore: impossibile installare %s come %s: %s" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "%s installato come %s" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "attenzione: %s installato come %s" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s è in NoUpgrade e sarà ignorato" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "estrazione di %s come %s.pacnew" -#: lib/libalpm/add.c:686 -#, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "attenzione: estrazione in corso di %s come %s.pacnew" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "estrazione di %s in corso" - -#: lib/libalpm/add.c:705 +#: lib/libalpm/add.c:721 #, c-format -msgid "error: could not extract %s (%s)" -msgstr "errore: impossibile estrarre %s (%s)" - -#: lib/libalpm/add.c:717 -#, c-format -msgid "appending backup entry for %s" -msgstr "aggiunta in corso della voce di backup per %s" +msgid "could not extract %s (%s)" +msgstr "impossibile estrarre %s (%s)" -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" +#: lib/libalpm/add.c:772 +#, fuzzy, c-format +msgid "problem occurred while upgrading %s" msgstr "si sono verificati degli errori durante %s %s" -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "l'aggiornamento" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "l'installazione" - -#: lib/libalpm/add.c:769 -#, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "'%s' è stato rimosso dal pacchetto %s (%s => %s)" - -#: lib/libalpm/add.c:781 -#, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "aggiornamento in corso di '%s' dovuto ad un cambiamento (%s)" +#: lib/libalpm/add.c:777 +#, fuzzy, c-format +msgid "problem occurred while installing %s" +msgstr "si sono verificati degli errori durante %s %s" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "impossibile aggiornare '%s' da '%s'" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "aggiornamento del database in corso" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "inclusione della voce '%s' nel database" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "impossibile aggiornare la voce %s-%s nel database" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "impossible includere la voce '%s' nella cache" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 -#, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "esecuzione in corso di \"ldconfig -r %s\"" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "rimozione in corso del DB %s, %d restante..." - -#: lib/libalpm/alpm.c:181 -#, c-format -msgid "unregistering database '%s'" -msgstr "cancellazione del database '%s' in corso" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "chiusura del database '%s' in corso" - -#: lib/libalpm/alpm.c:232 -#, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" -msgstr "" -"inclusione di un nuovo server nel database '%s': protocollo '%s', server '%" -"s', path '%s'" - -#: lib/libalpm/alpm.c:236 -#, c-format -msgid "serverlist flushed for '%s'" -msgstr "svuotata la lista dei server per '%s'" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" -msgstr "" -"impossibile recuperare la data dell'ultimo aggiornamento di %s (nulla di " -"grave)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "impossibile sincronizzare il database: %s [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "sync: nuovo mtime per %s: %s" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "pulizia del database %s%s" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "impossibile rimuovere la voce %s%s dal database" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "impossibile recuperare la somma sha1 del pacchetto %s-%s" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "la somma sha1 del pacchetto %s-%s corrisponde" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "la somma sha1 del pacchetto %s-%s non corrisponde" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "impossibile recuperare la somma md5 del pacchetto %s-%s" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "la somma md5 del pacchetto %s-%s corrisponde" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "la somma md5 del pacchetto %s-%s non corrisponde" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "impossibile rimuovere il file di lock %s" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "attenzione: impossibile rimuovere il file di lock %s" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "config: nuova sezione '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "config: nopassiveftp" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "config: usesyslog" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "config: chomp" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "config: usecolor" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "config: including %s" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "config: noupgrade: %s" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "config: noextract:·%s" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "config: ignorepkg: %s" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "config: holdpkg: %s" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "config: dbpath: %s" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "config: cachedir: %s" - -#: lib/libalpm/alpm.c:1050 +#: lib/libalpm/be_files.c:83 #, fuzzy, c-format -msgid "config: rootdir: %s" -msgstr "config: cachedir: %s" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "config: logfile: %s" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "config: xfercommand: %s" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "config: upgradedelay: %d" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "controllo della sostituzione dei pacchetti in corso" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "controllo in corso della sostituzione di '%s' con il pacchetto '%s'" +msgid "%s: description file is missing" +msgstr "%s: errore di sintassi nel file di descrizione alla linea %d" -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" +msgid "%s: dependency file is missing" msgstr "" -"%s-%s: aggiornamento del pacchetto ignorato (per essere sostituito con %s-%s)" -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" +msgid "%s: file list is missing" msgstr "" -"%s-%s selezionato per l'aggiornamento (per essere sostituito con %s-%s)" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "impossibile trovare '%s' nel database, sarà ignorato" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "'%s' è già selezionato per la rimozione, sarà ignorato" -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "%s selezionato per l'aggiornamento (%s => %s)" - -#: lib/libalpm/be_files.c:61 -#, c-format -msgid "unpacking database '%s'" -msgstr "estrazione del database '%s' in corso" - -#: lib/libalpm/be_files.c:78 -#, c-format -msgid "opening database from path '%s'" -msgstr "apertura in corso del database dal path '%s'" - -#: lib/libalpm/be_files.c:182 -#, c-format -msgid "db scan could not find package: %s" -msgstr "impossibile trovare il pacchetto: %s" - -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "nome non valido per la voce del database '%s'" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "" -"nome non valido per il pacchetto fornito a _alpm_db_read, sarà ignorato" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" -"richiesta di lettura del database per un pacchetto file-based '%s', sarà " -"ignorata..." - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "caricamento in corso dei dati del pacchetto %s : livello=%d" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "impossibile trovare '%s-%s' nel database '%s'" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "impossibile aprire il file %s: %s" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "scrittura in corso del campo DESC di %s-%s nel database" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "scrittura in corso del campo FILES di %s-%s nel database" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "scrittura in corso del campo DEPENDS di %s-%s nel database" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "caricamento in corso della cache del pacchetto per il repository '%s'" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "aggiunta di '%s' alla cache del pacchetto per il database '%s'" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "pulizia in corso della cache dei pacchetti per il repository '%s'" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "errore: pkgcache è NULL per il database '%s'" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "inclusione della voce '%s' nella cache di '%s'" - -#: lib/libalpm/cache.c:149 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "rimozione della voce '%s' dalla cache di '%s'" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "impossibile rimuovere '%s' dalla cache di '%s': non trovato" - -#: lib/libalpm/cache.c:178 -#, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "errore: impossibile prelevare '%s' da pkgcache NULL" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "caricamento della cache del gruppo per il repository '%s'" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr " trovato il conflitto '%s' : pacchetto '%s'" +msgid "malloc failure: could not allocate %d bytes" +msgstr "malloc failure: impossibile allocare %d byte" -#: lib/libalpm/conflict.c:78 +#: lib/libalpm/db.c:238 #, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr " trovato il conflitto '%s' : il pacchetto '%s' fornisce '%s'" +msgid "could not remove database entry %s%s" +msgstr "impossibile rimuovere la voce %s%s dal database" -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "package '%s' conflicts with itself - packaging error" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" msgstr "" -"il pacchetto '%s' va in conflitto con se stesso - errore di pacchettizzazione" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "checkconflicts: target '%s' vs db" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "checkconflicts: target '%s' vs all targets" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "checkconflicts: db vs target '%s'" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" -msgstr "il pacchetto '%s' è già presente nella lista, usando nuovi conflitti" - -#: lib/libalpm/conflict.c:257 -#, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "\tCONFLITTI:: %s va in conflitto con %s" - -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 -#, c-format -msgid "malloc failure: could not allocate %d bytes" -msgstr "malloc failure: impossibile allocare %d byte" +"%s-%s: aggiornamento del pacchetto ignorato (per essere sostituito con %s-%s)" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "malloc failed: impossibile allocare %d byte" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "tentativo in corso di registrare di nuovo il database 'locale'" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "" -"tentativo in corso di registrare di nuovo il database '%s', usando quello " -"esistente" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "registrazione del database '%s'" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "la directory '%s' del database non esiste e sarà creata" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "apertura del database '%s' in corso" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "avvio dell'ordinamento delle dipendenze" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "individuato un possibile ciclo di dipendenze" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "ordinamento delle dipendenze terminato" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "è stato trovato un pacchetto vuoto nella lista" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "impossibile trovare il pacchetto installato '%s'" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "checkdeps: la dipendenza '%s' è stata spostata da '%s' a '%s'" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "checkdeps: dipendenza '%s' soddisfatta dal pacchetto '%s'" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "" -"checkdeps: il pacchetto aggiornato di '%s' non soddisfa una dipendenza di '%" -"s'" - -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "manca la dipendenza '%s' richiesta dal pacchetto '%s'" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "checkdeps: trovato %s come richiesto da %s" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "esclusione di %s in corso, installato esplicitamente" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "impossibile trovare il pacchetto \"%s\" o qualcosa che lo fornisca!" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "inclusione in corso di '%s' nei pacchetti" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "avvio risoluzione delle dipendenze" +#: lib/libalpm/db.c:680 +#, fuzzy +msgid "database path is undefined" +msgstr "database non inizializzato" -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "%s fornisce la dipendenza %s, sarà ignorato" +#: lib/libalpm/deps.c:187 +#, fuzzy +msgid "dependency cycle detected\n" +msgstr "individuato un possibile ciclo di dipendenze: %s" -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" @@ -760,818 +184,448 @@ msgstr "" "impossibile risolvere le dipendenze per \"%s\" (\"%s\" non è presente nella " "lista dei pacchetti)" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "" -"la dipendenza %s è già presente nella lista dei pacchetti e sarà ignorata" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "aggiunta la dipendenza %s (richiesta da %s)" - -#: lib/libalpm/deps.c:671 +#: lib/libalpm/deps.c:687 #, c-format msgid "cannot resolve dependencies for \"%s\"" msgstr "impossibile risolvere le dipendenze per \"%s\"" -#: lib/libalpm/deps.c:687 -#, c-format -msgid "dependency cycle detected: %s" -msgstr "individuato un possibile ciclo di dipendenze: %s" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" -msgstr "risoluzione delle dipendenze terminata" - -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "memoria insufficiente!" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "errore di sistema" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "privilegi insufficienti" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "impossibile trovare o leggere il file" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "è stato passato un argomento sbagliato o NULL" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "libreria non inizializzata" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "libreria già inizializzata" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "impossibile bloccare il database" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "impossibile aprire il database" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "impossibile creare il database" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "database non inizializzato" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "il database è già registrato" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "impossibile trovare il database" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "impossibile aggiornare il database" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "impossibile rimuovere la voce dal database" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "url non valido per il server" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "impossibile impostare il parametro" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "operazione già inizializzata" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "operazione non inizializzata" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "pacchetto doppio" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "operazione non preparata" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "operazione annullata" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "operazione incompatibile con il tipo di transazione" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "impossibile eseguire l'operazione" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "impossibile prelevare tutti i file" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "impossibile trovare o leggere il pacchetto" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "pacchetto non valido o corrotto" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "impossibile aprire il pacchetto" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "impossibile caricare i dati del pacchetto" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "pacchetto già installato" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "pacchetto non installato o una versione precedente" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "impossibile rimuovere tutti i file del pacchetto" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "il nome del pacchetto non è valido" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "pacchetto corrotto" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "nessun repository corrispondente" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "gruppo non trovato" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "impossibile soddisfare le dipendenze" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "dipendenze in conflitto" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "file in conflitto" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "operazione annullata" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "errore interno" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "errore di libarchive" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "spazio sul disco insufficiente" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "non confermato" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "errore nel nome della sezione di configurazione" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "'local' è riservato e non può essere usato come nome di un repository" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "errore di sintassi nel file di configurazione" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "tutte le direttive devono appartenere a una sezione" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "espressione regolare non valida" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "impossibile stabilire una connessione con l'host remoto" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "errore inaspettato" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" msgstr "impossibile canonicalizzare il path di root specificato '%s'" -#: lib/libalpm/handle.c:175 -#, c-format -msgid "option 'root' = %s" -msgstr "opzione 'root' = %s" +#: lib/libalpm/md5driver.c:69 +#, fuzzy, c-format +msgid "md5: %s can't be opened\n" +msgstr "impossibile aprire %s\n" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "opzione 'dbpath' = %s" +msgid "could not get sha1sum for package %s-%s" +msgstr "impossibile recuperare la somma sha1 del pacchetto %s-%s" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "opzione 'cachedir' = %s" +msgid "sha1sums do not match for package %s-%s" +msgstr "la somma sha1 del pacchetto %s-%s non corrisponde" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "impossibile aprire %s\n" +msgid "could not get md5sum for package %s-%s" +msgstr "impossibile recuperare la somma md5 del pacchetto %s-%s" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "md5(%s) = %s" +msgid "md5sums do not match for package %s-%s" +msgstr "la somma md5 del pacchetto %s-%s non corrisponde" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "%s-%s: aggiornamento del pacchetto (%s) ignorato" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "%s: aggiornamento forzato alla versione %s" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "%s: la versione installata (%s) è più recente di %s (%s)" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "%s-%s: ritardo durante l'aggiornamento del pacchetto (%s)" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "%s: errore di sintassi nel file di descrizione alla linea %d" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "impossibile analizzare il file di descrizione del pacchetto" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "manca il nome del pacchetto in %s" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "manca la versione del pacchetto in %s" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "impossibile rimuovere il file temporaneo %s" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "si è verificato un errore durante la lettura del pacchetto: %s" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "manca il metadata del pacchetto" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "manca il filelist nel pacchetto %s, creazione in corso" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "inclusione di '%s' nel campo 'richiesto da' di '%s'" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "inclusione di '%s' nel campo 'richiesto da' di '%s' (fornisce: %s)" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "impossibile trovare %s nel database" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "aggiunta in corso di %s nella lista dei pacchetti" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "estrazione in corso di %s nella lista dei pacchetti" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "impossibile trovare %s nel database, sarà ignorato" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "ricerca delle dipendenze eliminabili" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "impossibile rimuovere il file '%s': %s" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "rimozione di '%s' ignorata dovuta a NoUpgrade" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "il file %s non esiste" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "conservazione in corso della directory %s" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "rimozione in corso della directory %s" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "%s è in trans->skip_remove, rimozione ignorata" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "operazione impostata su NOSAVE, nessun backup di '%s'" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "rimozione di %s in corso" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "impossibile rimuovere il file %s: %s" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "rimozione in corso del pacchetto %s-%s" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "impossibile rimuovere il pacchetto '%s' e tutti i file" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "rimozione in corso di %d file" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "rimozione in corso della voce '%s' dal database" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "impossibile rimuovere la voce %s-%s dal database" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "impossibile rimuovere '%s' dalla cache" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "sha1: impossibile aprire %s\n" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "sha1(%s) = %s" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "ricerca dei pacchetti da aggiornare in corso" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "%s-%s selezionato per l'aggiornamento (%s => %s)" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "ricerca in corso del pacchetto nel repository '%s'" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "pacchetto '%s' non trovato, ricerca delle alternative in corso" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "trovato '%s' come alternativa a '%s'" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "impossibile trovare il repository '%s'" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "%s-%s è aggiornato, sarà ignorato" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "aggiunta in corso del pacchetto '%s'" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "risoluzione in corso delle dipendenze dei pacchetti" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "aggiunta in corso del pacchetto %s-%s" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "ricerca in corso delle dipendenze irrisolvibili" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "il pacchetto '%s' va in conflitto con '%s'" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "impossibile trovare '%s', sarà ignorato" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "il pacchetto '%s' fornisce il suo stesso conflitto" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "'%s' è nella lista dei pacchetti e sarà conservato" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "rimozione in corso di '%s' dalla lista dei pacchetti" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "risoluzione in corso del conflitto del pacchetto '%s'" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "selezionato '%s' per la rimozione" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "sono stati rilevati dei conflitti irrisolvibili" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "" -"controllo in corso delle dipendenze dei pacchetti designati per la rimozione" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "qualcosa è andato orribilmente storto" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "trovato '%s' come alternativa a '%s', conflitto annullato" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "%s è già presente nella cache\n" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "la cache di %s non esiste, creazione in corso...\n" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "attenzione: la cache di %s non esiste, creazione in corso..." - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" +#: lib/libalpm/sync.c:804 +#, fuzzy +msgid "couldn't create package cache, using /tmp instead" msgstr "" "impossibile creare la cache del pacchetto, al suo posto sarà usata /tmp\n" -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "" -"attenzione: impossibile creare la cache del pacchetto, al suo posto sarà " -"usata /tmp" - -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "impossibile recuperare alcuni file da %s\n" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "impossibile recuperare il checksum md5 o sha1 del pacchetto %s\n" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "archivio %s era corrotto (MD5 o SHA1 checksum errato)\n" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "archivio %s è corrotto (MD5 o SHA1 checksum errato)\n" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "impossibile avviare l'operazione di rimozione" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "impossibile inizializzare l'operazione di rimozione" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "rimozione in corso dei pacchetti in conflitto e da sostituire" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "impossibile preparare l'operazione di rimozione" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "impossibile eseguire l'operazione di rimozione" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "installazione dei pacchetti in corso" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "impossibile avviare l'operazione" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "impossibile inizializzare l'operazione" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "impossibile preparare l'operazione" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "" -"aggiornamento in corso del database per le dipendenze dei pacchetti " -"sostituiti" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "" "impossibile aggiornare il campo 'richiesto da' per la voce del database %s-%s" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "impossibile aggiornare la nuova voce del database %s-%s" -#: lib/libalpm/sync.c:1079 -#, c-format -msgid "found package '%s-%s' in sync" -msgstr "trovato il pacchetto '%s-%s' nel database" - -#: lib/libalpm/sync.c:1085 +#: lib/libalpm/trans.c:205 #, c-format -msgid "package '%s' not found in sync" -msgstr "impossibile trovare il pacchetto '%s'" - -#: lib/libalpm/trans.c:271 -#, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "aggiornamento delle dipendenze nei campi 'richiesto da' di %s-%s" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "il pacchetto non ha dipendenze, nessun altro pacchetto da aggiornare" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 -#, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "aggiornamento in corso del campo 'richiesto da' del pacchetto '%s'" +msgid "could not remove lock file %s" +msgstr "impossibile rimuovere il file di lock %s" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "impossibile aggiornare la voce 'richiesto da' del database %s-%s" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "impossibile trovare la dipendenza '%s'" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "impossibile creare il path '%s' : %s" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "impossibile aprire %s: %s\n" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "impossibile estrarre %s: %s\n" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "logaction chiamata: %s" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "impossibile creare la directory temporanea" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "impossibile spostarsi nella directory %s (%s)" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "esecuzione dello script %s in corso..." - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "impossibile effettuare il fork di un nuovo processo (%s)" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "chroot in corso nella directory %s" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "impossibile cambiare la root directory (%s)" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "impossibile spostarsi nella directory / (%s)" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "esecuzione in corso di \"%s\"" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "chiamata a popen non riuscita (%s)" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "chiamata a waitpid non riuscita (%s)" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "impossibile rimuovere la directory temporanea %s" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "" - -#: lib/libalpm/util.c:609 -#, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" -msgstr "" -"check_freespace: dimensione totale dei pacchetti: %lld, spazio disponibile: %" -"lld" - -#: lib/libalpm/versioncmp.c:279 -#, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" -msgstr "depcmp: %s-%s %s %s-%s => %s" +msgid "failed to make path '%s' : %s" +msgstr "impossibile creare il path '%s' : %s" -#: lib/libalpm/versioncmp.c:284 +#: lib/libalpm/util.c:325 #, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "depcmp: %s-%s %s %s => %s" - -#~ msgid "%s saved as %s.pacorig" -#~ msgstr "%s salvato come %s.pacorig" - -#~ msgid "notice: %s is in NoExtract -- skipping extraction" -#~ msgstr "avviso: %s è in NoExtract -- estrazione ignorata" - -#~ msgid "loading package cache (infolevel=%#x) for repository '%s'" -#~ msgstr "" -#~ "caricamento della cache del pacchetto (infolevel=%#x) per il repository '%" -#~ "s'" - -#~ msgid "package cache reloaded (infolevel=%#x) for repository '%s'" -#~ msgstr "" -#~ "ricaricamento della cache del pacchetto (infolevel=%#x) per il repository " -#~ "'%s'" - -#~ msgid "targs vs db: found %s as a conflict for %s" -#~ msgstr "target vs db: trovato %s come conflitto per %s" - -#~ msgid "targs vs targs: found %s as a conflict for %s" -#~ msgstr "targs vs targs: trovato %s come conflitto per %s" - -#~ msgid "db vs targs: found %s as a conflict for %s" -#~ msgstr "db vs targs: trovato %s come conflitto per %s" - -#~ msgid "no dependencies for target '%s'" -#~ msgstr "nessuna dipendenza richiesta dal pacchetto '%s'" - -#~ msgid "could not parse token %s" -#~ msgstr "impossibile analizzare il simbolo %s" - -#~ msgid "compare versions for %s: %s vs %s, result=%d" -#~ msgstr "confronto delle versioni di %s: %s vs %s, risultato=%d" - -#~ msgid "%s-%s: ignoring package upgrade (%s => %s)" -#~ msgstr "%s-%s: aggiornamento del pacchetto (%s => %s) ignorato" - -#~ msgid "db scan found package: %s" -#~ msgstr "trovato il pacchetto: %s" +msgid "could not open %s: %s\n" +msgstr "impossibile aprire %s: %s\n" -#~ msgid "dep is NULL!" -#~ msgstr "dep è NULL!" +#: lib/libalpm/util.c:346 +#, fuzzy, c-format +msgid "could not extract %s (%s)\n" +msgstr "impossibile estrarre %s (%s)" -#~ msgid "loading ALL info for '%s'" -#~ msgstr "caricamento in corso di tutte le informazioni di '%s'" diff --git a/lib/libalpm/po/libalpm.pot b/lib/libalpm/po/libalpm.pot index 07a72f32..3aad50a0 100644 --- a/lib/libalpm/po/libalpm.pot +++ b/lib/libalpm/po/libalpm.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 02:56-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,1487 +16,606 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "" - -#: lib/libalpm/add.c:685 -#, c-format -msgid "extracting %s as %s.pacnew" -msgstr "" - -#: lib/libalpm/add.c:686 -#, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "" - #: lib/libalpm/add.c:689 #, c-format -msgid "extracting %s" -msgstr "" - -#: lib/libalpm/add.c:705 -#, c-format -msgid "error: could not extract %s (%s)" -msgstr "" - -#: lib/libalpm/add.c:717 -#, c-format -msgid "appending backup entry for %s" +msgid "extracting %s as %s.pacnew" msgstr "" -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 +#: lib/libalpm/add.c:721 #, c-format -msgid "errors occurred while %s %s" -msgstr "" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" +msgid "could not extract %s (%s)" msgstr "" -#: lib/libalpm/add.c:769 +#: lib/libalpm/add.c:772 #, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" +msgid "problem occurred while upgrading %s" msgstr "" -#: lib/libalpm/add.c:781 +#: lib/libalpm/add.c:777 #, c-format -msgid "updating '%s' due to provision change (%s)" +msgid "problem occurred while installing %s" msgstr "" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 -#, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "" - -#: lib/libalpm/alpm.c:181 -#, c-format -msgid "unregistering database '%s'" -msgstr "" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "" - -#: lib/libalpm/alpm.c:232 -#, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" -msgstr "" - -#: lib/libalpm/alpm.c:236 -#, c-format -msgid "serverlist flushed for '%s'" -msgstr "" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" -msgstr "" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1050 -#, c-format -msgid "config: rootdir: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "" - -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 -#, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -msgstr "" - -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 -#, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" -msgstr "" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "" - -#: lib/libalpm/be_files.c:61 +#: lib/libalpm/be_files.c:83 #, c-format -msgid "unpacking database '%s'" +msgid "%s: description file is missing" msgstr "" -#: lib/libalpm/be_files.c:78 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "opening database from path '%s'" +msgid "%s: dependency file is missing" msgstr "" -#: lib/libalpm/be_files.c:182 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "db scan could not find package: %s" +msgid "%s: file list is missing" msgstr "" -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "" - -#: lib/libalpm/cache.c:109 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "" - -#: lib/libalpm/cache.c:149 -#, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "" - -#: lib/libalpm/cache.c:178 -#, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:78 -#, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" +msgid "malloc failure: could not allocate %d bytes" msgstr "" -#: lib/libalpm/conflict.c:257 +#: lib/libalpm/db.c:238 #, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" +msgid "could not remove database entry %s%s" msgstr "" -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "malloc failure: could not allocate %d bytes" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" msgstr "" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" +#: lib/libalpm/db.c:680 +msgid "database path is undefined" msgstr "" -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" +#: lib/libalpm/deps.c:187 +msgid "dependency cycle detected\n" msgstr "" -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "" - -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "" - -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" msgstr "" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "" - -#: lib/libalpm/deps.c:671 -#, c-format -msgid "cannot resolve dependencies for \"%s\"" -msgstr "" - #: lib/libalpm/deps.c:687 #, c-format -msgid "dependency cycle detected: %s" -msgstr "" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" +msgid "cannot resolve dependencies for \"%s\"" msgstr "" -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" msgstr "" -#: lib/libalpm/handle.c:175 +#: lib/libalpm/md5driver.c:69 #, c-format -msgid "option 'root' = %s" +msgid "md5: %s can't be opened\n" msgstr "" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" +msgid "could not get sha1sum for package %s-%s" msgstr "" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" +msgid "sha1sums do not match for package %s-%s" msgstr "" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" +msgid "could not get md5sum for package %s-%s" msgstr "" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" +msgid "md5sums do not match for package %s-%s" msgstr "" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "" - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" -msgstr "" - -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" +#: lib/libalpm/sync.c:804 +msgid "couldn't create package cache, using /tmp instead" msgstr "" -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "" -#: lib/libalpm/sync.c:1079 +#: lib/libalpm/trans.c:205 #, c-format -msgid "found package '%s-%s' in sync" -msgstr "" - -#: lib/libalpm/sync.c:1085 -#, c-format -msgid "package '%s' not found in sync" -msgstr "" - -#: lib/libalpm/trans.c:271 -#, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 -#, c-format -msgid "updating 'requiredby' field for package '%s'" +msgid "could not remove lock file %s" msgstr "" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "" - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "" - -#: lib/libalpm/util.c:609 -#, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" +msgid "failed to make path '%s' : %s" msgstr "" -#: lib/libalpm/versioncmp.c:279 +#: lib/libalpm/util.c:325 #, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" +msgid "could not open %s: %s\n" msgstr "" -#: lib/libalpm/versioncmp.c:284 +#: lib/libalpm/util.c:346 #, c-format -msgid "depcmp: %s-%s %s %s => %s" +msgid "could not extract %s (%s)\n" msgstr "" diff --git a/lib/libalpm/po/pl_PL.po b/lib/libalpm/po/pl_PL.po index 75bf3aeb..3b64a3a4 100644 --- a/lib/libalpm/po/pl_PL.po +++ b/lib/libalpm/po/pl_PL.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Pacman package manager 3.0.1\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: 2007-04-12 04:23+0200\n" "Last-Translator: Mateusz Jędrasik <m.jedrasik@gmail.com>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" @@ -18,735 +18,165 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "ładowanie celu '%s'" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "zastępowanie starszej wersji %s-%s na %s z listy celów" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "nowsza wersja %s-%s znajduje się w liście celów -- pomijam" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "czytanie metadane '%s'" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "szukanie nieusatysfakcjonowanych zależności" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "szukanie konfliktów" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "zastępowanie pakietów z -A i -U nie jest jeszcze wspierane" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "proszę usunąć pierw '%s', korzystając z -Rd" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "sortowanie według zależności" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "czyszczenie" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "szukanie konfliktów plików" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "aktualizowanie pakietu %s-%s" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "dodawanie pakietu %s-%s" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "usuwanie wpierw starego pakietu (%s-%s)" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "dodawanie %s tymczasowo do tablicy NoUpgrade" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "rozpakowywanie plików" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "nie można znaleźć obecnego katalogu" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s znajduje się w NoExtract, pomijanie rozpakowywania" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "%s znajduje się w trans->skip_add, pomijanie rozpakowywania" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "nie udało się rozpakować %s (%s)" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "sprawdzanie sum md5 dla %s" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "sprawdzanie sum sha1 dla %s" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "bieżące: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "nowe: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "oryginalne: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "nie udało się zmienić nazwy %s (%s)" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "błąd: nie udało się zmienić nazwy %s (%s)" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "nie udało się skopiować pliku tymczasowego do %s (%s)" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "błąd: nie udało się skopiować pliku tymczasowego do %s (%s)" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "%s zachowane jako %s" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "uwaga: %s zachowane jako %s" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "czynność: instalowanie nowego pliku: %s" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "czynność: zostawianie obecnych plików na miejscu" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"czynność: zachowywanie obecnego pliku i instalowanie nowego z końcówką ." -"pacnew" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "nie udało się zainstalować %s jako %s: %s" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "błąd: nie udało się zainstalować %s jako %s: %s" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "%s zainstalowano jako %s" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "uwaga: %s zainstalowano jako %s" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s znajduje się w NoUpgrade -- pomijanie" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "rozpakowywanie %s jako %s.pacnew" -#: lib/libalpm/add.c:686 -#, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "uwaga: rozpakowywanie %s jako %s.pacnew" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "rozpakowywanie %s" - -#: lib/libalpm/add.c:705 -#, c-format -msgid "error: could not extract %s (%s)" -msgstr "błąd: nie udało się rozpakować %s (%s)" - -#: lib/libalpm/add.c:717 +#: lib/libalpm/add.c:721 #, c-format -msgid "appending backup entry for %s" -msgstr "dodawanie pozycji kopii zapasowej dla %s" +msgid "could not extract %s (%s)" +msgstr "nie udało się rozpakować %s (%s)" -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" +#: lib/libalpm/add.c:772 +#, fuzzy, c-format +msgid "problem occurred while upgrading %s" msgstr "wystąpiły błędy podczas %s %s" -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "aktualizowanie" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "instalowanie" - -#: lib/libalpm/add.c:769 -#, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "zasób '%s' został usunięty z pakietu %s (%s => %s)" - -#: lib/libalpm/add.c:781 -#, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "aktualizowanie '%s' z powodu zmiany zasobu (%s)" +#: lib/libalpm/add.c:777 +#, fuzzy, c-format +msgid "problem occurred while installing %s" +msgstr "wystąpiły błędy podczas %s %s" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "nie udało się zaktualizować zasobu '%s' z '%s'" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "aktualizowanie bazy danych" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "dodawanie pozycji bazy danych '%s'" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "nie udało się zaktualizować pozycji bazy danych %s-%s" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "nie udało się dodać pozycji '%s' w pliku podręcznym" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 -#, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "uruchamianie \"ldconfig -r %s\"" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "usuwanie BD %s, pozostało %d..." - -#: lib/libalpm/alpm.c:181 -#, c-format -msgid "unregistering database '%s'" -msgstr "odrejestrowywanie bazy danych '%s'" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "zamykanie bazy danych '%s'" +#: lib/libalpm/be_files.c:83 +#, fuzzy, c-format +msgid "%s: description file is missing" +msgstr "%s: błąd składni w pliku opisu linia %d" -#: lib/libalpm/alpm.c:232 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" +msgid "%s: dependency file is missing" msgstr "" -"dodawanie nowego serwera do bazy danych '%s': protokół '%s', serwer '%s', " -"ścieżka '%s'" -#: lib/libalpm/alpm.c:236 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "serverlist flushed for '%s'" -msgstr "lista serwerów spuszczona(?) dla '%s'" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" +msgid "%s: file list is missing" msgstr "" -"nie udało się otrzymać czasu ostatniej aktualizacji dla %s (nic wielkiego)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "nie udało się zsynchronizować bd: %s [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "sync: nowy mtime dla %s: %s" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "spuszczanie(?) bazy danych %s%s" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "nie udało się usunąć wpisu %s%s z bazy danych" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "nie udało się otrzymać sumy sha1 dla pakietu %s-%s" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "sumy kontrolne sha1 zgadzają się dla pakietu %s-%s" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "sumy kontrolne sha1 dla pakietu %s-%s nie zgadzają się" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "nie udało się otrzymać sumy md5 dla pakietu %s-%s" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "sumy kontrolne md5 zgadzają się dla pakietu %s-%s" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "sumy kontrolne md5 dla pakietu %s-%s nie zgadzają się" -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "nie udało się usunąć pliku blokującego %s" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "uwaga: nie udało się usunąć pliku blokującego %s" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "konfiguracja: nowa sekcja '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "konfiguracja: nopassiveftp" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "konfiguracja: usesyslog" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "konfiguracja: chomp" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "konfiguracja: usecolor" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "konfiguracja: zawieranie %s" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "konfiguracja: noupgrade: %s" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "konfiguracja: noextract: %s" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "konfiguracja: ignorepkg: %s" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "konfiguracja: holdpkg: %s" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "konfiguracja: dbpath: %s" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "konfiguracja: cachedir: %s" - -#: lib/libalpm/alpm.c:1050 -#, c-format -msgid "config: rootdir: %s" -msgstr "konfiguracja: rootdir: %s" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "konfiguracja: logfile: %s" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "konfiguracja: xfercommand: %s" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "konfiguracja: upgradedelay: %d" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "sprawdzanie potencjalnych pakietów zastępczych" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "sprawdzanie zastępcy '%s' dla pakietu '%s'" - -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 -#, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -msgstr "%s-%s: ignorowanie aktualizowania pakietu (do zastąpienia przez %s-%s)" - -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 -#, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" -msgstr "%s-%s wybrany do zaktualizowania (do zastąpienia przez %s-%s)" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "'%s' nie odnaleziony w bd sync -- pomijanie" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "'%s' jest już wybrany do usunięcia -- pomijanie" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "%s wybrany do zaktualizowania (%s => %s)" - -#: lib/libalpm/be_files.c:61 -#, c-format -msgid "unpacking database '%s'" -msgstr "rozpakowywanie bazy danych '%s'" - -#: lib/libalpm/be_files.c:78 -#, c-format -msgid "opening database from path '%s'" -msgstr "otwieranie bazy danych ze ścieżki '%s'" - -#: lib/libalpm/be_files.c:182 -#, c-format -msgid "db scan could not find package: %s" -msgstr "skan bd nie odnalazł pakietu: %s" - -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "nieprawidłowa nazwa dla wpisu bazy danych '%s'" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "dostarczono nieprawidłowy wpis pakietu do _alpm_db_read, pomijanie" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" -"żądanie odczytania informacji bazy danych dla pakietu '%s' bazowanego na " -"pliku, pomijanie..." - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "ładowanie danych pakietu dla %s : poziom=%d" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "nie udało się odnaleźć '%s-%s' w bd '%s'" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "nie udało się otworzyć pliku %s: %s" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "zapisywanie informacji DESC dla %s-%s spowrotem do bd" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "zapisywanie informacji FILES dla %s-%s spowrotem do bd" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "zapisywanie informacji DEPENDS dla %s-%s spowrotem do bd" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "ładowanie pamięci podręcznej pakietów dla repozytorium '%s'" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "dodawanie '%s' do pamięci podręcznej pakietów dla bd '%s'" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "uwalnianie pamięci podręcznej pakietów dla repozytorium '%s'" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "błąd: pkgcache jest równy NULL dla bd '%s'" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "dodawanie wpisu '%s' pamięci podręcznej '%s'" - -#: lib/libalpm/cache.c:149 -#, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "usuwanie wpisu '%s' z pamięci podręcznej '%s'" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "" -"nie udało się usunąć wpisu '%s' z pamięci podręcznej '%s': nie znaleziono" - -#: lib/libalpm/cache.c:178 -#, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "błąd: nie udało się otrzymać '%s' z NULL pkgcache" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "ładowanie pamięci podręcznej grup z repozytorium '%s'" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr " znaleziono konflikt '%s' : pakiet '%s'" - -#: lib/libalpm/conflict.c:78 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr " znaleziono konflikt '%s' : pakiet '%s' dostarcza '%s'" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "pakiet '%s' konfliktuje ze sobą - błąd pakowania" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "checkconflicts: cel '%s' vs bd" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "checkconflicts: cel '%s' vs wszystkie cele" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "checkconflicts: bd vs cel '%s'" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" -msgstr "cel '%s' jest także w liście celów, używanie NOWYCH konfliktów" +msgid "malloc failure: could not allocate %d bytes" +msgstr "błąd malloc: nie udało się zaalokować %d bajtów" -#: lib/libalpm/conflict.c:257 +#: lib/libalpm/db.c:238 #, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "\tCONFLICTS:: %s konfliktuje z %s" +msgid "could not remove database entry %s%s" +msgstr "nie udało się usunąć wpisu %s%s z bazy danych" -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "malloc failure: could not allocate %d bytes" -msgstr "błąd malloc: nie udało się zaalokować %d bajtów" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" +msgstr "%s-%s: ignorowanie aktualizowania pakietu (do zastąpienia przez %s-%s)" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "błąd malloc: nie udało się zaalokować %d bajtów" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "próba ponownej rejestracji 'lokalnej' BD" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "próba ponownej rejestracji bazy danych '%s', używając obecnej" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "rejestrowanie bazy danych '%s'" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "katalog bazy danych '%s' nie istnieje, utwarzanie" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "otwieranie bazy danych '%s'" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "rozpoczynanie sortowania zależności" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "odkryto potencjalny cykl zależności" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "sortowanie zależności ukończone" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "zerowy pakiet odnaleziony w liście pakietów" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "nie udało się odnaleźć pakietu który zainstalował '%s'" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "checkdeps: zależność '%s' została przesunięta z '%s' do '%s'" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "" -"checkdeps: zależność '%s' satysfakcjonowana przez zainstalowany pakiet '%s'" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "checkdeps: zaktualizowany '%s' nie satysfakcjonuje zależności '%s'" - -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "brakująca zależność '%s' dla pakietu '%s'" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "checkdeps: znaleziono %s wymagane przez %s" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "wykluczanie %s -- zainstalowany eksplicytnie" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "nie udało się odnaleźć pakietu \"%s\" ani niczego co go dostarcza!" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "dodawanie '%s' do celów" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "rozpoczynanie rozwiązywania zależności" +#: lib/libalpm/db.c:680 +#, fuzzy +msgid "database path is undefined" +msgstr "baza danych nie została zainicjowana" -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "%s dostarcza zależność %s -- pomijanie" +#: lib/libalpm/deps.c:187 +#, fuzzy +msgid "dependency cycle detected\n" +msgstr "wykryto cykl zależności: %s" -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" @@ -754,771 +184,448 @@ msgstr "" "nie udało się rozwiązać zależności dla \"%s\" (\"%s\" nie znajduje się w " "zbiorze pakietów)" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "zależność %s jest już w liście celów -- pomijanie" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "wciąganie zależności %s (wymagane przez %s)" - -#: lib/libalpm/deps.c:671 +#: lib/libalpm/deps.c:687 #, c-format msgid "cannot resolve dependencies for \"%s\"" msgstr "nie udało się rozwiązać zależności dla \"%s\"" -#: lib/libalpm/deps.c:687 -#, c-format -msgid "dependency cycle detected: %s" -msgstr "wykryto cykl zależności: %s" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" -msgstr "zakończono rozwiązywanie zależności" - -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "brak pamięci!" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "niespodziewany błąd systemu" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "niewystarczające przywileje" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "nie udało się znaleźć bądź odczytać pliku" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "błędny bądź ZEROWY argument dany" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "biblioteka nie została zainicjowana" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "biblioteka już zainicjowana" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "nie udało się zablokować bazy danych" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "nie udało się otworzyć bazy danych" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "nie udało się stworzyć bazy danych" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "baza danych nie została zainicjowana" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "baza danych już zarejestrowana" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "nie udało się odnaleźc bazy danych" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "nie udało się zaktualizować bazy danych" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "nie udało się usunąć wpisu do bazy danych" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "nieprawidłowy url dla serwera" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "nie udało się ustawić parametru" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "tranzakcja już zainicjowana" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "tranzakcja nie została zainicjowana" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "duplikat celu" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "tranzakcja nie została przygotowana" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "tranzakcja zaniechana" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "operacja niekompatybilna z typem tranzakcji" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "nie udało się wykonać tranzakcji" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "nie udało się pobrać wszystkich plików" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "nie udało się znaleźć bądź odczytać pakietu" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "nieprawidłowy bądź skorumpowany pakiet" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "nie udało się otworzyć pliku pakietu" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "nie udało się załadować danych pakietu" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "pakiet już zainstalowany" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "pakiet nie zainstalowany lub zainstalowany w niższej wersji" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "nie udało się usunąć wszystkich plików pakietu" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "nieprawidłowa nazwa pakietu" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "skorumpowany pakiet" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "nie ma takiego repozytorium" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "grupa nie została odnaleziona" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "nie udało się usatysfakcjonować zależności" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "konfliktujące zależności" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "konfliktujące pliki" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "użytkownik zaniechał operacji" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "błąd wewnętrzny" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "błąd libarchive" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "nie wystarczająca ilość wolnego miejsca na dysku" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "nie potwierdzono" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "zła nazwa sekcji konfiguracji" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "" -"'local' jest nazwą zarezerwowaną i nie może zostać użyty jako nazwa " -"repozytorium" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "błąd składni w pliku konfiguracyjnym" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "wszystkie dyrektywy muszą być własnością sekcji" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "nieprawidłowe wyrażenie regularne" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "połączenie ze zdalnym hostem nieudane" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "niespodziewany błąd" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" msgstr "nie udało się skanonizować podanej ścieżki docelowej '%s'" -#: lib/libalpm/handle.c:175 -#, c-format -msgid "option 'root' = %s" -msgstr "opcja 'root' = %s" +#: lib/libalpm/md5driver.c:69 +#, fuzzy, c-format +msgid "md5: %s can't be opened\n" +msgstr "%s nie może być otwarte\n" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "opcja 'dbpath' = %s" +msgid "could not get sha1sum for package %s-%s" +msgstr "nie udało się otrzymać sumy sha1 dla pakietu %s-%s" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "opcja 'cachedir' = %s" +msgid "sha1sums do not match for package %s-%s" +msgstr "sumy kontrolne sha1 dla pakietu %s-%s nie zgadzają się" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "%s nie może być otwarte\n" +msgid "could not get md5sum for package %s-%s" +msgstr "nie udało się otrzymać sumy md5 dla pakietu %s-%s" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "md5(%s) = %s" +msgid "md5sums do not match for package %s-%s" +msgstr "sumy kontrolne md5 dla pakietu %s-%s nie zgadzają się" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "%s-%s: ignorowanie aktualizacji pakietu (%s)" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "%s: wymuszanie aktualizacji do wersji %s" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "%s: local (%s) jest nowsze niż %s (%s)" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "%s-%s: opóźnianie aktualizacji pakietu (%s)" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "%s: błąd składni w pliku opisu linia %d" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "nie udało się przeczytać pliku opisu" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "brak nazwy pakietu w %s" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "brak wersji pakietu w %s" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "nie udało się usunąć pliku tymczasowego %s" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "błąd odczytywania pakietu: %s" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "brak metadanych pakietu" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "brak listy plików pakietu w %s, generowanie" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "dodawanie '%s' w polu requiredby dla '%s'" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "dodawanie '%s' w polu requiredby dla '%s' (dostarcza: %s)" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "nie udało się odnaleźć %s w bazie danych" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "dodawanie %s do listy celów" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "wciąganie %s na listę celów" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "nie udało się odnaleźć %s w bazie danych -- pomijanie" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "odnajdywanie usuwalnych zależności" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "nie udało się usunąć pliku '%s': %s" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "Pomijanie usunięcia '%s' ze względu na NoUpgrade" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "plik %s nie istnieje" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "zachowywanie katalogu %s" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "usuwanie katalogu %s" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "%s jest w trans->skip_remove, pomijanie usunięcia" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "" -"tranzakcja ustawiona jako NOSAVE, brak tworzenia kopii zapasowej dla '%s'" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "odlinkowywanie %s" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "nie udało się usunąć pliku %s: %s" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "usuwanie pakietu %s-%s" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "" -"pakiet '%s' nie zostanie usunięty, nie udało się usunąć wszystkich plików" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "usuwanie %d plików" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "usuwanie wpisu '%s' z bazy danych" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "nie udało się usunąć wpisu %s-%s z bazy danych" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "nie udało się usunąć wpisu '%s' z pamięci podręcznej" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "sha1: %s nie może zostać otwarty\n" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "sha1(%s) = %s" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "sprawdzanie potencjalnych uaktualnień pakietów" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "%s-%s wybrany do aktualizacji (%s => %s)" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "poszukiwanie celu w repo '%s'" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "cel '%s' nie został odnaleziony -- szukanie zasobów dostarczających" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "znaleziono '%s' jako zasób dla '%s'" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "repozytorium '%s' nie zostało znalezione" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "%s-%s jest w najnowszej wersji -- pomijanie" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "dodawanie celu '%s' do zestawu tranzakcji" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "rozwiązywanie zależności celu" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "dodawanie pakietu %s-%s do celów tranzakcji" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "szukanie nierozwiązywalnych zależności" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "pakiet '%s' konfliktuje z '%s'" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "'%s' nie znaleziony w zestawie tranzakcji -- pomijanie" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "pakiet '%s' dostarcza swój własny konflikt" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "'%s' jest w liście celów -- zachowywanie" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "usuwanie '%s' z listy celów" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "rozwiązywanie konfliktu pakietu '%s'" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "wybieranie '%s' do usunięcia" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "odkryto nierozwiązywalne konflikty pakietów" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "sprawdzanie zależności pakietów wyznaczonych do usunięcia" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "coś się bardzo nie udało" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "znaleziono '%s' jako zasób dla '%s' -- konflikt zaniechany" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "%s jest już w pamięci podręcznej\n" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "brak pamięci podręcznej dla %s, tworzenie...\n" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "uwaga: brak pamięci podręcznej dla %s, tworzenie..." - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" +#: lib/libalpm/sync.c:804 +#, fuzzy +msgid "couldn't create package cache, using /tmp instead" msgstr "" "nie udało się stworzenie pamięci podręcznej pakietu, używanie /tmp w zamian\n" -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "" -"uwaga: nie udało się stworzenie pamięci podręcznej pakietu, używanie /tmp w " -"zamian" - -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "nie udało się pobrać niektórych plików z %s\n" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "nie udało się otrzymać sum kontrolnych md5 lub sha1 dla pakietu %s\n" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "archiwum %s było skorumpowane (błąd sumy kontrolnej MD5 lub SHA1)\n" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "archiwum %s jest skorumpowane (błąd sumy kontrolnej MD5 lub SHA1)\n" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "nie udało się utworzyć tranzakcji usuwania" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "nie udało się zainicjować tranzakcji usuwania" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "usuwanie pakietów konfliktujących i pakietów do zastąpienia" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "nie udało się przygotować tranzakcji usuwania" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "nie udało się wykonać tranzakcji usuwania" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "instalowanie pakietów" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "nie udało się stworzyć tranzakcji" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "nie udało się zainicjować tranzakcji" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "nie udało się przygotować tranzakcji" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "aktualizowanie baz danych dla zależności zastąpionych pakietów" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "nie udało się zaktualizować requiredby dla wpisu %s-%s w bazie danych" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "nie udało się zaktualizować nowego wpisu %s-%s w bazie danych" -#: lib/libalpm/sync.c:1079 -#, c-format -msgid "found package '%s-%s' in sync" -msgstr "znaleziono pakiet '%s-%s' w sync" - -#: lib/libalpm/sync.c:1085 -#, c-format -msgid "package '%s' not found in sync" -msgstr "pakiet '%s' nie został odnaleziony w sync" - -#: lib/libalpm/trans.c:271 +#: lib/libalpm/trans.c:205 #, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "aktualizowanie pól 'requiredby' pakietów zależności dla %s-%s" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "" -"pakiet nie ma żadnych zależności, brak innych pakietów do zaktualizowania" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 -#, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "aktualizowanie pola 'requiredby' dla pakietu '%s'" +msgid "could not remove lock file %s" +msgstr "nie udało się usunąć pliku blokującego %s" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "" "nie udało się zaktualizować wpisu do bazy danych 'requiredby' dla %s-%s" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "nie udało się odnaleźć zależności '%s'" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "nie udało się stworzyć ścieżki '%s' : %s" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "nie udało się otworzyć %s: %s\n" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "nie udało się rozpakować %s: %s\n" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "zawołane logaction: %s" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "nie udało się stworzyć katalogu tymczasowego" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "nie udało się zmienić katalogu na %s (%s)" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "wykonywanie skryptu %s..." - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "nie udało się odwidlić nowego procesu (%s)" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "chroot'owanie do %s" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "nie udało się zmienić katalogu głównego (%s)" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "nie udało się zmienić katalogu na / (%s)" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "wykonywanie \"%s\"" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "zawołanie do popen nieudane (%s)" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "zawołanie do waitpid nieudane (%s)" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "nie udało się usunąć katalogu tymczasowego %s" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "nie udało się odczytać informacji o ilości danych na dysku z %s: %s" +msgid "failed to make path '%s' : %s" +msgstr "nie udało się stworzyć ścieżki '%s' : %s" -#: lib/libalpm/util.c:609 +#: lib/libalpm/util.c:325 #, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" -msgstr "check_freespace: pełen rozmiar pakietu: %lld, wolna przestrzeń: %lld" +msgid "could not open %s: %s\n" +msgstr "nie udało się otworzyć %s: %s\n" -#: lib/libalpm/versioncmp.c:279 -#, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" -msgstr "depcmp: %s-%s %s %s-%s => %s" +#: lib/libalpm/util.c:346 +#, fuzzy, c-format +msgid "could not extract %s (%s)\n" +msgstr "nie udało się rozpakować %s (%s)" -#: lib/libalpm/versioncmp.c:284 -#, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "depcmp: %s-%s %s %s => %s" diff --git a/lib/libalpm/po/pt_BR.po b/lib/libalpm/po/pt_BR.po index b58a36e1..10dc1a5b 100644 --- a/lib/libalpm/po/pt_BR.po +++ b/lib/libalpm/po/pt_BR.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: pt_BR\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: 2007-03-07 01:18-0300\n" "Last-Translator: Douglas Soares de Andrade <dsandrade@gmail.com>\n" "Language-Team: Português do Brasil <pt@li.org>\n" @@ -22,1495 +22,608 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: KBabel 1.11.4\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "carregando pacotes '%s'" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "substituindo a versão antiga %s-%s por '%s' na lista de pacotes" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "versão atualizada %s-%s está na lista de pacotes -- pulando" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "lendo os metadados de '%s'" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "procurando por dependências não satisfeitas" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "procurando por conflitos" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "substituir pacotes com -A e -U ainda não é suportado" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "por favor, remova '%s' primeiro usando -Rd" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "ordenando por dependências" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "finalizando" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "procurando por conflitos de arquivos" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "atualizando pacote %s-%s" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "adicionando pacote %s-%s" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "removendo pacotes antigos primeiro (%s-%s)" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "adicionando %s para NoUpgrade temporariamente" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "extraindo arquivos" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "não foi possível obter o diretório de trabalho atual" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s está incluso em NoExtract -- não descompactando" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "o pacote %s está incluso em trans->skip_add, não descompactando" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "não foi possível extrair %s (%s)" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "verificando hashes md5 para %s" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "verificando hashes sha1 para %s" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "atual: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "novo: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "original: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "não foi possível renomear %s (%s)" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "erro: não foi possível renomear %s (%s)" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "não foi possível copiar arquivo temporário para %s (%s)" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "erro: não foi possível copiar arquivo temporário para %s (%s)" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "%s salvo como %s" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "aviso: %s salvo como %s" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "ação: instalando novo arquivo: %s" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "ação: preservando o arquivo existente" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"ação: preservando o arquivo existente e instalando o novo com um final ." -"pacnew" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "não foi possível instalar %s como %s: %s" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "erro: não foi possível instalar %s como %s: %s" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "%s instalado como %s" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "atenção: %s instalado como %s" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s está como NoUpgrade -- pulando" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "extraindo %s como %s.pacnew" -#: lib/libalpm/add.c:686 -#, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "aviso: extraindo %s como %s.pacnew" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "extraindo %s" - -#: lib/libalpm/add.c:705 +#: lib/libalpm/add.c:721 #, c-format -msgid "error: could not extract %s (%s)" -msgstr "erro: não foi possível descompactar %s (%s)" - -#: lib/libalpm/add.c:717 -#, c-format -msgid "appending backup entry for %s" -msgstr "adicionando entrada de backup para %s" +msgid "could not extract %s (%s)" +msgstr "não foi possível extrair %s (%s)" -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" +#: lib/libalpm/add.c:772 +#, fuzzy, c-format +msgid "problem occurred while upgrading %s" msgstr "erros ocorreram durante %s %s" -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "atualizando" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "instalando" - -#: lib/libalpm/add.c:769 -#, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "a provisão '%s' foi removida do pacote %s (%s => %s)" - -#: lib/libalpm/add.c:781 -#, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "atualizando '%s' devido a uma mudança de provisão (%s)" +#: lib/libalpm/add.c:777 +#, fuzzy, c-format +msgid "problem occurred while installing %s" +msgstr "erros ocorreram durante %s %s" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "não foi possível atualizar a provisão '%s' para '%s'" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "atualizando base de dados" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "adicionando a entrada de base de dados '%s'" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "não foi possível atualizar a entrada na base de dados %s-%s" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "não foi possível adicionar a entrada '%s' ao cache" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 +#: lib/libalpm/be_files.c:83 #, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "executando \"ldconfig -r %s\"" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "removendo DB %s, %d continua existindo..." - -#: lib/libalpm/alpm.c:181 -#, c-format -msgid "unregistering database '%s'" -msgstr "desregistrando a base de dados '%s'" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "fechando a base de dados '%s'" - -#: lib/libalpm/alpm.c:232 -#, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" +msgid "%s: description file is missing" msgstr "" -"adicionando novo servidor à base de dados '%s': protocolo '%s', servidor '%" -"s', caminho '%s'" -#: lib/libalpm/alpm.c:236 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "serverlist flushed for '%s'" -msgstr "lista de servidores nivelada para '%s'" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" +msgid "%s: dependency file is missing" msgstr "" -"falha para conseguir o horário da última atualização de %s (no big deal)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "falha ao sincronizar base de dados: %s [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "sincronizar: novo mtime para %s: %s" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "nivelando a base de dados %s%s" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "não foi possível remover a entrada da base de dados %s%s" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "não foi possível conseguir a soma sha1 para o pacote %s-%s" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "somas sha1 para o pacote %s - %s coincidem" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "somas sha1 não coincidem para o pacote %s-%s" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "não foi possível conseguir a soma md5 para o pacote %s-%s" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "somas md5 para o pacote %s - %s coincidem" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "somas md5 não coincidem para o pacote %s-%s" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "não foi possível remover o arquivo de lock %s" -#: lib/libalpm/alpm.c:791 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "warning: could not remove lock file %s" -msgstr "aviso: não foi possível remover o arquivo de lock %s" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "configuração: nova seção '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "configuração: nopassiveftp" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "configuração: usesyslog" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "configuração: chomp" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "configuração: usecolor" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "configuração: including %s" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "configuração: noupgrade: %s" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "configuração: noextract: %s" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "configuração: ignorepkg: %s" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 -#, c-format -msgid "config: holdpkg: %s" -msgstr "configuração: holdpkg: %s" - -#: lib/libalpm/alpm.c:1036 -#, c-format -msgid "config: dbpath: %s" -msgstr "configuração: dbpath: %s" - -#: lib/libalpm/alpm.c:1043 -#, c-format -msgid "config: cachedir: %s" -msgstr "configuração: cachedir: %s" - -#: lib/libalpm/alpm.c:1050 -#, fuzzy, c-format -msgid "config: rootdir: %s" -msgstr "configuração: cachedir: %s" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "configuração: logfile: %s" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "configuração: xfercommand: %s" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "configuração: upgradedelay: %d" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "verificando por substitutos do pacote" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "verificando substituto '%s' para o pacote '%s'" - -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 -#, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -msgstr "" - -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 -#, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" +msgid "%s: file list is missing" msgstr "" -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "" - -#: lib/libalpm/be_files.c:61 -#, c-format -msgid "unpacking database '%s'" -msgstr "descompactando base de dados '%s'" - -#: lib/libalpm/be_files.c:78 -#, c-format -msgid "opening database from path '%s'" -msgstr "abrindo base de dados '%s'" - -#: lib/libalpm/be_files.c:182 -#, fuzzy, c-format -msgid "db scan could not find package: %s" -msgstr "não foi possível encontrar a base de dados" - -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "nome inválido para a entrada na base de dados '%s'" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "não foi possível abrir o arquivo %s: %s" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "" - -#: lib/libalpm/cache.c:149 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "" - -#: lib/libalpm/cache.c:178 -#, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:78 -#, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, fuzzy, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "pacote '%s' conflita com '%s'" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" +msgid "malloc failure: could not allocate %d bytes" msgstr "" -#: lib/libalpm/conflict.c:257 +#: lib/libalpm/db.c:238 #, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "" +msgid "could not remove database entry %s%s" +msgstr "não foi possível remover a entrada da base de dados %s%s" -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "malloc failure: could not allocate %d bytes" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" msgstr "" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "abrindo base de dados '%s'" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "" - -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "" +#: lib/libalpm/db.c:680 +#, fuzzy +msgid "database path is undefined" +msgstr "base de dados não inicializada" -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" +#: lib/libalpm/deps.c:187 +msgid "dependency cycle detected\n" msgstr "" -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" msgstr "" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "" - -#: lib/libalpm/deps.c:671 -#, c-format -msgid "cannot resolve dependencies for \"%s\"" -msgstr "" - #: lib/libalpm/deps.c:687 #, c-format -msgid "dependency cycle detected: %s" -msgstr "" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" +msgid "cannot resolve dependencies for \"%s\"" msgstr "" -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "biblioteca não inicializada" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "biblioteca já inicializada" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "não foi possível abrir a base de dados" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "não foi possível criar a base de dados" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "base de dados não inicializada" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "base de dados já registrada" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "não foi possível encontrar a base de dados" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "não foi possível atualizar a base de dados" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "não foi possível remover a entrada da base de dados" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "alvo duplicado" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "o nome do pacote não é valido" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "pacote corrompido" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "grupo não encontrado" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "erro interno" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "espaço insuficiente em disco" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "expressão regular inválida" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "erro inesperado" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" msgstr "" -#: lib/libalpm/handle.c:175 +#: lib/libalpm/md5driver.c:69 #, c-format -msgid "option 'root' = %s" +msgid "md5: %s can't be opened\n" msgstr "" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "" +msgid "could not get sha1sum for package %s-%s" +msgstr "não foi possível conseguir a soma sha1 para o pacote %s-%s" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "" +msgid "sha1sums do not match for package %s-%s" +msgstr "somas sha1 não coincidem para o pacote %s-%s" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "" +msgid "could not get md5sum for package %s-%s" +msgstr "não foi possível conseguir a soma md5 para o pacote %s-%s" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "" +msgid "md5sums do not match for package %s-%s" +msgstr "somas md5 não coincidem para o pacote %s-%s" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "o arquivo %s não existe" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "mantendo diretório %s" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "removendo diretório %s" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "" - -#: lib/libalpm/remove.c:316 -#, fuzzy, c-format -msgid "removing %d files" -msgstr "removendo diretório %s" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "pacote '%s' conflita com '%s'" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "removendo '%s' da lista de alvos" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "" - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" +#: lib/libalpm/sync.c:804 +msgid "couldn't create package cache, using /tmp instead" msgstr "" -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "" - -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "" -#: lib/libalpm/sync.c:1079 -#, fuzzy, c-format -msgid "found package '%s-%s' in sync" -msgstr "atualizando pacote %s-%s" - -#: lib/libalpm/sync.c:1085 +#: lib/libalpm/trans.c:205 #, c-format -msgid "package '%s' not found in sync" -msgstr "" - -#: lib/libalpm/trans.c:271 -#, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 -#, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "" +msgid "could not remove lock file %s" +msgstr "não foi possível remover o arquivo de lock %s" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "não foi possível encontrar a dependência '%s'" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "" - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "executando \"%s\"" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" -msgstr "" - -#: lib/libalpm/util.c:609 -#, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" +msgid "failed to make path '%s' : %s" msgstr "" -#: lib/libalpm/versioncmp.c:279 +#: lib/libalpm/util.c:325 #, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" +msgid "could not open %s: %s\n" msgstr "" -#: lib/libalpm/versioncmp.c:284 -#, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "" +#: lib/libalpm/util.c:346 +#, fuzzy, c-format +msgid "could not extract %s (%s)\n" +msgstr "não foi possível extrair %s (%s)" -#~ msgid "%s saved as %s.pacorig" -#~ msgstr "%s salvo como %s.pacorig" diff --git a/lib/libalpm/po/ru_RU.po b/lib/libalpm/po/ru_RU.po index 4ec02c03..09adeec7 100644 --- a/lib/libalpm/po/ru_RU.po +++ b/lib/libalpm/po/ru_RU.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Pacman package manager 3.0.0\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:43-0400\n" +"POT-Creation-Date: 2007-07-11 00:26-0400\n" "PO-Revision-Date: 2007-03-16 02:52+1000\n" "Last-Translator: Vladimir Bayrakovskiy <4rayven@gmail.com>\n" "MIME-Version: 1.0\n" @@ -16,1494 +16,610 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: lib/libalpm/add.c:77 -#, c-format -msgid "loading target '%s'" -msgstr "" - -#: lib/libalpm/add.c:122 +#: lib/libalpm/add.c:118 #, c-format msgid "replacing older version %s-%s by %s in target list" msgstr "" -#: lib/libalpm/add.c:131 +#: lib/libalpm/add.c:127 #, c-format msgid "newer version %s-%s is in the target list -- skipping" msgstr "" -#: lib/libalpm/add.c:138 -#, c-format -msgid "reading '%s' metadata" -msgstr "читаю метаданные из '%s'" - -#: lib/libalpm/add.c:191 lib/libalpm/remove.c:111 -msgid "looking for unsatisfied dependencies" -msgstr "поиск неразрешенных зависимостей" - -#: lib/libalpm/add.c:203 lib/libalpm/sync.c:483 -msgid "looking for conflicts" -msgstr "поиск конфликтов" - -#: lib/libalpm/add.c:208 +#: lib/libalpm/add.c:201 msgid "replacing packages with -A and -U is not supported yet" msgstr "замещение пакетов с использованием опций -A и -U еще не реализовано" -#: lib/libalpm/add.c:209 +#: lib/libalpm/add.c:202 #, c-format msgid "please remove '%s' first, using -Rd" msgstr "пожалуйста, уделите сначала '%s' используя -Rd" -#: lib/libalpm/add.c:250 lib/libalpm/remove.c:147 -msgid "sorting by dependencies" -msgstr "сортировка по зависимостям" - -#: lib/libalpm/add.c:262 -msgid "cleaning up" -msgstr "прибираем за собой" - -#: lib/libalpm/add.c:277 -msgid "looking for file conflicts" -msgstr "поиск конфликтующих файлов" - -#: lib/libalpm/add.c:346 -#, c-format -msgid "upgrading package %s-%s" -msgstr "обновляется пакет %s-%s" - -#: lib/libalpm/add.c:370 -#, c-format -msgid "adding package %s-%s" -msgstr "добавляю пакет %s-%s" - -#: lib/libalpm/add.c:383 -#, c-format -msgid "removing old package first (%s-%s)" -msgstr "сперва удаляю старый пакет (%s-%s)" - -#: lib/libalpm/add.c:411 -#, c-format -msgid "adding %s to the NoUpgrade array temporarily" -msgstr "временно добавляю %s в список NoUpgrade" - -#: lib/libalpm/add.c:429 -msgid "extracting files" -msgstr "извлекаю файлы из архива" - -#: lib/libalpm/add.c:444 lib/libalpm/util.c:465 +#: lib/libalpm/add.c:428 lib/libalpm/trans.c:609 msgid "could not get current working directory" msgstr "не могу определить текущую рабочую директорию" -#: lib/libalpm/add.c:500 lib/libalpm/add.c:501 -#, c-format -msgid "%s is in NoExtract, skipping extraction" -msgstr "%s в списке NoExtract, пропускаю при распаковке" - -#: lib/libalpm/add.c:508 -#, c-format -msgid "%s is in trans->skip_add, skipping extraction" -msgstr "" - -#: lib/libalpm/add.c:554 lib/libalpm/add.c:555 lib/libalpm/add.c:704 -#, c-format -msgid "could not extract %s (%s)" -msgstr "не могу извлечь %s (%s)" - -#: lib/libalpm/add.c:598 -#, c-format -msgid "checking md5 hashes for %s" -msgstr "проверяю md5 хеши для %s" - -#: lib/libalpm/add.c:600 -#, c-format -msgid "checking sha1 hashes for %s" -msgstr "проверяю sha1 хеши для %s" - -#: lib/libalpm/add.c:602 -#, c-format -msgid "current: %s" -msgstr "текущий: %s" - -#: lib/libalpm/add.c:603 -#, c-format -msgid "new: %s" -msgstr "новый: %s" - -#: lib/libalpm/add.c:604 -#, c-format -msgid "original: %s" -msgstr "исходный: %s" - -#: lib/libalpm/add.c:616 +#: lib/libalpm/add.c:619 #, c-format msgid "could not rename %s (%s)" msgstr "не могу переименовать %s (%s)" -#: lib/libalpm/add.c:617 -#, c-format -msgid "error: could not rename %s (%s)" -msgstr "ошибка: не могу переименовать %s (%s)" - -#: lib/libalpm/add.c:623 lib/libalpm/add.c:642 +#: lib/libalpm/add.c:626 lib/libalpm/add.c:646 #, c-format msgid "could not copy tempfile to %s (%s)" msgstr "не могу скопировать временный файл в %s (%s)" -#: lib/libalpm/add.c:624 -#, c-format -msgid "error: could not copy tempfile to %s (%s)" -msgstr "ошибка: не могу скопировать временный файл в %s (%s)" - -#: lib/libalpm/add.c:628 lib/libalpm/remove.c:247 +#: lib/libalpm/add.c:631 lib/libalpm/remove.c:241 #, c-format msgid "%s saved as %s" msgstr "%s сохранен как %s" -#: lib/libalpm/add.c:629 -#, c-format -msgid "warning: %s saved as %s" -msgstr "предупреждение: %s сохранен как %s" - -#: lib/libalpm/add.c:639 -#, c-format -msgid "action: installing new file: %s" -msgstr "действие: устанавливаю новый файл: %s" - -#: lib/libalpm/add.c:649 lib/libalpm/add.c:655 lib/libalpm/add.c:660 -msgid "action: leaving existing file in place" -msgstr "действие: оставляем существующий файл на месте" - -#: lib/libalpm/add.c:663 -msgid "action: keeping current file and installing new one with .pacnew ending" -msgstr "" -"действие: оставляем текущий файл нетронутым и устанавливаем новый с " -"суффиксом .pacnew" - -#: lib/libalpm/add.c:666 +#: lib/libalpm/add.c:670 #, c-format msgid "could not install %s as %s: %s" msgstr "не могу установить %s как %s: %s" -#: lib/libalpm/add.c:667 -#, c-format -msgid "error: could not install %s as %s: %s" -msgstr "ошибка: не могу установить %s как %s: %s" - -#: lib/libalpm/add.c:669 +#: lib/libalpm/add.c:673 #, c-format msgid "%s installed as %s" msgstr "%s установлен как %s" -#: lib/libalpm/add.c:670 -#, c-format -msgid "warning: %s installed as %s" -msgstr "предупреждение: %s установлен как %s" - -#: lib/libalpm/add.c:684 -#, c-format -msgid "%s is in NoUpgrade -- skipping" -msgstr "%s есть в списке NoUpgrade -- пропускаю" - -#: lib/libalpm/add.c:685 +#: lib/libalpm/add.c:689 #, c-format msgid "extracting %s as %s.pacnew" msgstr "извлекаю %s как %s.pacnew" -#: lib/libalpm/add.c:686 +#: lib/libalpm/add.c:721 #, c-format -msgid "warning: extracting %s as %s.pacnew" -msgstr "предупреждение: извлекаю %s как %s.pacnew" - -#: lib/libalpm/add.c:689 -#, c-format -msgid "extracting %s" -msgstr "извлекаю %s" - -#: lib/libalpm/add.c:705 -#, c-format -msgid "error: could not extract %s (%s)" -msgstr "ошибка: не могу извлечь %s (%s)" - -#: lib/libalpm/add.c:717 -#, c-format -msgid "appending backup entry for %s" -msgstr "добавляю запись для отката для %s" +msgid "could not extract %s (%s)" +msgstr "не могу извлечь %s (%s)" -#: lib/libalpm/add.c:749 lib/libalpm/add.c:751 -#, c-format -msgid "errors occurred while %s %s" +#: lib/libalpm/add.c:772 +#, fuzzy, c-format +msgid "problem occurred while upgrading %s" msgstr "во время %s %s произошли ошибки" -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "upgrading" -msgstr "обновляю" - -#: lib/libalpm/add.c:750 lib/libalpm/add.c:752 -msgid "installing" -msgstr "устанавливаю" - -#: lib/libalpm/add.c:769 +#: lib/libalpm/add.c:777 #, fuzzy, c-format -msgid "provision '%s' has been removed from package %s (%s => %s)" -msgstr "'%s' был удален из пакета %s (%s => %s)" - -#: lib/libalpm/add.c:781 -#, c-format -msgid "updating '%s' due to provision change (%s)" -msgstr "обновляю '%s' в связи с изменениями в (%s)" +msgid "problem occurred while installing %s" +msgstr "во время %s %s произошли ошибки" -#: lib/libalpm/add.c:785 lib/libalpm/add.c:786 +#: lib/libalpm/add.c:815 #, c-format msgid "could not update provision '%s' from '%s'" msgstr "не могу обновить '%s' из '%s'" -#: lib/libalpm/add.c:799 lib/libalpm/remove.c:341 -msgid "updating database" -msgstr "обновляю базу данных" - -#: lib/libalpm/add.c:800 -#, c-format -msgid "adding database entry '%s'" -msgstr "добавляю в базу данных запись '%s'" - -#: lib/libalpm/add.c:803 lib/libalpm/add.c:805 +#: lib/libalpm/add.c:835 #, c-format msgid "could not update database entry %s-%s" msgstr "не могу обновить в базе данных запись %s-%s" -#: lib/libalpm/add.c:811 +#: lib/libalpm/add.c:843 #, c-format msgid "could not add entry '%s' in cache" msgstr "не могу добавить запись '%s' в кэш" -#: lib/libalpm/add.c:841 lib/libalpm/remove.c:365 lib/libalpm/sync.c:1055 -#, c-format -msgid "running \"ldconfig -r %s\"" -msgstr "запускаю \"ldconfig -r %s\"" - -#: lib/libalpm/alpm.c:116 -#, c-format -msgid "removing DB %s, %d remaining..." -msgstr "удаляю БД %s, %d осталось..." - -#: lib/libalpm/alpm.c:181 -#, fuzzy, c-format -msgid "unregistering database '%s'" -msgstr "дерегестрирую базу данных '%s'" - -#: lib/libalpm/alpm.c:186 -#, c-format -msgid "closing database '%s'" -msgstr "закрываю базу данных '%s'" - -#: lib/libalpm/alpm.c:232 -#, c-format -msgid "" -"adding new server to database '%s': protocol '%s', server '%s', path '%s'" -msgstr "" -"добавляю новый сервер в базу данных '%s': протокол '%s', сервер '%s', путь '%" -"s'" - -#: lib/libalpm/alpm.c:236 -#, fuzzy, c-format -msgid "serverlist flushed for '%s'" -msgstr "список серверов пополнен для '%s'" - -#: lib/libalpm/alpm.c:279 -#, c-format -msgid "failed to get lastupdate time for %s (no big deal)" -msgstr "" -"не удалось узнать время последнего обновления для %s (ни чего страшного)" - -#: lib/libalpm/alpm.c:298 -#, c-format -msgid "failed to sync db: %s [%d]" -msgstr "не удалось синхронизировать базу данных: %s [%d]" - -#: lib/libalpm/alpm.c:302 -#, c-format -msgid "sync: new mtime for %s: %s" -msgstr "синхронизация: обновлен mtime для %s: %s" - -#: lib/libalpm/alpm.c:308 -#, c-format -msgid "flushing database %s%s" -msgstr "обновляю базу данных %s%s" - -#: lib/libalpm/alpm.c:312 -#, c-format -msgid "could not remove database entry %s%s" -msgstr "не могу удалить из базы данных запись %s%s" - -#: lib/libalpm/alpm.c:481 -#, c-format -msgid "could not get sha1sum for package %s-%s" -msgstr "не могу получить контрольную сумму sha1sum для пакета %s-%s" - -#: lib/libalpm/alpm.c:487 -#, c-format -msgid "sha1sums for package %s-%s match" -msgstr "контрольные суммы sha1sum для пакета %s-%s совпали" - -#: lib/libalpm/alpm.c:490 -#, c-format -msgid "sha1sums do not match for package %s-%s" -msgstr "контрольные суммы sha1sum для пакета %s-%s не совпали" - -#: lib/libalpm/alpm.c:525 -#, c-format -msgid "could not get md5sum for package %s-%s" -msgstr "не могу получить контрольную сумму md5sum для пакета %s-%s" - -#: lib/libalpm/alpm.c:531 -#, c-format -msgid "md5sums for package %s-%s match" -msgstr "контрольные суммы md5sum для пакета %s-%s совпали" - -#: lib/libalpm/alpm.c:534 -#, c-format -msgid "md5sums do not match for package %s-%s" -msgstr "контрольные суммы md5sum для пакета %s-%s не совпали" - -#: lib/libalpm/alpm.c:790 -#, c-format -msgid "could not remove lock file %s" -msgstr "не могу удалить lock-файл %s" - -#: lib/libalpm/alpm.c:791 -#, c-format -msgid "warning: could not remove lock file %s" -msgstr "предупреждение: не могу удалить lock-файл %s" - -#: lib/libalpm/alpm.c:927 -#, c-format -msgid "config: new section '%s'" -msgstr "config: новая секция '%s'" - -#: lib/libalpm/alpm.c:957 -msgid "config: nopassiveftp" -msgstr "" - -#: lib/libalpm/alpm.c:960 -msgid "config: usesyslog" -msgstr "" - -#: lib/libalpm/alpm.c:963 -msgid "config: chomp" -msgstr "" - -#: lib/libalpm/alpm.c:966 -msgid "config: usecolor" -msgstr "" - -#: lib/libalpm/alpm.c:975 -#, c-format -msgid "config: including %s" -msgstr "" - -#: lib/libalpm/alpm.c:985 lib/libalpm/alpm.c:990 -#, c-format -msgid "config: noupgrade: %s" -msgstr "" - -#: lib/libalpm/alpm.c:998 lib/libalpm/alpm.c:1003 -#, c-format -msgid "config: noextract: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1011 lib/libalpm/alpm.c:1016 -#, c-format -msgid "config: ignorepkg: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1024 lib/libalpm/alpm.c:1029 +#: lib/libalpm/be_files.c:83 #, c-format -msgid "config: holdpkg: %s" +msgid "%s: description file is missing" msgstr "" -#: lib/libalpm/alpm.c:1036 +#: lib/libalpm/be_files.c:88 #, c-format -msgid "config: dbpath: %s" +msgid "%s: dependency file is missing" msgstr "" -#: lib/libalpm/alpm.c:1043 +#: lib/libalpm/be_files.c:93 #, c-format -msgid "config: cachedir: %s" +msgid "%s: file list is missing" msgstr "" -#: lib/libalpm/alpm.c:1050 -#, fuzzy, c-format -msgid "config: rootdir: %s" -msgstr "config: новая секция '%s'" - -#: lib/libalpm/alpm.c:1053 -#, c-format -msgid "config: logfile: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1056 -#, c-format -msgid "config: xfercommand: %s" -msgstr "" - -#: lib/libalpm/alpm.c:1061 -#, c-format -msgid "config: upgradedelay: %d" -msgstr "" - -#: lib/libalpm/alpm.c:1099 lib/libalpm/sync.c:107 -msgid "checking for package replacements" -msgstr "проверяю замены для пакетов" - -#: lib/libalpm/alpm.c:1110 lib/libalpm/sync.c:123 -#, c-format -msgid "checking replacement '%s' for package '%s'" -msgstr "проверяю замену '%s' для пакета '%s'" - -#: lib/libalpm/alpm.c:1113 lib/libalpm/sync.c:125 -#, c-format -msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" -msgstr "%s-%s: игнорирую обновление этого пакета (он будет заменен на %s-%s)" - -#: lib/libalpm/alpm.c:1143 lib/libalpm/sync.c:160 -#, c-format -msgid "%s-%s elected for upgrade (to be replaced by %s-%s)" -msgstr "%s-%s выбран для обновления (будет заменен на %s-%s)" - -#: lib/libalpm/alpm.c:1165 lib/libalpm/sync.c:194 -#, c-format -msgid "'%s' not found in sync db -- skipping" -msgstr "'%s' не найден в базе данных -- пропускаю" - -#: lib/libalpm/alpm.c:1179 lib/libalpm/sync.c:208 lib/libalpm/sync.c:509 -#, c-format -msgid "'%s' is already elected for removal -- skipping" -msgstr "'%s' уже выбран для удаления -- пропускаю" - -#: lib/libalpm/alpm.c:1185 -#, c-format -msgid "%s elected for upgrade (%s => %s)" -msgstr "%s выбран для обновления (%s => %s)" - -#: lib/libalpm/be_files.c:61 -#, c-format -msgid "unpacking database '%s'" -msgstr "распаковываю базу данных '%s'" - -#: lib/libalpm/be_files.c:78 -#, c-format -msgid "opening database from path '%s'" -msgstr "открываю базу данных расположенную в '%s'" - -#: lib/libalpm/be_files.c:182 -#, c-format -msgid "db scan could not find package: %s" -msgstr "в БД не удалось найти пакет: %s" - -#: lib/libalpm/be_files.c:186 +#: lib/libalpm/be_files.c:216 #, c-format msgid "invalid name for database entry '%s'" msgstr "" -#: lib/libalpm/be_files.c:221 -msgid "invalid package entry provided to _alpm_db_read, skipping" -msgstr "" - -#: lib/libalpm/be_files.c:226 -#, c-format -msgid "" -"request to read database info for a file-based package '%s', skipping..." -msgstr "" - -#: lib/libalpm/be_files.c:239 +#: lib/libalpm/be_files.c:271 #, c-format msgid "loading package data for %s : level=%d" msgstr "загружаю данные пакета %s : уровень=%d" -#: lib/libalpm/be_files.c:247 -#, c-format -msgid "cannot find '%s-%s' in db '%s'" -msgstr "" - -#: lib/libalpm/be_files.c:255 lib/libalpm/be_files.c:401 -#: lib/libalpm/be_files.c:424 lib/libalpm/be_files.c:515 -#: lib/libalpm/be_files.c:605 lib/libalpm/be_files.c:632 -#: lib/libalpm/package.c:208 +#: lib/libalpm/be_files.c:288 lib/libalpm/be_files.c:434 +#: lib/libalpm/be_files.c:457 lib/libalpm/be_files.c:549 +#: lib/libalpm/be_files.c:640 lib/libalpm/be_files.c:668 +#: lib/libalpm/package.c:419 #, c-format msgid "could not open file %s: %s" msgstr "" -#: lib/libalpm/be_files.c:512 -#, c-format -msgid "writing %s-%s DESC information back to db" -msgstr "" - -#: lib/libalpm/be_files.c:602 -#, c-format -msgid "writing %s-%s FILES information back to db" -msgstr "" - -#: lib/libalpm/be_files.c:629 -#, c-format -msgid "writing %s-%s DEPENDS information back to db" -msgstr "" - -#: lib/libalpm/cache.c:59 -#, c-format -msgid "loading package cache for repository '%s'" -msgstr "" - -#: lib/libalpm/cache.c:64 +#: lib/libalpm/cache.c:63 #, c-format msgid "adding '%s' to package cache for db '%s'" msgstr "" -#: lib/libalpm/cache.c:85 -#, c-format -msgid "freeing package cache for repository '%s'" -msgstr "" - -#: lib/libalpm/cache.c:109 -#, c-format -msgid "error: pkgcache is NULL for db '%s'" -msgstr "" - -#: lib/libalpm/cache.c:129 -#, c-format -msgid "adding entry '%s' in '%s' cache" -msgstr "" - -#: lib/libalpm/cache.c:149 -#, c-format -msgid "removing entry '%s' from '%s' cache" -msgstr "" - -#: lib/libalpm/cache.c:156 -#, c-format -msgid "cannot remove entry '%s' from '%s' cache: not found" -msgstr "" - -#: lib/libalpm/cache.c:178 +#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:80 lib/libalpm/deps.c:449 +#: lib/libalpm/deps.c:650 lib/libalpm/deps.c:690 lib/libalpm/group.c:44 +#: lib/libalpm/handle.c:50 lib/libalpm/package.c:297 lib/libalpm/sync.c:62 +#: lib/libalpm/sync.c:612 lib/libalpm/sync.c:628 lib/libalpm/trans.c:223 #, c-format -msgid "error: failed to get '%s' from NULL pkgcache" -msgstr "" - -#: lib/libalpm/cache.c:201 -#, c-format -msgid "loading group cache for repository '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:69 -#, c-format -msgid " found conflict '%s' : package '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:78 -#, c-format -msgid " found conflict '%s' : package '%s' provides '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:101 lib/libalpm/conflict.c:143 -#, c-format -msgid "package '%s' conflicts with itself - packaging error" -msgstr "" - -#: lib/libalpm/conflict.c:107 -#, c-format -msgid "checkconflicts: target '%s' vs db" -msgstr "" - -#: lib/libalpm/conflict.c:149 -#, c-format -msgid "checkconflicts: target '%s' vs all targets" -msgstr "" - -#: lib/libalpm/conflict.c:181 -#, c-format -msgid "checkconflicts: db vs target '%s'" -msgstr "" - -#: lib/libalpm/conflict.c:201 -#, c-format -msgid "target '%s' is also in target list, using NEW conflicts" +msgid "malloc failure: could not allocate %d bytes" msgstr "" -#: lib/libalpm/conflict.c:257 +#: lib/libalpm/db.c:238 #, c-format -msgid "\tCONFLICTS:: %s conflicts with %s" -msgstr "" +msgid "could not remove database entry %s%s" +msgstr "не могу удалить из базы данных запись %s%s" -#: lib/libalpm/conflict.c:349 lib/libalpm/deps.c:60 lib/libalpm/deps.c:438 -#: lib/libalpm/deps.c:634 lib/libalpm/deps.c:674 lib/libalpm/group.c:45 -#: lib/libalpm/handle.c:51 lib/libalpm/package.c:82 lib/libalpm/sync.c:67 -#: lib/libalpm/sync.c:614 lib/libalpm/sync.c:630 lib/libalpm/sync.c:727 -#: lib/libalpm/trans.c:55 lib/libalpm/util.c:614 lib/libalpm/util.c:621 +#: lib/libalpm/db.c:432 lib/libalpm/sync.c:128 #, c-format -msgid "malloc failure: could not allocate %d bytes" -msgstr "" +msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)" +msgstr "%s-%s: игнорирую обновление этого пакета (он будет заменен на %s-%s)" -#: lib/libalpm/db.c:64 lib/libalpm/db.c:71 +#: lib/libalpm/db.c:553 lib/libalpm/db.c:560 #, c-format msgid "malloc failed: could not allocate %d bytes" msgstr "" -#: lib/libalpm/db.c:167 +#: lib/libalpm/db.c:661 msgid "attempt to re-register the 'local' DB" msgstr "" -#: lib/libalpm/db.c:175 -#, c-format -msgid "attempt to re-register the '%s' database, using existing" -msgstr "" - -#: lib/libalpm/db.c:181 -#, c-format -msgid "registering database '%s'" -msgstr "" - -#: lib/libalpm/db.c:186 -#, c-format -msgid "database directory '%s' does not exist, creating it" -msgstr "" - -#: lib/libalpm/db.c:197 -#, c-format -msgid "opening database '%s'" -msgstr "" - -#: lib/libalpm/deps.c:131 -msgid "started sorting dependencies" -msgstr "" - -#: lib/libalpm/deps.c:136 -msgid "possible dependency cycle detected" -msgstr "" - -#: lib/libalpm/deps.c:183 -msgid "sorting dependencies finished" -msgstr "" - -#: lib/libalpm/deps.c:225 lib/libalpm/deps.c:310 -msgid "null package found in package list" -msgstr "" - -#: lib/libalpm/deps.c:230 -#, c-format -msgid "cannot find package installed '%s'" -msgstr "" - -#: lib/libalpm/deps.c:261 -#, c-format -msgid "checkdeps: dependency '%s' has moved from '%s' to '%s'" -msgstr "" - -#: lib/libalpm/deps.c:280 -#, c-format -msgid "checkdeps: dependency '%s' satisfied by installed package '%s'" -msgstr "" - -#: lib/libalpm/deps.c:289 -#, c-format -msgid "checkdeps: updated '%s' won't satisfy a dependency of '%s'" -msgstr "" - -#: lib/libalpm/deps.c:359 -#, c-format -msgid "missing dependency '%s' for package '%s'" -msgstr "" - -#: lib/libalpm/deps.c:409 -#, c-format -msgid "checkdeps: found %s as required by %s" -msgstr "" - -#: lib/libalpm/deps.c:485 -#, c-format -msgid "excluding %s -- explicitly installed" -msgstr "" - -#: lib/libalpm/deps.c:532 -#, c-format -msgid "cannot find package \"%s\" or anything that provides it!" -msgstr "" - -#: lib/libalpm/deps.c:540 lib/libalpm/deps.c:551 -#, c-format -msgid "adding '%s' to the targets" -msgstr "" - -#: lib/libalpm/deps.c:583 -msgid "started resolving dependencies" -msgstr "" +#: lib/libalpm/db.c:680 +#, fuzzy +msgid "database path is undefined" +msgstr "база данных не инициализирована" -#: lib/libalpm/deps.c:601 -#, c-format -msgid "%s provides dependency %s -- skipping" -msgstr "" +#: lib/libalpm/deps.c:187 +#, fuzzy +msgid "dependency cycle detected\n" +msgstr "обнаружена циклическая зависимость: %s" -#: lib/libalpm/deps.c:630 +#: lib/libalpm/deps.c:646 #, c-format msgid "" "cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)" msgstr "" -#: lib/libalpm/deps.c:647 -#, c-format -msgid "dependency %s is already in the target list -- skipping" -msgstr "" - -#: lib/libalpm/deps.c:667 -#, c-format -msgid "pulling dependency %s (needed by %s)" -msgstr "" - -#: lib/libalpm/deps.c:671 +#: lib/libalpm/deps.c:687 #, c-format msgid "cannot resolve dependencies for \"%s\"" msgstr "не удается удовлетворить зависимости для \"%s\"" -#: lib/libalpm/deps.c:687 -#, c-format -msgid "dependency cycle detected: %s" -msgstr "обнаружена циклическая зависимость: %s" - -#: lib/libalpm/deps.c:691 -msgid "finished resolving dependencies" -msgstr "" - -#: lib/libalpm/error.c:40 +#: lib/libalpm/error.c:38 msgid "out of memory!" msgstr "" -#: lib/libalpm/error.c:42 +#: lib/libalpm/error.c:40 msgid "unexpected system error" msgstr "" -#: lib/libalpm/error.c:44 +#: lib/libalpm/error.c:42 msgid "insufficient privileges" msgstr "" -#: lib/libalpm/error.c:46 +#: lib/libalpm/error.c:44 msgid "could not find or read file" msgstr "" -#: lib/libalpm/error.c:48 +#: lib/libalpm/error.c:46 msgid "wrong or NULL argument passed" msgstr "" -#: lib/libalpm/error.c:51 +#: lib/libalpm/error.c:49 msgid "library not initialized" msgstr "" -#: lib/libalpm/error.c:53 +#: lib/libalpm/error.c:51 msgid "library already initialized" msgstr "" -#: lib/libalpm/error.c:55 +#: lib/libalpm/error.c:53 msgid "unable to lock database" msgstr "не удается заблокировать базу данных" -#: lib/libalpm/error.c:58 +#: lib/libalpm/error.c:56 msgid "could not open database" msgstr "не удается открыть базу данных" -#: lib/libalpm/error.c:60 +#: lib/libalpm/error.c:58 msgid "could not create database" msgstr "не удается создать базу данных" -#: lib/libalpm/error.c:62 +#: lib/libalpm/error.c:60 msgid "database not initialized" msgstr "база данных не инициализирована" -#: lib/libalpm/error.c:64 +#: lib/libalpm/error.c:62 msgid "database already registered" msgstr "база данных уже зарегистрирована" -#: lib/libalpm/error.c:66 +#: lib/libalpm/error.c:64 msgid "could not find database" msgstr "не удается найти базу данных" -#: lib/libalpm/error.c:68 +#: lib/libalpm/error.c:66 msgid "could not update database" msgstr "не удается обновить базу данных" -#: lib/libalpm/error.c:70 +#: lib/libalpm/error.c:68 msgid "could not remove database entry" msgstr "не удается удалить запись в базе данных" -#: lib/libalpm/error.c:73 +#: lib/libalpm/error.c:71 msgid "invalid url for server" msgstr "неверный url" -#: lib/libalpm/error.c:80 +#: lib/libalpm/error.c:78 msgid "could not set parameter" msgstr "ну могу установить параметр" -#: lib/libalpm/error.c:83 +#: lib/libalpm/error.c:81 msgid "transaction already initialized" msgstr "" -#: lib/libalpm/error.c:85 lib/libalpm/error.c:89 +#: lib/libalpm/error.c:83 lib/libalpm/error.c:87 msgid "transaction not initialized" msgstr "" -#: lib/libalpm/error.c:87 +#: lib/libalpm/error.c:85 msgid "duplicate target" msgstr "" -#: lib/libalpm/error.c:91 +#: lib/libalpm/error.c:89 msgid "transaction not prepared" msgstr "" -#: lib/libalpm/error.c:93 +#: lib/libalpm/error.c:91 msgid "transaction aborted" msgstr "" -#: lib/libalpm/error.c:95 +#: lib/libalpm/error.c:93 msgid "operation not compatible with the transaction type" msgstr "" -#: lib/libalpm/error.c:97 lib/libalpm/sync.c:994 +#: lib/libalpm/error.c:95 lib/libalpm/sync.c:985 msgid "could not commit transaction" msgstr "" -#: lib/libalpm/error.c:99 +#: lib/libalpm/error.c:97 msgid "could not download all files" msgstr "не могу загрузить все файлы" -#: lib/libalpm/error.c:102 +#: lib/libalpm/error.c:100 msgid "could not find or read package" msgstr "не удается найти или прочитать пакет" -#: lib/libalpm/error.c:104 +#: lib/libalpm/error.c:102 msgid "invalid or corrupted package" msgstr "пакет неправильный или поврежден" -#: lib/libalpm/error.c:106 +#: lib/libalpm/error.c:104 msgid "cannot open package file" msgstr "не удается открыть файл пакета" -#: lib/libalpm/error.c:108 +#: lib/libalpm/error.c:106 msgid "cannot load package data" msgstr "не удается загрузить данные пакета" -#: lib/libalpm/error.c:110 +#: lib/libalpm/error.c:108 msgid "package already installed" msgstr "пакет уже установлен" -#: lib/libalpm/error.c:112 +#: lib/libalpm/error.c:110 msgid "package not installed or lesser version" msgstr "" -#: lib/libalpm/error.c:114 +#: lib/libalpm/error.c:112 msgid "cannot remove all files for package" msgstr "не могу удалить все файлы пакета" -#: lib/libalpm/error.c:116 +#: lib/libalpm/error.c:114 msgid "package name is not valid" msgstr "неверное имя пакета" -#: lib/libalpm/error.c:118 +#: lib/libalpm/error.c:116 msgid "corrupted package" msgstr "пакет поврежден" -#: lib/libalpm/error.c:120 +#: lib/libalpm/error.c:118 msgid "no such repository" msgstr "нет такого репозитория" -#: lib/libalpm/error.c:123 +#: lib/libalpm/error.c:121 msgid "group not found" msgstr "группа не найдена" -#: lib/libalpm/error.c:126 +#: lib/libalpm/error.c:124 msgid "could not satisfy dependencies" msgstr "не удается удовлетворить зависимости" -#: lib/libalpm/error.c:128 +#: lib/libalpm/error.c:126 msgid "conflicting dependencies" msgstr "" -#: lib/libalpm/error.c:130 +#: lib/libalpm/error.c:128 msgid "conflicting files" msgstr "" -#: lib/libalpm/error.c:133 +#: lib/libalpm/error.c:131 msgid "user aborted the operation" msgstr "пользователь прервал операцию" -#: lib/libalpm/error.c:135 +#: lib/libalpm/error.c:133 msgid "internal error" msgstr "внутренняя ошибка" -#: lib/libalpm/error.c:137 +#: lib/libalpm/error.c:135 msgid "libarchive error" msgstr "ошибка в libarchive" -#: lib/libalpm/error.c:139 -msgid "not enough space on disk" -msgstr "недостаточно места на диске" - -#: lib/libalpm/error.c:142 +#: lib/libalpm/error.c:138 msgid "not confirmed" msgstr "" -#: lib/libalpm/error.c:145 -msgid "bad configuration section name" -msgstr "неверное название секции в конфигурационном файле" - -#: lib/libalpm/error.c:147 -msgid "'local' is reserved and cannot be used as a repository name" -msgstr "" -"название 'local' зарезервировано и не может использоваться как название " -"репозитория" - -#: lib/libalpm/error.c:149 -msgid "syntax error in config file" -msgstr "синтаксическая ошибка в конфигурационном файле" - -#: lib/libalpm/error.c:151 -msgid "all directives must belong to a section" -msgstr "все директивы должны находиться в соответствующих секциях" - -#: lib/libalpm/error.c:153 +#: lib/libalpm/error.c:140 msgid "invalid regular expression" msgstr "неверное регулярное выражение" -#: lib/libalpm/error.c:156 +#: lib/libalpm/error.c:143 msgid "connection to remote host failed" msgstr "не удалось подключиться к удаленному хосту" -#: lib/libalpm/error.c:159 +#: lib/libalpm/error.c:146 msgid "unexpected error" msgstr "непредвиденная ошибка" -#: lib/libalpm/handle.c:163 +#: lib/libalpm/handle.c:140 #, c-format msgid "cannot canonicalize specified root path '%s'" msgstr "" -#: lib/libalpm/handle.c:175 +#: lib/libalpm/md5driver.c:69 #, c-format -msgid "option 'root' = %s" +msgid "md5: %s can't be opened\n" msgstr "" -#: lib/libalpm/handle.c:195 +#: lib/libalpm/package.c:129 #, c-format -msgid "option 'dbpath' = %s" -msgstr "" +msgid "could not get sha1sum for package %s-%s" +msgstr "не могу получить контрольную сумму sha1sum для пакета %s-%s" -#: lib/libalpm/handle.c:211 +#: lib/libalpm/package.c:138 #, c-format -msgid "option 'cachedir' = %s" -msgstr "" +msgid "sha1sums do not match for package %s-%s" +msgstr "контрольные суммы sha1sum для пакета %s-%s не совпали" -#: lib/libalpm/md5driver.c:56 +#: lib/libalpm/package.c:180 #, c-format -msgid "%s can't be opened\n" -msgstr "" +msgid "could not get md5sum for package %s-%s" +msgstr "не могу получить контрольную сумму md5sum для пакета %s-%s" -#: lib/libalpm/md5driver.c:74 +#: lib/libalpm/package.c:189 #, c-format -msgid "md5(%s) = %s" -msgstr "" +msgid "md5sums do not match for package %s-%s" +msgstr "контрольные суммы md5sum для пакета %s-%s не совпали" -#: lib/libalpm/package.c:147 +#: lib/libalpm/package.c:360 #, c-format msgid "%s-%s: ignoring package upgrade (%s)" msgstr "" -#: lib/libalpm/package.c:158 +#: lib/libalpm/package.c:369 #, c-format msgid "%s: forcing upgrade to version %s" msgstr "%s: принудительно обновляю до версии %s" -#: lib/libalpm/package.c:163 +#: lib/libalpm/package.c:374 #, c-format msgid "%s: local (%s) is newer than %s (%s)" msgstr "%s: установленная версия (%s) новее, чем в %s (%s)" -#: lib/libalpm/package.c:171 +#: lib/libalpm/package.c:382 #, c-format msgid "%s-%s: delaying upgrade of package (%s)" msgstr "" -#: lib/libalpm/package.c:222 lib/libalpm/package.c:281 -#, c-format -msgid "%s: syntax error in description file line %d" -msgstr "" - -#: lib/libalpm/package.c:355 +#: lib/libalpm/package.c:564 msgid "could not parse the package description file" msgstr "" -#: lib/libalpm/package.c:359 +#: lib/libalpm/package.c:568 #, c-format msgid "missing package name in %s" msgstr "" -#: lib/libalpm/package.c:363 +#: lib/libalpm/package.c:572 #, c-format msgid "missing package version in %s" msgstr "" -#: lib/libalpm/package.c:398 +#: lib/libalpm/package.c:607 #, c-format msgid "could not remove tempfile %s" msgstr "не могу удалить временный файл %s" -#: lib/libalpm/package.c:411 lib/libalpm/package.c:418 +#: lib/libalpm/package.c:623 lib/libalpm/package.c:630 #, c-format msgid "error while reading package: %s" msgstr "ошибка при чтении пакета: %s" -#: lib/libalpm/package.c:424 +#: lib/libalpm/package.c:636 msgid "missing package metadata" msgstr "" -#: lib/libalpm/package.c:431 +#: lib/libalpm/package.c:643 #, c-format msgid "missing package filelist in %s, generating one" msgstr "отсутствует список файлов пакета в %s, генерирую его" -#: lib/libalpm/package.c:570 -#, c-format -msgid "adding '%s' in requiredby field for '%s'" -msgstr "добавляю '%s' в поле requiredby для '%s'" - -#: lib/libalpm/package.c:584 -#, c-format -msgid "adding '%s' in requiredby field for '%s' (provides: %s)" -msgstr "добавляю '%s' в поле requiredby для '%s' (обеспечивает :%s)" - -#: lib/libalpm/remove.c:79 -#, c-format -msgid "could not find %s in database" -msgstr "не могу найти %s в базе данных" - -#: lib/libalpm/remove.c:93 -#, c-format -msgid "adding %s in the targets list" -msgstr "" - -#: lib/libalpm/remove.c:121 -#, c-format -msgid "pulling %s in the targets list" -msgstr "" - -#: lib/libalpm/remove.c:124 +#: lib/libalpm/remove.c:117 #, c-format msgid "could not find %s in database -- skipping" msgstr "не могу найти %s в базе данных -- пропускаю" -#: lib/libalpm/remove.c:142 -msgid "finding removable dependencies" -msgstr "ищу устранимые зависимости" - -#: lib/libalpm/remove.c:175 +#: lib/libalpm/remove.c:168 #, c-format msgid "cannot remove file '%s': %s" msgstr "не могу удалить файл '%s': %s" -#: lib/libalpm/remove.c:213 -#, c-format -msgid "Skipping removal of '%s' due to NoUpgrade" -msgstr "Пакет '%s' не будет удален, так как он входит в список NoUpgrade" - -#: lib/libalpm/remove.c:220 -#, c-format -msgid "file %s does not exist" -msgstr "файл %s не существует" - -#: lib/libalpm/remove.c:227 -#, c-format -msgid "keeping directory %s" -msgstr "сохраняю директорию %s" - -#: lib/libalpm/remove.c:229 -#, c-format -msgid "removing directory %s" -msgstr "удаляю директорию %s" - -#: lib/libalpm/remove.c:236 -#, c-format -msgid "%s is in trans->skip_remove, skipping removal" -msgstr "" - -#: lib/libalpm/remove.c:250 -#, c-format -msgid "transaction is set to NOSAVE, not backing up '%s'" -msgstr "" - -#: lib/libalpm/remove.c:254 -#, c-format -msgid "unlinking %s" -msgstr "" - -#: lib/libalpm/remove.c:261 +#: lib/libalpm/remove.c:255 #, c-format msgid "cannot remove file %s: %s" msgstr "не могу удалить файл %s: %s" -#: lib/libalpm/remove.c:294 -#, c-format -msgid "removing package %s-%s" -msgstr "удаляю пакет %s-%s" - -#: lib/libalpm/remove.c:309 -#, c-format -msgid "not removing package '%s', can't remove all files" -msgstr "пакет '%s' не удален, так как не удается удалить все файлы" - -#: lib/libalpm/remove.c:316 -#, c-format -msgid "removing %d files" -msgstr "удаляю %d файлов" - -#: lib/libalpm/remove.c:342 -#, c-format -msgid "removing database entry '%s'" -msgstr "удаляю запись '%s' в базе данных" - -#: lib/libalpm/remove.c:344 +#: lib/libalpm/remove.c:338 #, c-format msgid "could not remove database entry %s-%s" msgstr "" -#: lib/libalpm/remove.c:349 +#: lib/libalpm/remove.c:343 #, c-format msgid "could not remove entry '%s' from cache" msgstr "" -#: lib/libalpm/sha1.c:397 +#: lib/libalpm/sha1.c:409 #, c-format msgid "sha1: %s can't be opened\n" msgstr "" -#: lib/libalpm/sha1.c:412 -#, c-format -msgid "sha1(%s) = %s" -msgstr "" - -#: lib/libalpm/sync.c:183 -msgid "checking for package upgrades" -msgstr "проверяю наличие обновлений" - -#: lib/libalpm/sync.c:215 -#, c-format -msgid "%s-%s elected for upgrade (%s => %s)" -msgstr "%s-%s выбран для обновления (%s => %s)" - -#: lib/libalpm/sync.c:270 -#, c-format -msgid "searching for target in repo '%s'" -msgstr "" - -#: lib/libalpm/sync.c:278 lib/libalpm/sync.c:301 -#, c-format -msgid "target '%s' not found -- looking for provisions" -msgstr "" - -#: lib/libalpm/sync.c:283 lib/libalpm/sync.c:306 -#, c-format -msgid "found '%s' as a provision for '%s'" -msgstr "" - -#: lib/libalpm/sync.c:290 +#: lib/libalpm/sync.c:294 #, c-format msgid "repository '%s' not found" msgstr "репозиторий '%s' не найден" -#: lib/libalpm/sync.c:331 +#: lib/libalpm/sync.c:335 #, c-format msgid "%s-%s is up to date -- skipping" msgstr "%s-%s не устарел -- пропускаю" -#: lib/libalpm/sync.c:354 -#, c-format -msgid "adding target '%s' to the transaction set" -msgstr "" - -#: lib/libalpm/sync.c:402 -msgid "resolving target's dependencies" -msgstr "разрешаю зависимости пакетов" - -#: lib/libalpm/sync.c:422 -#, c-format -msgid "adding package %s-%s to the transaction targets" -msgstr "" - -#: lib/libalpm/sync.c:463 -msgid "looking for unresolvable dependencies" -msgstr "ищу неразрешимые зависимости" - -#: lib/libalpm/sync.c:494 -#, c-format -msgid "package '%s' conflicts with '%s'" -msgstr "пакет '%s' конфликтует с '%s'" - -#: lib/libalpm/sync.c:516 -#, c-format -msgid "'%s' not found in transaction set -- skipping" -msgstr "" - -#: lib/libalpm/sync.c:527 -#, c-format -msgid "package '%s' provides its own conflict" -msgstr "" - -#: lib/libalpm/sync.c:550 lib/libalpm/sync.c:555 -#, c-format -msgid "'%s' is in the target list -- keeping it" -msgstr "" - -#: lib/libalpm/sync.c:567 lib/libalpm/sync.c:604 -#, c-format -msgid "removing '%s' from target list" -msgstr "" - -#: lib/libalpm/sync.c:576 -#, c-format -msgid "resolving package '%s' conflict" -msgstr "разрешаю конфликт пакета '%s'" - -#: lib/libalpm/sync.c:599 -#, c-format -msgid "electing '%s' for removal" -msgstr "помечаю '%s' для удаления" - -#: lib/libalpm/sync.c:610 lib/libalpm/sync.c:626 +#: lib/libalpm/sync.c:608 lib/libalpm/sync.c:624 msgid "unresolvable package conflicts detected" msgstr "обнаружен неразрешимый конфликт пакетов" -#: lib/libalpm/sync.c:678 -msgid "checking dependencies of packages designated for removal" -msgstr "проверяю зависимости пакетов отмеченных для удаления" - -#: lib/libalpm/sync.c:692 -msgid "something has gone horribly wrong" -msgstr "произошло что-то ужасное и непонятное" - -#: lib/libalpm/sync.c:712 -#, c-format -msgid "found '%s' as a provision for '%s' -- conflict aborted" -msgstr "" - -#: lib/libalpm/sync.c:808 -#, c-format -msgid "%s is already in the cache\n" -msgstr "%s уже есть в кэше\n" - -#: lib/libalpm/sync.c:819 +#: lib/libalpm/sync.c:778 #, c-format msgid "no %s cache exists, creating...\n" msgstr "кэш %s не существует, создаю...\n" -#: lib/libalpm/sync.c:820 -#, c-format -msgid "warning: no %s cache exists, creating..." -msgstr "предупреждение: кэш %s не существует, создаю..." - -#: lib/libalpm/sync.c:825 -msgid "couldn't create package cache, using /tmp instead\n" +#: lib/libalpm/sync.c:804 +#, fuzzy +msgid "couldn't create package cache, using /tmp instead" msgstr "не могу создать кэш пакета, будет использован /tmp\n" -#: lib/libalpm/sync.c:826 -msgid "warning: couldn't create package cache, using /tmp instead" -msgstr "предупреждение: не могу создать кэш пакета, будет использован /tmp" - -#: lib/libalpm/sync.c:833 +#: lib/libalpm/sync.c:808 #, c-format msgid "failed to retrieve some files from %s\n" msgstr "не удалось получить некоторые файлы с %s\n" -#: lib/libalpm/sync.c:863 lib/libalpm/sync.c:875 +#: lib/libalpm/sync.c:839 lib/libalpm/sync.c:861 #, c-format msgid "can't get md5 or sha1 checksum for package %s\n" msgstr "не удалось получить md5 или sha1 контрольную сумму для пакета %s\n" -#: lib/libalpm/sync.c:894 +#: lib/libalpm/sync.c:878 #, c-format msgid "archive %s was corrupted (bad MD5 or SHA1 checksum)\n" msgstr "архив %s был поврежден (не сходится MD5 или SHA1 контрольная сумма)\n" -#: lib/libalpm/sync.c:896 +#: lib/libalpm/sync.c:880 #, c-format msgid "archive %s is corrupted (bad MD5 or SHA1 checksum)\n" msgstr "архив %s поврежден (не сходится MD5 или SHA1 контрольная сумма)\n" -#: lib/libalpm/sync.c:917 +#: lib/libalpm/sync.c:901 msgid "could not create removal transaction" msgstr "" -#: lib/libalpm/sync.c:923 +#: lib/libalpm/sync.c:907 msgid "could not initialize the removal transaction" msgstr "" -#: lib/libalpm/sync.c:943 -msgid "removing conflicting and to-be-replaced packages" -msgstr "" - -#: lib/libalpm/sync.c:945 +#: lib/libalpm/sync.c:929 msgid "could not prepare removal transaction" msgstr "" -#: lib/libalpm/sync.c:951 +#: lib/libalpm/sync.c:935 msgid "could not commit removal transaction" msgstr "" -#: lib/libalpm/sync.c:958 -msgid "installing packages" -msgstr "устанавливаю пакеты" - -#: lib/libalpm/sync.c:961 +#: lib/libalpm/sync.c:946 msgid "could not create transaction" msgstr "" -#: lib/libalpm/sync.c:966 +#: lib/libalpm/sync.c:951 msgid "could not initialize transaction" msgstr "" -#: lib/libalpm/sync.c:989 +#: lib/libalpm/sync.c:980 msgid "could not prepare transaction" msgstr "" -#: lib/libalpm/sync.c:1001 -msgid "updating database for replaced packages' dependencies" -msgstr "" - -#: lib/libalpm/sync.c:1030 +#: lib/libalpm/sync.c:1022 #, c-format msgid "could not update requiredby for database entry %s-%s" msgstr "" -#: lib/libalpm/sync.c:1039 +#: lib/libalpm/sync.c:1031 #, c-format msgid "could not update new database entry %s-%s" msgstr "" -#: lib/libalpm/sync.c:1079 +#: lib/libalpm/trans.c:205 #, c-format -msgid "found package '%s-%s' in sync" -msgstr "" - -#: lib/libalpm/sync.c:1085 -#, c-format -msgid "package '%s' not found in sync" -msgstr "пакет '%s' не найден в базе данных" - -#: lib/libalpm/trans.c:271 -#, c-format -msgid "updating dependency packages 'requiredby' fields for %s-%s" -msgstr "" - -#: lib/libalpm/trans.c:274 -msgid "package has no dependencies, no other packages to update" -msgstr "" - -#: lib/libalpm/trans.c:311 lib/libalpm/trans.c:341 -#, c-format -msgid "updating 'requiredby' field for package '%s'" -msgstr "" +msgid "could not remove lock file %s" +msgstr "не могу удалить lock-файл %s" -#: lib/libalpm/trans.c:326 lib/libalpm/trans.c:356 +#: lib/libalpm/trans.c:498 lib/libalpm/trans.c:528 #, c-format msgid "could not update 'requiredby' database entry %s-%s" msgstr "" -#: lib/libalpm/trans.c:333 -#, c-format -msgid "could not find dependency '%s'" -msgstr "" - -#: lib/libalpm/util.c:142 -#, c-format -msgid "failed to make path '%s' : %s" -msgstr "" - -#: lib/libalpm/util.c:280 -#, c-format -msgid "could not open %s: %s\n" -msgstr "" - -#: lib/libalpm/util.c:293 -#, c-format -msgid "could not extract %s: %s\n" -msgstr "" - -#: lib/libalpm/util.c:350 -#, c-format -msgid "logaction called: %s" -msgstr "" - -#: lib/libalpm/util.c:445 +#: lib/libalpm/trans.c:589 msgid "could not create temp directory" msgstr "" -#: lib/libalpm/util.c:472 +#: lib/libalpm/trans.c:616 #, c-format msgid "could not change directory to %s (%s)" msgstr "" -#: lib/libalpm/util.c:476 -#, c-format -msgid "executing %s script..." -msgstr "" - -#: lib/libalpm/util.c:489 +#: lib/libalpm/trans.c:633 #, c-format msgid "could not fork a new process (%s)" msgstr "" -#: lib/libalpm/util.c:496 -#, c-format -msgid "chrooting in %s" -msgstr "" - -#: lib/libalpm/util.c:498 +#: lib/libalpm/trans.c:641 #, c-format msgid "could not change the root directory (%s)" msgstr "" -#: lib/libalpm/util.c:502 +#: lib/libalpm/trans.c:645 #, c-format msgid "could not change directory to / (%s)" msgstr "" -#: lib/libalpm/util.c:506 -#, c-format -msgid "executing \"%s\"" -msgstr "" - -#: lib/libalpm/util.c:509 -#, c-format -msgid "call to popen failed (%s)" -msgstr "" - -#: lib/libalpm/util.c:541 +#: lib/libalpm/trans.c:654 #, c-format msgid "call to waitpid failed (%s)" msgstr "" -#: lib/libalpm/util.c:550 +#: lib/libalpm/trans.c:663 #, c-format msgid "could not remove tmpdir %s" msgstr "" -#: lib/libalpm/util.c:568 +#: lib/libalpm/util.c:127 #, c-format -msgid "cannot read disk space information from %s: %s" +msgid "failed to make path '%s' : %s" msgstr "" -#: lib/libalpm/util.c:609 +#: lib/libalpm/util.c:325 #, c-format -msgid "check_freespace: total pkg size: %lld, disk space: %lld" +msgid "could not open %s: %s\n" msgstr "" -#: lib/libalpm/versioncmp.c:279 -#, c-format -msgid "depcmp: %s-%s %s %s-%s => %s" -msgstr "" +#: lib/libalpm/util.c:346 +#, fuzzy, c-format +msgid "could not extract %s (%s)\n" +msgstr "не могу извлечь %s (%s)" -#: lib/libalpm/versioncmp.c:284 -#, c-format -msgid "depcmp: %s-%s %s %s => %s" -msgstr "" diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index 1a0b2d5e..fb5ddb92 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -32,6 +32,7 @@ #include <string.h> #include <limits.h> #include <unistd.h> +#include <sys/stat.h> /* libalpm */ #include "remove.h" @@ -39,9 +40,6 @@ #include "trans.h" #include "util.h" #include "error.h" -#include "versioncmp.h" -#include "md5.h" -#include "sha1.h" #include "log.h" #include "backup.h" #include "package.h" @@ -68,7 +66,7 @@ int _alpm_remove_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name) if((info = _alpm_db_scan(db, name)) == NULL) { /* Unimportant - just ignore it if we can't find it */ - _alpm_log(PM_LOG_DEBUG, _("could not find %s in database"), name); + _alpm_log(PM_LOG_DEBUG, "could not find %s in database\n", name); RET_ERR(PM_ERR_PKG_NOT_FOUND, -1); } @@ -82,7 +80,7 @@ int _alpm_remove_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name) } } - _alpm_log(PM_LOG_DEBUG, _("adding %s in the targets list"), info->name); + _alpm_log(PM_LOG_DEBUG, "adding %s in the targets list\n", info->name); trans->packages = alpm_list_add(trans->packages, info); return(0); @@ -97,10 +95,15 @@ int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data) ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); - if(!(trans->flags & (PM_TRANS_FLAG_NODEPS)) && (trans->type != PM_TRANS_TYPE_UPGRADE)) { - EVENT(trans, PM_TRANS_EVT_CHECKDEPS_START, NULL, NULL); + /* skip all checks if we are doing this removal as part of an upgrade */ + if(trans->type == PM_TRANS_TYPE_REMOVEUPGRADE) { + return(0); + } + + EVENT(trans, PM_TRANS_EVT_CHECKDEPS_START, NULL, NULL); - _alpm_log(PM_LOG_DEBUG, _("looking for unsatisfied dependencies")); + if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) { + _alpm_log(PM_LOG_DEBUG, "looking for unsatisfied dependencies\n"); lp = _alpm_checkdeps(db, trans->type, trans->packages); if(lp != NULL) { if(trans->flags & PM_TRANS_FLAG_CASCADE) { @@ -110,10 +113,13 @@ int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data) pmdepmissing_t *miss = (pmdepmissing_t *)i->data; pmpkg_t *info = _alpm_db_scan(db, miss->target); if(info) { - _alpm_log(PM_LOG_DEBUG, _("pulling %s in the targets list"), alpm_pkg_get_name(info)); - trans->packages = alpm_list_add(trans->packages, info); + if(!_alpm_pkg_find(alpm_pkg_get_name(info), trans->packages)) { + _alpm_log(PM_LOG_DEBUG, "pulling %s in the targets list\n", + alpm_pkg_get_name(info)); + trans->packages = alpm_list_add(trans->packages, info); + } } else { - _alpm_log(PM_LOG_ERROR, _("could not find %s in database -- skipping"), + _alpm_log(PM_LOG_ERROR, _("could not find %s in database -- skipping\n"), miss->depend.name); } } @@ -129,21 +135,21 @@ int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data) RET_ERR(PM_ERR_UNSATISFIED_DEPS, -1); } } + } - if(trans->flags & PM_TRANS_FLAG_RECURSE) { - _alpm_log(PM_LOG_DEBUG, _("finding removable dependencies")); - trans->packages = _alpm_removedeps(db, trans->packages); - } + if(trans->flags & PM_TRANS_FLAG_RECURSE) { + _alpm_log(PM_LOG_DEBUG, "finding removable dependencies\n"); + _alpm_recursedeps(db, &trans->packages, 0); + } - /* re-order w.r.t. dependencies */ - _alpm_log(PM_LOG_DEBUG, _("sorting by dependencies")); - lp = _alpm_sortbydeps(trans->packages, PM_TRANS_TYPE_REMOVE); - /* free the old alltargs */ - alpm_list_free(trans->packages); - trans->packages = lp; + /* re-order w.r.t. dependencies */ + _alpm_log(PM_LOG_DEBUG, "sorting by dependencies\n"); + lp = _alpm_sortbydeps(trans->packages, PM_TRANS_TYPE_REMOVE); + /* free the old alltargs */ + alpm_list_free(trans->packages); + trans->packages = lp; - EVENT(trans, PM_TRANS_EVT_CHECKDEPS_DONE, NULL, NULL); - } + EVENT(trans, PM_TRANS_EVT_CHECKDEPS_DONE, NULL, NULL); return(0); } @@ -161,10 +167,10 @@ static int can_remove_file(pmtrans_t *trans, const char *path) /* If we fail write permissions due to a read-only filesystem, abort. * Assume all other possible failures are covered somewhere else */ if(access(file, W_OK) == -1) { - if(errno != EACCES && access(file, F_OK) == 0) { + if(errno != EACCES && errno != ETXTBSY && access(file, F_OK) == 0) { /* only return failure if the file ACTUALLY exists and we can't write to * it - ignore "chmod -w" simple permission failures */ - _alpm_log(PM_LOG_ERROR, _("cannot remove file '%s': %s"), + _alpm_log(PM_LOG_ERROR, _("cannot remove file '%s': %s\n"), file, strerror(errno)); return(0); } @@ -201,57 +207,57 @@ static void unlink_file(pmpkg_t *info, alpm_list_t *lp, alpm_list_t *targ, snprintf(file, PATH_MAX, "%s%s", handle->root, (char *)lp->data); - if(trans->type == PM_TRANS_TYPE_UPGRADE) { + if(trans->type == PM_TRANS_TYPE_REMOVEUPGRADE) { /* check noupgrade */ if(alpm_list_find_str(handle->noupgrade, lp->data)) { - _alpm_log(PM_LOG_DEBUG, _("Skipping removal of '%s' due to NoUpgrade"), file); + _alpm_log(PM_LOG_DEBUG, "Skipping removal of '%s' due to NoUpgrade\n", file); return; } } if(lstat(file, &buf)) { - _alpm_log(PM_LOG_DEBUG, _("file %s does not exist"), file); + _alpm_log(PM_LOG_DEBUG, "file %s does not exist\n", file); return; } if(S_ISDIR(buf.st_mode)) { if(rmdir(file)) { /* this is okay, other pakcages are probably using it (like /usr) */ - _alpm_log(PM_LOG_DEBUG, _("keeping directory %s"), file); + _alpm_log(PM_LOG_DEBUG, "keeping directory %s\n", file); } else { - _alpm_log(PM_LOG_DEBUG, _("removing directory %s"), file); + _alpm_log(PM_LOG_DEBUG, "removing directory %s\n", file); } } else { /* check the remove skip list before removing the file. * see the big comment block in db_find_conflicts() for an * explanation. */ if(alpm_list_find_str(trans->skip_remove, file)) { - _alpm_log(PM_LOG_DEBUG, _("%s is in trans->skip_remove, skipping removal"), file); + _alpm_log(PM_LOG_DEBUG, "%s is in trans->skip_remove, skipping removal\n", file); return; } else if(needbackup) { /* if the file is flagged, back it up to .pacsave */ - if(!(trans->type == PM_TRANS_TYPE_UPGRADE)) { + if(!(trans->type == PM_TRANS_TYPE_REMOVEUPGRADE)) { /* if it was an upgrade, the file would be left alone because * pacman_add() would handle it */ if(!(trans->flags & PM_TRANS_FLAG_NOSAVE)) { char newpath[PATH_MAX]; snprintf(newpath, PATH_MAX, "%s.pacsave", file); rename(file, newpath); - _alpm_log(PM_LOG_WARNING, _("%s saved as %s"), file, newpath); + _alpm_log(PM_LOG_WARNING, _("%s saved as %s\n"), file, newpath); return; } else { - _alpm_log(PM_LOG_DEBUG, _("transaction is set to NOSAVE, not backing up '%s'"), file); + _alpm_log(PM_LOG_DEBUG, "transaction is set to NOSAVE, not backing up '%s'\n", file); } } } - _alpm_log(PM_LOG_DEBUG, _("unlinking %s"), file); + _alpm_log(PM_LOG_DEBUG, "unlinking %s\n", file); int list_count = alpm_list_count(trans->packages); /* this way we don't have to call alpm_list_count twice during PROGRESS */ PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, info->name, (double)(percent * 100), list_count, (list_count - alpm_list_count(targ) + 1)); ++(*position); if(unlink(file) == -1) { - _alpm_log(PM_LOG_ERROR, _("cannot remove file %s: %s"), lp->data, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("cannot remove file %s: %s\n"), lp->data, strerror(errno)); } } } @@ -274,7 +280,7 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) const char *pkgname = NULL; if(handle->trans->state == STATE_INTERRUPTED) { - break; + return(0); } /* get the name now so we can use it after package is removed */ @@ -282,15 +288,15 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) snprintf(scriptlet, PATH_MAX, "%s%s-%s/install", db->path, pkgname, alpm_pkg_get_version(info)); - if(trans->type != PM_TRANS_TYPE_UPGRADE) { + if(trans->type != PM_TRANS_TYPE_REMOVEUPGRADE) { EVENT(trans, PM_TRANS_EVT_REMOVE_START, info, NULL); - _alpm_log(PM_LOG_DEBUG, _("removing package %s-%s"), + _alpm_log(PM_LOG_DEBUG, "removing package %s-%s\n", pkgname, alpm_pkg_get_version(info)); /* run the pre-remove scriptlet if it exists */ if(alpm_pkg_has_scriptlet(info) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) { _alpm_runscriptlet(handle->root, scriptlet, "pre_remove", - alpm_pkg_get_version(info), NULL, trans); + alpm_pkg_get_version(info), NULL); } } @@ -299,14 +305,14 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) if(!(trans->flags & PM_TRANS_FLAG_DBONLY)) { for(lp = files; lp; lp = lp->next) { if(!can_remove_file(trans, lp->data)) { - _alpm_log(PM_LOG_DEBUG, _("not removing package '%s', can't remove all files"), + _alpm_log(PM_LOG_DEBUG, "not removing package '%s', can't remove all files\n", pkgname); RET_ERR(PM_ERR_PKG_CANT_REMOVE, -1); } } int filenum = alpm_list_count(files); - _alpm_log(PM_LOG_DEBUG, _("removing %d files"), filenum); + _alpm_log(PM_LOG_DEBUG, "removing %d files\n", filenum); /* iterate through the list backwards, unlinking files */ for(lp = alpm_list_last(files); lp; lp = lp->prev) { @@ -319,11 +325,11 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) alpm_list_count(trans->packages), (alpm_list_count(trans->packages) - alpm_list_count(targ) +1)); - if(trans->type != PM_TRANS_TYPE_UPGRADE) { + if(trans->type != PM_TRANS_TYPE_REMOVEUPGRADE) { /* run the post-remove script if it exists */ if(alpm_pkg_has_scriptlet(info) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) { _alpm_runscriptlet(handle->root, scriptlet, "post_remove", - alpm_pkg_get_version(info), NULL, trans); + alpm_pkg_get_version(info), NULL); } } @@ -331,15 +337,15 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) infodup = _alpm_pkg_dup(info); /* remove the package from the database */ - _alpm_log(PM_LOG_DEBUG, _("updating database")); - _alpm_log(PM_LOG_DEBUG, _("removing database entry '%s'"), pkgname); + _alpm_log(PM_LOG_DEBUG, "updating database\n"); + _alpm_log(PM_LOG_DEBUG, "removing database entry '%s'\n", pkgname); if(_alpm_db_remove(db, info) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not remove database entry %s-%s"), + _alpm_log(PM_LOG_ERROR, _("could not remove database entry %s-%s\n"), pkgname, alpm_pkg_get_version(info)); } /* remove the package from the cache */ if(_alpm_db_remove_pkgfromcache(db, info) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not remove entry '%s' from cache"), + _alpm_log(PM_LOG_ERROR, _("could not remove entry '%s' from cache\n"), pkgname); } @@ -348,14 +354,14 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) _alpm_pkg_free(infodup); /* call a done event if this isn't an upgrade */ - if(trans->type != PM_TRANS_TYPE_UPGRADE) { + if(trans->type != PM_TRANS_TYPE_REMOVEUPGRADE) { EVENT(trans, PM_TRANS_EVT_REMOVE_DONE, info, NULL); } } /* run ldconfig if it exists */ - if((trans->type != PM_TRANS_TYPE_UPGRADE) && (handle->trans->state != STATE_INTERRUPTED)) { - _alpm_log(PM_LOG_DEBUG, _("running \"ldconfig -r %s\""), handle->root); + if(trans->type != PM_TRANS_TYPE_REMOVEUPGRADE) { + _alpm_log(PM_LOG_DEBUG, "running \"ldconfig -r %s\"\n", handle->root); _alpm_ldconfig(handle->root); } diff --git a/lib/libalpm/server.c b/lib/libalpm/server.c index 5b41a808..5fdc41a6 100644 --- a/lib/libalpm/server.c +++ b/lib/libalpm/server.c @@ -41,20 +41,6 @@ #include "handle.h" #include "package.h" -/** Fetch a remote pkg. - * @param url - * @return the downloaded filename on success, NULL on error - * @addtogroup alpm_misc - */ -char SYMEXPORT *alpm_fetch_pkgurl(const char *url) -{ - ALPM_LOG_FUNC; - - ASSERT(strstr(url, "://"), return(NULL)); - - return(_alpm_fetch_pkgurl(url)); -} - pmserver_t *_alpm_server_new(const char *url) { struct url *u; @@ -64,18 +50,18 @@ pmserver_t *_alpm_server_new(const char *url) server = malloc(sizeof(pmserver_t)); if(server == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmserver_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmserver_t)); RET_ERR(PM_ERR_MEMORY, NULL); } memset(server, 0, sizeof(pmserver_t)); u = downloadParseURL(url); if(!u) { - _alpm_log(PM_LOG_ERROR, _("url '%s' is invalid, ignoring"), url); + _alpm_log(PM_LOG_ERROR, _("url '%s' is invalid, ignoring\n"), url); RET_ERR(PM_ERR_SERVER_BAD_URL, NULL); } if(strlen(u->scheme) == 0) { - _alpm_log(PM_LOG_WARNING, _("url scheme not specified, assuming http")); + _alpm_log(PM_LOG_WARNING, _("url scheme not specified, assuming http\n")); strcpy(u->scheme, "http"); } @@ -117,7 +103,8 @@ static char *strip_filename(pmserver_t *server) p = strrchr(server->s_url->doc, '/'); if(p && *(++p)) { fname = strdup(p); - _alpm_log(PM_LOG_DEBUG, _("stripping '%s' from '%s'"), fname, server->s_url->doc); + _alpm_log(PM_LOG_DEBUG, "stripping '%s' from '%s'\n", + fname, server->s_url->doc); *p = 0; } @@ -146,7 +133,7 @@ static struct url *url_for_file(pmserver_t *server, const char *filename) doc, server->s_url->user, server->s_url->pwd); - free(doc); + FREE(doc); return(ret); } @@ -156,9 +143,9 @@ static struct url *url_for_file(pmserver_t *server, const char *filename) * * RETURN: 0 for successful download, 1 on error */ -int _alpm_downloadfiles(alpm_list_t *servers, const char *localpath, alpm_list_t *files) +int _alpm_downloadfiles(alpm_list_t *servers, const char *localpath, + alpm_list_t *files) { - ALPM_LOG_FUNC; return(_alpm_downloadfiles_forreal(servers, localpath, files, NULL, NULL)); } @@ -216,7 +203,7 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, /* just use the raw filename if we can't find crap */ strncpy(pkgname, fn, PKG_NAME_LEN); } - _alpm_log(PM_LOG_DEBUG, _("using '%s' for download progress"), pkgname); + _alpm_log(PM_LOG_DEBUG, "using '%s' for download progress\n", pkgname); snprintf(realfile, PATH_MAX, "%s%s", localpath, fn); snprintf(output, PATH_MAX, "%s%s.part", localpath, fn); @@ -232,7 +219,7 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, int chk_resume = 0; if(stat(output, &st) == 0 && st.st_size > 0) { - _alpm_log(PM_LOG_DEBUG, _("existing file found, using it")); + _alpm_log(PM_LOG_DEBUG, "existing file found, using it\n"); fileurl->offset = (off_t)st.st_size; dltotal_bytes = st.st_size; localf = fopen(output, "a"); @@ -251,22 +238,23 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, dlf = downloadXGet(fileurl, &ust, (handle->nopassiveftp ? "" : "p")); if(downloadLastErrCode != 0 || dlf == NULL) { - _alpm_log(PM_LOG_ERROR, _("failed retrieving file '%s' from %s : %s"), + _alpm_log(PM_LOG_ERROR, _("failed retrieving file '%s' from %s : %s\n"), fn, fileurl->host, downloadLastErrString); if(localf != NULL) { fclose(localf); } /* try the next server */ + downloadFreeURL(fileurl); continue; } else { - _alpm_log(PM_LOG_DEBUG, _("connected to %s successfully"), fileurl->host); + _alpm_log(PM_LOG_DEBUG, "connected to %s successfully\n", fileurl->host); } if(ust.mtime && mtime1) { char strtime[15]; _alpm_time2string(ust.mtime, strtime); if(strcmp(mtime1, strtime) == 0) { - _alpm_log(PM_LOG_DEBUG, _("mtimes are identical, skipping %s"), fn); + _alpm_log(PM_LOG_DEBUG, "mtimes are identical, skipping %s\n", fn); complete = alpm_list_add(complete, fn); if(localf != NULL) { fclose(localf); @@ -274,6 +262,7 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, if(dlf != NULL) { fclose(dlf); } + downloadFreeURL(fileurl); return(1); } } @@ -283,7 +272,7 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, } if(chk_resume && fileurl->offset == 0) { - _alpm_log(PM_LOG_WARNING, _("cannot resume download, starting over")); + _alpm_log(PM_LOG_WARNING, _("cannot resume download, starting over\n")); if(localf != NULL) { fclose(localf); localf = NULL; @@ -296,11 +285,12 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, dltotal_bytes = 0; localf = fopen(output, "w"); if(localf == NULL) { /* still null? */ - _alpm_log(PM_LOG_ERROR, _("cannot write to file '%s'"), output); + _alpm_log(PM_LOG_ERROR, _("cannot write to file '%s'\n"), output); if(dlf != NULL) { fclose(dlf); } - return -1; + downloadFreeURL(fileurl); + return(-1); } } @@ -311,10 +301,11 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, char buffer[PM_DLBUF_LEN]; while((nread = fread(buffer, 1, PM_DLBUF_LEN, dlf)) > 0) { if(ferror(dlf)) { - _alpm_log(PM_LOG_ERROR, _("error downloading '%s': %s"), + _alpm_log(PM_LOG_ERROR, _("error downloading '%s': %s\n"), fn, downloadLastErrString); fclose(localf); fclose(dlf); + downloadFreeURL(fileurl); return(-1); } @@ -322,10 +313,11 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, while(nwritten < nread) { nwritten += fwrite(buffer, 1, (nread - nwritten), localf); if(ferror(localf)) { - _alpm_log(PM_LOG_ERROR, _("error writing to file '%s': %s"), + _alpm_log(PM_LOG_ERROR, _("error writing to file '%s': %s\n"), realfile, strerror(errno)); fclose(localf); fclose(dlf); + downloadFreeURL(fileurl); return(-1); } } @@ -337,7 +329,7 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, if(handle->dlcb) handle->dlcb(pkgname, dltotal_bytes, ust.size); } - + downloadFreeURL(fileurl); fclose(localf); fclose(dlf); rename(output, realfile); @@ -352,7 +344,10 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, char cwd[PATH_MAX]; /* build the full download url */ - snprintf(url, PATH_MAX, "%s://%s%s", fileurl->scheme, fileurl->host, fileurl->doc); + snprintf(url, PATH_MAX, "%s://%s%s", fileurl->scheme, + fileurl->host, fileurl->doc); + /* we don't need this anymore */ + downloadFreeURL(fileurl); /* replace all occurrences of %o with fn.part */ strncpy(origCmd, handle->xfercommand, sizeof(origCmd)); @@ -379,18 +374,18 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, /* cwd to the download directory */ getcwd(cwd, PATH_MAX); if(chdir(localpath)) { - _alpm_log(PM_LOG_WARNING, _("could not chdir to %s"), localpath); + _alpm_log(PM_LOG_WARNING, _("could not chdir to %s\n"), localpath); return(PM_ERR_CONNECT_FAILED); } /* execute the parsed command via /bin/sh -c */ - _alpm_log(PM_LOG_DEBUG, _("running command: %s"), parsedCmd); + _alpm_log(PM_LOG_DEBUG, "running command: %s\n", parsedCmd); ret = system(parsedCmd); if(ret == -1) { - _alpm_log(PM_LOG_WARNING, _("running XferCommand: fork failed!")); + _alpm_log(PM_LOG_WARNING, _("running XferCommand: fork failed!\n")); return(PM_ERR_FORK_FAILED); } else if(ret != 0) { /* download failed */ - _alpm_log(PM_LOG_DEBUG, _("XferCommand command returned non-zero status code (%d)"), ret); + _alpm_log(PM_LOG_DEBUG, "XferCommand command returned non-zero status code (%d)\n", ret); } else { /* download was successful */ complete = alpm_list_add(complete, fn); @@ -400,26 +395,36 @@ int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, } chdir(cwd); } - downloadFreeURL(fileurl); } if(alpm_list_count(complete) == alpm_list_count(files)) { done = 1; } + alpm_list_free(complete); } return(done ? 0 : -1); } -char *_alpm_fetch_pkgurl(const char *target) +/** Fetch a remote pkg. + * @param url URL of the package to download + * @return the downloaded filepath on success, NULL on error + * @addtogroup alpm_misc + */ +char SYMEXPORT *alpm_fetch_pkgurl(const char *url) { pmserver_t *server; - char *filename; - struct stat st; + char *filename, *filepath; + const char *cachedir; ALPM_LOG_FUNC; - server = _alpm_server_new(target); + if(strstr(url, "://") == NULL) { + _alpm_log(PM_LOG_DEBUG, "Invalid URL passed to alpm_fetch_pkgurl\n"); + return(NULL); + } + + server = _alpm_server_new(url); if(!server) { return(NULL); } @@ -427,30 +432,30 @@ char *_alpm_fetch_pkgurl(const char *target) /* strip path information from the filename */ filename = strip_filename(server); if(!filename) { - _alpm_log(PM_LOG_ERROR, _("URL does not contain a file for download")); + _alpm_log(PM_LOG_ERROR, _("URL does not contain a file for download\n")); return(NULL); } - /* do not download the file if it exists in the current dir */ - if(stat(filename, &st) == 0) { - _alpm_log(PM_LOG_DEBUG, _("%s has already been downloaded"), filename); - } else { - alpm_list_t *servers = alpm_list_add(NULL, server); - alpm_list_t *files = alpm_list_add(NULL, filename); + /* find a valid cache dir to download to */ + cachedir = _alpm_filecache_setup(); - if(_alpm_downloadfiles(servers, "./", files)) { - _alpm_log(PM_LOG_WARNING, _("failed to download %s"), target); - return(NULL); - } - _alpm_log(PM_LOG_DEBUG, _("successfully downloaded %s"), filename); - alpm_list_free(files); - alpm_list_free(servers); - } + /* TODO this seems like needless complexity just to download one file */ + alpm_list_t *servers = alpm_list_add(NULL, server); + alpm_list_t *files = alpm_list_add(NULL, filename); + /* download the file */ + if(_alpm_downloadfiles(servers, cachedir, files)) { + _alpm_log(PM_LOG_WARNING, _("failed to download %s\n"), url); + return(NULL); + } + _alpm_log(PM_LOG_DEBUG, "successfully downloaded %s\n", filename); + alpm_list_free(files); + alpm_list_free(servers); _alpm_server_free(server); - /* return the target with the raw filename, no URL */ - return(filename); + /* we should be able to find the file the second time around */ + filepath = _alpm_filecache_find(filename); + return(filepath); } /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/server.h b/lib/libalpm/server.h index 76758d21..462d9b24 100644 --- a/lib/libalpm/server.h +++ b/lib/libalpm/server.h @@ -41,8 +41,6 @@ int _alpm_downloadfiles(alpm_list_t *servers, const char *localpath, alpm_list_t int _alpm_downloadfiles_forreal(alpm_list_t *servers, const char *localpath, alpm_list_t *files, const char *mtime1, char *mtime2); -char *_alpm_fetch_pkgurl(const char *target); - #endif /* _ALPM_SERVER_H */ /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/sha1.c b/lib/libalpm/sha1.c deleted file mode 100644 index 1adf067b..00000000 --- a/lib/libalpm/sha1.c +++ /dev/null @@ -1,431 +0,0 @@ -/* sha.c - Functions to compute SHA1 message digest of files or - memory blocks according to the NIST specification FIPS-180-1. - - Copyright (C) 2000, 2001, 2003 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, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Scott G. Miller - Credits: - Robert Klep <robert@ilse.nl> -- Expansion function fix -*/ - -#include "config.h" - -#include <sys/types.h> -#include <stdlib.h> -#include <string.h> - -/* libalpm */ -#include "sha1.h" -#include "alpm.h" -#include "log.h" -#include "util.h" - -/* - Not-swap is a macro that does an endian swap on architectures that are - big-endian, as SHA needs some data in a little-endian format -*/ - -#ifdef WORDS_BIGENDIAN -# define NOTSWAP(n) (n) -# define SWAP(n) \ - (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) -#else -# define NOTSWAP(n) \ - (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) -# define SWAP(n) (n) -#endif - -#define BLOCKSIZE 4096 -/* Ensure that BLOCKSIZE is a multiple of 64. */ -#if BLOCKSIZE % 64 != 0 -/* FIXME-someday (soon?): use #error instead of this kludge. */ -"invalid BLOCKSIZE" -#endif - -/* This array contains the bytes used to pad the buffer to the next - 64-byte boundary. (RFC 1321, 3.1: Step 1) */ -static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; - - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -static void sha_process_block (const void *buffer, size_t len, - struct sha_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -static void sha_process_bytes (const void *buffer, size_t len, - struct sha_ctx *ctx); - -/* Put result from CTX in first 20 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -static void *sha_read_ctx (const struct sha_ctx *ctx, void *resbuf); - -/* - Takes a pointer to a 160 bit block of data (five 32 bit ints) and - intializes it to the start constants of the SHA1 algorithm. This - must be called before using hash in the call to sha_hash -*/ -static void -sha_init_ctx (struct sha_ctx *ctx) -{ - ctx->A = 0x67452301; - ctx->B = 0xefcdab89; - ctx->C = 0x98badcfe; - ctx->D = 0x10325476; - ctx->E = 0xc3d2e1f0; - - ctx->total[0] = ctx->total[1] = 0; - ctx->buflen = 0; -} - -/* Put result from CTX in first 20 bytes following RESBUF. The result - must be in little endian byte order. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -static void * -sha_read_ctx (const struct sha_ctx *ctx, void *resbuf) -{ - ((sha_uint32 *) resbuf)[0] = NOTSWAP (ctx->A); - ((sha_uint32 *) resbuf)[1] = NOTSWAP (ctx->B); - ((sha_uint32 *) resbuf)[2] = NOTSWAP (ctx->C); - ((sha_uint32 *) resbuf)[3] = NOTSWAP (ctx->D); - ((sha_uint32 *) resbuf)[4] = NOTSWAP (ctx->E); - - return resbuf; -} - -/* Process the remaining bytes in the internal buffer and the usual - prolog according to the standard and write the result to RESBUF. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -static void * -sha_finish_ctx (struct sha_ctx *ctx, void *resbuf) -{ - /* Take yet unprocessed bytes into account. */ - sha_uint32 bytes = ctx->buflen; - size_t pad; - - /* Now count remaining bytes. */ - ctx->total[0] += bytes; - if (ctx->total[0] < bytes) - ++ctx->total[1]; - - pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes; - memcpy (&ctx->buffer[bytes], fillbuf, pad); - - /* Put the 64-bit file length in *bits* at the end of the buffer. */ - *(sha_uint32 *) &ctx->buffer[bytes + pad + 4] = NOTSWAP (ctx->total[0] << 3); - *(sha_uint32 *) &ctx->buffer[bytes + pad] = NOTSWAP ((ctx->total[1] << 3) | - (ctx->total[0] >> 29)); - - /* Process last bytes. */ - sha_process_block (ctx->buffer, bytes + pad + 8, ctx); - - return sha_read_ctx (ctx, resbuf); -} - -static void -sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx) -{ - /* When we already have some bits in our internal buffer concatenate - both inputs first. */ - if (ctx->buflen != 0) - { - size_t left_over = ctx->buflen; - size_t add = 128 - left_over > len ? len : 128 - left_over; - - memcpy (&ctx->buffer[left_over], buffer, add); - ctx->buflen += add; - - if (ctx->buflen > 64) - { - sha_process_block (ctx->buffer, ctx->buflen & ~63, ctx); - - ctx->buflen &= 63; - /* The regions in the following copy operation cannot overlap. */ - memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63], - ctx->buflen); - } - - buffer = (const char *) buffer + add; - len -= add; - } - - /* Process available complete blocks. */ - if (len >= 64) - { -#if !_STRING_ARCH_unaligned -/* To check alignment gcc has an appropriate operator. Other - compilers don't. */ -# if __GNUC__ >= 2 -# define UNALIGNED_P(p) (((sha_uintptr) p) % __alignof__ (sha_uint32) != 0) -# else -# define UNALIGNED_P(p) (((sha_uintptr) p) % sizeof (sha_uint32) != 0) -# endif - if (UNALIGNED_P (buffer)) - while (len > 64) - { - sha_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); - buffer = (const char *) buffer + 64; - len -= 64; - } - else -#endif - { - sha_process_block (buffer, len & ~63, ctx); - buffer = (const char *) buffer + (len & ~63); - len &= 63; - } - } - - /* Move remaining bytes in internal buffer. */ - if (len > 0) - { - size_t left_over = ctx->buflen; - - memcpy (&ctx->buffer[left_over], buffer, len); - left_over += len; - if (left_over >= 64) - { - sha_process_block (ctx->buffer, 64, ctx); - left_over -= 64; - memcpy (ctx->buffer, &ctx->buffer[64], left_over); - } - ctx->buflen = left_over; - } -} - -/* --- Code below is the primary difference between md5.c and sha.c --- */ - -/* SHA1 round constants */ -#define K1 0x5a827999L -#define K2 0x6ed9eba1L -#define K3 0x8f1bbcdcL -#define K4 0xca62c1d6L - -/* Round functions. Note that F2 is the same as F4. */ -#define F1(B,C,D) ( D ^ ( B & ( C ^ D ) ) ) -#define F2(B,C,D) (B ^ C ^ D) -#define F3(B,C,D) ( ( B & C ) | ( D & ( B | C ) ) ) -#define F4(B,C,D) (B ^ C ^ D) - -/* Process LEN bytes of BUFFER, accumulating context into CTX. - It is assumed that LEN % 64 == 0. - Most of this code comes from GnuPG's cipher/sha1.c. */ - -static void -sha_process_block (const void *buffer, size_t len, struct sha_ctx *ctx) -{ - const sha_uint32 *words = buffer; - size_t nwords = len / sizeof (sha_uint32); - const sha_uint32 *endp = words + nwords; - sha_uint32 x[16]; - sha_uint32 a = ctx->A; - sha_uint32 b = ctx->B; - sha_uint32 c = ctx->C; - sha_uint32 d = ctx->D; - sha_uint32 e = ctx->E; - - /* First increment the byte count. RFC 1321 specifies the possible - length of the file up to 2^64 bits. Here we only compute the - number of bytes. Do a double word increment. */ - ctx->total[0] += len; - if (ctx->total[0] < len) - ++ctx->total[1]; - -#define M(I) ( tm = x[I&0x0f] ^ x[(I-14)&0x0f] \ - ^ x[(I-8)&0x0f] ^ x[(I-3)&0x0f] \ - , (x[I&0x0f] = rol(tm, 1)) ) - -#define R(A,B,C,D,E,F,K,M) do { E += rol( A, 5 ) \ - + F( B, C, D ) \ - + K \ - + M; \ - B = rol( B, 30 ); \ - } while(0) - - while (words < endp) - { - sha_uint32 tm; - int t; - /* FIXME: see sha1.c for a better implementation. */ - for (t = 0; t < 16; t++) - { - x[t] = NOTSWAP (*words); - words++; - } - - R( a, b, c, d, e, F1, K1, x[ 0] ); - R( e, a, b, c, d, F1, K1, x[ 1] ); - R( d, e, a, b, c, F1, K1, x[ 2] ); - R( c, d, e, a, b, F1, K1, x[ 3] ); - R( b, c, d, e, a, F1, K1, x[ 4] ); - R( a, b, c, d, e, F1, K1, x[ 5] ); - R( e, a, b, c, d, F1, K1, x[ 6] ); - R( d, e, a, b, c, F1, K1, x[ 7] ); - R( c, d, e, a, b, F1, K1, x[ 8] ); - R( b, c, d, e, a, F1, K1, x[ 9] ); - R( a, b, c, d, e, F1, K1, x[10] ); - R( e, a, b, c, d, F1, K1, x[11] ); - R( d, e, a, b, c, F1, K1, x[12] ); - R( c, d, e, a, b, F1, K1, x[13] ); - R( b, c, d, e, a, F1, K1, x[14] ); - R( a, b, c, d, e, F1, K1, x[15] ); - R( e, a, b, c, d, F1, K1, M(16) ); - R( d, e, a, b, c, F1, K1, M(17) ); - R( c, d, e, a, b, F1, K1, M(18) ); - R( b, c, d, e, a, F1, K1, M(19) ); - R( a, b, c, d, e, F2, K2, M(20) ); - R( e, a, b, c, d, F2, K2, M(21) ); - R( d, e, a, b, c, F2, K2, M(22) ); - R( c, d, e, a, b, F2, K2, M(23) ); - R( b, c, d, e, a, F2, K2, M(24) ); - R( a, b, c, d, e, F2, K2, M(25) ); - R( e, a, b, c, d, F2, K2, M(26) ); - R( d, e, a, b, c, F2, K2, M(27) ); - R( c, d, e, a, b, F2, K2, M(28) ); - R( b, c, d, e, a, F2, K2, M(29) ); - R( a, b, c, d, e, F2, K2, M(30) ); - R( e, a, b, c, d, F2, K2, M(31) ); - R( d, e, a, b, c, F2, K2, M(32) ); - R( c, d, e, a, b, F2, K2, M(33) ); - R( b, c, d, e, a, F2, K2, M(34) ); - R( a, b, c, d, e, F2, K2, M(35) ); - R( e, a, b, c, d, F2, K2, M(36) ); - R( d, e, a, b, c, F2, K2, M(37) ); - R( c, d, e, a, b, F2, K2, M(38) ); - R( b, c, d, e, a, F2, K2, M(39) ); - R( a, b, c, d, e, F3, K3, M(40) ); - R( e, a, b, c, d, F3, K3, M(41) ); - R( d, e, a, b, c, F3, K3, M(42) ); - R( c, d, e, a, b, F3, K3, M(43) ); - R( b, c, d, e, a, F3, K3, M(44) ); - R( a, b, c, d, e, F3, K3, M(45) ); - R( e, a, b, c, d, F3, K3, M(46) ); - R( d, e, a, b, c, F3, K3, M(47) ); - R( c, d, e, a, b, F3, K3, M(48) ); - R( b, c, d, e, a, F3, K3, M(49) ); - R( a, b, c, d, e, F3, K3, M(50) ); - R( e, a, b, c, d, F3, K3, M(51) ); - R( d, e, a, b, c, F3, K3, M(52) ); - R( c, d, e, a, b, F3, K3, M(53) ); - R( b, c, d, e, a, F3, K3, M(54) ); - R( a, b, c, d, e, F3, K3, M(55) ); - R( e, a, b, c, d, F3, K3, M(56) ); - R( d, e, a, b, c, F3, K3, M(57) ); - R( c, d, e, a, b, F3, K3, M(58) ); - R( b, c, d, e, a, F3, K3, M(59) ); - R( a, b, c, d, e, F4, K4, M(60) ); - R( e, a, b, c, d, F4, K4, M(61) ); - R( d, e, a, b, c, F4, K4, M(62) ); - R( c, d, e, a, b, F4, K4, M(63) ); - R( b, c, d, e, a, F4, K4, M(64) ); - R( a, b, c, d, e, F4, K4, M(65) ); - R( e, a, b, c, d, F4, K4, M(66) ); - R( d, e, a, b, c, F4, K4, M(67) ); - R( c, d, e, a, b, F4, K4, M(68) ); - R( b, c, d, e, a, F4, K4, M(69) ); - R( a, b, c, d, e, F4, K4, M(70) ); - R( e, a, b, c, d, F4, K4, M(71) ); - R( d, e, a, b, c, F4, K4, M(72) ); - R( c, d, e, a, b, F4, K4, M(73) ); - R( b, c, d, e, a, F4, K4, M(74) ); - R( a, b, c, d, e, F4, K4, M(75) ); - R( e, a, b, c, d, F4, K4, M(76) ); - R( d, e, a, b, c, F4, K4, M(77) ); - R( c, d, e, a, b, F4, K4, M(78) ); - R( b, c, d, e, a, F4, K4, M(79) ); - - a = ctx->A += a; - b = ctx->B += b; - c = ctx->C += c; - d = ctx->D += d; - e = ctx->E += e; - } -} - -/* Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All -rights reserved. - -RSA Data Security, Inc. makes no representations concerning either -the merchantability of this software or the suitability of this -software for any particular purpose. It is provided "as is" -without express or implied warranty of any kind. - -These notices must be retained in any copies of any part of this -documentation and/or software. - */ - -/** Get the sha1 sum of file. - * @param name name of the file - * @return the checksum on success, NULL on error - * @addtogroup alpm_misc - */ -char SYMEXPORT *alpm_get_sha1sum(char *name) -{ - ALPM_LOG_FUNC; - - ASSERT(name != NULL, return(NULL)); - - return(_alpm_SHAFile(name)); -} - -char* _alpm_SHAFile(char *filename) { - FILE *file; - struct sha_ctx context; - int len, i; - char hex[3]; - unsigned char buffer[1024], digest[20]; - char *ret; - - ALPM_LOG_FUNC; - - if((file = fopen(filename, "rb")) == NULL) { - _alpm_log(PM_LOG_ERROR, _("sha1: %s can't be opened\n"), filename); - } else { - sha_init_ctx(&context); - while((len = fread(buffer, 1, 1024, file))) { - sha_process_bytes(buffer, len, &context); - } - sha_finish_ctx(&context, digest); - fclose(file); - - ret = (char*)malloc(41); - ret[0] = '\0'; - for(i = 0; i < 20; i++) { - snprintf(hex, 3, "%02x", digest[i]); - strncat(ret, hex, 2); - } - _alpm_log(PM_LOG_DEBUG, _("sha1(%s) = %s"), filename, ret); - return(ret); - } - - return(NULL); -} - -/* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/sha1.h b/lib/libalpm/sha1.h deleted file mode 100644 index fc0aa230..00000000 --- a/lib/libalpm/sha1.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Declarations of functions and data types used for SHA1 sum - library functions. - Copyright (C) 2000, 2001, 2003 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, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef _ALPM_SHA1_H -#define _ALPM_SHA1_H - -#include <stdio.h> -#include <limits.h> - -#define rol(x,n) ( ((x) << (n)) | ((x) >> (32 -(n))) ) -/* TODO check this comment */ -/* The code below is from md5.h (from coreutils), little modifications */ -#define UINT_MAX_32_BITS 4294967295U - -/* This new ifdef allows splint to not fail on its static code check */ -#ifdef S_SPLINT_S - typedef unsigned int sha_uint32; -#else -#if UINT_MAX == UINT_MAX_32_BITS - typedef unsigned int sha_uint32; -#else -#if USHRT_MAX == UINT_MAX_32_BITS - typedef unsigned short sha_uint32; -#else -#if ULONG_MAX == UINT_MAX_32_BITS - typedef unsigned long sha_uint32; -#else - /* The following line is intended to evoke an error. Using #error is not portable enough. */ -#error "Cannot determine unsigned 32-bit data type" -#endif /* ULONG_MAX */ -#endif /* USHRT_MAX */ -#endif /* UINT_MAX */ -#endif /* S_SPLINT_S */ -/* We have to make a guess about the integer type equivalent in size - to pointers which should always be correct. */ -typedef unsigned long int sha_uintptr; - -/* Structure to save state of computation between the single steps. */ -struct sha_ctx -{ - sha_uint32 A; - sha_uint32 B; - sha_uint32 C; - sha_uint32 D; - sha_uint32 E; - - sha_uint32 total[2]; - sha_uint32 buflen; - char buffer[128]; -}; - - -/* Needed for pacman */ -char *_alpm_SHAFile (char *); - -#endif /* _ALPM_SHA1_H */ - -/* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index d50d6cfa..f21f7d35 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -45,11 +45,8 @@ #include "provide.h" #include "trans.h" #include "util.h" -#include "versioncmp.h" #include "handle.h" #include "alpm.h" -#include "md5.h" -#include "sha1.h" #include "server.h" pmsyncpkg_t *_alpm_sync_new(int type, pmpkg_t *spkg, void *data) @@ -59,7 +56,7 @@ pmsyncpkg_t *_alpm_sync_new(int type, pmpkg_t *spkg, void *data) ALPM_LOG_FUNC; if((sync = malloc(sizeof(pmsyncpkg_t))) == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmsyncpkg_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmsyncpkg_t)); return(NULL); } @@ -104,7 +101,7 @@ static int find_replacements(pmtrans_t *trans, pmdb_t *db_local, ALPM_LOG_FUNC; /* check for "recommended" package replacements */ - _alpm_log(PM_LOG_DEBUG, _("checking for package replacements")); + _alpm_log(PM_LOG_DEBUG, "checking for package replacements\n"); for(i = dbs_sync; i; i = i->next) { pmdb_t *db = i->data; @@ -120,11 +117,12 @@ static int find_replacements(pmtrans_t *trans, pmdb_t *db_local, continue; } - _alpm_log(PM_LOG_DEBUG, _("checking replacement '%s' for package '%s'"), replacement, spkg->name); + _alpm_log(PM_LOG_DEBUG, "checking replacement '%s' for package '%s'\n", + replacement, spkg->name); /* ignore if EITHER the local or replacement package are to be ignored */ if(alpm_list_find_str(handle->ignorepkg, spkg->name) || alpm_list_find_str(handle->ignorepkg, lpkg->name)) { - _alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (to be replaced by %s-%s)"), + _alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (to be replaced by %s-%s)\n"), alpm_pkg_get_name(lpkg), alpm_pkg_get_version(lpkg), alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg)); } else { @@ -159,7 +157,7 @@ static int find_replacements(pmtrans_t *trans, pmdb_t *db_local, sync->data = alpm_list_add(NULL, dummy); trans->packages = alpm_list_add(trans->packages, sync); } - _alpm_log(PM_LOG_DEBUG, _("%s-%s elected for upgrade (to be replaced by %s-%s)"), + _alpm_log(PM_LOG_DEBUG, "%s-%s elected for upgrade (to be replaced by %s-%s)\n", alpm_pkg_get_name(lpkg), alpm_pkg_get_version(lpkg), alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg)); } @@ -182,7 +180,7 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s /* check for "recommended" package replacements */ if(find_replacements(trans, db_local, dbs_sync) == 0) { /* match installed packages with the sync dbs and compare versions */ - _alpm_log(PM_LOG_DEBUG, _("checking for package upgrades")); + _alpm_log(PM_LOG_DEBUG, "checking for package upgrades\n"); for(i = _alpm_db_get_pkgcache(db_local); i; i = i->next) { int replace=0; pmpkg_t *local = i->data; @@ -193,7 +191,8 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s spkg = _alpm_db_get_pkgfromcache(j->data, alpm_pkg_get_name(local)); } if(spkg == NULL) { - _alpm_log(PM_LOG_DEBUG, _("'%s' not found in sync db -- skipping"), alpm_pkg_get_name(local)); + _alpm_log(PM_LOG_DEBUG, "'%s' not found in sync db -- skipping\n", + alpm_pkg_get_name(local)); continue; } @@ -207,14 +206,14 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s } } if(replace) { - _alpm_log(PM_LOG_DEBUG, _("'%s' is already elected for removal -- skipping"), + _alpm_log(PM_LOG_DEBUG, "'%s' is already elected for removal -- skipping\n", alpm_pkg_get_name(local)); continue; } /* compare versions and see if we need to upgrade */ if(alpm_pkg_compare_versions(local, spkg)) { - _alpm_log(PM_LOG_DEBUG, _("%s-%s elected for upgrade (%s => %s)"), + _alpm_log(PM_LOG_DEBUG, "%s-%s elected for upgrade (%s => %s)\n", alpm_pkg_get_name(local), alpm_pkg_get_version(local), alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg)); if(!_alpm_sync_find(trans->packages, alpm_pkg_get_name(spkg))) { @@ -269,7 +268,7 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy if(targ) { *targ = '\0'; targ++; - _alpm_log(PM_LOG_DEBUG, _("searching for target in repo '%s'"), targ); + _alpm_log(PM_LOG_DEBUG, "searching for target in repo '%s'\n", targ); for(j = dbs_sync; j && !spkg; j = j->next) { pmdb_t *db = j->data; if(strcmp(db->treename, targline) == 0) { @@ -277,19 +276,19 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy spkg = _alpm_db_get_pkgfromcache(db, targ); if(spkg == NULL) { /* Search provides */ - _alpm_log(PM_LOG_DEBUG, _("target '%s' not found -- looking for provisions"), targ); + _alpm_log(PM_LOG_DEBUG, "target '%s' not found -- looking for provisions\n", targ); alpm_list_t *p = _alpm_db_whatprovides(db, targ); if(!p) { RET_ERR(PM_ERR_PKG_NOT_FOUND, -1); } - _alpm_log(PM_LOG_DEBUG, _("found '%s' as a provision for '%s'"), p->data, targ); + _alpm_log(PM_LOG_DEBUG, "found '%s' as a provision for '%s'\n", p->data, targ); spkg = _alpm_db_get_pkgfromcache(db, p->data); alpm_list_free(p); } } } if(!repo_found) { - _alpm_log(PM_LOG_ERROR, _("repository '%s' not found"), targline); + _alpm_log(PM_LOG_ERROR, _("repository '%s' not found\n"), targline); RET_ERR(PM_ERR_PKG_REPO_NOT_FOUND, -1); } } else { @@ -300,12 +299,12 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy } if(spkg == NULL) { /* Search provides */ - _alpm_log(PM_LOG_DEBUG, _("target '%s' not found -- looking for provisions"), targ); + _alpm_log(PM_LOG_DEBUG, "target '%s' not found -- looking for provisions\n", targ); for(j = dbs_sync; j && !spkg; j = j->next) { pmdb_t *db = j->data; alpm_list_t *p = _alpm_db_whatprovides(db, targ); if(p) { - _alpm_log(PM_LOG_DEBUG, _("found '%s' as a provision for '%s'"), p->data, targ); + _alpm_log(PM_LOG_DEBUG, "found '%s' as a provision for '%s'\n", p->data, targ); spkg = _alpm_db_get_pkgfromcache(db, p->data); alpm_list_free(p); } @@ -330,7 +329,7 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy } else if(!(trans->flags & PM_TRANS_FLAG_PRINTURIS)) { QUESTION(trans, PM_TRANS_CONV_LOCAL_UPTODATE, local, NULL, NULL, &resp); if(!resp) { - _alpm_log(PM_LOG_WARNING, _("%s-%s is up to date -- skipping"), + _alpm_log(PM_LOG_WARNING, _("%s-%s is up to date -- skipping\n"), alpm_pkg_get_name(local), alpm_pkg_get_version(local)); return(0); } @@ -353,7 +352,7 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy _alpm_pkg_free(dummy); RET_ERR(PM_ERR_MEMORY, -1); } - _alpm_log(PM_LOG_DEBUG, _("adding target '%s' to the transaction set"), + _alpm_log(PM_LOG_DEBUG, "adding target '%s' to the transaction set\n", alpm_pkg_get_name(spkg)); trans->packages = alpm_list_add(trans->packages, sync); } @@ -379,7 +378,6 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync { alpm_list_t *deps = NULL; alpm_list_t *list = NULL; /* allow checkdeps usage with trans->packages */ - alpm_list_t *trail = NULL; /* breadcrumb list to avoid running in circles */ alpm_list_t *i, *j; int ret = 0; @@ -392,25 +390,31 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync *data = NULL; } - for(i = trans->packages; i; i = i->next) { - pmsyncpkg_t *sync = i->data; - list = alpm_list_add(list, sync->pkg); + if(!(trans->flags & PM_TRANS_FLAG_DEPENDSONLY)) { + for(i = trans->packages; i; i = i->next) { + pmsyncpkg_t *sync = i->data; + list = alpm_list_add(list, sync->pkg); + } } if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) { /* Resolve targets dependencies */ EVENT(trans, PM_TRANS_EVT_RESOLVEDEPS_START, NULL, NULL); - _alpm_log(PM_LOG_DEBUG, _("resolving target's dependencies")); + _alpm_log(PM_LOG_DEBUG, "resolving target's dependencies\n"); for(i = trans->packages; i; i = i->next) { pmpkg_t *spkg = ((pmsyncpkg_t *)i->data)->pkg; - if(_alpm_resolvedeps(db_local, dbs_sync, spkg, list, - trail, trans, data) == -1) { + if(_alpm_resolvedeps(db_local, dbs_sync, spkg, &list, + trans, data) == -1) { /* pm_errno is set by resolvedeps */ ret = -1; goto cleanup; } } + if((trans->flags & PM_TRANS_FLAG_DEPENDSONLY)) { + FREELIST(trans->packages); + } + for(i = list; i; i = i->next) { /* add the dependencies found by resolvedeps to the transaction set */ pmpkg_t *spkg = i->data; @@ -421,32 +425,14 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync goto cleanup; } trans->packages = alpm_list_add(trans->packages, sync); - _alpm_log(PM_LOG_DEBUG, _("adding package %s-%s to the transaction targets"), + _alpm_log(PM_LOG_DEBUG, "adding package %s-%s to the transaction targets\n", alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg)); - } else { - /* remove the original targets from the list if requested */ - if((trans->flags & PM_TRANS_FLAG_DEPENDSONLY)) { - void *vpkg; - pmsyncpkg_t *sync; - - _alpm_log(PM_LOG_DEBUG, "removing package %s-%s from the transaction targets", - alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg)); - - sync = _alpm_sync_find(trans->packages, alpm_pkg_get_name(spkg)); - trans->packages = alpm_list_remove(trans->packages, sync, syncpkg_cmp, &vpkg); - _alpm_sync_free(vpkg); - } } } /* re-order w.r.t. dependencies */ - alpm_list_t *sortlist = NULL; + alpm_list_t *sortlist = _alpm_sortbydeps(list, PM_TRANS_TYPE_ADD); alpm_list_t *newpkgs = NULL; - for(i = trans->packages; i; i = i->next) { - pmsyncpkg_t *s = i->data; - sortlist = alpm_list_add(sortlist, s->pkg); - } - sortlist = _alpm_sortbydeps(sortlist, PM_TRANS_TYPE_ADD); for(i = sortlist; i; i = i->next) { for(j = trans->packages; j; j = j->next) { pmsyncpkg_t *s = j->data; @@ -461,19 +447,18 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync EVENT(trans, PM_TRANS_EVT_RESOLVEDEPS_DONE, NULL, NULL); - _alpm_log(PM_LOG_DEBUG, _("looking for unresolvable dependencies")); + _alpm_log(PM_LOG_DEBUG, "looking for unresolvable dependencies\n"); deps = _alpm_checkdeps(db_local, PM_TRANS_TYPE_UPGRADE, list); if(deps) { if(data) { *data = deps; - deps = NULL; + } else { + FREELIST(deps); } pm_errno = PM_ERR_UNSATISFIED_DEPS; ret = -1; goto cleanup; } - - alpm_list_free(trail); } /* We don't care about conflicts if we're just printing uris */ @@ -481,7 +466,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync /* check for inter-conflicts and whatnot */ EVENT(trans, PM_TRANS_EVT_INTERCONFLICTS_START, NULL, NULL); - _alpm_log(PM_LOG_DEBUG, _("looking for conflicts")); + _alpm_log(PM_LOG_DEBUG, "looking for conflicts\n"); deps = _alpm_checkconflicts(db_local, list); if(deps) { int errorout = 0; @@ -492,7 +477,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync pmsyncpkg_t *sync; pmpkg_t *found = NULL; - _alpm_log(PM_LOG_DEBUG, _("package '%s' conflicts with '%s'"), + _alpm_log(PM_LOG_DEBUG, "package '%s' conflicts with '%s'\n", miss->target, miss->depend.name); /* check if the conflicting package is about to be removed/replaced. * if so, then just ignore it. */ @@ -503,14 +488,14 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync } } if(found) { - _alpm_log(PM_LOG_DEBUG, _("'%s' is already elected for removal -- skipping"), + _alpm_log(PM_LOG_DEBUG, "'%s' is already elected for removal -- skipping\n", alpm_pkg_get_name(found)); continue; } sync = _alpm_sync_find(trans->packages, miss->target); if(sync == NULL) { - _alpm_log(PM_LOG_DEBUG, _("'%s' not found in transaction set -- skipping"), + _alpm_log(PM_LOG_DEBUG, "'%s' not found in transaction set -- skipping\n", miss->target); continue; } @@ -520,7 +505,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync miss->depend.name)) { /* treat like a replaces item so requiredby fields are * inherited properly. */ - _alpm_log(PM_LOG_DEBUG, _("package '%s' provides its own conflict"), + _alpm_log(PM_LOG_DEBUG, "package '%s' provides its own conflict\n", miss->target); if(!local) { char *rmpkg = NULL; @@ -541,12 +526,12 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync target = alpm_list_find_str(trans->targets, miss->target); depend = alpm_list_find_str(trans->targets, miss->depend.name); if(depend && !target) { - _alpm_log(PM_LOG_DEBUG, _("'%s' is in the target list -- keeping it"), + _alpm_log(PM_LOG_DEBUG, "'%s' is in the target list -- keeping it\n", miss->depend.name); /* remove miss->target */ rmpkg = miss->target; } else if(target && !depend) { - _alpm_log(PM_LOG_DEBUG, _("'%s' is in the target list -- keeping it"), + _alpm_log(PM_LOG_DEBUG, "'%s' is in the target list -- keeping it\n", miss->target); /* remove miss->depend.name */ rmpkg = miss->depend.name; @@ -558,7 +543,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync if(rmpkg) { pmsyncpkg_t *rsync = _alpm_sync_find(trans->packages, rmpkg); void *vpkg; - _alpm_log(PM_LOG_DEBUG, _("removing '%s' from target list"), + _alpm_log(PM_LOG_DEBUG, "removing '%s' from target list\n", rsync->pkg->name); trans->packages = alpm_list_remove(trans->packages, rsync, syncpkg_cmp, &vpkg); @@ -568,7 +553,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync } } /* It's a conflict -- see if they want to remove it */ - _alpm_log(PM_LOG_DEBUG, _("resolving package '%s' conflict"), + _alpm_log(PM_LOG_DEBUG, "resolving package '%s' conflict\n", miss->target); if(local) { int doremove = 0; @@ -586,7 +571,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync sync->data = NULL; } /* append to the replaces list */ - _alpm_log(PM_LOG_DEBUG, _("electing '%s' for removal"), + _alpm_log(PM_LOG_DEBUG, "electing '%s' for removal\n", miss->depend.name); sync->data = alpm_list_add(sync->data, q); /* see if the package is in the current target list */ @@ -595,7 +580,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync if(rsync) { /* remove it from the target list */ void *vpkg; - _alpm_log(PM_LOG_DEBUG, _("removing '%s' from target list"), + _alpm_log(PM_LOG_DEBUG, "removing '%s' from target list\n", miss->depend.name); trans->packages = alpm_list_remove(trans->packages, rsync, syncpkg_cmp, &vpkg); @@ -603,11 +588,11 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync } } else { /* abort */ - _alpm_log(PM_LOG_ERROR, _("unresolvable package conflicts detected")); + _alpm_log(PM_LOG_ERROR, _("unresolvable package conflicts detected\n")); errorout = 1; if(data) { if((miss = malloc(sizeof(pmdepmissing_t))) == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmdepmissing_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmdepmissing_t)); FREELIST(*data); pm_errno = PM_ERR_MEMORY; ret = -1; @@ -619,11 +604,11 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync } } } else { - _alpm_log(PM_LOG_ERROR, _("unresolvable package conflicts detected")); + _alpm_log(PM_LOG_ERROR, _("unresolvable package conflicts detected\n")); errorout = 1; if(data) { if((miss = malloc(sizeof(pmdepmissing_t))) == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmdepmissing_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmdepmissing_t)); FREELIST(*data); pm_errno = PM_ERR_MEMORY; ret = -1; @@ -672,7 +657,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync } } if(list) { - _alpm_log(PM_LOG_DEBUG, _("checking dependencies of packages designated for removal")); + _alpm_log(PM_LOG_DEBUG, "checking dependencies of packages designated for removal\n"); deps = _alpm_checkdeps(db_local, PM_TRANS_TYPE_REMOVE, list); if(deps) { /* Check if broken dependencies are fixed by packages we are installing */ @@ -686,7 +671,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync pmsyncpkg_t *sp = l->data; pmpkg_t *sppkg = sp->pkg; if(alpm_depcmp(sppkg, &(miss->depend))) { - _alpm_log(PM_LOG_DEBUG, _("sync: dependency '%s' satisfied by package '%s'"), + _alpm_log(PM_LOG_DEBUG, "sync: dependency '%s' satisfied by package '%s'\n", miss->depend.name, alpm_pkg_get_name(sppkg)); satisfied = 1; } @@ -709,7 +694,6 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync cleanup: alpm_list_free(list); - alpm_list_free(trail); return(ret); } @@ -719,14 +703,14 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) alpm_list_t *i, *j, *files = NULL; pmtrans_t *tr = NULL; int replaces = 0, retval = 0; - int validcache = 0; - const char *maincachedir = NULL; + const char *cachedir = NULL; ALPM_LOG_FUNC; ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); + cachedir = _alpm_filecache_setup(); trans->state = STATE_DOWNLOADING; /* group sync records by repository and download */ for(i = handle->dbs_sync; i; i = i->next) { @@ -735,75 +719,31 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) for(j = trans->packages; j; j = j->next) { pmsyncpkg_t *sync = j->data; pmpkg_t *spkg = sync->pkg; - pmdb_t *dbs = spkg->data; + pmdb_t *dbs = spkg->origin_data.db; if(current == dbs) { const char *fname = NULL; - char path[PATH_MAX]; fname = alpm_pkg_get_filename(spkg); if(trans->flags & PM_TRANS_FLAG_PRINTURIS) { - EVENT(trans, PM_TRANS_EVT_PRINTURI, (char *)alpm_db_get_url(current), (char *)fname); + EVENT(trans, PM_TRANS_EVT_PRINTURI, (char *)alpm_db_get_url(current), + (char *)fname); } else { - struct stat buf; - int found = 0; - /* Loop through the cache dirs until we find a matching file */ - for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) { - snprintf(path, PATH_MAX, "%s%s", (char*)alpm_list_getdata(i), - fname); - if(stat(path, &buf) == 0) { - found = 1; - _alpm_log(PM_LOG_DEBUG, _("found cached pkg: %s"), path); - break; - } - } - if(!found) { + char *fpath = _alpm_filecache_find(fname); + if(!fpath) { /* file is not in the cache dir, so add it to the list */ files = alpm_list_add(files, strdup(fname)); } + FREE(fpath); } } } if(files) { - struct stat buf; - char *cachedir; EVENT(trans, PM_TRANS_EVT_RETRIEVE_START, current->treename, NULL); - for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) { - cachedir = alpm_list_getdata(i); - if(stat(cachedir, &buf) != 0) { - /* cache directory does not exist.... try creating it */ - _alpm_log(PM_LOG_WARNING, _("no %s cache exists, creating...\n"), - cachedir); - alpm_logaction("warning: no %s cache exists, creating...", - cachedir); - if(_alpm_makepath(cachedir) == 0) { - _alpm_log(PM_LOG_DEBUG, _("setting main cachedir: %s"), cachedir); - maincachedir = cachedir; - validcache = 1; - break; - } - } else if(S_ISDIR(buf.st_mode) && (buf.st_mode & S_IWUSR)) { - _alpm_log(PM_LOG_DEBUG, _("setting main cachedir: %s"), cachedir); - maincachedir = cachedir; - validcache = 1; - break; - } - } - if(!validcache) { - /* we had no valid cache directories, so fall back to /tmp and - * unlink the packages afterwards. */ - alpm_list_t *oldcachedirs = alpm_option_get_cachedirs(); - alpm_list_t *cachetmp = alpm_list_add(NULL, strdup("/tmp/")); - FREELIST(oldcachedirs); - alpm_option_set_cachedirs(cachetmp); - _alpm_log(PM_LOG_DEBUG, _("setting main cachedir: %s"), "/tmp/"); - maincachedir = alpm_list_getdata(cachetmp); - _alpm_log(PM_LOG_WARNING, _("couldn't create package cache, using /tmp instead")); - alpm_logaction("warning: couldn't create package cache, using /tmp instead"); - } - if(_alpm_downloadfiles(current->servers, maincachedir, files)) { - _alpm_log(PM_LOG_WARNING, _("failed to retrieve some files from %s\n"), current->treename); + if(_alpm_downloadfiles(current->servers, cachedir, files)) { + _alpm_log(PM_LOG_WARNING, _("failed to retrieve some files from %s\n"), + current->treename); RET_ERR(PM_ERR_RETRIEVE, -1); } FREELIST(files); @@ -819,69 +759,54 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) for(i = trans->packages; i; i = i->next) { pmsyncpkg_t *sync = i->data; pmpkg_t *spkg = sync->pkg; - char str[PATH_MAX]; - struct stat buf; - const char *pkgname; - char *md5sum1, *md5sum2, *sha1sum1, *sha1sum2; + const char *filename; + char *filepath; + char *md5sum1, *md5sum2; char *ptr=NULL; - pkgname = alpm_pkg_get_filename(spkg); + filename = alpm_pkg_get_filename(spkg); md5sum1 = spkg->md5sum; - sha1sum1 = spkg->sha1sum; - if((md5sum1 == NULL) && (sha1sum1 == NULL)) { + if(md5sum1 == NULL) { /* TODO wtf is this? malloc'd strings for error messages? */ if((ptr = calloc(512, sizeof(char))) == NULL) { RET_ERR(PM_ERR_MEMORY, -1); } - snprintf(ptr, 512, _("can't get md5 or sha1 checksum for package %s\n"), pkgname); + snprintf(ptr, 512, _("can't get md5 checksum for package %s\n"), filename); *data = alpm_list_add(*data, ptr); retval = 1; continue; } - /* Loop through the cache dirs until we find a matching file */ - for(j = alpm_option_get_cachedirs(); j; j = alpm_list_next(j)) { - snprintf(str, PATH_MAX, "%s%s", (char*)alpm_list_getdata(j), pkgname); - if(stat(str, &buf) == 0) { - _alpm_log(PM_LOG_DEBUG, _("package found for integrity check: %s"), - str); - break; - } - } + filepath = _alpm_filecache_find(filename); - md5sum2 = alpm_get_md5sum(str); - sha1sum2 = alpm_get_sha1sum(str); - if(md5sum2 == NULL && sha1sum2 == NULL) { + md5sum2 = alpm_get_md5sum(filepath); + if(md5sum2 == NULL) { if((ptr = calloc(512, sizeof(char))) == NULL) { RET_ERR(PM_ERR_MEMORY, -1); } - snprintf(ptr, 512, _("can't get md5 or sha1 checksum for package %s\n"), pkgname); + snprintf(ptr, 512, _("can't get md5 checksum for package %s\n"), filename); *data = alpm_list_add(*data, ptr); retval = 1; continue; } - if((strcmp(md5sum1, md5sum2) != 0) && (strcmp(sha1sum1, sha1sum2) != 0)) { + if(strcmp(md5sum1, md5sum2) != 0) { int doremove=0; if((ptr = calloc(512, sizeof(char))) == NULL) { RET_ERR(PM_ERR_MEMORY, -1); } - if(trans->flags & PM_TRANS_FLAG_ALLDEPS) { - doremove=1; - } else { - QUESTION(trans, PM_TRANS_CONV_CORRUPTED_PKG, (char *)pkgname, NULL, NULL, &doremove); - } + QUESTION(trans, PM_TRANS_CONV_CORRUPTED_PKG, (char *)filename, + NULL, NULL, &doremove); if(doremove) { - unlink(str); - snprintf(ptr, 512, _("archive %s was corrupted (bad MD5 or SHA1 checksum)\n"), pkgname); - } else { - snprintf(ptr, 512, _("archive %s is corrupted (bad MD5 or SHA1 checksum)\n"), pkgname); + unlink(filepath); } + snprintf(ptr, 512, _("archive %s was corrupted (bad MD5 checksum)\n"), + filename); *data = alpm_list_add(*data, ptr); retval = 1; } + FREE(filepath); FREE(md5sum2); - FREE(sha1sum2); } if(retval) { pm_errno = PM_ERR_PKG_CORRUPTED; @@ -896,13 +821,13 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) trans->state = STATE_COMMITING; tr = _alpm_trans_new(); if(tr == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not create removal transaction")); + _alpm_log(PM_LOG_ERROR, _("could not create removal transaction\n")); pm_errno = PM_ERR_MEMORY; goto error; } if(_alpm_trans_init(tr, PM_TRANS_TYPE_REMOVE, PM_TRANS_FLAG_NODEPS, NULL, NULL, NULL) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not initialize the removal transaction")); + _alpm_log(PM_LOG_ERROR, _("could not initialize the removal transaction\n")); goto error; } @@ -922,15 +847,15 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) } } if(replaces) { - _alpm_log(PM_LOG_DEBUG, _("removing conflicting and to-be-replaced packages")); + _alpm_log(PM_LOG_DEBUG, "removing conflicting and to-be-replaced packages\n"); if(_alpm_trans_prepare(tr, data) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not prepare removal transaction")); + _alpm_log(PM_LOG_ERROR, _("could not prepare removal transaction\n")); goto error; } /* we want the frontend to be aware of commit details */ tr->cb_event = trans->cb_event; if(_alpm_trans_commit(tr, NULL) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not commit removal transaction")); + _alpm_log(PM_LOG_ERROR, _("could not commit removal transaction\n")); goto error; } } @@ -938,35 +863,33 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) tr = NULL; /* install targets */ - _alpm_log(PM_LOG_DEBUG, _("installing packages")); + _alpm_log(PM_LOG_DEBUG, "installing packages\n"); tr = _alpm_trans_new(); if(tr == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not create transaction")); + _alpm_log(PM_LOG_ERROR, _("could not create transaction\n")); pm_errno = PM_ERR_MEMORY; goto error; } if(_alpm_trans_init(tr, PM_TRANS_TYPE_UPGRADE, trans->flags | PM_TRANS_FLAG_NODEPS, trans->cb_event, trans->cb_conv, trans->cb_progress) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not initialize transaction")); + _alpm_log(PM_LOG_ERROR, _("could not initialize transaction\n")); goto error; } for(i = trans->packages; i; i = i->next) { pmsyncpkg_t *sync = i->data; pmpkg_t *spkg = sync->pkg; - struct stat buf; - const char *fname = NULL; - char str[PATH_MAX]; + const char *fname; + char *fpath; fname = alpm_pkg_get_filename(spkg); /* Loop through the cache dirs until we find a matching file */ - for(j = alpm_option_get_cachedirs(); j; j = alpm_list_next(j)) { - snprintf(str, PATH_MAX, "%s%s", (char*)alpm_list_getdata(j), fname); - if(stat(str, &buf) == 0) { - break; - } - } - if(_alpm_trans_addtarget(tr, str) == -1) { + fpath = _alpm_filecache_find(fname); + + if(_alpm_trans_addtarget(tr, fpath) == -1) { + FREE(fpath); goto error; } + FREE(fpath); + /* using alpm_list_last() is ok because addtarget() adds the new target at the * end of the tr->packages list */ spkg = alpm_list_last(tr->packages)->data; @@ -975,12 +898,12 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) } } if(_alpm_trans_prepare(tr, data) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not prepare transaction")); + _alpm_log(PM_LOG_ERROR, _("could not prepare transaction\n")); /* pm_errno is set by trans_prepare */ goto error; } if(_alpm_trans_commit(tr, NULL) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not commit transaction")); + _alpm_log(PM_LOG_ERROR, _("could not commit transaction\n")); goto error; } _alpm_trans_free(tr); @@ -988,7 +911,7 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) /* propagate replaced packages' requiredby fields to their new owners */ if(replaces) { - _alpm_log(PM_LOG_DEBUG, _("updating database for replaced packages' dependencies")); + _alpm_log(PM_LOG_DEBUG, "updating database for replaced packages' dependencies\n"); for(i = trans->packages; i; i = i->next) { pmsyncpkg_t *sync = i->data; if(sync->type == PM_SYNC_TYPE_REPLACE) { @@ -1017,7 +940,7 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) } } if(_alpm_db_write(db_local, depender, INFRQ_DEPENDS) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not update requiredby for database entry %s-%s"), + _alpm_log(PM_LOG_ERROR, _("could not update requiredby for database entry %s-%s\n"), alpm_pkg_get_name(new), alpm_pkg_get_version(new)); } /* add the new requiredby */ @@ -1026,33 +949,18 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) } } if(_alpm_db_write(db_local, new, INFRQ_DEPENDS) == -1) { - _alpm_log(PM_LOG_ERROR, _("could not update new database entry %s-%s"), + _alpm_log(PM_LOG_ERROR, _("could not update new database entry %s-%s\n"), alpm_pkg_get_name(new), alpm_pkg_get_version(new)); } } } } - if(!validcache && !(trans->flags & PM_TRANS_FLAG_DOWNLOADONLY)) { - /* delete packages */ - for(i = files; i; i = i->next) { - unlink(i->data); - } - } - - /* run ldconfig if it exists */ - if(handle->trans->state != STATE_INTERRUPTED) { - _alpm_log(PM_LOG_DEBUG, _("running \"ldconfig -r %s\""), handle->root); - _alpm_ldconfig(handle->root); - } - return(0); error: _alpm_trans_free(tr); tr = NULL; - /* commiting failed, so this is still just a prepared transaction */ - trans->state = STATE_PREPARED; return(-1); } @@ -1067,13 +975,13 @@ pmsyncpkg_t *_alpm_sync_find(alpm_list_t *syncpkgs, const char* pkgname) pmpkg_t *pkg = alpm_sync_get_pkg(syncpkg); if(strcmp(alpm_pkg_get_name(pkg), pkgname) == 0) { - _alpm_log(PM_LOG_DEBUG, _("found package '%s-%s' in sync"), + _alpm_log(PM_LOG_DEBUG, "found package '%s-%s' in sync\n", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); return(syncpkg); } } - _alpm_log(PM_LOG_DEBUG, _("package '%s' not found in sync"), pkgname); + _alpm_log(PM_LOG_DEBUG, "package '%s' not found in sync\n", pkgname); return(NULL); /* not found */ } diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index 82f11f3d..9eb27c30 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -33,9 +33,6 @@ #include <sys/statvfs.h> #include <unistd.h> #include <errno.h> -#ifndef __sun__ -#include <mntent.h> -#endif /* libalpm */ #include "trans.h" @@ -165,15 +162,31 @@ int SYMEXPORT alpm_trans_commit(alpm_list_t **data) ASSERT(handle->trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT(handle->trans->state == STATE_PREPARED, RET_ERR(PM_ERR_TRANS_NOT_PREPARED, -1)); - /* Check for database R/W permission */ - if(!(handle->trans->flags & PM_TRANS_FLAG_PRINTURIS)) { - /* The print-uris operation is a bit odd. So we explicitly check for it */ - ASSERT(handle->access == PM_ACCESS_RW, RET_ERR(PM_ERR_BADPERMS, -1)); - } - return(_alpm_trans_commit(handle->trans, data)); } +/** Interrupt a transaction. + * @return 0 on success, -1 on error (pm_errno is set accordingly) + */ +int SYMEXPORT alpm_trans_interrupt() +{ + pmtrans_t *trans; + + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); + + trans = handle->trans; + ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); + ASSERT(trans->state == STATE_COMMITING || trans->state == STATE_INTERRUPTED, + RET_ERR(PM_ERR_TRANS_TYPE, -1)); + + trans->state = STATE_INTERRUPTED; + + return(0); +} + /** Release a transaction. * @return 0 on success, -1 on error (pm_errno is set accordingly) */ @@ -190,15 +203,6 @@ int SYMEXPORT alpm_trans_release() ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT(trans->state != STATE_IDLE, RET_ERR(PM_ERR_TRANS_NULL, -1)); - /* during a commit do not interrupt immediately, just after a target */ - if(trans->state == STATE_COMMITING || trans->state == STATE_INTERRUPTED) { - if(trans->state == STATE_COMMITING) { - trans->state = STATE_INTERRUPTED; - } - pm_errno = PM_ERR_TRANS_COMMITING; - return(-1); - } - _alpm_trans_free(trans); handle->trans = NULL; @@ -208,7 +212,7 @@ int SYMEXPORT alpm_trans_release() handle->lckfd = -1; } if(_alpm_lckrm()) { - _alpm_log(PM_LOG_WARNING, _("could not remove lock file %s"), + _alpm_log(PM_LOG_WARNING, _("could not remove lock file %s\n"), alpm_option_get_lockfile()); alpm_logaction("warning: could not remove lock file %s", alpm_option_get_lockfile()); @@ -226,7 +230,7 @@ pmtrans_t *_alpm_trans_new() ALPM_LOG_FUNC; if((trans = malloc(sizeof(pmtrans_t))) == NULL) { - _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(pmtrans_t)); + _alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes\n"), sizeof(pmtrans_t)); return(NULL); } @@ -304,6 +308,11 @@ int _alpm_trans_sysupgrade(pmtrans_t *trans) return(_alpm_sync_sysupgrade(trans, handle->db_local, handle->dbs_sync)); } +/** Add a target to the transaction. + * @param trans the current transaction + * @param target the name of the target to add + * @return 0 on success, -1 on error (pm_errno is set accordingly) + */ int _alpm_trans_addtarget(pmtrans_t *trans, char *target) { ALPM_LOG_FUNC; @@ -326,14 +335,15 @@ int _alpm_trans_addtarget(pmtrans_t *trans, char *target) } break; case PM_TRANS_TYPE_REMOVE: + case PM_TRANS_TYPE_REMOVEUPGRADE: if(_alpm_remove_loadtarget(trans, handle->db_local, target) == -1) { - /* pm_errno is set by remove_loadtarget() */ + /* pm_errno is set by _alpm_remove_loadtarget() */ return(-1); } break; case PM_TRANS_TYPE_SYNC: if(_alpm_sync_addtarget(trans, handle->db_local, handle->dbs_sync, target) == -1) { - /* pm_errno is set by sync_loadtarget() */ + /* pm_errno is set by _alpm_sync_loadtarget() */ return(-1); } break; @@ -367,6 +377,7 @@ int _alpm_trans_prepare(pmtrans_t *trans, alpm_list_t **data) } break; case PM_TRANS_TYPE_REMOVE: + case PM_TRANS_TYPE_REMOVEUPGRADE: if(_alpm_remove_prepare(trans, handle->db_local, data) == -1) { /* pm_errno is set by _alpm_remove_prepare() */ return(-1); @@ -406,13 +417,14 @@ int _alpm_trans_commit(pmtrans_t *trans, alpm_list_t **data) case PM_TRANS_TYPE_ADD: case PM_TRANS_TYPE_UPGRADE: if(_alpm_add_commit(trans, handle->db_local) == -1) { - /* pm_errno is set by _alpm_add_prepare() */ + /* pm_errno is set by _alpm_add_commit() */ return(-1); } break; case PM_TRANS_TYPE_REMOVE: + case PM_TRANS_TYPE_REMOVEUPGRADE: if(_alpm_remove_commit(trans, handle->db_local) == -1) { - /* pm_errno is set by _alpm_remove_prepare() */ + /* pm_errno is set by _alpm_remove_commit() */ return(-1); } break; @@ -429,6 +441,8 @@ int _alpm_trans_commit(pmtrans_t *trans, alpm_list_t **data) return(0); } +/* A depends on B through n depends <=> A listed in B's requiredby n times + * n == 0 or 1 in almost all cases */ int _alpm_trans_update_depends(pmtrans_t *trans, pmpkg_t *pkg) { alpm_list_t *i, *j; @@ -437,7 +451,7 @@ int _alpm_trans_update_depends(pmtrans_t *trans, pmpkg_t *pkg) pmdb_t *localdb; ALPM_LOG_FUNC; - + /* Sanity checks */ ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT(pkg != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); @@ -446,95 +460,48 @@ int _alpm_trans_update_depends(pmtrans_t *trans, pmpkg_t *pkg) depends = alpm_pkg_get_depends(pkg); if(depends) { - _alpm_log(PM_LOG_DEBUG, _("updating dependency packages 'requiredby' fields for %s-%s"), + _alpm_log(PM_LOG_DEBUG, "updating dependency packages 'requiredby' fields for %s-%s\n", pkgname, pkg->version); } else { - _alpm_log(PM_LOG_DEBUG, _("package has no dependencies, no other packages to update")); + _alpm_log(PM_LOG_DEBUG, "package has no dependencies, no other packages to update\n"); } localdb = alpm_option_get_localdb(); for(i = depends; i; i = i->next) { + if(!i->data) { + continue; + } pmdepend_t* dep = alpm_splitdep(i->data); if(dep == NULL) { continue; } - - if(trans->packages && trans->type == PM_TRANS_TYPE_REMOVE) { - if(_alpm_pkg_find(dep->name, handle->trans->packages)) { - continue; - } - } - - pmpkg_t *deppkg = _alpm_db_get_pkgfromcache(localdb, dep->name); - if(!deppkg) { - int found_provides = 0; - /* look for a provides package */ - alpm_list_t *provides = _alpm_db_whatprovides(localdb, dep->name); - for(j = provides; j; j = j->next) { - if(!j->data) { - continue; - } - pmpkg_t *provpkg = j->data; - deppkg = _alpm_db_get_pkgfromcache(localdb, alpm_pkg_get_name(provpkg)); - - if(!deppkg) { - continue; - } - - found_provides = 1; - + for(j = _alpm_db_get_pkgcache(localdb); j; j = j->next) { + pmpkg_t *deppkg = j->data; + if(deppkg && alpm_depcmp(deppkg, dep)) { /* this is cheating... we call this function to populate the package */ alpm_list_t *rqdby = alpm_pkg_get_requiredby(deppkg); - _alpm_log(PM_LOG_DEBUG, _("updating 'requiredby' field for package '%s'"), + _alpm_log(PM_LOG_DEBUG, "updating 'requiredby' field for package '%s'\n", alpm_pkg_get_name(deppkg)); - if(trans->type == PM_TRANS_TYPE_REMOVE) { + + if(trans->type == PM_TRANS_TYPE_REMOVE + || trans->type == PM_TRANS_TYPE_REMOVEUPGRADE) { void *data = NULL; rqdby = alpm_list_remove(rqdby, pkgname, _alpm_str_cmp, &data); FREE(data); deppkg->requiredby = rqdby; } else { - if(!alpm_list_find_str(rqdby, pkgname)) { - rqdby = alpm_list_add(rqdby, strdup(pkgname)); - deppkg->requiredby = rqdby; - } + rqdby = alpm_list_add(rqdby, strdup(pkgname)); + deppkg->requiredby = rqdby; } if(_alpm_db_write(localdb, deppkg, INFRQ_DEPENDS)) { - _alpm_log(PM_LOG_ERROR, _("could not update 'requiredby' database entry %s-%s"), + _alpm_log(PM_LOG_ERROR, _("could not update 'requiredby' database entry %s-%s\n"), alpm_pkg_get_name(deppkg), alpm_pkg_get_version(deppkg)); } } - alpm_list_free(provides); - - if(!found_provides) { - _alpm_log(PM_LOG_DEBUG, _("could not find dependency '%s'"), dep->name); - continue; - } - } - - /* this is cheating... we call this function to populate the package */ - alpm_list_t *rqdby = alpm_pkg_get_requiredby(deppkg); - - _alpm_log(PM_LOG_DEBUG, _("updating 'requiredby' field for package '%s'"), - alpm_pkg_get_name(deppkg)); - if(trans->type == PM_TRANS_TYPE_REMOVE) { - void *data = NULL; - rqdby = alpm_list_remove(rqdby, pkgname, _alpm_str_cmp, &data); - FREE(data); - deppkg->requiredby = rqdby; - } else { - if(!alpm_list_find_str(rqdby, pkgname)) { - rqdby = alpm_list_add(rqdby, strdup(pkgname)); - deppkg->requiredby = rqdby; - } - } - - if(_alpm_db_write(localdb, deppkg, INFRQ_DEPENDS)) { - _alpm_log(PM_LOG_ERROR, _("could not update 'requiredby' database entry %s-%s"), - alpm_pkg_get_name(deppkg), alpm_pkg_get_version(deppkg)); } - free(dep); + FREE(dep); } return(0); } @@ -566,7 +533,7 @@ static int grep(const char *fn, const char *needle) int _alpm_runscriptlet(const char *root, const char *installfn, const char *script, const char *ver, - const char *oldver, pmtrans_t *trans) + const char *oldver) { char scriptfn[PATH_MAX]; char cmdline[PATH_MAX]; @@ -581,7 +548,7 @@ int _alpm_runscriptlet(const char *root, const char *installfn, if(stat(installfn, &buf)) { /* not found */ - _alpm_log(PM_LOG_DEBUG, "scriptlet '%s' not found", installfn); + _alpm_log(PM_LOG_DEBUG, "scriptlet '%s' not found\n", installfn); return(0); } @@ -592,7 +559,7 @@ int _alpm_runscriptlet(const char *root, const char *installfn, } snprintf(tmpdir, PATH_MAX, "%stmp/alpm_XXXXXX", root); if(mkdtemp(tmpdir) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not create temp directory")); + _alpm_log(PM_LOG_ERROR, _("could not create temp directory\n")); return(1); } _alpm_unpack(installfn, tmpdir, ".INSTALL"); @@ -612,18 +579,18 @@ int _alpm_runscriptlet(const char *root, const char *installfn, /* save the cwd so we can restore it later */ if(getcwd(cwd, PATH_MAX) == NULL) { - _alpm_log(PM_LOG_ERROR, _("could not get current working directory")); + _alpm_log(PM_LOG_ERROR, _("could not get current working directory\n")); /* in case of error, cwd content is undefined: so we set it to something */ cwd[0] = 0; } /* just in case our cwd was removed in the upgrade operation */ if(chdir(root) != 0) { - _alpm_log(PM_LOG_ERROR, _("could not change directory to %s (%s)"), root, strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not change directory to %s (%s)\n"), root, strerror(errno)); goto cleanup; } - _alpm_log(PM_LOG_DEBUG, _("executing %s script..."), script); + _alpm_log(PM_LOG_DEBUG, "executing %s script...\n", script); if(oldver) { snprintf(cmdline, PATH_MAX, "source %s %s %s %s", @@ -632,32 +599,32 @@ int _alpm_runscriptlet(const char *root, const char *installfn, snprintf(cmdline, PATH_MAX, "source %s %s %s", scriptpath, script, ver); } - _alpm_log(PM_LOG_DEBUG, "%s", cmdline); + _alpm_log(PM_LOG_DEBUG, "%s\n", cmdline); pid = fork(); if(pid == -1) { - _alpm_log(PM_LOG_ERROR, _("could not fork a new process (%s)"), strerror(errno)); + _alpm_log(PM_LOG_ERROR, _("could not fork a new process (%s)\n"), strerror(errno)); retval = 1; goto cleanup; } if(pid == 0) { - _alpm_log(PM_LOG_DEBUG, _("chrooting in %s"), root); + _alpm_log(PM_LOG_DEBUG, "chrooting in %s\n", root); if(chroot(root) != 0) { - _alpm_log(PM_LOG_ERROR, _("could not change the root directory (%s)"), strerror(errno)); - return(1); + _alpm_log(PM_LOG_ERROR, _("could not change the root directory (%s)\n"), strerror(errno)); + exit(1); } if(chdir("/") != 0) { - _alpm_log(PM_LOG_ERROR, _("could not change directory to / (%s)"), strerror(errno)); - return(1); + _alpm_log(PM_LOG_ERROR, _("could not change directory to / (%s)\n"), strerror(errno)); + exit(1); } umask(0022); - _alpm_log(PM_LOG_DEBUG, _("executing \"%s\""), cmdline); + _alpm_log(PM_LOG_DEBUG, "executing \"%s\"\n", cmdline); execl("/bin/sh", "sh", "-c", cmdline, (char *)NULL); exit(0); } else { if(waitpid(pid, 0, 0) == -1) { - _alpm_log(PM_LOG_ERROR, _("call to waitpid failed (%s)"), + _alpm_log(PM_LOG_ERROR, _("call to waitpid failed (%s)\n"), strerror(errno)); retval = 1; goto cleanup; @@ -666,7 +633,7 @@ int _alpm_runscriptlet(const char *root, const char *installfn, cleanup: if(strlen(tmpdir) && _alpm_rmrf(tmpdir)) { - _alpm_log(PM_LOG_WARNING, _("could not remove tmpdir %s"), tmpdir); + _alpm_log(PM_LOG_WARNING, _("could not remove tmpdir %s\n"), tmpdir); } if(strlen(cwd)) { chdir(cwd); diff --git a/lib/libalpm/trans.h b/lib/libalpm/trans.h index f3575895..f88c61e1 100644 --- a/lib/libalpm/trans.h +++ b/lib/libalpm/trans.h @@ -81,7 +81,7 @@ int _alpm_trans_commit(pmtrans_t *trans, alpm_list_t **data); int _alpm_trans_update_depends(pmtrans_t *trans, pmpkg_t *pkg); int _alpm_runscriptlet(const char *root, const char *installfn, const char *script, const char *ver, - const char *oldver, pmtrans_t *trans); + const char *oldver); #endif /* _ALPM_TRANS_H */ diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index 72c17bf9..b1c3a402 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -48,8 +48,112 @@ #include "error.h" #include "package.h" #include "alpm.h" +#include "alpm_list.h" +#include "md5.h" -#ifdef __sun__ +#ifndef HAVE_STRVERSCMP +/* GNU's strverscmp() function, taken from glibc 2.3.2 sources + */ + +/* Compare strings while treating digits characters numerically. + Copyright (C) 1997, 2002 Free Software Foundation, Inc. + Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. +*/ + +/* states: S_N: normal, S_I: comparing integral part, S_F: comparing + fractionnal parts, S_Z: idem but with leading Zeroes only */ +#define S_N 0x0 +#define S_I 0x4 +#define S_F 0x8 +#define S_Z 0xC + +/* result_type: CMP: return diff; LEN: compare using len_diff/diff */ +#define CMP 2 +#define LEN 3 + +/* Compare S1 and S2 as strings holding indices/version numbers, + returning less than, equal to or greater than zero if S1 is less than, + equal to or greater than S2 (for more info, see the texinfo doc). +*/ + +static int strverscmp (s1, s2) + const char *s1; + const char *s2; +{ + const unsigned char *p1 = (const unsigned char *) s1; + const unsigned char *p2 = (const unsigned char *) s2; + unsigned char c1, c2; + int state; + int diff; + + /* Symbol(s) 0 [1-9] others (padding) + Transition (10) 0 (01) d (00) x (11) - */ + static const unsigned int next_state[] = + { + /* state x d 0 - */ + /* S_N */ S_N, S_I, S_Z, S_N, + /* S_I */ S_N, S_I, S_I, S_I, + /* S_F */ S_N, S_F, S_F, S_F, + /* S_Z */ S_N, S_F, S_Z, S_Z + }; + + static const int result_type[] = + { + /* state x/x x/d x/0 x/- d/x d/d d/0 d/- + 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */ + + /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, + CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, + /* S_I */ CMP, -1, -1, CMP, +1, LEN, LEN, CMP, + +1, LEN, LEN, CMP, CMP, CMP, CMP, CMP, + /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, + CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, + /* S_Z */ CMP, +1, +1, CMP, -1, CMP, CMP, CMP, + -1, CMP, CMP, CMP + }; + + if (p1 == p2) + return 0; + + c1 = *p1++; + c2 = *p2++; + /* Hint: '0' is a digit too. */ + state = S_N | ((c1 == '0') + (isdigit (c1) != 0)); + + while ((diff = c1 - c2) == 0 && c1 != '\0') + { + state = next_state[state]; + c1 = *p1++; + c2 = *p2++; + state |= (c1 == '0') + (isdigit (c1) != 0); + } + + state = result_type[state << 2 | (((c2 == '0') + (isdigit (c2) != 0)))]; + + switch (state) + { + case CMP: + return diff; + + case LEN: + while (isdigit (*p1++)) + if (!isdigit (*p2++)) + return 1; + + return isdigit (*p2) ? -1 : diff; + + default: + return state; + } +} +#endif + +#ifndef HAVE_STRSEP /* This is a replacement for strsep which is not portable (missing on Solaris). * Copyright (c) 2001 by François Gouget <fgouget_at_codeweavers.com> */ char* strsep(char** str, const char* delims) @@ -74,33 +178,6 @@ char* strsep(char** str, const char* delims) *str=NULL; return token; } - -/* Backported from Solaris Express 4/06 - * Copyright (c) 2006 Sun Microsystems, Inc. */ -char *mkdtemp(char *template) -{ - char *t = alloca(strlen(template) + 1); - char *r; - - /* Save template */ - (void) strcpy(t, template); - for (; ; ) { - r = mkstemp(template); - - if (*r == '\0') - return (NULL); - - if (mkdir(template, 0700) == 0) - return (r); - - /* Other errors indicate persistent conditions. */ - if (errno != EEXIST) - return (NULL); - - /* Reset template */ - (void) strcpy(template, t); - } -} #endif /* does the same thing as 'mkdir -p' */ @@ -124,7 +201,7 @@ int _alpm_makepath(const char *path) if(mkdir(full, 0755)) { FREE(orig); umask(oldmask); - _alpm_log(PM_LOG_ERROR, _("failed to make path '%s' : %s"), + _alpm_log(PM_LOG_ERROR, _("failed to make path '%s' : %s\n"), path, strerror(errno)); return(1); } @@ -225,7 +302,7 @@ static void _strnadd(char **str, const char *append, unsigned int count) if(*str) { *str = realloc(*str, strlen(*str) + count + 1); } else { - *str = calloc(sizeof(char), count + 1); + *str = calloc(count + 1, sizeof(char)); } strncat(*str, append, count); @@ -287,7 +364,7 @@ int _alpm_lckmk() } } - free(dir); + FREE(dir); return(fd > 0 ? fd : -1); } @@ -321,8 +398,10 @@ int _alpm_unpack(const char *archive, const char *prefix, const char *fn) archive_read_support_compression_all(_archive); archive_read_support_format_all(_archive); - if(archive_read_open_file(_archive, archive, ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) { - _alpm_log(PM_LOG_ERROR, _("could not open %s: %s\n"), archive, archive_error_string(_archive)); + if(archive_read_open_filename(_archive, archive, + ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) { + _alpm_log(PM_LOG_ERROR, _("could not open %s: %s\n"), archive, + archive_error_string(_archive)); RET_ERR(PM_ERR_PKG_OPEN, -1); } @@ -340,7 +419,7 @@ int _alpm_unpack(const char *archive, const char *prefix, const char *fn) int ret = archive_read_extract(_archive, entry, archive_flags); if(ret == ARCHIVE_WARN) { /* operation succeeded but a non-critical error was encountered */ - _alpm_log(PM_LOG_DEBUG, _("warning extracting %s (%s)\n"), + _alpm_log(PM_LOG_DEBUG, "warning extracting %s (%s)\n", entryname, archive_error_string(_archive)); } else if(ret != ARCHIVE_OK) { _alpm_log(PM_LOG_ERROR, _("could not extract %s (%s)\n"), @@ -465,5 +544,110 @@ int _alpm_str_cmp(const void *s1, const void *s2) return(strcmp(s1, s2)); } +/** Find a package file in an alpm cachedir. + * @param filename name of package file to find + * @return malloced path of file, NULL if not found + */ +char *_alpm_filecache_find(const char* filename) +{ + struct stat buf; + char path[PATH_MAX]; + char *retpath; + alpm_list_t *i; + + /* Loop through the cache dirs until we find a matching file */ + for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) { + snprintf(path, PATH_MAX, "%s%s", (char*)alpm_list_getdata(i), + filename); + if(stat(path, &buf) == 0) { + /* TODO maybe check to make sure it is readable? */ + retpath = strdup(path); + _alpm_log(PM_LOG_DEBUG, "found cached pkg: %s\n", retpath); + return(retpath); + } + } + /* package wasn't found in any cachedir */ + return(NULL); +} + +/** Check the alpm cachedirs for existance and find a writable one. + * If no valid cache directory can be found, use /tmp. + * @return pointer to a writable cache directory. + */ +const char *_alpm_filecache_setup(void) +{ + struct stat buf; + alpm_list_t *i, *tmp; + char *cachedir; + + /* Loop through the cache dirs until we find a writeable dir */ + for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) { + cachedir = alpm_list_getdata(i); + if(stat(cachedir, &buf) != 0) { + /* cache directory does not exist.... try creating it */ + _alpm_log(PM_LOG_WARNING, _("no %s cache exists, creating...\n"), + cachedir); + alpm_logaction("warning: no %s cache exists, creating...", + cachedir); + if(_alpm_makepath(cachedir) == 0) { + _alpm_log(PM_LOG_DEBUG, "using cachedir: %s\n", cachedir); + return(cachedir); + } + } else if(S_ISDIR(buf.st_mode) && (buf.st_mode & S_IWUSR)) { + _alpm_log(PM_LOG_DEBUG, "using cachedir: %s\n", cachedir); + return(cachedir); + } + } + + /* we didn't find a valid cache directory. use /tmp. */ + i = alpm_option_get_cachedirs(); + tmp = alpm_list_add(NULL, strdup("/tmp/")); + FREELIST(i); + alpm_option_set_cachedirs(tmp); + _alpm_log(PM_LOG_DEBUG, "using cachedir: %s", "/tmp/\n"); + _alpm_log(PM_LOG_WARNING, _("couldn't create package cache, using /tmp instead\n")); + alpm_logaction("warning: couldn't create package cache, using /tmp instead"); + return(alpm_list_getdata(tmp)); +} + +/** Get the md5 sum of file. + * @param filename name of the file + * @return the checksum on success, NULL on error + * @addtogroup alpm_misc + */ +char SYMEXPORT *alpm_get_md5sum(const char *filename) +{ + unsigned char output[16]; + char *md5sum; + int ret, i; + + ALPM_LOG_FUNC; + + ASSERT(filename != NULL, return(NULL)); + + /* allocate 32 chars plus 1 for null */ + md5sum = calloc(33, sizeof(char)); + ret = md5_file(filename, output); + + if (ret > 0) { + if (ret == 1) { + _alpm_log(PM_LOG_ERROR, _("md5: %s can't be opened\n"), filename); + } else if (ret == 2) { + _alpm_log(PM_LOG_ERROR, _("md5: %s can't be read\n"), filename); + } + + return(NULL); + } + + /* Convert the result to something readable */ + for (i = 0; i < 16; i++) { + /* sprintf is acceptable here because we know our output */ + sprintf(md5sum +(i * 2), "%02x", output[i]); + } + md5sum[32] = '\0'; + + _alpm_log(PM_LOG_DEBUG, "md5(%s) = %s\n", filename, md5sum); + return(md5sum); +} /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h index 5fa8269d..3a57fe4a 100644 --- a/lib/libalpm/util.h +++ b/lib/libalpm/util.h @@ -26,6 +26,7 @@ #define _ALPM_UTIL_H #include <stdio.h> +#include <stdarg.h> #include <libintl.h> /* here so it doesn't need to be included elsewhere */ #include <time.h> @@ -53,10 +54,14 @@ int _alpm_logaction(unsigned short usesyslog, FILE *f, const char *fmt, va_list int _alpm_ldconfig(const char *root); void _alpm_time2string(time_t t, char *buffer); int _alpm_str_cmp(const void *s1, const void *s2); +char *_alpm_filecache_find(const char *filename); +const char *_alpm_filecache_setup(void); -#ifdef __sun__ -char* strsep(char** str, const char* delims); -char* mkdtemp(char *template); +#ifndef HAVE_STRVERSCMP +static int strverscmp(const char *, const char *); +#endif +#ifndef HAVE_STRSEP +char *strsep(char **, const char *); #endif /* check exported library symbols with: nm -C -D <lib> */ diff --git a/lib/libalpm/versioncmp.c b/lib/libalpm/versioncmp.c deleted file mode 100644 index 79dfaac9..00000000 --- a/lib/libalpm/versioncmp.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * versioncmp.c - * - * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org> - * Copyright (c) 2005 by Aurelien Foret <orelien@chez.com> - * Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.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 - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - * USA. - */ - -#include "config.h" - -#include <stdlib.h> -#include <stdio.h> -#include <ctype.h> -#include <string.h> - -/* libalpm */ -#include "versioncmp.h" -#include "alpm_list.h" -#include "alpm.h" -#include "log.h" -#include "util.h" - -#ifndef HAVE_STRVERSCMP -/* GNU's strverscmp() function, taken from glibc 2.3.2 sources - */ - -/* Compare strings while treating digits characters numerically. - Copyright (C) 1997, 2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* states: S_N: normal, S_I: comparing integral part, S_F: comparing - fractionnal parts, S_Z: idem but with leading Zeroes only */ -#define S_N 0x0 -#define S_I 0x4 -#define S_F 0x8 -#define S_Z 0xC - -/* result_type: CMP: return diff; LEN: compare using len_diff/diff */ -#define CMP 2 -#define LEN 3 - -/* Compare S1 and S2 as strings holding indices/version numbers, - returning less than, equal to or greater than zero if S1 is less than, - equal to or greater than S2 (for more info, see the texinfo doc). -*/ - -static int strverscmp (s1, s2) - const char *s1; - const char *s2; -{ - const unsigned char *p1 = (const unsigned char *) s1; - const unsigned char *p2 = (const unsigned char *) s2; - unsigned char c1, c2; - int state; - int diff; - - /* Symbol(s) 0 [1-9] others (padding) - Transition (10) 0 (01) d (00) x (11) - */ - static const unsigned int next_state[] = - { - /* state x d 0 - */ - /* S_N */ S_N, S_I, S_Z, S_N, - /* S_I */ S_N, S_I, S_I, S_I, - /* S_F */ S_N, S_F, S_F, S_F, - /* S_Z */ S_N, S_F, S_Z, S_Z - }; - - static const int result_type[] = - { - /* state x/x x/d x/0 x/- d/x d/d d/0 d/- - 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */ - - /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, - CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, - /* S_I */ CMP, -1, -1, CMP, +1, LEN, LEN, CMP, - +1, LEN, LEN, CMP, CMP, CMP, CMP, CMP, - /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, - CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, - /* S_Z */ CMP, +1, +1, CMP, -1, CMP, CMP, CMP, - -1, CMP, CMP, CMP - }; - - if (p1 == p2) - return 0; - - c1 = *p1++; - c2 = *p2++; - /* Hint: '0' is a digit too. */ - state = S_N | ((c1 == '0') + (isdigit (c1) != 0)); - - while ((diff = c1 - c2) == 0 && c1 != '\0') - { - state = next_state[state]; - c1 = *p1++; - c2 = *p2++; - state |= (c1 == '0') + (isdigit (c1) != 0); - } - - state = result_type[state << 2 | (((c2 == '0') + (isdigit (c2) != 0)))]; - - switch (state) - { - case CMP: - return diff; - - case LEN: - while (isdigit (*p1++)) - if (!isdigit (*p2++)) - return 1; - - return isdigit (*p2) ? -1 : diff; - - default: - return state; - } -} - -#endif - -/* this function was taken from rpm 4.0.4 and rewritten */ -int _alpm_versioncmp(const char *a, const char *b) -{ - char str1[64], str2[64]; - char *ptr1, *ptr2; - char *one, *two; - char *rel1 = NULL, *rel2 = NULL; - char oldch1, oldch2; - int is1num, is2num; - int rc; - - ALPM_LOG_FUNC; - - if(!strcmp(a,b)) { - return(0); - } - - strncpy(str1, a, 64); - str1[63] = 0; - strncpy(str2, b, 64); - str2[63] = 0; - - /* lose the release number */ - for(one = str1; *one && *one != '-'; one++); - if(one) { - *one = '\0'; - rel1 = ++one; - } - for(two = str2; *two && *two != '-'; two++); - if(two) { - *two = '\0'; - rel2 = ++two; - } - - one = str1; - two = str2; - - while(*one || *two) { - while(*one && !isalnum((int)*one)) one++; - while(*two && !isalnum((int)*two)) two++; - - ptr1 = one; - ptr2 = two; - - /* find the next segment for each string */ - if(isdigit((int)*ptr1)) { - is1num = 1; - while(*ptr1 && isdigit((int)*ptr1)) ptr1++; - } else { - is1num = 0; - while(*ptr1 && isalpha((int)*ptr1)) ptr1++; - } - if(isdigit((int)*ptr2)) { - is2num = 1; - while(*ptr2 && isdigit((int)*ptr2)) ptr2++; - } else { - is2num = 0; - while(*ptr2 && isalpha((int)*ptr2)) ptr2++; - } - - oldch1 = *ptr1; - *ptr1 = '\0'; - oldch2 = *ptr2; - *ptr2 = '\0'; - - /* see if we ran out of segments on one string */ - if(one == ptr1 && two != ptr2) { - return(is2num ? -1 : 1); - } - if(one != ptr1 && two == ptr2) { - return(is1num ? 1 : -1); - } - - /* see if we have a type mismatch (ie, one is alpha and one is digits) */ - if(is1num && !is2num) return(1); - if(!is1num && is2num) return(-1); - - if(is1num) while(*one == '0') one++; - if(is2num) while(*two == '0') two++; - - rc = strverscmp(one, two); - if(rc) return(rc); - - *ptr1 = oldch1; - *ptr2 = oldch2; - one = ptr1; - two = ptr2; - } - - if((!*one) && (!*two)) { - /* compare release numbers */ - if(rel1 && rel2 && strlen(rel1) && strlen(rel2)) return(_alpm_versioncmp(rel1, rel2)); - return(0); - } - - return(*one ? 1 : -1); -} - -int SYMEXPORT alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep) -{ - int equal = 0; - - ALPM_LOG_FUNC; - - if(strcmp(pkg->name, dep->name) == 0 - || alpm_list_find_str(alpm_pkg_get_provides(pkg), dep->name)) { - if(dep->mod == PM_DEP_MOD_ANY) { - equal = 1; - } else { - int cmp = _alpm_versioncmp(alpm_pkg_get_version(pkg), dep->version); - switch(dep->mod) { - case PM_DEP_MOD_EQ: equal = (cmp == 0); break; - case PM_DEP_MOD_GE: equal = (cmp >= 0); break; - case PM_DEP_MOD_LE: equal = (cmp <= 0); break; - default: equal = 1; break; - } - } - - char *mod = "~="; - switch(dep->mod) { - case PM_DEP_MOD_EQ: mod = "=="; break; - case PM_DEP_MOD_GE: mod = ">="; break; - case PM_DEP_MOD_LE: mod = "<="; break; - default: break; - } - - if(strlen(dep->version) > 0) { - _alpm_log(PM_LOG_DEBUG, _("depcmp: %s-%s %s %s-%s => %s"), - alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg), - mod, dep->name, dep->version, - (equal ? "match" : "no match")); - } else { - _alpm_log(PM_LOG_DEBUG, _("depcmp: %s-%s %s %s => %s"), - alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg), - mod, dep->name, - (equal ? "match" : "no match")); - } - } - - return equal; -} - - -/* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/versioncmp.h b/lib/libalpm/versioncmp.h deleted file mode 100644 index 13a2d5a7..00000000 --- a/lib/libalpm/versioncmp.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * versioncmp.h - * - * Copyright (c) 2005 by Judd Vinet <jvinet@zeroflux.org> - * Copyright (c) 2005 by Aurelien Foret <orelien@chez.com> - * Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.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 - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - * USA. - */ -#ifndef _ALPM_VERSIONCMP_H -#define _ALPM_VERSIONCMP_H - -#include "deps.h" -#include "package.h" - -int _alpm_versioncmp(const char *a, const char *b); - -#endif /* _ALPM_VERSIONCMP_H */ - -/* vim: set ts=2 sw=2 noet: */ diff --git a/pactest/.gitignore b/pactest/.gitignore index 59a0622c..0d20b648 100644 --- a/pactest/.gitignore +++ b/pactest/.gitignore @@ -1,4 +1 @@ -Makefile -Makefile.in *.pyc -root diff --git a/pactest/pmdb.py b/pactest/pmdb.py index fb0e10bb..5d5104fb 100755 --- a/pactest/pmdb.py +++ b/pactest/pmdb.py @@ -218,7 +218,10 @@ class pmdb: """ """ - path = os.path.join(self.dbdir, self.treename, pkg.fullname()) + if self.treename == "local": + path = os.path.join(self.dbdir, self.treename, pkg.fullname()) + else: + path = os.path.join(self.dbdir, "sync", self.treename, pkg.fullname()) mkdir(path) # desc diff --git a/pactest/tests/conflict001.py b/pactest/tests/conflict001.py new file mode 100644 index 00000000..a9f3f6b3 --- /dev/null +++ b/pactest/tests/conflict001.py @@ -0,0 +1,19 @@ +self.description = "target vs db conflict will disappear after upgrade" + +sp1 = pmpkg("pkg1") +sp1.conflicts = ["imaginary"] +self.addpkg2db("sync", sp1); + +sp2 = pmpkg("pkg2", "1.0-2") +self.addpkg2db("sync", sp2) + +lp = pmpkg("pkg2", "1.0-1") +lp.provides = ["imaginary"] +self.addpkg2db("local", lp) + +self.args = "-S %s" % " ".join([p.name for p in sp1, sp2]) + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") +self.addrule("PKG_VERSION=pkg2|1.0-2") diff --git a/pactest/tests/conflict002.py b/pactest/tests/conflict002.py new file mode 100644 index 00000000..2e326f52 --- /dev/null +++ b/pactest/tests/conflict002.py @@ -0,0 +1,13 @@ +self.description = "conflict with version (conflict)" + +p = pmpkg("pkg1") +p.conflicts = ["pkg2<=1.0-2"] +self.addpkg(p); + +lp = pmpkg("pkg2", "1.0-1") +self.addpkg2db("local", lp) + +self.args = "-A %s" % p.filename() +self.addrule("PACMAN_RETCODE=1") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/conflict003.py b/pactest/tests/conflict003.py new file mode 100644 index 00000000..7205086a --- /dev/null +++ b/pactest/tests/conflict003.py @@ -0,0 +1,13 @@ +self.description = "conflict with version (no conflict)" + +p = pmpkg("pkg1") +p.conflicts = ["pkg2=1.0-2"] +self.addpkg(p); + +lp = pmpkg("pkg2", "1.0-1") +self.addpkg2db("local", lp) + +self.args = "-A %s" % p.filename() +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/conflict004.py b/pactest/tests/conflict004.py new file mode 100644 index 00000000..948017d9 --- /dev/null +++ b/pactest/tests/conflict004.py @@ -0,0 +1,15 @@ +self.description = "a package conflicts with itself" + +sp1 = pmpkg("pkg1") +sp1.conflicts = ["pkg1"] +self.addpkg2db("sync", sp1); + +sp2 = pmpkg("pkg2", "1.0-2") +self.addpkg2db("sync", sp2) + +self.args = "-S %s" % " ".join([p.name for p in sp1, sp2]) + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") +self.addrule("PKG_VERSION=pkg2|1.0-2") diff --git a/pactest/tests/remove044.py b/pactest/tests/remove044.py new file mode 100644 index 00000000..720c1fe7 --- /dev/null +++ b/pactest/tests/remove044.py @@ -0,0 +1,16 @@ +self.description = "-Rs test" + +lp1 = pmpkg("pkg1") +lp1.depends = ["pkg2=1.1-1"] +self.addpkg2db("local", lp1) + +lp2 = pmpkg("pkg2", "1.0-1") +lp2.reason = 1 +self.addpkg2db("local", lp2) + + +self.args = "-Rs %s" % lp1.name + +self.addrule("PACMAN_RETCODE=0") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/remove045.py b/pactest/tests/remove045.py new file mode 100644 index 00000000..d8b7845b --- /dev/null +++ b/pactest/tests/remove045.py @@ -0,0 +1,30 @@ +self.description = "-Rs advanced test" + +lp1 = pmpkg("pkg1") +lp1.depends = ["pkg2" , "pkg3"] +self.addpkg2db("local", lp1) + +lp2 = pmpkg("pkg2") +lp2.reason = 1 +lp2.depends = ["pkg4"] +lp2.requiredby = ["pkg1"] +self.addpkg2db("local", lp2) + +lp3 = pmpkg("pkg3") +lp3.reason = 1 +lp3.requiredby = ["pkg1", "pkg4"] +self.addpkg2db("local", lp3) + +lp4 = pmpkg("pkg4") +lp4.reason = 1 +lp4.depends = ["pkg3"] +lp4.requiredby = ["pkg2"] +self.addpkg2db("local", lp4) + +self.args = "-Rs %s" % lp1.name + +self.addrule("PACMAN_RETCODE=0") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("!PKG_EXIST=pkg2") +self.addrule("!PKG_EXIST=pkg3") +self.addrule("!PKG_EXIST=pkg4") diff --git a/pactest/tests/remove046.py b/pactest/tests/remove046.py new file mode 100644 index 00000000..1ee8be17 --- /dev/null +++ b/pactest/tests/remove046.py @@ -0,0 +1,10 @@ +self.description = "Cascade remove a package with a broken required by" + +lp1 = pmpkg("pkg1") +lp1.requiredby = [ "fake" ] +self.addpkg2db("local", lp1) + +self.args = "-Rc %s" % lp1.name + +self.addrule("PACMAN_RETCODE=0") +self.addrule("!PKG_EXIST=pkg1") diff --git a/pactest/tests/remove047.py b/pactest/tests/remove047.py new file mode 100644 index 00000000..9606c2e3 --- /dev/null +++ b/pactest/tests/remove047.py @@ -0,0 +1,25 @@ +self.description = "Remove a package required by other packages" + +lp1 = pmpkg("pkg1") +lp1.requiredby = ["pkg2", "pkg3", "pkg4"] +self.addpkg2db("local", lp1) + +lp2 = pmpkg("pkg2") +lp2.depends = ["pkg1"] +self.addpkg2db("local", lp2) + +lp3 = pmpkg("pkg3") +lp3.depends = ["pkg1"] +self.addpkg2db("local", lp3) + +lp4 = pmpkg("pkg4") +lp4.depends = ["pkg1"] +self.addpkg2db("local", lp4) + +self.args = "-R pkg1 pkg2" + +self.addrule("!PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") +self.addrule("PKG_EXIST=pkg3") +self.addrule("PKG_EXIST=pkg4") diff --git a/pactest/tests/sync011.py b/pactest/tests/sync011.py new file mode 100644 index 00000000..f5b1943a --- /dev/null +++ b/pactest/tests/sync011.py @@ -0,0 +1,20 @@ +self.description = "Install a package from a sync db with cascaded dependencies + provides" + +sp1 = pmpkg("dummy", "1.0-2") +sp1.depends = ["dep1", "dep2=1.0-2"] + +sp2 = pmpkg("dep1") +sp2.files = ["bin/dep1"] +sp2.provides = ["dep2"] + +sp3 = pmpkg("dep2", "1.0-2") + +for p in sp1, sp2, sp3: + self.addpkg2db("sync", p); + +self.args = "-S %s" % sp1.name + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_VERSION=dummy|1.0-2") +self.addrule("PKG_EXIST=dep1") +self.addrule("PKG_EXIST=dep2") diff --git a/pactest/tests/sync012.py b/pactest/tests/sync012.py new file mode 100644 index 00000000..3aaba376 --- /dev/null +++ b/pactest/tests/sync012.py @@ -0,0 +1,20 @@ +self.description = "Install packages from a sync db with circular dependencies" + +sp1 = pmpkg("pkg1") +sp1.depends = ["pkg2"] + +sp2 = pmpkg("pkg2") +sp2.depends = ["pkg3"] + +sp3 = pmpkg("pkg3") +sp3.depends = ["pkg1"] + +for p in sp1, sp2, sp3: + self.addpkg2db("sync", p); + +self.args = "-S %s" % sp1.name + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") +self.addrule("PKG_EXIST=pkg3") diff --git a/pactest/tests/sync022.py b/pactest/tests/sync022.py deleted file mode 100644 index c24a979f..00000000 --- a/pactest/tests/sync022.py +++ /dev/null @@ -1,22 +0,0 @@ -self.description = "Installs a group with two conflicting packages, one replacing the other" - -sp1 = pmpkg("pkg1") -sp1.groups = ["grp"] -self.addpkg2db("sync", sp1); - -sp2 = pmpkg("pkg2") -sp2.groups = ["grp"] -sp2.provides = ["pkg1"] -sp2.conflicts = ["pkg1"] -sp2.replaces = ["pkg1"] -self.addpkg2db("sync", sp2); - -lp1 = pmpkg("pkg2") -lp1.groups = ["grp"] -self.addpkg2db("local", lp1); - -self.args = "-S %s" % "grp" - -self.addrule("PACMAN_RETCODE=0") -self.addrule("PKG_EXIST=pkg2"); -self.addrule("!PKG_EXIST=pkg1"); diff --git a/pactest/tests/sync030.py b/pactest/tests/sync030.py new file mode 100644 index 00000000..1fd97500 --- /dev/null +++ b/pactest/tests/sync030.py @@ -0,0 +1,19 @@ +self.description = "Sync packages non-explicitly" + +lp1 = pmpkg("pkg1") +lp1.reason = 0 +self.addpkg2db("local", lp1) + +p1 = pmpkg("pkg1", "1.0-2") +p2 = pmpkg("pkg2", "1.0-2") + +for p in p1, p2: + self.addpkg2db("sync", p) + +self.args = "-S --asdeps %s" % " ".join([p.name for p in p1, p2]) + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_VERSION=pkg1|1.0-2") +self.addrule("PKG_VERSION=pkg2|1.0-2") +self.addrule("PKG_REASON=pkg1|1") +self.addrule("PKG_REASON=pkg2|1") diff --git a/pactest/tests/sync1002.py b/pactest/tests/sync1002.py new file mode 100644 index 00000000..c158838b --- /dev/null +++ b/pactest/tests/sync1002.py @@ -0,0 +1,19 @@ +self.description = "Test -Se (resolve the dependencies' dependencies )" + +sp1 = pmpkg("pkg1") +sp1.depends = [ "pkg2" ] +self.addpkg2db("sync", sp1) + +sp2 = pmpkg("pkg2") +sp2.depends = [ "pkg3" ] +self.addpkg2db("sync", sp2) + +sp3 = pmpkg("pkg3") +self.addpkg2db("sync", sp3) + +self.args = "-Se pkg1 pkg3" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg2") +self.addrule("PKG_EXIST=pkg3") +self.addrule("!PKG_EXIST=pkg1") diff --git a/pactest/tests/sync1003.py b/pactest/tests/sync1003.py new file mode 100644 index 00000000..3fd9799d --- /dev/null +++ b/pactest/tests/sync1003.py @@ -0,0 +1,26 @@ +self.description = "Induced removal would break dependency" + +sp1 = pmpkg("pkg1", "1.0-2") +sp1.replaces = [ "pkg2" ] +self.addpkg2db("sync", sp1) + +sp2 = pmpkg("pkg2", "1.0-2") +self.addpkg2db("sync", sp2) + +sp3 = pmpkg("pkg3", "1.0-2") +sp3.depends = ["pkg2=1.0-2"] +self.addpkg2db("sync", sp3) + +lp1 = pmpkg("pkg1", "1.0-1") +self.addpkg2db("local", lp1) + +lp2 = pmpkg("pkg2", "1.0-2") +self.addpkg2db("local", lp2) + +lp3 = pmpkg("pkg3", "1.0-1") +self.addpkg2db("local", lp3) + +self.args = "-Su" + +self.addrule("PACMAN_RETCODE=1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/sync400.py b/pactest/tests/sync400.py new file mode 100644 index 00000000..2ee1095d --- /dev/null +++ b/pactest/tests/sync400.py @@ -0,0 +1,25 @@ +self.description = "Install package with dep that conflicts with older version of package" + +sp1 = pmpkg("pkg1", "1.0-2") +sp1.depends = ["pkg2=1.0-2"] +self.addpkg2db("sync", sp1) + +sp2 = pmpkg("pkg2", "1.0-2") +sp2.conflicts = [ "pkg1=1.0-1" ] +self.addpkg2db("sync", sp2) + +lp1 = pmpkg("pkg1", "1.0-1") +lp1.depends = ["pkg2=1.0-1"] +self.addpkg2db("local", lp1) + +lp2 = pmpkg("pkg2", "1.0-1") +lp2.requiredby = [ "pkg1" ] +self.addpkg2db("local", lp2) + +self.args = "-S pkg1" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_VERSION=pkg1|1.0-2") +self.addrule("PKG_EXIST=pkg2") +self.addrule("PKG_VERSION=pkg2|1.0-2") diff --git a/pactest/tests/sync401.py b/pactest/tests/sync401.py new file mode 100644 index 00000000..eb816377 --- /dev/null +++ b/pactest/tests/sync401.py @@ -0,0 +1,21 @@ +self.description = "Ensure we choose provider already in target list" + +sp1 = pmpkg("pkg1") +sp1.depends = ["dep"] +self.addpkg2db("sync", sp1) + +sp2 = pmpkg("pkg2") +sp2.provides = ["dep"] +self.addpkg2db("sync", sp2) + +sp3 = pmpkg("pkg3") +sp3.conflicts = ["pkg2"] +sp3.provides = ["dep"] +self.addpkg2db("sync", sp3) + +self.args = "-S pkg1 pkg2" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") +self.addrule("!PKG_EXIST=pkg3") diff --git a/pactest/tests/sync402.py b/pactest/tests/sync402.py new file mode 100644 index 00000000..6d82f735 --- /dev/null +++ b/pactest/tests/sync402.py @@ -0,0 +1,21 @@ +self.description = "Choice between two providers (1)" + +sp1 = pmpkg("pkg1") +sp1.depends = ["dep"] +self.addpkg2db("sync", sp1) + +sp2 = pmpkg("pkg2") +sp2.provides = ["dep"] +self.addpkg2db("sync", sp2) + +sp3 = pmpkg("pkg3") +sp3.conflicts = ["pkg1"] +sp3.provides = ["dep"] +self.addpkg2db("sync", sp3) + +self.args = "-S pkg1" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") +self.addrule("!PKG_EXIST=pkg3") diff --git a/pactest/tests/sync403.py b/pactest/tests/sync403.py new file mode 100644 index 00000000..b8d01016 --- /dev/null +++ b/pactest/tests/sync403.py @@ -0,0 +1,21 @@ +self.description = "Choice between two providers (2)" + +sp1 = pmpkg("pkg1") +sp1.depends = ["dep"] +self.addpkg2db("sync", sp1) + +sp2 = pmpkg("pkg2") +sp2.conflicts = [ "pkg1" ] +sp2.provides = [ "dep" ] +self.addpkg2db("sync", sp2) + +sp3 = pmpkg("pkg3") +sp3.provides = [ "dep" ] +self.addpkg2db("sync", sp3) + +self.args = "-S pkg1" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("!PKG_EXIST=pkg2") +self.addrule("PKG_EXIST=pkg3") diff --git a/pactest/tests/upgrade031.py b/pactest/tests/upgrade031.py new file mode 100644 index 00000000..856de983 --- /dev/null +++ b/pactest/tests/upgrade031.py @@ -0,0 +1,19 @@ +self.description = "Install packages non-explicitly" + +lp1 = pmpkg("pkg1") +lp1.reason = 0 +self.addpkg2db("local", lp1) + +p1 = pmpkg("pkg1", "1.0-2") +p2 = pmpkg("pkg2", "1.0-2") + +for p in p1, p2: + self.addpkg(p) + +self.args = "-U --asdeps %s" % " ".join([p.filename() for p in p1, p2]) + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_VERSION=pkg1|1.0-2") +self.addrule("PKG_VERSION=pkg2|1.0-2") +self.addrule("PKG_REASON=pkg1|1") +self.addrule("PKG_REASON=pkg2|1") diff --git a/pactest/tests/upgrade056.py b/pactest/tests/upgrade056.py index 8419731c..b92c38ac 100644 --- a/pactest/tests/upgrade056.py +++ b/pactest/tests/upgrade056.py @@ -11,6 +11,7 @@ self.addpkg2db("local", lp2) lp3 = pmpkg("pkg3") lp3.provides = ["imaginary"] +lp3.requiredby = [ "pkg1" ] self.addpkg2db("local", lp3) p = pmpkg("pkg2", "1.0-2") diff --git a/po/.gitignore b/po/.gitignore index 50a7b2a4..3be83ffa 100644 --- a/po/.gitignore +++ b/po/.gitignore @@ -1,5 +1,3 @@ -Makefile -Makefile.in *.gmo POTFILES stamp-po @@ -11,7 +11,7 @@ msgstr "" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" "POT-Creation-Date: 2007-04-25 00:44-0400\n" "PO-Revision-Date: 2007-04-17 20:18+0200\n" -"Last-Translator: Pierre Schmitz <pierre@archlinux.de>\n" +"Last-Translator: Matthias Gorissen <matthias@archlinux.de>\n" "Language-Team: German <archlinux.de>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -296,27 +296,24 @@ msgid "No changelog available for '%s'.\n" msgstr "Kein Änderungsprotokoll für '%s' verfügbar.\n" #: src/pacman/pacman.c:94 -#, fuzzy msgid "options" -msgstr "Optionen:\n" +msgstr "Optionen" #: src/pacman/pacman.c:95 -#, fuzzy msgid "file" -msgstr "fehlgeschlagen.\n" +msgstr "Datei" #: src/pacman/pacman.c:96 msgid "package" -msgstr "" +msgstr "Paket" #: src/pacman/pacman.c:97 msgid "usage" -msgstr "" +msgstr "Verwendung" #: src/pacman/pacman.c:98 -#, fuzzy msgid "operation" -msgstr "Optionen:\n" +msgstr "Operation" #: src/pacman/pacman.c:111 #, c-format @@ -378,7 +375,7 @@ msgid " -c, --changelog view the changelog of a package\n" msgstr " -c, --changelog Das Änderungsprotokoll des Paketes anzeigen\n" #: src/pacman/pacman.c:140 -#, fuzzy, c-format +#, c-format msgid "" " -e, --orphans list all packages installed as dependencies but no " "longer\n" @@ -386,6 +383,7 @@ msgid "" msgstr "" " -e, --orphans Zeigt alle Pakete, die als Abhängigkeiten " "installiert\n" +" wurden, aber nicht mehr benötigt werden\n" #: src/pacman/pacman.c:142 src/pacman/pacman.c:157 #, c-format @@ -413,7 +411,7 @@ msgstr "" #: src/pacman/pacman.c:146 #, c-format msgid " -o, --owns <file> query the package that owns <file>\n" -msgstr " -o, --owns <Datei> Fragt das Paket ab, dass <Datei> enthält\n" +msgstr " -o, --owns <Datei> Fragt das Paket ab, das <Datei> enthält\n" #: src/pacman/pacman.c:147 #, c-format @@ -490,7 +488,7 @@ msgstr "" #, c-format msgid "" " -y, --refresh download fresh package databases from the server\n" -msgstr " -y, --refresh Lädt frische Paketdatenbank vom Server\n" +msgstr " -y, --refresh Lädt frische Paketdatenbanken vom Server\n" #: src/pacman/pacman.c:165 #, c-format @@ -527,11 +525,11 @@ msgstr "" " heruntergeladen werden\n" #: src/pacman/pacman.c:171 -#, fuzzy, c-format +#, c-format msgid "" " --noscriptlet do not execute the install scriptlet if one exists\n" msgstr "" -" --noscriptlet Installationskript nicht ausführen, falls vorhanden\n" +" --noscriptlet Installationsskript nicht ausführen, falls vorhanden\n" #: src/pacman/pacman.c:172 #, c-format @@ -553,14 +551,15 @@ msgstr " -b, --dbpath <Pfad> Setzt einen anderen Ort für die Datenbank\n" #: src/pacman/pacman.c:175 #, c-format msgid " --cachedir <dir> set an alternate package cache location\n" -msgstr " -b, --dbpath <Pfad> Setzt einen anderen Ort für den Paketpuffer\n" +msgstr " --cachedir <Pfad> Setzt einen anderen Ort für den Paketpuffer\n" #: src/pacman/pacman.c:189 -#, fuzzy, c-format +#, c-format msgid "" " This program may be freely redistributed under\n" " the terms of the GNU General Public License\n" msgstr " Dieses Programm ist frei verfügbar unter\n" +" den Bedingungen der GNU General Public License\n" #: src/pacman/pacman.c:340 #, c-format @@ -593,7 +592,7 @@ msgstr "Konnte alpm-Bibliothek nicht initialisieren (%s)\n" #: src/pacman/pacman.c:522 msgid "you cannot perform this operation unless you are root.\n" -msgstr "Sie benötigen root-Rechte, um diese Operation ausführen zu können\n" +msgstr "Sie benötigen root-Rechte, um diese Operation auszuführen.\n" #: src/pacman/pacman.c:538 #, c-format @@ -763,7 +762,7 @@ msgstr " %s ist aktuell\n" #: src/pacman/sync.c:345 #, c-format msgid "repository '%s' does not exist\n" -msgstr "Repositorium '%s' wurde nicht gefunden.\n" +msgstr "Repositorium '%s' existiert nicht.\n" #: src/pacman/sync.c:361 #, c-format @@ -1006,7 +1005,7 @@ msgid "" "Total Removed Size: %.2f MB\n" msgstr "" "\n" -"Gesamtgröße der zu entfernenden Pakete : %.2f MB\n" +"Gesamtgröße der zu entfernenden Pakete: %.2f MB\n" #: src/pacman/util.c:330 #, c-format @@ -1015,66 +1014,10 @@ msgid "" "Total Package Size: %.2f MB\n" msgstr "" "\n" -"Gesamte Paketgröße : %.2f MB\n" +"Gesamte Paketgröße: %.2f MB\n" #: src/pacman/util.c:337 #, c-format msgid "Total Installed Size: %.2f MB\n" -msgstr "Gesamtgröße der installierten Pakete : %.2f MB\n" - -#~ msgid "usage: %s {-h --help}\n" -#~ msgstr "Verwendung: %s {-h --help}\n" - -#~ msgid " %s {-V --version}\n" -#~ msgstr " %s {-V --version}\n" - -#~ msgid " %s {-A --add} [options] <file>\n" -#~ msgstr " %s {-A --add} [Optionen] <Datei>\n" - -#~ msgid " %s {-F --freshen} [options] <file>\n" -#~ msgstr " %s {-F --freshen} [Optionen] <Datei>\n" - -#~ msgid " %s {-Q --query} [options] [package]\n" -#~ msgstr " %s {-Q --query} [Optionen] [Paket]\n" - -#~ msgid " %s {-R --remove} [options] <package>\n" -#~ msgstr " %s {-R --remove} [Optionen] <Paket>\n" - -#~ msgid " %s {-S --sync} [options] [package]\n" -#~ msgstr " %s {-S --sync} [Optionen] [Paket]\n" - -#~ msgid " %s {-U --upgrade} [options] <file>\n" -#~ msgstr " %s {-U --upgrade} [Optionen] <Datei>\n" - -#~ msgid "usage: %s {-A --add} [options] <file>\n" -#~ msgstr "Verwendung: %s {-A -add} [Optionen] <Datei>\n" - -#~ msgid "usage: %s {-F --freshen} [options] <file>\n" -#~ msgstr "Verwendung: %s {-F --freshen} [Optionen] <Datei>\n" - -#~ msgid "usage: %s {-U --upgrade} [options] <file>\n" -#~ msgstr "Verwendung: %s {-U --upgrade} [Optionen] <Datei>\n" - -#~ msgid "usage: %s {-Q --query} [options] [package]\n" -#~ msgstr "Verwendung: %s {-Q --query} [Optionen] [Pakete]\n" - -#~ msgid " required by any package\n" -#~ msgstr " wurden, aber nicht mehr benötigt werden\n" - -#~ msgid "usage: %s {-S --sync} [options] [package]\n" -#~ msgstr "Benutzung: %s {-S --sync} [Optionen] [Paket]\n" - -#~ msgid " the terms of the GNU General Public License\n" -#~ msgstr "" -#~ " den Bedingungen der GNU General Public License\n" - -#~ msgid "warning: current locale is invalid; using default \"C\" locale" -#~ msgstr "" -#~ "Warnung: Die Standard-Ortseinstellung ist ungültig; verwende Standard-\"C" -#~ "\"-Ortseinstellung" - -#~ msgid "requires: %s" -#~ msgstr "Erfordert: %s" +msgstr "Gesamtgröße der installierten Pakete: %.2f MB\n" -#~ msgid "'%s': %s\n" -#~ msgstr "'%s':%s\n" @@ -4,13 +4,12 @@ # This file is distributed under the same license as the Pacman package manager package. # # Juan Pablo González Tognarelli <lord_jotape@yahoo.com.ar>, 2007. -# Juan Pablo González Tognarelli <jotapesan@gmail.com>, 2007. msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" "POT-Creation-Date: 2007-04-25 00:44-0400\n" -"PO-Revision-Date: 2007-05-11 22:38-0400\n" +"PO-Revision-Date: 2007-07-23 00:22-0400\n" "Last-Translator: Juan Pablo González Tognarelli <jotapesan@gmail.com>\n" "Language-Team: <es@li.org>\n" "MIME-Version: 1.0\n" @@ -69,7 +68,7 @@ msgstr ":: %s: necesita %s" #: src/pacman/sync.c:643 #, c-format msgid ":: %s: conflicts with %s" -msgstr ":: %s: tiene conflictos con %s" +msgstr ":: %s: posee conflictos con %s" #: src/pacman/add.c:134 #: src/pacman/sync.c:707 @@ -87,7 +86,7 @@ msgstr "%s: %s existe en el sistema de archivos\n" #: src/pacman/sync.c:719 #: src/pacman/sync.c:725 msgid "errors occurred, no packages were upgraded.\n" -msgstr "ocurrieron errores, los paquetes no fueron actualizados\n" +msgstr "ocurrieron errores, no se actualizaron paquetes\n" #: src/pacman/package.c:74 #: src/pacman/package.c:129 @@ -220,7 +219,7 @@ msgstr "error calculando la verificación para %s\n" #: src/pacman/package.c:194 #, c-format msgid "MODIFIED\t%s\n" -msgstr "MODIFICADOt%s\n" +msgstr "MODIFICADO\t%s\n" #: src/pacman/package.c:196 #, c-format @@ -277,7 +276,7 @@ msgstr "" #: src/pacman/pacman.c:154 #, c-format msgid " -d, --nodeps skip dependency checks\n" -msgstr " -d, --nodeps se salta la verificación de dependencias \n" +msgstr " -d, --nodeps salta la verificación de dependencias \n" #: src/pacman/pacman.c:117 #: src/pacman/pacman.c:135 @@ -493,7 +492,7 @@ msgstr "sólo una operación puede utilizarse a la vez\n" #: src/pacman/pacman.c:489 #, c-format msgid "failed to initialize alpm library (%s)\n" -msgstr "falló al iniciar la libreria alpm (%s)\n" +msgstr "falló al iniciar la librería alpm (%s)\n" #: src/pacman/pacman.c:522 msgid "you cannot perform this operation unless you are root.\n" @@ -556,7 +555,7 @@ msgstr "no se encontraron repositorios útiles configurados.\n" #: src/pacman/query.c:176 msgid "Checking for package upgrades..." -msgstr "Verificando actualizaciones de paquetes..." +msgstr "Verificando existencia de actualizaciones de paquetes..." #: src/pacman/query.c:183 msgid "no upgrades found" @@ -617,7 +616,7 @@ msgstr ":: %s es requerido por %s\n" #: src/pacman/remove.c:128 #: src/pacman/util.c:324 msgid "Targets:" -msgstr "A instalar:" +msgstr "Se procesará:" #: src/pacman/remove.c:131 msgid "" @@ -637,7 +636,7 @@ msgstr "quitando paquetes antiguos de la cache..." #: src/pacman/sync.c:120 msgid "could not access cache directory\n" -msgstr "no se pudo acceder al directorio de la cache de paquetes\n" +msgstr "no se pudo acceder al directorio de la cache\n" #: src/pacman/sync.c:181 msgid "Do you want to remove all packages from cache? [Y/n] " @@ -787,7 +786,7 @@ msgstr "comprobando dependencias... " #: src/pacman/trans.c:59 msgid "checking for file conflicts... " -msgstr "verificando si existen conflictos entre archivos... " +msgstr "verificando existencia de conflictos entre archivos... " #: src/pacman/trans.c:63 msgid "cleaning up... " @@ -852,7 +851,7 @@ msgstr ":: %1$s requiere %2$s que en los paquetes a ignorar (IgnorePkg). ¿Insta #: src/pacman/trans.c:177 #, c-format msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] " -msgstr ":: %s está en la lista a ignorar. ¿Instalar de todas formas? [Y/n] " +msgstr ":: %s está en IgnorePkg. ¿Instalar de todas formas? [Y/n] " #: src/pacman/trans.c:190 #, c-format @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: hu\n" "Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n" -"POT-Creation-Date: 2007-04-25 00:44-0400\n" +"POT-Creation-Date: 2007-08-28 19:49+0200\n" "PO-Revision-Date: 2006-09-03 13:52+0200\n" "Last-Translator: Nagy Gabor <ngaba@petra.hos.u-szeged.hu>\n" "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" @@ -16,57 +16,74 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482 -#: src/pacman/sync.c:531 +#: src/pacman/add.c:44 src/pacman/remove.c:46 +#, c-format +msgid "failed to release transaction (%s)\n" +msgstr "nem sikerlt lezrni a tranzakcit (%s)\n" + +#: src/pacman/add.c:81 src/pacman/query.c:371 src/pacman/remove.c:67 +#: src/pacman/sync.c:493 +msgid "no targets specified (use -h for help)\n" +msgstr "nincs megadva egyetlen cl sem (hasznlja a '-h'-t segtsgrt)\n" + +#: src/pacman/add.c:108 src/pacman/sync.c:525 +#, c-format +msgid "error: %s\n" +msgstr "hiba: %s\n" + +#: src/pacman/add.c:111 src/pacman/remove.c:102 src/pacman/sync.c:503 #, c-format msgid "" -" if you're sure a package manager is not already running,\n" -" you can remove %s%s\n" +" if you're sure a package manager is not already\n" +" running, you can remove %s.\n" msgstr "" -" ha biztos, hogy nem fut egy csomagkezel, abban az esetben\n" -" eltvolthatja a %s%s fjlt\n" +" ha biztos benne, hogy nem fut msik csomagkezel, akkor\n" +" eltvolthatja a %s fjlt.\n" -#: src/pacman/add.c:79 +#: src/pacman/add.c:118 src/pacman/remove.c:110 +#, c-format msgid "loading package data... " msgstr "csomag adatainak betltse... " -#: src/pacman/add.c:83 +#: src/pacman/add.c:122 #, c-format -msgid "failed to add target '%s' (%s)" -msgstr "nem sikerlt a(z) '%s' clt hozzadni a tranzakcihoz (%s)" +msgid "error: failed to add target '%s' (%s)" +msgstr "hiba: nem sikerlt a(z) '%s' clt hozzadni (%s)" -#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73 -#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105 -#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142 +#: src/pacman/add.c:128 src/pacman/callback.c:180 src/pacman/callback.c:186 +#: src/pacman/callback.c:197 src/pacman/callback.c:211 +#: src/pacman/callback.c:225 src/pacman/callback.c:237 src/pacman/sync.c:182 +#, c-format msgid "done.\n" msgstr "ksz.\n" -#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616 +#: src/pacman/add.c:133 src/pacman/remove.c:125 src/pacman/sync.c:648 #, c-format -msgid "failed to prepare transaction (%s)\n" -msgstr "nem sikerlt elkszteni a tranzakcit (%s)\n" +msgid "error: failed to prepare transaction (%s)\n" +msgstr "hiba: nem sikerlt elkszteni a tranzakcit (%s)\n" -#: src/pacman/add.c:104 +#: src/pacman/add.c:144 src/pacman/remove.c:132 src/pacman/sync.c:656 #, c-format -msgid ":: %s: requires %s" -msgstr ":: %s: ignyli a kvetkezt: %s" +msgid ":: %s: requires %s\n" +msgstr ":: %s: ignyli a kvetkezt: %s\n" -#: src/pacman/add.c:125 src/pacman/sync.c:643 +#: src/pacman/add.c:166 src/pacman/sync.c:678 #, c-format msgid ":: %s: conflicts with %s" msgstr ":: %s: tkzik a kvetkezvel: %s" -#: src/pacman/add.c:134 src/pacman/sync.c:707 +#: src/pacman/add.c:175 src/pacman/sync.c:733 #, c-format msgid "%s exists in both '%s' and '%s'\n" msgstr "%s ltezik ebben: '%s' s ebben: '%s'\n" -#: src/pacman/add.c:140 src/pacman/sync.c:713 +#: src/pacman/add.c:181 src/pacman/sync.c:739 #, c-format msgid "%s: %s exists in filesystem\n" msgstr "%s: %s ltezik a fjlrendszerben\n" -#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725 +#: src/pacman/add.c:187 +#, c-format msgid "" "\n" "errors occurred, no packages were upgraded.\n" @@ -74,248 +91,285 @@ msgstr "" "\n" "hibk lptek fel, nem frisslt csomag.\n" -#: src/pacman/add.c:156 src/pacman/sync.c:650 +#: src/pacman/add.c:200 src/pacman/remove.c:169 src/pacman/sync.c:724 #, c-format -msgid ":: %.1f MB required, have %.1f MB" -msgstr ":: %.1f MB szksges, %.1f MB ll rendelkezsre" +msgid "error: failed to commit transaction (%s)\n" +msgstr "hiba: nem sikerlt vgrehajtani a tranzakcit (%s)\n" -#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700 +#: src/pacman/callback.c:165 #, c-format -msgid "failed to commit transaction (%s)\n" -msgstr "nem sikerlt vgrehajtani a tranzakcit (%s)\n" +msgid "checking dependencies... " +msgstr "fggsgek vizsglata... " -#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524 -#: src/pacman/sync.c:741 +#: src/pacman/callback.c:169 #, c-format -msgid "failed to release transaction (%s)\n" -msgstr "nem sikerlt lezrni a tranzakcit (%s)\n" +msgid "checking for file conflicts... " +msgstr "fjltkzsek vizsglata... " -#: src/pacman/log.c:63 +#: src/pacman/callback.c:173 #, c-format -msgid "debug" -msgstr "hibakeress" +msgid "resolving dependencies... " +msgstr "fggsgek feloldsa... " -#: src/pacman/log.c:66 +#: src/pacman/callback.c:176 #, c-format -msgid "error" -msgstr "hiba" +msgid "looking for inter-conflicts... " +msgstr "bels tkzsek keresse... " -#: src/pacman/log.c:69 +#: src/pacman/callback.c:192 #, c-format -msgid "warning" -msgstr "figyelmeztets" +msgid "installing %s... " +msgstr "%s teleptse... " -#: src/pacman/log.c:75 +#: src/pacman/callback.c:206 #, c-format -msgid "function" -msgstr "fggvny" +msgid "removing %s... " +msgstr "%s eltvoltsa... " -#: src/pacman/log.c:194 -msgid "Y" -msgstr "I" +#: src/pacman/callback.c:220 +#, c-format +msgid "upgrading %s... " +msgstr "%s frisstse... " -#: src/pacman/log.c:194 -msgid "YES" -msgstr "IGEN" +#: src/pacman/callback.c:234 +#, c-format +msgid "checking package integrity... " +msgstr "csomagok integritsnak ellenrzse... " -#: src/pacman/log.h:30 -msgid "error: " -msgstr "hiba: " +#: src/pacman/callback.c:243 +#, c-format +msgid ":: Retrieving packages from %s...\n" +msgstr ":: Csomagok letltse a(z) %s repbl...\n" -#: src/pacman/log.h:34 -msgid "warning: " -msgstr "figyelmeztets: " +#: src/pacman/callback.c:266 +#, c-format +msgid ":: %s requires installing %s from IgnorePkg. Install anyway? [Y/n] " +msgstr ":: %s ignyli %s teleptst az IgnorePkg-bl. Mgis telepti? [I/n] " -#: src/pacman/package.c:60 +#: src/pacman/callback.c:271 +#, c-format +msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] " +msgstr ":: %s az IgnorePkg rsze. Mgis telepti? [I/n] " + +#: src/pacman/callback.c:284 +#, c-format +msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] " +msgstr ":: %s HoldPkgnak lett jellve. Biztosan eltvoltja? [I/n] " + +#: src/pacman/callback.c:297 +#, c-format +msgid ":: Replace %s with %s/%s? [Y/n] " +msgstr ":: Lecserli %s-t erre: %s/%s? [I/n] " + +#: src/pacman/callback.c:312 +#, c-format +msgid ":: %s conflicts with %s. Remove %s? [Y/n] " +msgstr ":: %s tkzik a kvetkezvel: %s. Eltvoltja a %s-t? [I/n] " + +#: src/pacman/callback.c:328 +#, c-format +msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] " +msgstr ":: %s-%s: a helyi verzi jabb. Mgis frissti? [I/n] " + +#: src/pacman/callback.c:346 +#, c-format +msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] " +msgstr ":: %s-%s: a helyi verzi napraksz. Mgis frissti? [I/n] " + +#: src/pacman/callback.c:364 +#, c-format +msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] " +msgstr ":: %s srlt. Kvnja trlni? [I/n] " + +#: src/pacman/callback.c:415 +msgid "installing" +msgstr "telepts:" + +#: src/pacman/callback.c:418 +msgid "upgrading" +msgstr "frissts:" + +#: src/pacman/callback.c:421 +msgid "removing" +msgstr "eltvolts:" + +#: src/pacman/callback.c:424 +msgid "checking for file conflicts" +msgstr "fjltkzsek vizsglata" + +#: src/pacman/package.c:58 msgid "Explicitly installed" msgstr "Kzzel teleptve" -#: src/pacman/package.c:63 +#: src/pacman/package.c:61 msgid "Installed as a dependency for another package" msgstr "Egy msik csomag fggsgeknt lett teleptve" -#: src/pacman/package.c:66 src/pacman/package.c:91 +#: src/pacman/package.c:64 msgid "Unknown" msgstr "Ismeretlen" -#: src/pacman/package.c:70 src/pacman/package.c:122 +#: src/pacman/package.c:68 src/pacman/package.c:118 msgid "Description : " msgstr "Lers : " -#: src/pacman/package.c:73 src/pacman/package.c:128 +#: src/pacman/package.c:71 src/pacman/package.c:123 #, c-format msgid "Name : %s\n" msgstr "Nv : %s\n" -#: src/pacman/package.c:74 src/pacman/package.c:129 +#: src/pacman/package.c:72 src/pacman/package.c:124 #, c-format msgid "Version : %s\n" msgstr "Verzi : %s\n" -#: src/pacman/package.c:75 +#: src/pacman/package.c:73 #, c-format msgid "URL : %s\n" msgstr "URL : %s\n" -#: src/pacman/package.c:76 +#: src/pacman/package.c:74 msgid "License :" msgstr "Licenc :" -#: src/pacman/package.c:77 src/pacman/package.c:130 +#: src/pacman/package.c:75 src/pacman/package.c:125 msgid "Groups :" msgstr "Csoportok :" -#: src/pacman/package.c:78 src/pacman/package.c:131 +#: src/pacman/package.c:76 src/pacman/package.c:126 msgid "Provides :" msgstr "Szolgltatja :" -#: src/pacman/package.c:79 src/pacman/package.c:132 +#: src/pacman/package.c:77 src/pacman/package.c:127 msgid "Depends On :" msgstr "Fgg :" -#: src/pacman/package.c:80 src/pacman/package.c:133 -msgid "Removes :" -msgstr "Eltvoltja :" - -#: src/pacman/package.c:83 +#: src/pacman/package.c:80 msgid "Required By :" msgstr "Ignyli :" -#: src/pacman/package.c:85 src/pacman/package.c:134 +#: src/pacman/package.c:82 src/pacman/package.c:128 msgid "Conflicts With :" msgstr "tkzik :" -#: src/pacman/package.c:86 src/pacman/package.c:135 +#: src/pacman/package.c:83 src/pacman/package.c:129 msgid "Replaces :" msgstr "Lecserli :" -#: src/pacman/package.c:87 src/pacman/package.c:137 +#: src/pacman/package.c:84 src/pacman/package.c:131 #, c-format msgid "Installed Size : %6.2f K\n" msgstr "Helyfoglals : %6.2f K\n" -#: src/pacman/package.c:88 +#: src/pacman/package.c:85 #, c-format msgid "Packager : %s\n" msgstr "Csomagol : %s\n" -#: src/pacman/package.c:89 +#: src/pacman/package.c:86 #, c-format msgid "Architecture : %s\n" msgstr "Architektra : %s\n" -#: src/pacman/package.c:90 +#: src/pacman/package.c:87 #, c-format msgid "Build Date : %s %s\n" msgstr "Fordts ideje : %s %s\n" -#: src/pacman/package.c:91 -#, c-format -msgid "Build Type : %s\n" -msgstr "Fordts Tpusa : %s\n" - -#: src/pacman/package.c:93 +#: src/pacman/package.c:89 #, c-format msgid "Install Date : %s %s\n" msgstr "Telepts ideje : %s %s\n" -#: src/pacman/package.c:94 +#: src/pacman/package.c:90 #, c-format msgid "Install Reason : %s\n" msgstr "Telepts oka : %s\n" -#: src/pacman/package.c:96 +#: src/pacman/package.c:92 #, c-format msgid "Install Script : %s\n" msgstr "Telept szkript: %s\n" -#: src/pacman/package.c:97 +#: src/pacman/package.c:93 msgid "Yes" msgstr "Igen" -#: src/pacman/package.c:97 +#: src/pacman/package.c:93 msgid "No" msgstr "Nem" -#: src/pacman/package.c:127 +#: src/pacman/package.c:122 #, c-format msgid "Repository : %s\n" msgstr "Rep : %s\n" -#: src/pacman/package.c:136 +#: src/pacman/package.c:130 #, c-format msgid "Download Size : %6.2f K\n" msgstr "Tmrtett mret: %6.2f K\n" -#: src/pacman/package.c:145 +#: src/pacman/package.c:139 #, c-format msgid "MD5 Sum : %s" msgstr "MD5 Sum : %s" -#: src/pacman/package.c:148 -#, c-format -msgid "SHA1 Sum : %s" -msgstr "SHA1 Sum : %s" - -#: src/pacman/package.c:159 +#: src/pacman/package.c:150 #, c-format msgid "Backup Files:\n" msgstr "Backup fjlok:\n" -#: src/pacman/package.c:181 +#: src/pacman/package.c:170 #, c-format -msgid "error calculating checksums for %s\n" -msgstr "hiba a(z) %s ellenrz sszegnek szmtsa kzben\n" +msgid "error: could not calculate checksums for %s\n" +msgstr "hiba: nem sikerlt a(z) %s ellenrz sszegnek szmtsa\n" -#: src/pacman/package.c:194 +#: src/pacman/package.c:178 #, c-format msgid "MODIFIED\t%s\n" msgstr "MDOSTVA\t%s\n" -#: src/pacman/package.c:196 +#: src/pacman/package.c:180 #, c-format msgid "Not Modified\t%s\n" msgstr "Nem mdostva\t%s\n" -#: src/pacman/package.c:201 +#: src/pacman/package.c:184 #, c-format msgid "MISSING\t\t%s\n" msgstr "HINYZIK\t\t%s\n" -#: src/pacman/package.c:207 +#: src/pacman/package.c:190 #, c-format msgid "(none)\n" msgstr "(nincs)\n" -#: src/pacman/package.c:247 +#: src/pacman/package.c:234 #, c-format -msgid "No changelog available for '%s'.\n" -msgstr "Nem ll rendelkezsre vltozsi napl a(z) '%s' csomaghoz.\n" +msgid "error: no changelog available for '%s'.\n" +msgstr "hiba: nem ll rendelkezsre vltozsi napl a(z) '%s' csomaghoz.\n" -#: src/pacman/pacman.c:94 -#, fuzzy +#: src/pacman/pacman.c:65 msgid "options" -msgstr "opcik:\n" +msgstr "opcik" -#: src/pacman/pacman.c:95 -#, fuzzy +#: src/pacman/pacman.c:66 msgid "file" -msgstr "sikertelen.\n" +msgstr "fjl" -#: src/pacman/pacman.c:96 +#: src/pacman/pacman.c:67 msgid "package" -msgstr "" +msgstr "csomag" -#: src/pacman/pacman.c:97 +#: src/pacman/pacman.c:68 msgid "usage" -msgstr "" +msgstr "hasznlat" -#: src/pacman/pacman.c:98 -#, fuzzy +#: src/pacman/pacman.c:69 msgid "operation" -msgstr "opcik:\n" +msgstr "mvelet" -#: src/pacman/pacman.c:111 +#: src/pacman/pacman.c:82 #, c-format msgid "" "\n" @@ -324,43 +378,48 @@ msgstr "" "\n" "hasznlja a '%s --help'-et ms opcikkal tovbbi szintaxishoz\n" -#: src/pacman/pacman.c:116 src/pacman/pacman.c:123 src/pacman/pacman.c:134 -#: src/pacman/pacman.c:154 +#: src/pacman/pacman.c:87 src/pacman/pacman.c:106 src/pacman/pacman.c:128 +#, c-format +msgid " --asdeps install packages as non-explicitly installed\n" +msgstr " --asdeps a csomagok fggsgknt val teleptse\n" + +#: src/pacman/pacman.c:88 src/pacman/pacman.c:95 src/pacman/pacman.c:107 +#: src/pacman/pacman.c:130 #, c-format msgid " -d, --nodeps skip dependency checks\n" msgstr " -d, --nodeps fggsgi ellenrzsek kihagysa\n" -#: src/pacman/pacman.c:117 src/pacman/pacman.c:135 src/pacman/pacman.c:156 +#: src/pacman/pacman.c:89 src/pacman/pacman.c:108 src/pacman/pacman.c:132 #, c-format msgid " -f, --force force install, overwrite conflicting files\n" msgstr "" " -f, --force a telepts erltetse, tkz fjlok fellrsa\n" -#: src/pacman/pacman.c:120 +#: src/pacman/pacman.c:92 #, c-format msgid "usage: %s {-R --remove} [options] <package>\n" msgstr "hasznlat: %s {-R --remove} [opcik] <csomag>\n" -#: src/pacman/pacman.c:122 +#: src/pacman/pacman.c:94 #, c-format msgid "" " -c, --cascade remove packages and all packages that depend on them\n" msgstr "" " -c, --cascade a csomagok s az ket ignyl csomagok eltvoltsa\n" -#: src/pacman/pacman.c:124 +#: src/pacman/pacman.c:96 #, c-format msgid "" " -k, --dbonly only remove database entry, do not remove files\n" msgstr "" " -k, --dbonly csak az adatbzis-bejegyzst trlje, a fjlokat ne\n" -#: src/pacman/pacman.c:125 +#: src/pacman/pacman.c:97 #, c-format msgid " -n, --nosave remove configuration files as well\n" msgstr " -n, --nosave a belltsi fjlokat is trlje\n" -#: src/pacman/pacman.c:126 +#: src/pacman/pacman.c:98 #, c-format msgid "" " -s, --recursive remove dependencies also (that won't break packages)\n" @@ -368,37 +427,37 @@ msgstr "" " -s, --recursive a fggsgeket is tvoltsa el (melyeknl ez " "biztonsgos)\n" -#: src/pacman/pacman.c:139 +#: src/pacman/pacman.c:112 #, c-format msgid " -c, --changelog view the changelog of a package\n" msgstr " -c, --changelog a vltozsok napljnak megtekintse\n" -#: src/pacman/pacman.c:140 -#, fuzzy, c-format -msgid "" -" -e, --orphans list all packages installed as dependencies but no " -"longer\n" -" required by any package\n" -msgstr "" -" -e, --orphans azon csomagok listzsa, amelyek fggsgknt " -"kerltek\n" +#: src/pacman/pacman.c:113 +#, c-format +msgid " -d, --deps list all packages installed as dependencies\n" +msgstr " -u, --upgrades az sszes frissthet csomag listzsa\n" -#: src/pacman/pacman.c:142 src/pacman/pacman.c:157 +#: src/pacman/pacman.c:114 +#, c-format +msgid " -e, --explicit list all packages explicitly installed\n" +msgstr " -e, --explicit az sszes kzzel teleptett csomag listzsa\n" + +#: src/pacman/pacman.c:115 src/pacman/pacman.c:133 #, c-format msgid " -g, --groups view all members of a package group\n" msgstr " -g, --groups egy csoport sszes tagjnak megtekintse\n" -#: src/pacman/pacman.c:143 src/pacman/pacman.c:158 +#: src/pacman/pacman.c:116 src/pacman/pacman.c:134 #, c-format msgid " -i, --info view package information\n" msgstr " -i, --info csomaginformcik megtekintse\n" -#: src/pacman/pacman.c:144 +#: src/pacman/pacman.c:117 #, c-format msgid " -l, --list list the contents of the queried package\n" msgstr " -l, --list a lekrdezett csomag tartalmnak listzsa\n" -#: src/pacman/pacman.c:145 +#: src/pacman/pacman.c:118 #, c-format msgid "" " -m, --foreign list installed packages not found in sync db(s)\n" @@ -406,31 +465,45 @@ msgstr "" " -m, --foreign a tvoli repkban nem tallt teleptett csomagok " "listja\n" -#: src/pacman/pacman.c:146 +#: src/pacman/pacman.c:119 #, c-format msgid " -o, --owns <file> query the package that owns <file>\n" msgstr " -o, --owns <fjl> a <fjl>-t tartalmaz csomag lekrdezse\n" -#: src/pacman/pacman.c:147 +#: src/pacman/pacman.c:120 #, c-format msgid " -p, --file <package> query a package file instead of the database\n" msgstr "" " -p, --file <csomag> a <csomag> csomagfjl lekrdezse az adatbzis " "helyett\n" -#: src/pacman/pacman.c:148 +#: src/pacman/pacman.c:121 #, c-format msgid "" " -s, --search <regex> search locally-installed packages for matching " "strings\n" msgstr " -s, --search <regex> keress a teleptett csomagok kztt\n" -#: src/pacman/pacman.c:149 +#: src/pacman/pacman.c:122 +#, c-format +msgid " -t, --orphans list all packages not required by any package\n" +msgstr "" +" -t, --orphans azon csomagok listzsa, amelyek fggsgknt " +"kerltek\n" +" teleptsre, de most mr nem ignyli ket ms csomag\n" + +#: src/pacman/pacman.c:123 #, c-format msgid " -u, --upgrades list all packages that can be upgraded\n" msgstr " -u, --upgrades az sszes frissthet csomag listzsa\n" -#: src/pacman/pacman.c:153 +#: src/pacman/pacman.c:124 +#, c-format +msgid " --test check the consistency of the local database\n" +msgstr "" +" --test a helyi adatbzis konzisztencijnak ellenrzse\n" + +#: src/pacman/pacman.c:129 #, c-format msgid "" " -c, --clean remove old packages from cache directory (-cc for " @@ -439,17 +512,17 @@ msgstr "" " -c, --clean a rgi csomagok trlse a gyorsttrknyvtrbl\n" " (hasznlja a '-cc'-t az sszeshez)\n" -#: src/pacman/pacman.c:155 +#: src/pacman/pacman.c:131 #, c-format msgid " -e, --dependsonly install dependencies only\n" msgstr " -e, --dependsonly csak a fggsgek teleptse\n" -#: src/pacman/pacman.c:159 +#: src/pacman/pacman.c:135 #, c-format msgid " -l, --list <repo> view a list of packages in a repo\n" msgstr " -l, --list <rep> egy rep csomagjainak listzsa\n" -#: src/pacman/pacman.c:160 +#: src/pacman/pacman.c:136 #, c-format msgid "" " -p, --print-uris print out URIs for given packages and their " @@ -457,31 +530,31 @@ msgid "" msgstr "" " -p, --print-uris listzza az adott csomagok s fggsgeik URI-jait\n" -#: src/pacman/pacman.c:161 +#: src/pacman/pacman.c:137 #, c-format msgid "" " -s, --search <regex> search remote repositories for matching strings\n" msgstr " -s, --search <regex> keress a tvoli csomagadatbzisokban\n" -#: src/pacman/pacman.c:162 +#: src/pacman/pacman.c:138 #, c-format msgid " -u, --sysupgrade upgrade all packages that are out of date\n" msgstr " -u, --sysupgrade az sszes elavult csomag frisstse\n" -#: src/pacman/pacman.c:163 +#: src/pacman/pacman.c:139 #, c-format msgid "" " -w, --downloadonly download packages but do not install/upgrade " "anything\n" msgstr " -w, --downloadonly csak letlts, de semmit nem telept/frisst\n" -#: src/pacman/pacman.c:164 +#: src/pacman/pacman.c:140 #, c-format msgid "" " -y, --refresh download fresh package databases from the server\n" msgstr " -y, --refresh friss csomagadatbzis letltse a szerverrl\n" -#: src/pacman/pacman.c:165 +#: src/pacman/pacman.c:141 #, c-format msgid "" " --ignore <pkg> ignore a package upgrade (can be used more than " @@ -489,17 +562,17 @@ msgid "" msgstr "" " --ignore <csom.> csomagfrissts mellzse (tbbszr is hasznlhat)\n" -#: src/pacman/pacman.c:167 +#: src/pacman/pacman.c:143 #, c-format msgid " --config <path> set an alternate configuration file\n" msgstr " --config <tv.> alternatv konfigurcis fjl hasznlata\n" -#: src/pacman/pacman.c:168 +#: src/pacman/pacman.c:144 #, c-format msgid " --noconfirm do not ask for any confirmation\n" msgstr " --noconfirm ne krjen soha megerstst\n" -#: src/pacman/pacman.c:169 +#: src/pacman/pacman.c:145 #, c-format msgid "" " --ask <number> pre-specify answers for questions (see manpage)\n" @@ -507,198 +580,230 @@ msgstr "" " --ask <szm> elre megadja a vlaszokat krdsekre (ld. man " "oldal)\n" -#: src/pacman/pacman.c:170 +#: src/pacman/pacman.c:146 #, c-format msgid "" " --noprogressbar do not show a progress bar when downloading files\n" msgstr "" " --noprogressbar ne mutasson folyamatsvot a fjlok letltse kzben\n" -#: src/pacman/pacman.c:171 -#, fuzzy, c-format +#: src/pacman/pacman.c:147 +#, c-format msgid "" " --noscriptlet do not execute the install scriptlet if one exists\n" msgstr "" -" --noscriptlet ne futtassa le a teleptsi szkriptet, ha van olyan\n" +" --noscriptlet ne futtassa le az install szkriptet, ha van olyan\n" -#: src/pacman/pacman.c:172 +#: src/pacman/pacman.c:148 #, c-format msgid " -v, --verbose be verbose\n" msgstr " -v, --verbose legyen bbeszd\n" -#: src/pacman/pacman.c:173 +#: src/pacman/pacman.c:149 #, c-format msgid " -r, --root <path> set an alternate installation root\n" msgstr "" " -r, --root <tvonal> alternatv teleptsi gykrknyvtr belltsa\n" -#: src/pacman/pacman.c:174 +#: src/pacman/pacman.c:150 #, c-format msgid " -b, --dbpath <path> set an alternate database location\n" msgstr " -b, --dbpath <tv.> alternatv adatbzisknyvtr belltsa\n" -#: src/pacman/pacman.c:175 +#: src/pacman/pacman.c:151 #, c-format msgid " --cachedir <dir> set an alternate package cache location\n" msgstr "" " --cachedir <kvt> alternatv csomaggyorsttr-knyvtr belltsa\n" -#: src/pacman/pacman.c:189 -#, fuzzy, c-format +#: src/pacman/pacman.c:164 +#, c-format msgid "" " This program may be freely redistributed under\n" " the terms of the GNU General Public License\n" msgstr "" " Ezt a programot brki a General Public License-ben\n" +" foglaltak alapjn szabadon terjesztheti\n" -#: src/pacman/pacman.c:340 +#: src/pacman/pacman.c:318 #, c-format -msgid "'%s' is not a valid debug level" -msgstr "a(z) '%s' nem rvnyes hibakeressi szint" +msgid "'%s' is not a valid debug level\n" +msgstr "a(z) '%s' nem rvnyes hibakeressi szint\n" -#: src/pacman/pacman.c:355 +#: src/pacman/pacman.c:333 src/pacman/pacman.c:630 #, c-format -msgid "'%s' is not a valid cache directory\n" -msgstr "a '%s' nem rvnyes gyorsttrknyvtr\n" +msgid "problem adding cachedir '%s' (%s)\n" +msgstr "hiba trtnt a(z) '%s' gyorsttr-knyvtr hozzadsa sorn (%s)\n" -#: src/pacman/pacman.c:373 +#: src/pacman/pacman.c:357 src/pacman/pacman.c:622 #, c-format -msgid "'%s' is not a valid db path\n" -msgstr "a '%s' nem rvnyes adatbzis tvonal\n" +msgid "problem setting dbpath '%s' (%s)\n" +msgstr "hiba trtnt a(z) '%s' adatbzisknyvtr belltsa sorn (%s)\n" -#: src/pacman/pacman.c:403 +#: src/pacman/pacman.c:391 src/pacman/pacman.c:639 #, c-format -msgid "'%s' is not a valid root path\n" -msgstr "a '%s' nem rvnyes gykrknyvtr tvonal\n" +msgid "problem setting root '%s' (%s)\n" +msgstr "hiba trtnt a(z) '%s' teleptse tvonal belltsa sorn (%s)\n" -#: src/pacman/pacman.c:430 +#: src/pacman/pacman.c:422 msgid "only one operation may be used at a time\n" msgstr "csak egy mvelet hajthat vgre egyszerre\n" -#: src/pacman/pacman.c:489 +#: src/pacman/pacman.c:458 +#, c-format +msgid "config file %s could not be read.\n" +msgstr "a %s konfigurcis fjl nem olvashat.\n" + +#: src/pacman/pacman.c:494 +#, c-format +msgid "config file %s, line %d: bad section name.\n" +msgstr "%s konfigurcis fjl, %d. sor: hibs szekcinv.\n" + +#: src/pacman/pacman.c:500 +#, c-format +msgid "config file %s, line %d: 'local' cannot be used as section name.\n" +msgstr "" +"%s konfigurcis fjl, %d. sor: 'local' nem hasznlhat szekcinvknt.\n" + +#: src/pacman/pacman.c:519 +#, c-format +msgid "config file %s, line %d: syntax error in config file- missing key.\n" +msgstr "%s konfigurcis fjl, %d. sor: szintaktikai hiba- hinyz kulcs.\n" + +#: src/pacman/pacman.c:529 +#, c-format +msgid "" +"config file %s, line %d: 'Include' directive must belong to a section.\n" +msgstr "" +"%s konfigurcis fjl, %d. sor: az 'Include' direktvnak egy szekcihoz " +"kell tartoznia.\n" + +#: src/pacman/pacman.c:551 src/pacman/pacman.c:663 src/pacman/pacman.c:678 +#, c-format +msgid "config file %s, line %d: directive '%s' not recognized.\n" +msgstr "%s konfigurcis fjl, %d. sor: a '%s' direktva nem rtelmezhet.\n" + +#: src/pacman/pacman.c:648 +#, c-format +msgid "problem setting logfile '%s' (%s)\n" +msgstr "hiba trtnt a(z) '%s' naplfjl belltsa sorn (%s)\n" + +#: src/pacman/pacman.c:744 #, c-format msgid "failed to initialize alpm library (%s)\n" msgstr "nem sikerlt inicializlni az alpm knyvtrat (%s)\n" -#: src/pacman/pacman.c:522 +#: src/pacman/pacman.c:795 msgid "you cannot perform this operation unless you are root.\n" msgstr "ez a mvelet csak rendszergazdaknt hajthat vgre.\n" -#: src/pacman/pacman.c:538 -#, c-format -msgid "failed to parse config (%s)\n" -msgstr "nem sikerlt rtelmezni a belltsi fjlt (%s)\n" - -#: src/pacman/pacman.c:549 -msgid "Targets :" -msgstr "Clok :" - -#: src/pacman/pacman.c:555 +#: src/pacman/pacman.c:820 #, c-format msgid "could not register 'local' database (%s)\n" msgstr "nem sikerlt regisztrlni a 'local' adatbzist (%s)\n" -#: src/pacman/pacman.c:562 -msgid "no targets specified (use -h for help)\n" -msgstr "nincs megadva egyetlen cl se (hasznlja a '-h'-t segtsgrt)\n" - -#: src/pacman/pacman.c:575 +#: src/pacman/pacman.c:846 msgid "no operation specified (use -h for help)\n" -msgstr "nincs megadva egyetlen mvelet se (hasznlja a '-h'-t segtsgrt)\n" +msgstr "nincs megadva egyetlen mvelet sem (hasznlja a '-h'-t segtsgrt)\n" -#: src/pacman/query.c:90 -msgid "no file was specified for --owns\n" -msgstr "nincs megadva fjl a --owns szmra\n" +#: src/pacman/query.c:69 +#, c-format +msgid "error: no file was specified for --owns\n" +msgstr "hiba: nincs megadva fjl a --owns szmra\n" -#: src/pacman/query.c:95 +#: src/pacman/query.c:81 #, c-format -msgid "failed to read file '%s': %s" -msgstr "nem sikerlt olvasni a '%s' fjlt: %s" +msgid "error: failed to read file '%s': %s\n" +msgstr "hiba: nem sikerlt olvasni a '%s' fjlt: %s\n" -#: src/pacman/query.c:100 -msgid "cannot determine ownership of a directory" -msgstr "nem sikerlt egy knyvtr tulajdonost megllaptani" +#: src/pacman/query.c:88 +#, c-format +msgid "error: cannot determine ownership of a directory\n" +msgstr "hiba: knyvtr tulajdonos-csomagjt nem lehet megllaptani\n" -#: src/pacman/query.c:105 +#: src/pacman/query.c:94 #, c-format -msgid "cannot determine real path for '%s': %s" -msgstr "nem llapthat meg a valdi tvonal a(z) '%s' szmra: %s" +msgid "error: cannot determine real path for '%s': %s\n" +msgstr "hiba: nem llapthat meg a valdi tvonal a(z) '%s' szmra: %s\n" -#: src/pacman/query.c:119 +#: src/pacman/query.c:111 #, c-format msgid "%s is owned by %s %s\n" msgstr "a %s fjlt a %s %s tartalmazza\n" -#: src/pacman/query.c:127 +#: src/pacman/query.c:119 #, c-format -msgid "No package owns %s\n" -msgstr "Egyik csomag sem tartalmazza a kvetkezt: %s\n" +msgid "error: No package owns %s\n" +msgstr "hiba: Egyik csomag sem tartalmazza a kvetkezt: %s\n" -#: src/pacman/query.c:170 src/pacman/sync.c:453 -msgid "no usable package repositories configured.\n" -msgstr "egyetlen hasznlhat csomagrep sincs belltva.\n" +#: src/pacman/query.c:206 +#, c-format +msgid "error: group \"%s\" was not found\n" +msgstr "hiba: a(z) \"%s\" csoport nem tallhat\n" -#: src/pacman/query.c:176 -msgid "Checking for package upgrades..." -msgstr "Frisstsek keresse... " +#: src/pacman/query.c:219 +#, c-format +msgid "Checking database for consistency... " +msgstr "Az adatbzis konzisztencijnak ellenrzse..." -#: src/pacman/query.c:183 -msgid "no upgrades found" -msgstr "nem talltam frisstst" +#: src/pacman/query.c:222 +#, c-format +msgid "check complete.\n" +msgstr "ellenrzs ksz.\n" -#: src/pacman/query.c:221 +#: src/pacman/query.c:227 #, c-format -msgid "group \"%s\" was not found\n" -msgstr "a(z) \"%s\" csoport nem tallhat\n" +msgid "check failed!\n" +msgstr "ellenrzs sikertelen!\n" -#: src/pacman/query.c:232 -msgid "no package file was specified for --file\n" -msgstr "nincs megadva csomagfjl a --file szmra\n" +#: src/pacman/query.c:239 +#, c-format +msgid "Checking for package upgrades... \n" +msgstr "Frisstsek keresse... \n" -#: src/pacman/query.c:236 +#: src/pacman/query.c:247 #, c-format -msgid "failed to load package '%s' (%s)\n" -msgstr "nem sikerlt betlteni a(z) '%s' csomagot (%s)\n" +msgid "no upgrades found.\n" +msgstr "nem talltam frisstst.\n" + +#: src/pacman/query.c:361 src/pacman/sync.c:464 +msgid "no usable package repositories configured.\n" +msgstr "egyetlen hasznlhat csomagrep sincs belltva.\n" -#: src/pacman/query.c:273 src/pacman/query.c:305 +#: src/pacman/query.c:405 #, c-format -msgid "package \"%s\" not found\n" -msgstr "a(z) \"%s\" csomag nem tallhat\n" +msgid "error: package \"%s\" not found\n" +msgstr "hiba: a(z) \"%s\" csomag nem tallhat\n" -#: src/pacman/remove.c:61 src/pacman/sync.c:568 +#: src/pacman/remove.c:80 src/pacman/sync.c:600 #, c-format msgid ":: group %s:\n" msgstr ":: %s csoport:\n" -#: src/pacman/remove.c:63 +#: src/pacman/remove.c:82 msgid " Remove whole content? [Y/n] " msgstr " Eltvoltja a teljes tartalmat? [I/n] " -#: src/pacman/remove.c:67 +#: src/pacman/remove.c:86 #, c-format msgid ":: Remove %s from group %s? [Y/n] " msgstr ":: Eltvoltja %s-t a(z) %s csoportbl? [I/n] " -#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529 -#, c-format -msgid "failed to init transaction (%s)\n" -msgstr "nem sikerlt inicializlni a tranzakcit (%s)\n" - -#: src/pacman/remove.c:92 +#: src/pacman/remove.c:99 src/pacman/sync.c:500 src/pacman/sync.c:557 #, c-format -msgid "failed to add target '%s' (%s)\n" -msgstr "nem sikerlt a(z) '%s' clt hozzadni a tranzakcihoz (%s)\n" +msgid "error: failed to init transaction (%s)\n" +msgstr "hiba: nem sikerlt inicializlni a tranzakcit (%s)\n" -#: src/pacman/remove.c:106 +#: src/pacman/remove.c:115 #, c-format -msgid ":: %s is required by %s\n" -msgstr ":: %s-t ignyli: %s\n" +msgid "error: failed to add target '%s' (%s)\n" +msgstr "hiba: nem sikerlt a(z) '%s' clt hozzadni (%s)\n" -#: src/pacman/remove.c:128 src/pacman/util.c:324 +#: src/pacman/remove.c:156 src/pacman/util.c:384 msgid "Targets:" msgstr "Clok:" -#: src/pacman/remove.c:131 +#: src/pacman/remove.c:159 msgid "" "\n" "Do you want to remove these packages? [Y/n] " @@ -706,360 +811,1141 @@ msgstr "" "\n" "El kvnja tvoltani ezeket a csomagokat? [I/n] " -#: src/pacman/sync.c:115 +#: src/pacman/sync.c:101 msgid "Do you want to remove old packages from cache? [Y/n] " msgstr "El kvnja tvoltani a rgi csomagokat a gyorsttrbl? [I/n] " -#: src/pacman/sync.c:117 +#: src/pacman/sync.c:103 +#, c-format msgid "removing old packages from cache... " msgstr "a rgi csomagok eltvoltsa a gyorsttrbl... " -#: src/pacman/sync.c:120 -msgid "could not access cache directory\n" -msgstr "nem sikerlt elrni a gyorsttr knyvtrt\n" +#: src/pacman/sync.c:106 +#, c-format +msgid "error: could not access cache directory\n" +msgstr "hiba: nem sikerlt elrni a gyorsttr knyvtrt\n" -#: src/pacman/sync.c:181 +#: src/pacman/sync.c:167 msgid "Do you want to remove all packages from cache? [Y/n] " msgstr "El kvn tvoltani minden csomagot a gyorsttrbl? [I/n] " -#: src/pacman/sync.c:183 +#: src/pacman/sync.c:169 +#, c-format msgid "removing all packages from cache... " msgstr "az sszes csomag eltvoltsa a gyorsttrbl... " -#: src/pacman/sync.c:186 -msgid "could not remove cache directory\n" -msgstr "nem sikerlt trlni a gyorsttr knyvtrt\n" +#: src/pacman/sync.c:172 +#, c-format +msgid "error: could not remove cache directory\n" +msgstr "hiba: nem sikerlt trlni a gyorsttr knyvtrt\n" -#: src/pacman/sync.c:191 -msgid "could not create new cache directory\n" -msgstr "nem sikerlt ltrehozni az j gyorsttr knyvtrt\n" +#: src/pacman/sync.c:177 +#, c-format +msgid "error: could not create new cache directory\n" +msgstr "hiba: nem sikerlt ltrehozni az j gyorsttr knyvtrt\n" -#: src/pacman/sync.c:218 +#: src/pacman/sync.c:204 #, c-format -msgid "failed to synchronize %s: %s\n" -msgstr "nem sikerlt szinkronizlni %s-t: %s\n" +msgid "error: failed to synchronize %s: %s\n" +msgstr "hiba: nem sikerlt a(z) %s szinkronizlsa: %s\n" -#: src/pacman/sync.c:220 +#: src/pacman/sync.c:207 #, c-format -msgid "failed to update %s (%s)\n" -msgstr "nem sikerlt frissteni a kvetkezt: %s (%s)\n" +msgid "error: failed to update %s (%s)\n" +msgstr "hiba: nem sikerlt a(z) %s frisstse (%s)\n" -#: src/pacman/sync.c:223 +#: src/pacman/sync.c:211 #, c-format msgid " %s is up to date\n" msgstr " a(z) %s napraksz\n" -#: src/pacman/sync.c:345 +#: src/pacman/sync.c:348 #, c-format -msgid "repository '%s' does not exist\n" -msgstr "a(z) '%s' rep nem ltezik\n" +msgid "error: repository '%s' does not exist\n" +msgstr "hiba: a(z) '%s' rep nem ltezik\n" -#: src/pacman/sync.c:361 +#: src/pacman/sync.c:364 #, c-format -msgid "package '%s' was not found in repository '%s'\n" -msgstr "a(z) '%s' csomag nem tallhat a(z) '%s' repban\n" +msgid "error: package '%s' was not found in repository '%s'\n" +msgstr "hiba: a(z) '%s' csomag nem tallhat a(z) '%s' repban\n" -#: src/pacman/sync.c:381 +#: src/pacman/sync.c:385 #, c-format -msgid "package '%s' was not found\n" -msgstr "a(z) '%s' csomag nem tallhat\n" +msgid "error: package '%s' was not found\n" +msgstr "hiba: a(z) '%s' csomag nem tallhat\n" -#: src/pacman/sync.c:418 +#: src/pacman/sync.c:423 #, c-format -msgid "repository \"%s\" was not found.\n" -msgstr "a(z) \"%s\" rep nem tallhat.\n" +msgid "error: repository \"%s\" was not found.\n" +msgstr "hiba: a(z) \"%s\" rep nem tallhat.\n" -#: src/pacman/sync.c:490 +#: src/pacman/sync.c:511 +#, c-format msgid ":: Synchronizing package databases...\n" msgstr ":: A csomagadatbzisok szinkronizlsa...\n" -#: src/pacman/sync.c:491 -msgid "synchronizing package lists" -msgstr "a csomaglistk szinkronizlsa" - -#: src/pacman/sync.c:493 -msgid "failed to synchronize any databases" -msgstr "nem sikerlt szinkronizlni valamelyik adatbzist" +#: src/pacman/sync.c:514 +#, c-format +msgid "error: failed to synchronize any databases\n" +msgstr "hiba: nem sikerlt szinkronizlni valamelyik adatbzist\n" -#: src/pacman/sync.c:499 +#: src/pacman/sync.c:522 +#, c-format msgid ":: Starting full system upgrade...\n" msgstr ":: Teljes rendszerfrissts indtsa...\n" -#: src/pacman/sync.c:500 -msgid "starting full system upgrade" -msgstr "teljes rendszerfrissts indtsa" - -#: src/pacman/sync.c:518 +#: src/pacman/sync.c:543 +#, c-format msgid "" -"\n" -":: pacman has detected a newer version of the \"pacman\" package.\n" +":: pacman has detected a newer version of itself.\n" +":: It is recommended that you upgrade pacman by itself\n" +":: using 'pacman -S pacman', and then rerun the current\n" +":: operation. If you wish to continue the operation and\n" +":: not upgrade pacman seperately, answer no.\n" msgstr "" -"\n" -":: a pacman egy jabb verzijt szlelte a \"pacman\" csomagnak.\n" +":: A pacman egy jabb verzja ll rendelkezsre.\n" +":: Ajnlott, hogy elszr magt a pacmant frisstse\n" +":: a 'pacman -S pacman' paranccsal, majd adja ki jra\n" +":: a jelenlegi parancsot. Ha mgis folytatni szeretn,\n" +":: s nem frissti kln a pacmant, vlaszoljon nemmel.\n" -#: src/pacman/sync.c:519 -msgid ":: It is recommended that you allow pacman to upgrade itself\n" -msgstr ":: Ajnlott, hogy engedje, hogy a pacman elbb sajt magt\n" +#: src/pacman/sync.c:548 +msgid ":: Cancel current operation? [Y/n] " +msgstr ":: Megszaktja a jelenlegi mveletet? [I/n]" -#: src/pacman/sync.c:520 -msgid ":: first, then you can re-run the operation with the newer version.\n" -msgstr ":: frisstse, majd jra futtathatja a mveletet az jabb verzival.\n" +#: src/pacman/sync.c:550 src/pacman/sync.c:766 +#, c-format +msgid "error: failed to release transaction (%s)\n" +msgstr "hiba: nem sikerlt lezrni a tranzakcit (%s)\n" -#: src/pacman/sync.c:522 -msgid ":: Upgrade pacman first? [Y/n] " -msgstr ":: Elszr csak a pacman frisstse? [I/n] " +#: src/pacman/sync.c:562 +#, c-format +msgid "error: pacman: %s\n" +msgstr "hiba: pacman: %s\n" -#: src/pacman/sync.c:537 +#: src/pacman/sync.c:586 #, c-format -msgid "pacman: %s\n" -msgstr "pacman: %s\n" +msgid "'error: %s': %s\n" +msgstr "'hiba: %s': %s\n" -#: src/pacman/sync.c:572 +#: src/pacman/sync.c:605 msgid ":: Install whole content? [Y/n] " msgstr ":: A teljes tartalom teleptse? [I/n] " -#: src/pacman/sync.c:579 +#: src/pacman/sync.c:612 #, c-format msgid ":: Install %s from group %s? [Y/n] " msgstr ":: Telepti %s-t a(z) %s csoportbl? [I/n] " -#: src/pacman/sync.c:603 +#: src/pacman/sync.c:636 #, c-format -msgid "'%s': not found in sync db\n" -msgstr "'%s': nem tallhat a tvoli adatbzisban\n" - -#: src/pacman/sync.c:621 -msgid "requires" -msgstr "ignyli a kvetkezt:" +msgid "error: '%s': not found in sync db\n" +msgstr "hiba: '%s': nem tallhat a tvoli adatbzisban\n" -#: src/pacman/sync.c:663 +#: src/pacman/sync.c:692 +#, c-format msgid " local database is up to date\n" msgstr " a helyi adatbzis napraksz\n" -#: src/pacman/sync.c:672 -msgid "" -"\n" -"Beginning download...\n" -msgstr "" -"\n" -"A letlts megkezdse...\n" +#: src/pacman/sync.c:704 +#, c-format +msgid "Beginning download...\n" +msgstr "A letlts megkezdse...\n" -#: src/pacman/sync.c:676 +#: src/pacman/sync.c:707 msgid "Proceed with download? [Y/n] " msgstr "Kezddhet a letlts? [I/n] " -#: src/pacman/sync.c:684 -msgid "" -"\n" -"Beginning upgrade process...\n" -msgstr "" -"\n" -"A frisstsi folyamat megkezdse...\n" +#: src/pacman/sync.c:711 +#, c-format +msgid "Beginning upgrade process...\n" +msgstr "A frisstsi folyamat megkezdse...\n" -#: src/pacman/sync.c:688 +#: src/pacman/sync.c:714 msgid "Proceed with installation? [Y/n] " msgstr "Kezddhet a telepts? [I/n] " -#: src/pacman/trans.c:55 -msgid "checking dependencies... " -msgstr "fggsgek vizsglata... " - -#: src/pacman/trans.c:59 -msgid "checking for file conflicts... " -msgstr "fjltkzsek vizsglata... " +#: src/pacman/sync.c:755 +#, c-format +msgid "Errors occurred, no packages were upgraded.\n" +msgstr "Hibk lptek fel, nem frisslt csomag.\n" -#: src/pacman/trans.c:63 -msgid "cleaning up... " -msgstr "takarts... " +#: src/pacman/util.c:307 +#, c-format +msgid "None\n" +msgstr "Nincs\n" -#: src/pacman/trans.c:66 -msgid "resolving dependencies... " -msgstr "fggsgek feloldsa... " +#: src/pacman/util.c:373 +msgid "Remove:" +msgstr "Eltvolts:" -#: src/pacman/trans.c:69 -msgid "looking for inter-conflicts... " -msgstr "bels tkzsek keresse... " +#: src/pacman/util.c:381 +#, c-format +msgid "Total Removed Size: %.2f MB\n" +msgstr "Teljes eltvoltott mret: %.2f MB\n" -#: src/pacman/trans.c:86 +#: src/pacman/util.c:391 #, c-format -msgid "installing %s... " -msgstr "%s teleptse... " +msgid "Total Package Size: %.2f MB\n" +msgstr "Teljes csomagmret: %.2f MB\n" -#: src/pacman/trans.c:93 +#: src/pacman/util.c:399 #, c-format -msgid "installed %s (%s)" -msgstr "%s teleptve (%s)" +msgid "Total Installed Size: %.2f MB\n" +msgstr "Teljes teleptett mret: %.2f MB\n" + +#: src/pacman/util.c:426 +msgid "Y" +msgstr "I" -#: src/pacman/trans.c:100 +#: src/pacman/util.c:426 +msgid "YES" +msgstr "IGEN" + +#: src/pacman/util.c:487 #, c-format -msgid "removing %s... " -msgstr "%s eltvoltsa... " +msgid "debug: " +msgstr "hibakeress: " -#: src/pacman/trans.c:107 +#: src/pacman/util.c:490 #, c-format -msgid "removed %s (%s)" -msgstr "%s eltvoltva (%s)" +msgid "error: " +msgstr "hiba: " -#: src/pacman/trans.c:114 +#: src/pacman/util.c:493 #, c-format -msgid "upgrading %s... " -msgstr "%s frisstse... " +msgid "warning: " +msgstr "figyelmeztets: " -#: src/pacman/trans.c:121 +#: src/pacman/util.c:498 #, c-format -msgid "upgraded %s (%s -> %s)" -msgstr "%s frisstve (%s -> %s)" +msgid "function: " +msgstr "fggvny: " -#: src/pacman/trans.c:128 -msgid "checking package integrity... " -msgstr "csomagok integritsnak ellenrzse... " +#: scripts/abs.sh.in:60 scripts/makepkg.sh.in:106 scripts/makepkg.sh.in:108 +msgid "ERROR:" +msgstr "" -#: src/pacman/trans.c:144 -msgid "failed.\n" -msgstr "sikertelen.\n" +#: scripts/abs.sh.in:65 +msgid "abs (pacman) %s - download a PKGBUILD tree from a CVS repository" +msgstr "" -#: src/pacman/trans.c:151 -#, c-format -msgid ":: Retrieving packages from %s...\n" -msgstr ":: Csomagok letltse a(z) %s repbl...\n" +#: scripts/abs.sh.in:66 +msgid "Usage %s [options] [repository...]" +msgstr "" -#: src/pacman/trans.c:172 -#, c-format -msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] " -msgstr ":: %1$s ignyli %2$s-t az IgnorePkg-bl. Telepti %2$s-t? [I/n] " +#: scripts/abs.sh.in:67 scripts/makepkg.sh.in:970 +msgid "Options:" +msgstr "" -#: src/pacman/trans.c:177 -#, c-format -msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] " -msgstr ":: %s az IgnorePkg rsze. Mgis telepti? [I/n] " +#: scripts/abs.sh.in:68 +msgid " -p, --passive The connection is opened in passive mode." +msgstr "" -#: src/pacman/trans.c:190 -#, c-format -msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] " -msgstr ":: %s HoldPkgnak lett jellve. Biztosan eltvoltja? [I/n] " +#: scripts/abs.sh.in:70 +msgid " -h, --help Display this help message then exit." +msgstr "" -#: src/pacman/trans.c:203 -#, c-format -msgid ":: Replace %s with %s/%s? [Y/n] " -msgstr ":: Lecserli %s-t erre: %s/%s? [I/n] " +#: scripts/abs.sh.in:71 +msgid " -V, --version Display version information then exit." +msgstr "" -#: src/pacman/trans.c:218 -#, c-format -msgid ":: %s conflicts with %s. Remove %s? [Y/n] " -msgstr ":: %s tkzik a kvetkezvel: %s. Eltvoltja a %s-t? [I/n] " +#: scripts/abs.sh.in:73 +msgid "" +"abs will synchronize build scripts from the CVS repository\\ninto %s. You " +"can follow different package trees by\\nediting %s files. If no argument is " +"given, abs\\nwill synchronize from supfiles specified in %s.\\n\\n" +msgstr "" -#: src/pacman/trans.c:234 -#, c-format -msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] " -msgstr ":: %s-%s: a helyi verzi jabb. Mgis frissti? [I/n] " +#: scripts/abs.sh.in:79 +msgid "Report bugs to <%s>." +msgstr "" -#: src/pacman/trans.c:252 -#, c-format -msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] " -msgstr ":: %s-%s: a helyi verzi napraksz. Mgis frissti? [I/n] " +#: scripts/abs.sh.in:84 scripts/gensync.sh.in:54 scripts/makepkg.sh.in:1003 +#: scripts/pacman-optimize.sh.in:59 scripts/repo-remove.sh.in:45 +msgid "" +"Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>.\\n\\nThis is free " +"software; see the source for copying conditions.\\nThere is NO WARRANTY, to " +"the extent permitted by law.\\n" +msgstr "" -#: src/pacman/trans.c:270 -#, c-format -msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] " -msgstr ":: %s srlt. Kvnja trlni? [I/n] " +#: scripts/abs.sh.in:130 scripts/pacman-optimize.sh.in:95 +msgid "%s does not exist or is not a directory." +msgstr "" -#: src/pacman/trans.c:326 -msgid "installing" -msgstr "telepts:" +#: scripts/abs.sh.in:133 +msgid "You do not have write permissions in %s." +msgstr "" -#: src/pacman/trans.c:329 -msgid "upgrading" -msgstr "frissts:" +#: scripts/abs.sh.in:143 +msgid "Missing CVS synchronization utility. Install cvsup or csup." +msgstr "" -#: src/pacman/trans.c:332 -msgid "removing" -msgstr "eltvolts:" +#: scripts/abs.sh.in:166 +msgid "Updating %s..." +msgstr "" -#: src/pacman/trans.c:335 -msgid "checking for file conflicts" -msgstr "fjltkzsek vizsglata" +#: scripts/gensync.sh.in:34 +msgid "Usage: %s <root> <destfile> [package_directory]" +msgstr "" -#: src/pacman/util.c:259 -#, c-format -msgid "None\n" -msgstr "Nincs\n" +#: scripts/gensync.sh.in:35 +msgid "" +"gensync will generate a sync database by reading all PKGBUILD files\\nfrom " +"<root>. gensync builds the database in a temporary directory\\nand then " +"compresses it to <destfile>.\\n\\n" +msgstr "" -#: src/pacman/util.c:311 -msgid "Remove:" -msgstr "Eltvolts:" +#: scripts/gensync.sh.in:39 +msgid "" +"gensync will calculate md5sums of packages in the same directory as" +"\\n<destfile>, unless an alternate [package_directory] is specified.\\n\\n" +msgstr "" -#: src/pacman/util.c:319 -#, c-format +#: scripts/gensync.sh.in:42 msgid "" -"\n" -"Total Removed Size: %.2f MB\n" +"note: The <destfile> name is important. It must be of the form\\n " +"{treename}.db.tar.gz where {treename} is the name of the custom\\n " +"package repository you configured in /etc/pacman.conf. The\\n generated " +"database must reside in the same directory as your\\n custom packages " +"(also configured in /etc/pacman.conf)\\n\\n" msgstr "" -"\n" -"Teljes eltvoltott mret: %.2f MB\n" -#: src/pacman/util.c:330 -#, c-format +#: scripts/gensync.sh.in:48 +msgid "Example: gensync /var/abs/local /home/mypkgs/custom.db.tar.gz" +msgstr "" + +#: scripts/gensync.sh.in:102 scripts/updatesync.sh.in:101 +msgid "%s not found. Can not continue." +msgstr "" + +#: scripts/gensync.sh.in:120 +msgid "invalid root dir: %s" +msgstr "" + +#: scripts/gensync.sh.in:122 +msgid "gensync: building database entries, generating md5sums..." +msgstr "" + +#: scripts/gensync.sh.in:131 +msgid "failed to parse parse %s" +msgstr "" + +#: scripts/gensync.sh.in:139 +msgid "could not find %s-%s-%s-%s.%s - skipping" +msgstr "" + +#: scripts/gensync.sh.in:149 +msgid "creating repo DB..." +msgstr "" + +#: scripts/makepkg.sh.in:97 scripts/makepkg.sh.in:99 +msgid "WARNING:" +msgstr "" + +#: scripts/makepkg.sh.in:139 +msgid "Cleaning up..." +msgstr "" + +#: scripts/makepkg.sh.in:189 msgid "" -"\n" -"Total Package Size: %.2f MB\n" +"Options beginning with 'no' will be deprecated in the next version of " +"makepkg!" msgstr "" -"\n" -"Teljes csomagmret: %.2f MB\n" -#: src/pacman/util.c:337 -#, c-format -msgid "Total Installed Size: %.2f MB\n" -msgstr "Teljes teleptett mret: %.2f MB\n" +#: scripts/makepkg.sh.in:190 +msgid "Please replace 'no' with '!': %s -> %s." +msgstr "" -#~ msgid "requires: %s" -#~ msgstr "ignyli a kvetkezt: %s" +#: scripts/makepkg.sh.in:194 +msgid "Option 'keepdocs' may not work as intended. Please replace with 'docs'." +msgstr "" -#~ msgid "usage: %s {-h --help}\n" -#~ msgstr "hasznlat: %s {-h --help}\n" +#: scripts/makepkg.sh.in:282 +msgid "There is no agent set up to handle %s URLs. Check %s." +msgstr "" -#~ msgid " %s {-V --version}\n" -#~ msgstr " %s {-V --version}\n" +#: scripts/makepkg.sh.in:283 scripts/makepkg.sh.in:292 +#: scripts/makepkg.sh.in:444 scripts/makepkg.sh.in:472 +#: scripts/makepkg.sh.in:518 scripts/makepkg.sh.in:606 +#: scripts/makepkg.sh.in:634 scripts/makepkg.sh.in:696 +#: scripts/makepkg.sh.in:763 scripts/makepkg.sh.in:1020 +#: scripts/makepkg.sh.in:1319 scripts/makepkg.sh.in:1323 +msgid "Aborting..." +msgstr "" -#~ msgid " %s {-A --add} [options] <file>\n" -#~ msgstr " %s {-A --add} [opcik] <fjl>\n" +#: scripts/makepkg.sh.in:291 +msgid "The download program %s is not installed." +msgstr "" -#~ msgid " %s {-F --freshen} [options] <file>\n" -#~ msgstr " %s {-F --freshen} [opcik] <fjl>\n" +#: scripts/makepkg.sh.in:307 +msgid "Pacman returned a fatal error (%i): %s" +msgstr "" + +#: scripts/makepkg.sh.in:331 +msgid "Installing missing dependencies..." +msgstr "" -#~ msgid " %s {-Q --query} [options] [package]\n" -#~ msgstr " %s {-Q --query} [opcik] [csomag]\n" +#: scripts/makepkg.sh.in:341 +msgid "Pacman failed to install missing dependencies." +msgstr "" -#~ msgid " %s {-R --remove} [options] <package>\n" -#~ msgstr " %s {-R --remove} [opcik] <csomag>\n" +#: scripts/makepkg.sh.in:345 +msgid "Building missing dependencies..." +msgstr "" -#~ msgid " %s {-S --sync} [options] [package]\n" -#~ msgstr " %s {-S --sync} [opcik] [csomag]\n" +#: scripts/makepkg.sh.in:350 +msgid "Source root cannot be found - please make sure it is specified in %s." +msgstr "" -#~ msgid " %s {-U --upgrade} [options] <file>\n" -#~ msgstr " %s {-U --upgrade} [opcik] <fjl>\n" +#: scripts/makepkg.sh.in:358 +msgid "Could not find '%s' under %s" +msgstr "" -#~ msgid "usage: %s {-A --add} [options] <file>\n" -#~ msgstr "hasznlat: %s {-A --add} [opcik] <fjl>\n" +#: scripts/makepkg.sh.in:374 +msgid "Failed to build '%s'" +msgstr "" -#~ msgid "usage: %s {-F --freshen} [options] <file>\n" -#~ msgstr "hasznlat: %s {-F --freshen} [opcik] <fjl>\n" +#: scripts/makepkg.sh.in:407 +msgid "Failed to install all missing dependencies." +msgstr "" -#~ msgid "usage: %s {-U --upgrade} [options] <file>\n" -#~ msgstr "hasznlat: %s {-U --upgrade} [opcik] <fjl>\n" +#: scripts/makepkg.sh.in:410 +msgid "Missing Dependencies:" +msgstr "" -#~ msgid "usage: %s {-Q --query} [options] [package]\n" -#~ msgstr "hasznlat: %s {-Q --query} [opcik] [csomag]\n" +#: scripts/makepkg.sh.in:440 +msgid "Retrieving Sources..." +msgstr "" -#~ msgid " required by any package\n" -#~ msgstr "" -#~ " teleptsre, de most mr nem ignyli ket ms " -#~ "csomag\n" +#: scripts/makepkg.sh.in:443 +msgid "You do not have write permission to store downloads in %s." +msgstr "" -#~ msgid "usage: %s {-S --sync} [options] [package]\n" -#~ msgstr "hasznlat: %s {-S --sync} [opcik] [csomag]\n" +#: scripts/makepkg.sh.in:454 +msgid "Found %s in build dir" +msgstr "" -#~ msgid " the terms of the GNU General Public License\n" -#~ msgstr " foglaltak alapjn szabadon terjesztheti\n" +#: scripts/makepkg.sh.in:458 +msgid "Using cached copy of %s" +msgstr "" -#~ msgid "'%s': %s\n" -#~ msgstr "'%s': %s\n" +#: scripts/makepkg.sh.in:466 +msgid "Downloading %s..." +msgstr "" + +#: scripts/makepkg.sh.in:471 +msgid "Failure while downloading %s" +msgstr "" + +#: scripts/makepkg.sh.in:482 +msgid "Generating checksums for source files..." +msgstr "" + +#: scripts/makepkg.sh.in:491 +msgid "Invalid integrity algorithm '%s' specified." +msgstr "" + +#: scripts/makepkg.sh.in:496 scripts/makepkg.sh.in:548 +msgid "Cannot find the '%s' program." +msgstr "" + +#: scripts/makepkg.sh.in:517 +msgid "Unable to find source file %s to generate checksum." +msgstr "" + +#: scripts/makepkg.sh.in:543 +msgid "Invalid integrity algorithm '%s' specified" +msgstr "" + +#: scripts/makepkg.sh.in:554 +msgid "Validating source files with %s..." +msgstr "" + +#: scripts/makepkg.sh.in:564 +msgid "NOT FOUND" +msgstr "" + +#: scripts/makepkg.sh.in:573 +msgid "Passed" +msgstr "" + +#: scripts/makepkg.sh.in:575 +msgid "FAILED" +msgstr "" + +#: scripts/makepkg.sh.in:583 +msgid "One or more files did not pass the validity check!" +msgstr "" + +#: scripts/makepkg.sh.in:587 +msgid "Integrity checks (%s) are missing or incomplete." +msgstr "" + +#: scripts/makepkg.sh.in:593 +msgid "Extracting Sources..." +msgstr "" + +#: scripts/makepkg.sh.in:605 +msgid "Unable to find source file %s for extraction." +msgstr "" + +#: scripts/makepkg.sh.in:633 +msgid "Failed to extract %s" +msgstr "" + +#: scripts/makepkg.sh.in:665 +msgid "Starting build()..." +msgstr "" + +#: scripts/makepkg.sh.in:695 +msgid "Build Failed." +msgstr "" + +#: scripts/makepkg.sh.in:704 +msgid "Tidying install..." +msgstr "" + +#: scripts/makepkg.sh.in:707 +msgid "Removing info/doc files..." +msgstr "" + +#: scripts/makepkg.sh.in:713 +msgid "Moving usr/share/man files to usr/man..." +msgstr "" + +#: scripts/makepkg.sh.in:720 +msgid "Compressing man pages..." +msgstr "" + +#: scripts/makepkg.sh.in:738 +msgid "Stripping debugging symbols from binaries and libraries..." +msgstr "" + +#: scripts/makepkg.sh.in:750 +msgid "Removing libtool .la files..." +msgstr "" + +#: scripts/makepkg.sh.in:755 +msgid "Removing empty directories..." +msgstr "" + +#: scripts/makepkg.sh.in:762 +msgid "Missing pkg/ directory." +msgstr "" + +#: scripts/makepkg.sh.in:768 +msgid "Creating package..." +msgstr "" + +#: scripts/makepkg.sh.in:778 +msgid "Generating .FILELIST file..." +msgstr "" + +#: scripts/makepkg.sh.in:788 +msgid "Generating .PKGINFO file..." +msgstr "" + +#: scripts/makepkg.sh.in:831 +msgid "Please add a license line to your %s!" +msgstr "" + +#: scripts/makepkg.sh.in:832 +msgid "Example for GPL'ed software: license=('GPL')." +msgstr "" + +#: scripts/makepkg.sh.in:840 scripts/makepkg.sh.in:924 +msgid "Adding install script..." +msgstr "" + +#: scripts/makepkg.sh.in:847 +msgid "Adding package changelog..." +msgstr "" + +#: scripts/makepkg.sh.in:853 +msgid "Compressing package..." +msgstr "" + +#: scripts/makepkg.sh.in:858 +msgid "Failed to create package file." +msgstr "" + +#: scripts/makepkg.sh.in:867 +msgid "Cannot find the xdelta binary! Is xdelta installed?" +msgstr "" + +#: scripts/makepkg.sh.in:897 +msgid "Making delta from version %s..." +msgstr "" + +#: scripts/makepkg.sh.in:908 +msgid "Recreating package tarball from delta to match md5 signatures" +msgstr "" + +#: scripts/makepkg.sh.in:909 +msgid "NOTE: the delta should ONLY be distributed with this tarball" +msgstr "" + +#: scripts/makepkg.sh.in:912 +msgid "No previous version found, skipping xdelta." +msgstr "" + +#: scripts/makepkg.sh.in:918 +msgid "Creating source package..." +msgstr "" + +#: scripts/makepkg.sh.in:920 scripts/makepkg.sh.in:932 +#: scripts/makepkg.sh.in:939 +msgid "Adding %s..." +msgstr "" + +#: scripts/makepkg.sh.in:927 +msgid "Install script %s not found." +msgstr "" + +#: scripts/makepkg.sh.in:947 +msgid "Compressing source package..." +msgstr "" + +#: scripts/makepkg.sh.in:949 +msgid "Failed to create source package file." +msgstr "" + +#: scripts/makepkg.sh.in:957 +msgid "Installing package with pacman -U..." +msgstr "" + +#: scripts/makepkg.sh.in:968 +msgid "Usage: %s [options]" +msgstr "" + +#: scripts/makepkg.sh.in:971 +msgid " -A, --ignorearch Ignore incomplete arch field in %s" +msgstr "" + +#: scripts/makepkg.sh.in:972 +msgid " -b, --builddeps Build missing dependencies from source" +msgstr "" + +#: scripts/makepkg.sh.in:973 +msgid " -c, --clean Clean up work files after build" +msgstr "" + +#: scripts/makepkg.sh.in:974 +msgid " -C, --cleancache Clean up source files from the cache" +msgstr "" + +#: scripts/makepkg.sh.in:975 +msgid " -d, --nodeps Skip all dependency checks" +msgstr "" + +#: scripts/makepkg.sh.in:976 +msgid " -e, --noextract Do not extract source files (use existing src/ dir)" +msgstr "" + +#: scripts/makepkg.sh.in:977 +msgid " -f, --force Overwrite existing package" +msgstr "" + +#: scripts/makepkg.sh.in:978 +msgid " -g, --geninteg Generate integrity checks for source files" +msgstr "" + +#: scripts/makepkg.sh.in:979 +msgid " -h, --help This help" +msgstr "" + +#: scripts/makepkg.sh.in:980 +msgid " -i, --install Install package after successful build" +msgstr "" + +#: scripts/makepkg.sh.in:981 +msgid " -L, --log Log package build process" +msgstr "" + +#: scripts/makepkg.sh.in:982 +msgid " -m, --nocolor Disable colorized output messages" +msgstr "" + +#: scripts/makepkg.sh.in:983 +msgid " -o, --nobuild Download and extract files only" +msgstr "" + +#: scripts/makepkg.sh.in:984 +msgid " -p <buildscript> Use an alternate build script (instead of '%s')" +msgstr "" + +#: scripts/makepkg.sh.in:985 +msgid "" +" -r, --rmdeps Remove installed dependencies after a successful build" +msgstr "" + +#: scripts/makepkg.sh.in:987 +msgid " -R, --repackage Repackage contents of pkg/ without building" +msgstr "" + +#: scripts/makepkg.sh.in:988 +msgid " -s, --syncdeps Install missing dependencies with pacman" +msgstr "" + +#: scripts/makepkg.sh.in:989 +msgid " --asroot Allow makepkg to run as root user" +msgstr "" + +#: scripts/makepkg.sh.in:990 +msgid " --source Do not build package; generate a source-only tarball" +msgstr "" + +#: scripts/makepkg.sh.in:992 +msgid "These options can be passed to pacman:" +msgstr "" + +#: scripts/makepkg.sh.in:994 +msgid "" +" --noconfirm Do not ask for confirmation when resolving " +"dependencies" +msgstr "" + +#: scripts/makepkg.sh.in:995 +msgid "" +" --noprogressbar Do not show a progress bar when downloading files" +msgstr "" + +#: scripts/makepkg.sh.in:997 +msgid "If -p is not specified, makepkg will look for '%s'" +msgstr "" + +#: scripts/makepkg.sh.in:1019 +msgid "%s not found." +msgstr "" + +#: scripts/makepkg.sh.in:1088 +msgid "Sudo is used by default now. The --usesudo option is deprecated!" +msgstr "" + +#: scripts/makepkg.sh.in:1104 +msgid "Cleaning up ALL files from %s." +msgstr "" + +#: scripts/makepkg.sh.in:1105 +msgid " Are you sure you wish to do this? [Y/n] " +msgstr "" + +#: scripts/makepkg.sh.in:1111 +msgid "Problem removing files; you may not have correct permissions in %s" +msgstr "" + +#: scripts/makepkg.sh.in:1115 +msgid "Source cache cleaned." +msgstr "" + +#: scripts/makepkg.sh.in:1120 +msgid "No files have been removed." +msgstr "" + +#: scripts/makepkg.sh.in:1125 +msgid "Source destination must be defined in makepkg.conf." +msgstr "" + +#: scripts/makepkg.sh.in:1126 +msgid "In addition, please run makepkg -C outside of your cache directory." +msgstr "" + +#: scripts/makepkg.sh.in:1132 +msgid "BUILDSCRIPT is undefined! Ensure you have updated %s." +msgstr "" + +#: scripts/makepkg.sh.in:1139 +msgid "Running makepkg as root is a BAD idea and can cause" +msgstr "" + +#: scripts/makepkg.sh.in:1140 +msgid "permanent, catastrophic damage to your system. If you" +msgstr "" + +#: scripts/makepkg.sh.in:1141 +msgid "wish to run as root, please use the --asroot option." +msgstr "" + +#: scripts/makepkg.sh.in:1145 +msgid "The --asroot option is meant for the root user only." +msgstr "" + +#: scripts/makepkg.sh.in:1146 +msgid "Please rerun makepkg without the --asroot flag." +msgstr "" + +#: scripts/makepkg.sh.in:1150 +msgid "Fakeroot must be installed if using the 'fakeroot' option" +msgstr "" + +#: scripts/makepkg.sh.in:1151 +msgid "in the BUILDENV array in %s." +msgstr "" + +#: scripts/makepkg.sh.in:1155 +msgid "Running makepkg as an unprivileged user will result in non-root" +msgstr "" + +#: scripts/makepkg.sh.in:1156 +msgid "ownership of the packaged files. Try using the fakeroot environment by" +msgstr "" + +#: scripts/makepkg.sh.in:1157 +msgid "placing 'fakeroot' in the BUILDENV array in makepkg.conf." +msgstr "" + +#: scripts/makepkg.sh.in:1162 +msgid "Do not use the '-F' option. This option is only for use by makepkg." +msgstr "" + +#: scripts/makepkg.sh.in:1171 +msgid "Cannot find the sudo binary! Is sudo installed?" +msgstr "" + +#: scripts/makepkg.sh.in:1172 +msgid "Missing dependencies cannot be installed or removed as a normal user" +msgstr "" + +#: scripts/makepkg.sh.in:1173 +msgid "without sudo; install and configure sudo to auto-resolve dependencies." +msgstr "" + +#: scripts/makepkg.sh.in:1183 +msgid "%s does not exist." +msgstr "" + +#: scripts/makepkg.sh.in:1198 scripts/makepkg.sh.in:1202 +msgid "%s is not allowed to be empty." +msgstr "" + +#: scripts/makepkg.sh.in:1206 scripts/makepkg.sh.in:1210 +msgid "%s is not allowed to contain hyphens." +msgstr "" + +#: scripts/makepkg.sh.in:1216 scripts/makepkg.sh.in:1221 +msgid "%s is not available for the '%s' architecture." +msgstr "" + +#: scripts/makepkg.sh.in:1217 scripts/makepkg.sh.in:1222 +msgid "Note that many packages may need a line added to their %s" +msgstr "" + +#: scripts/makepkg.sh.in:1218 scripts/makepkg.sh.in:1223 +msgid "such as arch=('%s')." +msgstr "" + +#: scripts/makepkg.sh.in:1228 +msgid "Install scriptlet (%s) does not exist." +msgstr "" + +#: scripts/makepkg.sh.in:1235 +msgid "A package has already been built, installing existing package..." +msgstr "" + +#: scripts/makepkg.sh.in:1239 scripts/makepkg.sh.in:1270 +msgid "A package has already been built. (use -f to overwrite)" +msgstr "" + +#: scripts/makepkg.sh.in:1248 scripts/makepkg.sh.in:1346 +msgid "Skipping build." +msgstr "" + +#: scripts/makepkg.sh.in:1256 +msgid "Leaving fakeroot environment." +msgstr "" + +#: scripts/makepkg.sh.in:1260 +msgid "Making package: %s" +msgstr "" + +#: scripts/makepkg.sh.in:1263 +msgid "Running makepkg as root..." +msgstr "" + +#: scripts/makepkg.sh.in:1274 +msgid "Source package created: %s" +msgstr "" + +#: scripts/makepkg.sh.in:1281 +msgid "Skipping dependency checks." +msgstr "" + +#: scripts/makepkg.sh.in:1288 +msgid "Checking Runtime Dependencies..." +msgstr "" + +#: scripts/makepkg.sh.in:1291 +msgid "Checking Buildtime Dependencies..." +msgstr "" + +#: scripts/makepkg.sh.in:1295 +msgid "Could not resolve all dependencies." +msgstr "" + +#: scripts/makepkg.sh.in:1299 +msgid "pacman was not found in PATH; skipping dependency checks." +msgstr "" + +#: scripts/makepkg.sh.in:1313 +msgid "Skipping source retrieval -- using existing src/ tree" +msgstr "" + +#: scripts/makepkg.sh.in:1314 +msgid "Skipping source integrity checks -- using existing src/ tree" +msgstr "" + +#: scripts/makepkg.sh.in:1315 +msgid "Skipping source extraction -- using existing src/ tree" +msgstr "" + +#: scripts/makepkg.sh.in:1318 +msgid "The source directory is empty, there is nothing to build!" +msgstr "" + +#: scripts/makepkg.sh.in:1322 +msgid "The package directory is empty, there is nothing to repackage!" +msgstr "" + +#: scripts/makepkg.sh.in:1333 +msgid "Sources are ready." +msgstr "" + +#: scripts/makepkg.sh.in:1338 +msgid "Removing existing pkg/ directory..." +msgstr "" + +#: scripts/makepkg.sh.in:1354 +msgid "Entering fakeroot environment..." +msgstr "" + +#: scripts/makepkg.sh.in:1363 +msgid "Finished making: %s" +msgstr "" + +#: scripts/pacman-optimize.sh.in:44 +msgid "Usage: %s [pacman_db_root]" +msgstr "" + +#: scripts/pacman-optimize.sh.in:45 +msgid "" +"pacman-optimize is a little hack that should improve the performance\\nof " +"pacman when reading/writing to its filesystem-based database.\\n\\n" +msgstr "" + +#: scripts/pacman-optimize.sh.in:48 +msgid "" +"Because pacman uses many small files to keep track of packages,\\nthere is a " +"tendency for these files to become fragmented over time.\\nThis script " +"attempts to relocate these small files into one\\ncontinuous location on " +"your hard drive. The result is that the hard\\ndrive should be able to read " +"them faster, since the hard drive head\\ndoes not have to move around the " +"disk as much.\\n" +msgstr "" + +#: scripts/pacman-optimize.sh.in:91 +msgid "Pacman lockfile was found. Cannot run while pacman is running." +msgstr "" + +#: scripts/pacman-optimize.sh.in:99 +msgid "You must have correct permissions to optimize the database." +msgstr "" + +#: scripts/pacman-optimize.sh.in:106 +msgid "MD5sum'ing the old database..." +msgstr "" + +#: scripts/pacman-optimize.sh.in:110 +msgid "Tar'ing up %s..." +msgstr "" + +#: scripts/pacman-optimize.sh.in:115 +msgid "Tar'ing up %s failed." +msgstr "" + +#: scripts/pacman-optimize.sh.in:119 +msgid "Making and MD5sum'ing the new db..." +msgstr "" + +#: scripts/pacman-optimize.sh.in:131 +msgid "Checking integrity..." +msgstr "" + +#: scripts/pacman-optimize.sh.in:137 +msgid "integrity check FAILED, reverting to old database." +msgstr "" + +#: scripts/pacman-optimize.sh.in:142 +msgid "Putting the new database in place..." +msgstr "" + +#: scripts/pacman-optimize.sh.in:150 +msgid "Finished. Your pacman database has been optimized." +msgstr "" + +#: scripts/repo-add.sh.in:35 +msgid "Usage: %s <path-to-db> [--force] <package> ...\\n\\n" +msgstr "" + +#: scripts/repo-add.sh.in:36 +msgid "" +"repo-add will update a package database by reading a package file." +"\\nMultiple packages to add can be specified on the command line.\\n\\n" +msgstr "" + +#: scripts/repo-add.sh.in:39 +msgid "" +"The --force flag will add a 'force' entry to the sync database, which" +"\\ntells pacman to skip its internal version number checking and update" +"\\nthe package regardless.\\n\\n" +msgstr "" + +#: scripts/repo-add.sh.in:43 +msgid "Example: repo-add /path/to/repo.db.tar.gz pacman-3.0.0.pkg.tar.gz" +msgstr "" + +#: scripts/repo-add.sh.in:48 +msgid "" +"Copyright (C) 2006 Aaron Griffin <aaron@archlinux.org>.\\n\\nThis is free " +"software; see the source for copying conditions.\\nThere is NO WARRANTY, to " +"the extent permitted by law.\\n" +msgstr "" + +#: scripts/repo-add.sh.in:138 +msgid " error: invalid package file" +msgstr "" + +#: scripts/repo-add.sh.in:145 scripts/repo-remove.sh.in:68 +msgid ":: removing existing package '%s'" +msgstr "" + +#: scripts/repo-add.sh.in:155 +msgid ":: creating 'desc' db entry" +msgstr "" + +#: scripts/repo-add.sh.in:173 +msgid ":: computing %s checksums" +msgstr "" + +#: scripts/repo-add.sh.in:242 scripts/repo-remove.sh.in:98 +msgid "ERROR: /etc/makepkg.conf not found. Can not continue." +msgstr "" + +#: scripts/repo-add.sh.in:253 scripts/repo-remove.sh.in:109 +msgid "cannot create temp directory for database building" +msgstr "" + +#: scripts/repo-add.sh.in:264 scripts/repo-remove.sh.in:118 +msgid "error: repository file '%s' is not a proper pacman db" +msgstr "" + +#: scripts/repo-add.sh.in:267 scripts/repo-remove.sh.in:121 +msgid ":: extracting database to a temporary location" +msgstr "" + +#: scripts/repo-add.sh.in:273 +msgid "error: '%s' is not a package file, skipping" +msgstr "" + +#: scripts/repo-add.sh.in:275 +msgid ":: adding package '%s'" +msgstr "" + +#: scripts/repo-add.sh.in:284 +msgid "error: package '%s' not found" +msgstr "" + +#: scripts/repo-add.sh.in:291 scripts/repo-remove.sh.in:139 +msgid ":: creating updated database file %s" +msgstr "" + +#: scripts/repo-add.sh.in:299 scripts/repo-remove.sh.in:147 +msgid "warning: no compression set" +msgstr "" + +#: scripts/repo-add.sh.in:304 scripts/repo-remove.sh.in:152 +msgid ":: no packages modified, nothing to do" +msgstr "" + +#: scripts/repo-remove.sh.in:34 +msgid "repo-remove %s\\n\\n" +msgstr "" + +#: scripts/repo-remove.sh.in:35 +msgid "usage: %s <path-to-db> <packagename> ...\\n\\n" +msgstr "" + +#: scripts/repo-remove.sh.in:36 +msgid "" +"repo-remove will update a package database by removing the package name" +"\\nspecified on the command line from the given repo database. Multiple" +"\\npackages to remove can be specified on the command line.\\n\\n" +msgstr "" + +#: scripts/repo-remove.sh.in:40 +msgid "Example: repo-remove /path/to/repo.db.tar.gz kernel26" +msgstr "" + +#: scripts/repo-remove.sh.in:125 +msgid ":: searching for package '%s'" +msgstr "" + +#: scripts/repo-remove.sh.in:131 +msgid "error: package matching '%s' not found" +msgstr "" + +#: scripts/updatesync.sh.in:35 +msgid "Usage: %s <action> <destfile> <option> [package_directory]" +msgstr "" + +#: scripts/updatesync.sh.in:36 +msgid "" +"updatesync will update a sync database by reading a PKGBUILD and\\nmodifying " +"the destfile. updatesync updates the database in a temporary\\ndirectory and " +"then compresses it to <destfile>.\\n\\n" +msgstr "" + +#: scripts/updatesync.sh.in:40 +msgid "There are two types of actions:\\n\\n" +msgstr "" + +#: scripts/updatesync.sh.in:41 +msgid "" +"upd - Will update a package's entry or create it if it doesn't exist." +"\\n It takes the package's PKGBUILD as an option.\\n" +msgstr "" + +#: scripts/updatesync.sh.in:42 +msgid "" +"del - Will remove a package's entry from the db. It takes the package's" +"\\n name as an option.\\n" +msgstr "" + +#: scripts/updatesync.sh.in:44 +msgid "" +"updatesync will calculate md5sums of packages in the same directory as" +"\\n<destfile>, unless an alternate [package_directory] is specified.\\n\\n" +msgstr "" + +#: scripts/updatesync.sh.in:47 +msgid "Example: updatesync upd /home/mypkgs/custom.db.tar.gz PKGBUILD" +msgstr "" + +#: scripts/updatesync.sh.in:53 +msgid "" +"Copyright (C) 2004 Jason Chu <jason@archlinux.org>.\\n\\nThis is free " +"software; see the source for copying conditions.\\nThere is NO WARRANTY, to " +"the extent permitted by law.\\n" +msgstr "" + +#: scripts/updatesync.sh.in:123 +msgid "%s not found" +msgstr "" + +#: scripts/updatesync.sh.in:129 +msgid "failed to parse %s" +msgstr "" + +#: scripts/updatesync.sh.in:133 +msgid "could not find %s-%s-%s-%s.%s - aborting" +msgstr "" diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 30e6b711..d5b41144 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -26,6 +26,11 @@ # USA. # +# makepkg uses quite a few external programs during its execution. You +# need to have at least the following installed for makepkg to function: +# awk, bsdtar (libarchive), bzip2, coreutils, fakeroot, find (findutils), +# getopt (util-linux), gettext, grep, gzip, sed + # gettext initialization export TEXTDOMAIN='pacman' export TEXTDOMAINDIR='@localedir@' @@ -61,7 +66,7 @@ PACMAN_OPTS= plain() { local mesg=$1; shift - if [ ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then + if [ -t 2 -a ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then printf "\033[1;37m ${mesg}\033[0m\n" "$@" >&2 else printf " ${mesg}\n" "$@" >&2 @@ -70,7 +75,7 @@ plain() { msg() { local mesg=$1; shift - if [ ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then + if [ -t 2 -a ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then printf "\033[1;32m==>\033[1;37m ${mesg}\033[0m\n" "$@" >&2 else printf "==> ${mesg}\n" "$@" >&2 @@ -79,7 +84,7 @@ msg() { msg2() { local mesg=$1; shift - if [ ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then + if [ -t 2 -a ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then printf "\033[1;34m ->\033[1;37m ${mesg}\033[0m\n" "$@" >&2 else printf " -> ${mesg}\n" "$@" >&2 @@ -88,7 +93,7 @@ msg2() { warning() { local mesg=$1; shift - if [ ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then + if [ -t 2 -a ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then printf "\033[1;33m==> $(gettext "WARNING:")\033[1;37m ${mesg}\033[0m\n" "$@" >&2 else printf "==> $(gettext "WARNING:") ${mesg}\n" "$@" >&2 @@ -97,7 +102,7 @@ warning() { error() { local mesg=$1; shift - if [ ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then + if [ -t 2 -a ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then printf "\033[1;31m==> $(gettext "ERROR:")\033[1;37m ${mesg}\033[0m\n" "$@" >&2 else printf "==> $(gettext "ERROR:") ${mesg}\n" "$@" >&2 @@ -294,9 +299,9 @@ get_downloadclient() { check_deps() { [ $# -gt 0 ] || return - pmout=$(pacman $PACMAN_OPTS -T $*) + pmout=$(pacman $PACMAN_OPTS -T "$@") ret=$? - if [ $ret -eq 1 ]; then #unresolved deps + if [ $ret -eq 127 ]; then #unresolved deps echo "$pmout" elif [ $ret -ne 0 ]; then error "$(gettext "Pacman returned a fatal error (%i): %s")" "$ret" "$pmout" @@ -327,9 +332,9 @@ handledeps() { local ret=0 if [ "$ASROOT" = 0 ]; then - sudo pacman $PACMAN_OPTS -S $striplist || ret=$? + sudo pacman $PACMAN_OPTS -S --asdeps $striplist || ret=$? else - pacman $PACMAN_OPTS -S $striplist || ret=$? + pacman $PACMAN_OPTS -S --asdeps $striplist || ret=$? fi if [ $ret -ne 0 ]; then @@ -433,16 +438,25 @@ remove_deps() { download_sources() { msg "$(gettext "Retrieving Sources...")" + + if [ ! -w "$SRCDEST" ] ; then + error "$(gettext "You do not have write permission to store downloads in %s.")" "$SRCDEST" + plain "$(gettext "Aborting...")" + exit 1 + fi + + pushd "$SRCDEST" &>/dev/null + local netfile for netfile in ${source[@]}; do local file=$(strip_url "$netfile") - if [ -f "../$file" ]; then + if [ -f "$startdir/$file" ]; then msg2 "$(gettext "Found %s in build dir")" "$file" - cp "../$file" . + cp -s --remove-destination "$startdir/$file" "$srcdir/" continue elif [ -f "$SRCDEST/$file" ]; then msg2 "$(gettext "Using cached copy of %s")" "$file" - cp "$SRCDEST/$file" . + cp -s --remove-destination "$SRCDEST/$file" "$srcdir/" continue fi @@ -458,17 +472,10 @@ download_sources() { plain "$(gettext "Aborting...")" exit 1 fi - - if [ -n "$SRCDEST" ]; then - mkdir -p "$SRCDEST" && cp "$file" "$SRCDEST" || ret=$? - if [ $ret -gt 0 ]; then - warning "$(gettext "You do not have correct permissions to cache source in %s")" "$SRCDEST" - cp "$file" .. - fi - else - cp "$file" .. - fi + cp -s --remove-destination "$SRCDEST/$file" "$srcdir/" done + + popd &>/dev/null } generate_checksums() { @@ -504,6 +511,17 @@ generate_checksums() { local netfile for netfile in ${source[@]}; do local file="$(strip_url "$netfile")" + + if [ ! -f "$file" ] ; then + if [ ! -f "$SRCDEST/$file" ] ; then + error "$(gettext "Unable to find source file %s to generate checksum.")" "$file" + plain "$(gettext "Aborting...")" + exit 1 + else + file=$SRCDEST/$file + fi + fi + local sum="$(${integ}sum "$file" | cut -d ' ' -f 1)" [ $ct -gt 0 ] && echo -n "$indent" echo -n "'$sum'" @@ -541,6 +559,16 @@ check_checksums() { file="$(strip_url "$file")" echo -n " $file ... " >&2 + if [ ! -f "$file" ] ; then + if [ ! -f "$file" ] ; then + echo "$(gettext "NOT FOUND")" >&2 + errors=1 + continue + else + file=$SRCDEST/$file + fi + fi + if echo "${integrity_sums[$idx]} $file" | ${integ}sum --status -c - &>/dev/null; then echo "$(gettext "Passed")" >&2 else @@ -548,7 +576,7 @@ check_checksums() { errors=1 fi - idx=$(($idx+1)) + idx=$((idx + 1)) done if [ $errors -gt 0 ]; then @@ -572,8 +600,18 @@ extract_sources() { continue fi + if [ ! -f "$file" ] ; then + if [ ! -f "$SRCDEST/$file" ] ; then + error "$(gettext "Unable to find source file %s for extraction.")" "$file" + plain "$(gettext "Aborting...")" + exit 1 + else + file=$SRCDEST/$file + fi + fi + # fix flyspray #6246 - local file_type=$(file -biz "$file") + local file_type=$(file -bizL "$file") local cmd='' case "$file_type" in *application/x-tar*|*application/x-zip*|*application/x-cpio*) @@ -631,7 +669,7 @@ run_build() { umask 0022 # ensure all necessary build variables are exported - export CFLAGS CXXFLAGS MAKEFLAGS + export CFLAGS CXXFLAGS MAKEFLAGS CHOST local ret=0 if [ "$LOGGING" = "1" ]; then @@ -1107,13 +1145,13 @@ if [ "$INFAKEROOT" = "0" ]; then error "$(gettext "The --asroot option is meant for the root user only.")" plain "$(gettext "Please rerun makepkg without the --asroot flag.")" exit 1 # $E_USER_ABORT - elif [ "$(check_buildenv fakeroot)" = "y" ]; then + elif [ "$(check_buildenv fakeroot)" = "y" -a $EUID -gt 0 ]; then if [ ! $(type -p fakeroot) ]; then error "$(gettext "Fakeroot must be installed if using the 'fakeroot' option")" plain "$(gettext "in the BUILDENV array in %s.")" "$confdir/makepkg.conf" exit 1 fi - else + elif [ $EUID -gt 0 ]; then warning "$(gettext "Running makepkg as an unprivileged user will result in non-root")" plain "$(gettext "ownership of the packaged files. Try using the fakeroot environment by")" plain "$(gettext "placing 'fakeroot' in the BUILDENV array in makepkg.conf.")" @@ -1174,7 +1212,7 @@ if [ $(echo "$pkgrel" | grep '-') ]; then fi if ! in_array $CARCH ${arch[@]}; then - if "$IGNOREARCH" = "0" ]; then + if [ "$IGNOREARCH" = "0" ]; then error "$(gettext "%s is not available for the '%s' architecture.")" "$pkgname" "$CARCH" plain "$(gettext "Note that many packages may need a line added to their %s")" "$BUILDSCRIPT" plain "$(gettext "such as arch=('%s').")" "$CARCH" diff --git a/scripts/pacman-optimize.sh.in b/scripts/pacman-optimize.sh.in index fe59e661..83c56a77 100644 --- a/scripts/pacman-optimize.sh.in +++ b/scripts/pacman-optimize.sh.in @@ -63,13 +63,13 @@ There is NO WARRANTY, to the extent permitted by law.\n")" } die() { - error $@ + error "$@" exit 1 } die_r() { - rm -f $lockfile - die $@ + rm -f "$lockfile" + die "$@" } if [ "$1" = "-h" -o "$1" = "--help" ]; then @@ -87,8 +87,8 @@ if [ "$1" != "" ]; then fi # make sure pacman isn't running -if [ -f $lockfile ]; then - die "$(gettext "Pacman lockfile was found. Cannot run while pacman is running.")" +if [ -f "$lockfile" ]; then + die "$(gettext "Pacman lock file was found. Cannot run while pacman is running.")" fi if [ ! -d "$dbroot" ]; then @@ -99,55 +99,58 @@ if [ ! -w "$dbroot" ]; then die "$(gettext "You must have correct permissions to optimize the database.")" fi +workdir=$(mktemp -d /tmp/pacman-optimize.XXXXXXXXXX) || + die_r "$(gettext "ERROR: Can not create temp directory for database building.")\n" >&2 + # do not let pacman run while we do this -touch $lockfile +touch "$lockfile" # step 1: sum the old db msg "$(gettext "MD5sum'ing the old database...")" -find $dbroot -type f | sort | xargs md5sum > /tmp/pacsums.old +find "$dbroot" -type f | sort | xargs md5sum > "$workdir/pacsums.old" # step 2: tar it up msg "$(gettext "Tar'ing up %s...")" "$dbroot" -cd $dbroot -tar -czf /tmp/pacmanDB.tgz ./ +cd "$dbroot" +bsdtar -czf "$workdir/pacmanDB.tgz" ./ if [ $? -ne 0 ]; then - rm -f /tmp/pacmanDB.tgz /tmp/pacsums.old + rm -rf "$workdir" die_r "$(gettext "Tar'ing up %s failed.")" "$dbroot" fi # step 3: make and sum the new db msg "$(gettext "Making and MD5sum'ing the new db...")" -mkdir $dbroot.new -tar -zxpf /tmp/pacmanDB.tgz -C $dbroot.new/ +mkdir "$dbroot.new" +bsdtar -zxpf "$workdir/pacmanDB.tgz" -C "$dbroot.new/" if [ $? -ne 0 ]; then - rm -f /tmp/pacmanDB.tgz /tmp/pacsums.old - rm -rf "$dbroot.new" - die_r "$(gettext "Untar'ing $dbroot failed.")" + rm -rf "$workdir" + die_r "$(gettext "Untar'ing %s failed.")" "$dbroot" fi -find "$dbroot.new" -type f | sort | sed -e 's/pacman.new/pacman/g' | \ - xargs md5sum > /tmp/pacsums.new +find "$dbroot.new" -type f | sort | \ + xargs md5sum | sed 's#.new/##' > "$workdir/pacsums.new" # step 4: compare the sums msg "$(gettext "Checking integrity...")" -diff /tmp/pacsums.old /tmp/pacsums.new >/dev/null 2>&1 +diff "$workdir/pacsums.old" "$workdir/pacsums.new" >/dev/null 2>&1 if [ $? -ne 0 ]; then # failed # leave /tmp/pacsums.old and .new for checking to see what doesn't match up - rm -rf "$dbroot.new" $lockfile /tmp/pacmanDB.tgz - die_r "$(gettext "integrity check FAILED, reverting to old database.")" + rm -rf "$dbroot.new" + die_r "$(gettext "Integrity check FAILED, reverting to old database.")" fi # step 5: remove the new temporary database and the old one # and use the .tgz to replace the old one msg "$(gettext "Putting the new database in place...")" rm -rf "$dbroot.new" "$dbroot"/* -tar -zxpf /tmp/pacmanDB.tgz -C "$dbroot"/ +bsdtar -zxpf "$workdir/pacmanDB.tgz" -C "$dbroot/" # remove the lock file, sum files, and .tgz of database -rm -f $lockfile /tmp/pacsums.old /tmp/pacsums.new /tmp/pacmanDB.tgz +rm -f "$lockfile" +rm -rf "$workdir" echo -echo "$(gettext "Finished. Your pacman database has been optimized.")" +msg "$(gettext "Finished. Your pacman database has been optimized.")" echo exit 0 diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index 1df650bd..cb741d76 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -25,10 +25,30 @@ export TEXTDOMAIN='pacman' export TEXTDOMAINDIR='@localedir@' myver='@PACKAGE_VERSION@' +confdir='@sysconfdir@' FORCE=0 REPO_DB_FILE="" -TMP_DIR="" + +msg() { + local mesg=$1; shift + printf "==> ${mesg}\n" "$@" >&1 +} + +msg2() { + local mesg=$1; shift + printf " -> ${mesg}\n" "$@" >&1 +} + +warning() { + local mesg=$1; shift + printf "==> $(gettext "WARNING:") ${mesg}\n" "$@" >&2 +} + +error() { + local mesg=$1; shift + printf "==> $(gettext "ERROR:") ${mesg}\n" "$@" >&2 +} # print usage instructions usage() { @@ -52,37 +72,28 @@ This is free software; see the source for copying conditions.\n\ There is NO WARRANTY, to the extent permitted by law.\n")" } -# return calculated checksum of package -# arg1 - checksum type -# arg2 - path to package -get_checksum () { - case "$(echo "$1" | tr A-Z a-z)" in - md5) sum=$(md5sum $2); echo ${sum% *} ;; - sha1) sum=$(sha1sum $2); echo ${sum% *} ;; - sha256) sum=$(sha256sum $2); echo ${sum% *} ;; - sha384) sum=$(sha256sum $2); echo ${sum% *} ;; - sha512) sum=$(sha256sum $2); echo ${sum% *} ;; - esac -} - -# return PKGINFO string for checksum type -# arg1 - checksum type -checksum_name () { - case "$(echo "$1" | tr A-Z a-z)" in - md5) echo "MD5SUM" ;; - sha1) echo "SHA1SUM" ;; - sha256) echo "SHA256SUM" ;; - sha384) echo "SHA384SUM" ;; - sha512) echo "SHA512SUM" ;; - esac -} - # test if a file is a repository DB test_repo_db_file () { if [ -f "$REPO_DB_FILE" ]; then - [ "$(tar tf "$REPO_DB_FILE" | grep -c "/desc")" -gt 0 ] || return 1 + if bsdtar -tf "$REPO_DB_FILE" | grep -q "/desc"; then + return 0 # YES + fi else - true + return 0 # YES - No database file is also aloud. + fi + + return 1 # NO +} + +# write a list entry +# arg1 - Entry name +# arg2 - List +# arg3 - File to write to +write_list_entry() { + if [ -n "$2" ]; then + echo "%$1%" >>$3 + echo $2 | tr -s ' ' '\n' >>$3 + echo "" >>$3 fi } @@ -91,36 +102,26 @@ test_repo_db_file () { db_write_entry() { # blank out all variables and set pkgfile - pkgfile=$(readlink -f $1) - export pkgname="" - pkgver="" - pkgdesc="" - url="" - builddate="" - packager="" - csize="" - size="" - _groups="" - _depends="" - _backups="" - _licenses="" - _replaces="" - _provides="" - _conflicts="" - - OLDIFS="$IFS" + local pkgfile=$(readlink -f "$1") + local pkgname pkgver pkgdesc url builddate packager csize size \ + group depend backup license replaces provides conflict \ + _groups _depends _backups _licenses _replaces _provides _conflicts + + local OLDIFS="$IFS" # IFS (field seperator) is only the newline character IFS=" " # read info from the zipped package - for i in $(tar xOf "$pkgfile" .PKGINFO | grep -v "^#" |sed 's|\(\w*\)\s*=\s*\(.*\)|\1="\2"|'); do - eval "${i}" - case "$i" in - group=*) _groups="$_groups $group" ;; - depend=*) _depends="$_depends $depend" ;; - backup=*) _backups="$_backups $backup" ;; - license=*) _licenses="$_licenses $license" ;; + local line + for line in $(bsdtar -xOf "$pkgfile" .PKGINFO | \ + grep -v "^#" | sed 's|\(\w*\)\s*=\s*\(.*\)|\1="\2"|'); do + eval "$line" + case "$line" in + group=*) _groups="$_groups $group" ;; + depend=*) _depends="$_depends $depend" ;; + backup=*) _backups="$_backups $backup" ;; + license=*) _licenses="$_licenses $license" ;; replaces=*) _replaces="$_replaces $replaces" ;; provides=*) _provides="$_provides $provides" ;; conflict=*) _conflicts="$_conflicts $conflict" ;; @@ -130,21 +131,23 @@ db_write_entry() IFS=$OLDIFS # get compressed size of package - csize="$(du -b -L $pkgfile | cut -f1)" + csize=$(du -b -L "$pkgfile" | cut -f 1) - cd $gstmpdir + pushd "$gstmpdir" 2>&1 >/dev/null # ensure $pkgname and $pkgver variables were found if [ -z "$pkgname" -o -z "$pkgver" ]; then - echo "$(gettext " error: invalid package file")" + error "$(gettext "Invalid package file '%s'.")" "$pkgfile" + popd 2>&1 >/dev/null return 1 fi # remove any other package in the DB with same name + local existing for existing in *; do if [ "${existing%-*-*}" = "$pkgname" ]; then - echo "$(gettext ":: removing existing package '%s'")" $existing - rm -rf $existing + msg2 "$(gettext "Removing existing package '%s'...")" "$existing" + rm -rf "$existing" fi done @@ -153,67 +156,37 @@ db_write_entry() cd "$pkgname-$pkgver" # create desc entry - echo "$(gettext ":: creating 'desc' db entry")" - echo -e "%FILENAME%\n$(basename $1)\n" >>desc + msg2 "$(gettext "Creating 'desc' db entry...")" + echo -e "%FILENAME%\n$(basename "$1")\n" >>desc echo -e "%NAME%\n$pkgname\n" >>desc echo -e "%VERSION%\n$pkgver\n" >>desc - if [ -n "$pkgdesc" ]; then - echo -e "%DESC%\n$pkgdesc\n" >>desc - fi - if [ -n "$_groups" ]; then - echo "%GROUPS%" >>desc - echo $_groups | tr -s ' ' '\n' >>desc - echo "" >>desc - fi + [ -n "$pkgdesc" ] && echo -e "%DESC%\n$pkgdesc\n" >>desc + write_list_entry "GROUPS" "$_groups" "desc" [ -n $csize ] && echo -e "%CSIZE%\n$csize\n" >>desc [ -n $size ] && echo -e "%ISIZE%\n$size\n" >>desc # compute checksums - for chk in ${DB_CHECKSUMS[@]}; do - name="$(checksum_name $chk)" - echo "$(gettext ":: computing %s checksums")" $name - if [ -n "$name" ]; then - echo -e "%$name%\n$(get_checksum $chk $pkgfile)\n" >>desc - fi - done + msg2 "$(gettext "Computing md5 checksums...")" + echo -e "%MD5SUM%\n$(md5sum "$pkgfile" | cut -d ' ' -f 1)\n" >>desc [ -n "$url" ] && echo -e "%URL%\n$url\n" >>desc - if [ -n "$_licenses" ]; then - echo "%LICENSE%" >>desc - echo $_licenses | tr -s ' ' '\n' >>desc - echo "" >>desc - fi + write_list_entry "LICENSE" "$_licenses" "desc" [ -n "$arch" ] && echo -e "%ARCH%\n$arch\n" >>desc [ -n "$builddate" ] && echo -e "%BUILDDATE%\n$builddate\n" >>desc [ -n "$packager" ] && echo -e "%PACKAGER%\n$packager\n" >>desc - - if [ -n "$_replaces" ]; then - echo "%REPLACES%" >>desc - echo $_replaces | tr -s ' ' '\n' >>desc - echo "" >>desc - fi - [ "$FORCE" = "1" ] && echo -e "%FORCE%\n" >>desc + write_list_entry "REPLACES" "$_replaces" "desc" + [ $FORCE -eq 1 ] && echo -e "%FORCE%\n" >>desc # create depends entry - echo ":: creating 'depends' db entry" - if [ -n "$_depends" ]; then - echo "%DEPENDS%" >>depends - echo $_depends | tr -s ' ' '\n' >>depends - echo "" >>depends - fi - if [ -n "$_conflicts" ]; then - echo "%CONFLICTS%" >>depends - echo $_conflicts | tr -s ' ' '\n' >>depends - echo "" >>depends - fi - if [ -n "$_provides" ]; then - echo "%PROVIDES%" >>depends - echo $_provides | tr -s ' ' '\n' >>depends - echo "" >>depends - fi + msg2 "$(gettext "Creating 'depends' db entry...")" + write_list_entry "DEPENDS" "$_depends" "depends" + write_list_entry "CONFLICTS" "$_conflicts" "depends" + write_list_entry "PROVIDES" "$_provides" "depends" # preserve the modification time touch -r "$pkgfile" desc depends + + popd 2>&1 >/dev/null } # end db_write_entry # PROGRAM START @@ -237,10 +210,10 @@ if [ $# -lt 2 ]; then fi # source system and user makepkg.conf -if [ -r @sysconfdir@/makepkg.conf ]; then - source @sysconfdir@/makepkg.conf +if [ -r "$confdir/makepkg.conf" ]; then + source "$confdir/makepkg.conf" else - echo "$(gettext "ERROR: /etc/makepkg.conf not found. Can not continue.")" >&2 + error "$(gettext "%s not found. Cannot continue.")" "$confdir/makepkg.conf" exit 1 # $E_CONFIG_ERROR fi @@ -249,64 +222,65 @@ if [ -r ~/.makepkg.conf ]; then fi # main routine -if [ $# -gt 1 ]; then - gstmpdir=$(mktemp -d /tmp/gensync.XXXXXXXXXX) || (\ - echo "$(gettext "cannot create temp directory for database building")"; \ +gstmpdir=$(mktemp -d /tmp/repo-add.XXXXXXXXXX) || (\ + error "$(gettext "Cannot create temp directory for database building.")"; \ exit 1) - success=0 - # parse arguements - for arg in $@; do - if [ "$arg" == "--force" -o "$arg" == "-f" ]; then - FORCE=1 - elif [ -z "$REPO_DB_FILE" ]; then - REPO_DB_FILE="$(readlink -f $arg)" - if ! test_repo_db_file; then - echo "$(gettext "error: repository file '%s' is not a proper pacman db")" $REPO_DB_FILE - exit 1 - elif [ -f "$REPO_DB_FILE" ]; then - echo "$(gettext ":: extracting database to a temporary location")" - tar xf "$REPO_DB_FILE" -C "$gstmpdir" - fi - else - if [ -f "$arg" ]; then - if ! tar tf "$arg" .PKGINFO 2>&1 >/dev/null; then - echo "$(gettext "error: '%s' is not a package file, skipping")" $arg - else - echo "$(gettext ":: adding package '%s'")" $arg - - this_dir="$(pwd)" - if db_write_entry "$arg"; then - success=1 - fi - cd $this_dir - fi +success=0 +# parse arguements +for arg in "$@"; do + if [ "$arg" == "--force" -o "$arg" == "-f" ]; then + FORCE=1 + elif [ -z "$REPO_DB_FILE" ]; then + REPO_DB_FILE=$(readlink -f "$arg") + if ! test_repo_db_file; then + error "$(gettext "Repository file '%s' is not a proper pacman database.")" "$REPO_DB_FILE" + exit 1 + elif [ -f "$REPO_DB_FILE" ]; then + msg "$(gettext "Extracting database to a temporary location...")" + bsdtar -xf "$REPO_DB_FILE" -C "$gstmpdir" + fi + else + if [ -f "$arg" ]; then + if ! bsdtar -tf "$arg" .PKGINFO 2>&1 >/dev/null; then + error "$(gettext "'%s' is not a package file, skipping")" "$arg" else - echo "$(gettext "error: package '%s' not found")" $arg + msg "$(gettext "Adding package '%s'")" "$arg" + + if db_write_entry "$arg"; then + success=1 + fi fi + else + error "$(gettext "Package '%s' not found.")" "$arg" fi - done + fi +done - # if all operations were a success, rezip database - if [ "$success" = "1" ]; then - echo "$(gettext ":: creating updated database file %s")" ${REPO_DB_FILE} - cd $gstmpdir - if [ -n "$(ls)" ]; then - [ -f "${REPO_DB_FILE}.old" ] && rm "${REPO_DB_FILE}.old" - [ -f "$REPO_DB_FILE" ] && mv "$REPO_DB_FILE" "${REPO_DB_FILE}.old" - case "$DB_COMPRESSION" in - gz) tar c * | gzip -9 >$REPO_DB_FILE ;; - bz2) tar c * | bzip2 -9 >$REPO_DB_FILE ;; - *) echo "$(gettext "warning: no compression set")" - tar c * >$REPO_DB_FILE;; - esac - fi - else - echo "$(gettext ":: no packages modified, nothing to do")" +# if all operations were a success, rezip database +if [ $success -eq 1 ]; then + msg "$(gettext "Creating updated database file %s")" "$REPO_DB_FILE" + pushd "$gstmpdir" 2>&1 >/dev/null + + if [ -n "$(ls)" ]; then + [ -f "${REPO_DB_FILE}.old" ] && rm "${REPO_DB_FILE}.old" + [ -f "$REPO_DB_FILE" ] && mv "$REPO_DB_FILE" "${REPO_DB_FILE}.old" + + case "$DB_COMPRESSION" in + gz) TAR_OPT="z" ;; + bz2) TAR_OPT="j" ;; + *) warning "$(gettext "No compression set.")" ;; + esac + + bsdtar -c${TAR_OPT}f "$REPO_DB_FILE" * fi + + popd 2>&1 >/dev/null +else + msg "$(gettext "No packages modified, nothing to do.")" fi # remove the temp directory used to unzip -[ -d "$gstmpdir" ] && rm -rf $gstmpdir +[ -d "$gstmpdir" ] && rm -rf "$gstmpdir" # vim: set ts=2 sw=2 noet: diff --git a/scripts/repo-remove.sh.in b/scripts/repo-remove.sh.in index 63209728..617f04cf 100644 --- a/scripts/repo-remove.sh.in +++ b/scripts/repo-remove.sh.in @@ -25,10 +25,30 @@ export TEXTDOMAIN='pacman' export TEXTDOMAINDIR='@localedir@' myver='@PACKAGE_VERSION@' +confdir='@sysconfdir@' FORCE=0 REPO_DB_FILE="" -TMP_DIR="" + +msg() { + local mesg=$1; shift + printf "==> ${mesg}\n" "$@" >&1 +} + +msg2() { + local mesg=$1; shift + printf " -> ${mesg}\n" "$@" >&1 +} + +warning() { + local mesg=$1; shift + printf "==> $(gettext "WARNING:") ${mesg}\n" "$@" >&2 +} + +error() { + local mesg=$1; shift + printf "==> $(gettext "ERROR:") ${mesg}\n" "$@" >&2 +} # print usage instructions usage() { @@ -52,24 +72,28 @@ There is NO WARRANTY, to the extent permitted by law.\n")" # test if a file is a repository DB test_repo_db_file () { if [ -f "$REPO_DB_FILE" ]; then - [ "$(tar tf "$REPO_DB_FILE" | grep -c "/desc")" -gt 0 ] || return 1 - else - true + if bsdtar -tf "$REPO_DB_FILE" | grep -q "/desc"; then + return 0 # YES + fi fi + + return 1 # NO } # remove existing entries from the DB -db_remove_entry() -{ - cd $gstmpdir +db_remove_entry() { + pushd "$gstmpdir" 2>&1 >/dev/null # remove any other package in the DB with same name + local existing for existing in *; do if [ "${existing%-*-*}" = "$1" ]; then - echo "$(gettext ":: removing existing package '%s'")" $existing - rm -rf $existing + msg2 "$(gettext "Removing existing package '%s'...")" "$existing" + rm -rf "$existing" fi done + + popd 2>&1 >/dev/null } # end db_remove_entry # PROGRAM START @@ -93,10 +117,10 @@ if [ $# -lt 2 ]; then fi # source system and user makepkg.conf -if [ -r @sysconfdir@/makepkg.conf ]; then - source @sysconfdir@/makepkg.conf +if [ -r "$confdir/makepkg.conf" ]; then + source "$confdir/makepkg.conf" else - echo "$(gettext "ERROR: /etc/makepkg.conf not found. Can not continue.")" >&2 + error "$(gettext "%s not found. Cannot continue.")" "$confdir/makepkg.conf" exit 1 # $E_CONFIG_ERROR fi @@ -105,53 +129,53 @@ if [ -r ~/.makepkg.conf ]; then fi # main routine -if [ $# -gt 1 ]; then - gstmpdir=$(mktemp -d /tmp/gensync.XXXXXXXXXX) || (\ - echo "$(gettext "cannot create temp directory for database building")"; \ +gstmpdir=$(mktemp -d /tmp/repo-remove.XXXXXXXXXX) || (\ + error "$(gettext "Cannot create temp directory for database building.")"; \ exit 1) - success=0 - # parse arguements - for arg in $@; do - if [ -z "$REPO_DB_FILE" ]; then - REPO_DB_FILE="$(readlink -f $arg)" - if ! test_repo_db_file; then - echo "$(gettext "error: repository file '%s' is not a proper pacman db")" $REPO_DB_FILE - exit 1 - elif [ -f "$REPO_DB_FILE" ]; then - echo "$(gettext ":: extracting database to a temporary location")" - tar xf "$REPO_DB_FILE" -C "$gstmpdir" - fi - else - echo "$(gettext ":: searching for package '%s'")" - - this_dir="$(pwd)" - if db_remove_entry "$arg"; then - success=1 - else - echo "$(gettext "error: package matching '%s' not found")" $arg - fi - cd $this_dir +success=0 +# parse arguements +for arg in "$@"; do + if [ -z "$REPO_DB_FILE" ]; then + REPO_DB_FILE=$(readlink -f "$arg") + if ! test_repo_db_file; then + error "$(gettext "Repository file '%s' is not a proper pacman database.")\n" "$REPO_DB_FILE" + exit 1 + elif [ -f "$REPO_DB_FILE" ]; then + msg "$(gettext "Extracting database to a temporary location...")" + bsdtar -xf "$REPO_DB_FILE" -C "$gstmpdir" fi - done + else + msg "$(gettext "Searching for package '%s'...")" "$arg" - # if all operations were a success, rezip database - if [ "$success" = "1" ]; then - echo "$(gettext ":: creating updated database file %s")" ${REPO_DB_FILE} - cd $gstmpdir - if [ -n "$(ls)" ]; then - [ -f "${REPO_DB_FILE}.old" ] && rm "${REPO_DB_FILE}.old" - [ -f "$REPO_DB_FILE" ] && mv "$REPO_DB_FILE" "${REPO_DB_FILE}.old" - case "$DB_COMPRESSION" in - gz) tar c * | gzip -9 >$REPO_DB_FILE ;; - bz2) tar c * | bzip2 -9 >$REPO_DB_FILE ;; - *) echo "$(gettext "warning: no compression set")" - tar c * >$REPO_DB_FILE;; - esac + if db_remove_entry "$arg"; then + success=1 + else + error "$(gettext "Package matching '%s' not found.")" "$arg" fi - else - echo "$(gettext ":: no packages modified, nothing to do")" fi +done + +# if all operations were a success, rezip database +if [ $success -eq 1 ]; then + msg "$(gettext "Creating updated database file '%s'...")" "$REPO_DB_FILE" + pushd "$gstmpdir" 2>&1 >/dev/null + + if [ -n "$(ls)" ]; then + [ -f "${REPO_DB_FILE}.old" ] && rm "${REPO_DB_FILE}.old" + [ -f "$REPO_DB_FILE" ] && mv "$REPO_DB_FILE" "${REPO_DB_FILE}.old" + case "$DB_COMPRESSION" in + gz) TAR_OPT="z" ;; + bz2) TAR_OPT="j" ;; + *) warning "$(gettext "No compression set.")" ;; + esac + + bsdtar -c${TAR_OPT}f "$REPO_DB_FILE" * + fi + + popd 2>&1 >/dev/null +else + msg "$(gettext "No packages modified, nothing to do.")" fi # remove the temp directory used to unzip diff --git a/src/pacman/.gitignore b/src/pacman/.gitignore index f8247c5e..3b2600fd 100644 --- a/src/pacman/.gitignore +++ b/src/pacman/.gitignore @@ -1,6 +1,4 @@ .deps .libs -Makefile -Makefile.in pacman pacman.static diff --git a/src/pacman/Makefile.am b/src/pacman/Makefile.am index 589ac63c..939ff197 100644 --- a/src/pacman/Makefile.am +++ b/src/pacman/Makefile.am @@ -1,10 +1,15 @@ # paths set at make time conffile = ${sysconfdir}/pacman.conf +dbpath = ${localstatedir}/lib/pacman/ +cachedir = ${localstatedir}/cache/pacman/pkg/ bin_PROGRAMS = pacman pacman.static DEFS = -DLOCALEDIR=\"@localedir@\" \ -DCONFFILE=\"$(conffile)\" \ + -DROOTDIR=\"$(ROOTDIR)\" \ + -DDBPATH=\"$(dbpath)\" \ + -DCACHEDIR=\"$(cachedir)\" \ @DEFS@ INCLUDES = -I$(top_srcdir)/lib/libalpm diff --git a/src/pacman/add.c b/src/pacman/add.c index 71578f63..0b59a236 100644 --- a/src/pacman/add.c +++ b/src/pacman/add.c @@ -42,7 +42,7 @@ static int add_cleanup(void) int ret = alpm_trans_release(); if(ret != 0) { pm_printf(PM_LOG_ERROR, _("failed to release transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); ret = 1; } @@ -105,7 +105,7 @@ int pacman_add(alpm_list_t *targets) if(alpm_trans_init(transtype, config->flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) { /* TODO: error messages should be in the front end, not the back */ - fprintf(stderr, _("error: %s\n"), alpm_strerror(pm_errno)); + fprintf(stderr, _("error: %s\n"), alpm_strerrorlast()); if(pm_errno == PM_ERR_HANDLE_LOCK) { /* TODO this and the 2 other places should probably be on stderr */ printf(_(" if you're sure a package manager is not already\n" @@ -120,7 +120,7 @@ int pacman_add(alpm_list_t *targets) char *targ = alpm_list_getdata(i); if(alpm_trans_addtarget(targ) == -1) { fprintf(stderr, _("error: failed to add target '%s' (%s)"), targ, - alpm_strerror(pm_errno)); + alpm_strerrorlast()); add_cleanup(); return(1); } @@ -131,28 +131,29 @@ int pacman_add(alpm_list_t *targets) /* TODO: No, compute nothing. This is stupid. */ if(alpm_trans_prepare(&data) == -1) { fprintf(stderr, _("error: failed to prepare transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); switch(pm_errno) { case PM_ERR_UNSATISFIED_DEPS: for(i = data; i; i = alpm_list_next(i)) { pmdepmissing_t *miss = alpm_list_getdata(i); + pmdepend_t *dep = alpm_miss_get_dep(miss); /* TODO indicate if the error was a virtual package or not: * :: %s: requires %s, provided by %s */ - printf(_(":: %s: requires %s"), alpm_dep_get_target(miss), - alpm_dep_get_name(miss)); - switch(alpm_dep_get_mod(miss)) { + printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss), + alpm_dep_get_name(dep)); + switch(alpm_dep_get_mod(dep)) { case PM_DEP_MOD_ANY: break; case PM_DEP_MOD_EQ: - printf("=%s", alpm_dep_get_version(miss)); + printf("=%s", alpm_dep_get_version(dep)); break; case PM_DEP_MOD_GE: - printf(">=%s", alpm_dep_get_version(miss)); + printf(">=%s", alpm_dep_get_version(dep)); break; case PM_DEP_MOD_LE: - printf("<=%s", alpm_dep_get_version(miss)); + printf("<=%s", alpm_dep_get_version(dep)); break; } printf("\n"); @@ -161,8 +162,9 @@ int pacman_add(alpm_list_t *targets) case PM_ERR_CONFLICTING_DEPS: for(i = data; i; i = alpm_list_next(i)) { pmdepmissing_t *miss = alpm_list_getdata(i); + pmdepend_t *dep = alpm_miss_get_dep(miss); printf(_(":: %s: conflicts with %s"), - alpm_dep_get_target(miss), alpm_dep_get_name(miss)); + alpm_miss_get_target(miss), alpm_dep_get_name(dep)); } break; case PM_ERR_FILE_CONFLICTS: @@ -195,7 +197,7 @@ int pacman_add(alpm_list_t *targets) /* Step 3: perform the installation */ if(alpm_trans_commit(NULL) == -1) { - fprintf(stderr, _("error: failed to commit transaction (%s)\n"), alpm_strerror(pm_errno)); + fprintf(stderr, _("error: failed to commit transaction (%s)\n"), alpm_strerrorlast()); add_cleanup(); return(1); } diff --git a/src/pacman/callback.c b/src/pacman/callback.c index 0e5d87ee..fac16c5e 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -25,7 +25,6 @@ #include <stdlib.h> #include <string.h> #include <sys/time.h> -#include <sys/stat.h> #include <unistd.h> #include <dirent.h> #include <wchar.h> @@ -61,7 +60,7 @@ static int prevpercent=0; /* for less progressbar output */ static float get_update_timediff(int first_call) { float retval = 0.0; - static struct timeval last_time = {0}; + static struct timeval last_time = {0, 0}; /* on first call, simply set the last time and return */ if(first_call) { diff --git a/src/pacman/conf.c b/src/pacman/conf.c index 245e3c04..2bc69820 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -23,32 +23,36 @@ #include <stdlib.h> #include <stdio.h> +#include <string.h> /* strdup */ /* pacman */ #include "conf.h" config_t *config_new(void) { - config_t *config = calloc(1, sizeof(config_t)); - if(!config) { + config_t *newconfig = calloc(1, sizeof(config_t)); + if(!newconfig) { fprintf(stderr, "malloc failure: could not allocate %d bytes\n", sizeof(config_t)); } - config->op = PM_OP_MAIN; - config->logmask = PM_LOG_ERROR | PM_LOG_WARNING; + /* defaults which may get overridden later */ + newconfig->op = PM_OP_MAIN; + newconfig->logmask = PM_LOG_ERROR | PM_LOG_WARNING; + /* CONFFILE is defined at compile-time */ + newconfig->configfile = strdup(CONFFILE); - return(config); + return(newconfig); } -int config_free(config_t *config) +int config_free(config_t *oldconfig) { - if(config == NULL) { + if(oldconfig == NULL) { return(-1); } - free(config->configfile); - free(config); - config = NULL; + free(oldconfig->configfile); + free(oldconfig); + oldconfig = NULL; return(0); } diff --git a/src/pacman/conf.h b/src/pacman/conf.h index 252bb95a..85889d19 100644 --- a/src/pacman/conf.h +++ b/src/pacman/conf.h @@ -24,7 +24,6 @@ #include <alpm.h> typedef struct __config_t { - /* command line options */ char *configfile; unsigned short op; unsigned short verbose; @@ -34,19 +33,23 @@ typedef struct __config_t { unsigned short noconfirm; unsigned short noprogressbar; unsigned short logmask; + /* keep track if we had paths specified on command line */ + unsigned short have_root; + unsigned short have_dbpath; + unsigned short have_logfile; - /* command line options */ - unsigned short op_d_resolve; unsigned short op_q_isfile; unsigned short op_q_info; unsigned short op_q_list; unsigned short op_q_foreign; unsigned short op_q_orphans; + unsigned short op_q_deps; + unsigned short op_q_explicit; unsigned short op_q_owns; unsigned short op_q_search; unsigned short op_q_changelog; - unsigned short op_q_test; unsigned short op_q_upgrade; + unsigned short op_s_clean; unsigned short op_s_dependsonly; unsigned short op_s_downloadonly; @@ -54,10 +57,12 @@ typedef struct __config_t { unsigned short op_s_sync; unsigned short op_s_search; unsigned short op_s_upgrade; + unsigned short group; pmtransflag_t flags; unsigned short noask; unsigned int ask; + /* conf file options */ unsigned short chomp; /* I Love Candy! */ unsigned short usecolor; /* enable colorful output */ @@ -76,7 +81,7 @@ enum { }; config_t *config_new(void); -int config_free(config_t *config); +int config_free(config_t *oldconfig); #endif /* _PM_CONF_H */ diff --git a/src/pacman/deptest.c b/src/pacman/deptest.c index 264ba1c9..7f89f6d2 100644 --- a/src/pacman/deptest.c +++ b/src/pacman/deptest.c @@ -35,6 +35,7 @@ extern config_t *config; +/* TODO: This should use _alpm_checkdeps() */ int pacman_deptest(alpm_list_t *targets) { int retval = 0; @@ -52,20 +53,16 @@ int pacman_deptest(alpm_list_t *targets) alpm_list_t *j, *provides; target = alpm_list_getdata(i); - - /* splitdep modifies the string... we'll compensate for now */ - char *saved_target = NULL; - saved_target = calloc(strlen(target)+1, sizeof(char)); - strncpy(saved_target, target, strlen(target)); - dep = alpm_splitdep(target); - pkg = alpm_db_get_pkg(alpm_option_get_localdb(), target); + pkg = alpm_db_get_pkg(alpm_option_get_localdb(), + alpm_dep_get_name(dep)); if(pkg && alpm_depcmp(pkg, dep)) { found = 1; } else { /* not found, can we find anything that provides this in the local DB? */ - provides = alpm_db_whatprovides(alpm_option_get_localdb(), target); + provides = alpm_db_whatprovides(alpm_option_get_localdb(), + alpm_dep_get_name(dep)); for(j = provides; j; j = alpm_list_next(j)) { pmpkg_t *pkg; pkg = alpm_list_getdata(j); @@ -78,10 +75,10 @@ int pacman_deptest(alpm_list_t *targets) } if(!found) { - printf("%s\n", saved_target); - retval = 1; + printf("%s\n", target); + retval = 127; } - free(saved_target); + free(dep); } return(retval); } diff --git a/src/pacman/package.c b/src/pacman/package.c index a30260ae..86d91ecb 100644 --- a/src/pacman/package.c +++ b/src/pacman/package.c @@ -43,7 +43,7 @@ */ void dump_pkg_full(pmpkg_t *pkg, int level) { - const char *bdate, *type, *idate, *reason, *descheader; + const char *bdate, *idate, *reason, *descheader; if(pkg == NULL) { return; @@ -51,7 +51,6 @@ void dump_pkg_full(pmpkg_t *pkg, int level) /* set variables here, do all output below */ bdate = alpm_pkg_get_builddate(pkg); - type = alpm_pkg_get_buildtype(pkg); idate = alpm_pkg_get_installdate(pkg); switch((long)alpm_pkg_get_reason(pkg)) { @@ -86,7 +85,6 @@ void dump_pkg_full(pmpkg_t *pkg, int level) printf(_("Packager : %s\n"), (char *)alpm_pkg_get_packager(pkg)); printf(_("Architecture : %s\n"), (char *)alpm_pkg_get_arch(pkg)); printf(_("Build Date : %s %s\n"), bdate, strlen(bdate) ? "UTC" : ""); - printf(_("Build Type : %s\n"), strlen(type) ? type : _("Unknown")); if(level > 0) { printf(_("Install Date : %s %s\n"), idate, strlen(idate) ? "UTC" : ""); printf(_("Install Reason : %s\n"), reason); @@ -112,7 +110,7 @@ void dump_pkg_full(pmpkg_t *pkg, int level) */ void dump_pkg_sync(pmpkg_t *pkg, const char *treename) { - const char *descheader, *md5sum, *sha1sum; + const char *descheader, *md5sum; if(pkg == NULL) { return; } @@ -120,7 +118,6 @@ void dump_pkg_sync(pmpkg_t *pkg, const char *treename) descheader = _("Description : "); md5sum = alpm_pkg_get_md5sum(pkg); - sha1sum = alpm_pkg_get_sha1sum(pkg); printf(_("Repository : %s\n"), treename); printf(_("Name : %s\n"), (char *)alpm_pkg_get_name(pkg)); @@ -141,9 +138,6 @@ void dump_pkg_sync(pmpkg_t *pkg, const char *treename) if (md5sum != NULL && md5sum[0] != '\0') { printf(_("MD5 Sum : %s"), md5sum); } - if (sha1sum != NULL && sha1sum[0] != '\0') { - printf(_("SHA1 Sum : %s"), sha1sum); - } printf("\n"); } @@ -170,31 +164,22 @@ void dump_pkg_backups(pmpkg_t *pkg) snprintf(path, PATH_MAX-1, "%s%s", root, str); /* if we find the file, calculate checksums, otherwise it is missing */ if(!stat(path, &buf)) { - char *sum; char *md5sum = alpm_get_md5sum(path); - char *sha1sum = alpm_get_sha1sum(path); - if(md5sum == NULL || sha1sum == NULL) { + if(md5sum == NULL) { fprintf(stderr, _("error: could not calculate checksums for %s\n"), path); free(str); continue; } - /* TODO Is this a good way to check type of backup stored? - * We aren't storing it anywhere in the database. */ - if (strlen(ptr) == 32) { - sum = md5sum; - } else { /*if (strlen(ptr) == 40) */ - sum = sha1sum; - } + /* if checksums don't match, file has been modified */ - if (strcmp(sum, ptr)) { + if (strcmp(md5sum, ptr)) { printf(_("MODIFIED\t%s\n"), path); } else { printf(_("Not Modified\t%s\n"), path); } free(md5sum); - free(sha1sum); } else { printf(_("MISSING\t\t%s\n"), path); } diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index a345977d..aa128261 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -1,8 +1,8 @@ /* * pacman.c - * - * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org> - * + * + * Copyright (c) 2002-2007 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 * the Free Software Foundation; either version 2 of the License, or @@ -15,14 +15,13 @@ * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. */ #include "config.h" -/* TODO hard to believe all these are needed just for this file */ -#include <stdlib.h> +#include <stdlib.h> /* atoi */ #include <stdio.h> #include <limits.h> #include <getopt.h> @@ -30,11 +29,10 @@ #include <signal.h> #include <unistd.h> #include <sys/types.h> -#include <sys/stat.h> -#include <sys/utsname.h> -#include <libintl.h> -#include <locale.h> -#include <time.h> +#include <sys/utsname.h> /* uname */ +#include <libintl.h> /* bindtextdomain, textdomain */ +#include <locale.h> /* setlocale */ +#include <time.h> /* time_t */ #if defined(PACMAN_DEBUG) && defined(HAVE_MTRACE) #include <mcheck.h> /* debug tracing (mtrace) */ #endif @@ -56,9 +54,7 @@ pmdb_t *db_local; /* list of targets specified on command line */ static alpm_list_t *pm_targets; -/** - * @brief Display usage/syntax for the specified operation. - * +/** Display usage/syntax for the specified operation. * @param op the operation code requested * @param myname basename(argv[0]) */ @@ -88,6 +84,7 @@ static void usage(int op, char *myname) if(op == PM_OP_ADD) { printf("%s: %s {-A --add} [%s] <%s>\n", str_usg, myname, str_opt, str_file); printf("%s:\n", str_opt); + printf(_(" --asdeps install packages as non-explicitly installed\n")); printf(_(" -d, --nodeps skip dependency checks\n")); printf(_(" -f, --force force install, overwrite conflicting files\n")); } else if(op == PM_OP_REMOVE) { @@ -106,14 +103,15 @@ static void usage(int op, char *myname) printf("%s: %s {-U --upgrade} [%s] <%s>\n", str_usg, myname, str_opt, str_file); } printf("%s:\n", str_opt); + printf(_(" --asdeps install packages as non-explicitly installed\n")); printf(_(" -d, --nodeps skip dependency checks\n")); printf(_(" -f, --force force install, overwrite conflicting files\n")); } else if(op == PM_OP_QUERY) { printf("%s: %s {-Q --query} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg); printf("%s:\n", str_opt); printf(_(" -c, --changelog view the changelog of a package\n")); - printf(_(" -e, --orphans list all packages installed as dependencies but no longer\n" - " required by any package\n")); + printf(_(" -d, --deps list all packages installed as dependencies\n")); + printf(_(" -e, --explicit list all packages explicitly installed\n")); printf(_(" -g, --groups view all members of a package group\n")); printf(_(" -i, --info view package information\n")); printf(_(" -l, --list list the contents of the queried package\n")); @@ -121,11 +119,12 @@ static void usage(int op, char *myname) printf(_(" -o, --owns <file> query the package that owns <file>\n")); printf(_(" -p, --file <package> query a package file instead of the database\n")); printf(_(" -s, --search <regex> search locally-installed packages for matching strings\n")); - printf(_(" -t, --test check the consistency of the local database\n")); + printf(_(" -t, --orphans list all packages not required by any package\n")); printf(_(" -u, --upgrades list all packages that can be upgraded\n")); } else if(op == PM_OP_SYNC) { printf("%s: %s {-S --sync} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg); printf("%s:\n", str_opt); + printf(_(" --asdeps install packages as non-explicitly installed\n")); printf(_(" -c, --clean remove old packages from cache directory (-cc for all)\n")); printf(_(" -d, --nodeps skip dependency checks\n")); printf(_(" -e, --dependsonly install dependencies only\n")); @@ -152,8 +151,7 @@ static void usage(int op, char *myname) } } -/** - * @brief Output pacman version and copyright. +/** Output pacman version and copyright. */ static void version(void) { @@ -167,9 +165,7 @@ static void version(void) printf("\n"); } -/** - * @brief Sets up gettext localization. - * Safe to call multiple times. +/** Sets up gettext localization. Safe to call multiple times. */ /* Inspired by the monotone function localize_monotone. */ static void localize(void) @@ -183,8 +179,7 @@ static void localize(void) } } -/** - * @brief Set user agent environment variable. +/** Set user agent environment variable. */ static void setuseragent(void) { @@ -199,11 +194,8 @@ static void setuseragent(void) setenv("HTTP_USER_AGENT", agent, 0); } -/** - * @brief Catches thrown signals. - * Performs necessary cleanup to ensure database is in a consistant - * state. - * +/** Catches thrown signals. Performs necessary cleanup to ensure database is + * in a consistant state. * @param signum the thrown signal */ static void cleanup(int signum) @@ -215,14 +207,19 @@ static void cleanup(int signum) pm_fprintf(stderr, PM_LOG_ERROR, "Internal pacman error: Segmentation fault.\n" "Please submit a full bug report with --debug if appropriate.\n"); exit(signum); - } else if((signum == SIGINT) && (alpm_trans_release() == -1) - && (pm_errno == PM_ERR_TRANS_COMMITING)) { - return; + } else if((signum == SIGINT)) { + if(alpm_trans_interrupt() == 0) { + /* a transaction is being interrupted, don't exit pacman yet. */ + return; + } else { + /* no commiting transaction, we can release it now and then exit pacman */ + alpm_trans_release(); + } } /* free alpm library resources */ if(alpm_release() == -1) { - fprintf(stderr, _("error: %s\n"), alpm_strerror(pm_errno)); + pm_printf(PM_LOG_ERROR, alpm_strerrorlast()); } /* free memory */ @@ -235,12 +232,9 @@ static void cleanup(int signum) exit(signum); } -/** - * @brief Parse command-line arguments for each operation - * +/** Parse command-line arguments for each operation. * @param argc argc * @param argv argv - * * @return 0 on success, 1 on error */ static int parseargs(int argc, char *argv[]) @@ -262,8 +256,9 @@ static int parseargs(int argc, char *argv[]) {"changelog", no_argument, 0, 'c'}, {"clean", no_argument, 0, 'c'}, {"nodeps", no_argument, 0, 'd'}, + {"deps", no_argument, 0, 'd'}, {"dependsonly",no_argument, 0, 'e'}, - {"orphans", no_argument, 0, 'e'}, + {"explicit", no_argument, 0, 'e'}, {"force", no_argument, 0, 'f'}, {"groups", no_argument, 0, 'g'}, {"help", no_argument, 0, 'h'}, @@ -278,7 +273,7 @@ static int parseargs(int argc, char *argv[]) {"root", required_argument, 0, 'r'}, {"recursive", no_argument, 0, 's'}, {"search", no_argument, 0, 's'}, - {"test", no_argument, 0, 't'}, + {"orphans", no_argument, 0, 't'}, {"upgrades", no_argument, 0, 'u'}, {"sysupgrade", no_argument, 0, 'u'}, {"verbose", no_argument, 0, 'v'}, @@ -288,13 +283,13 @@ static int parseargs(int argc, char *argv[]) {"config", required_argument, 0, 1001}, {"ignore", required_argument, 0, 1002}, {"debug", optional_argument, 0, 1003}, - {"noprogressbar", no_argument, 0, 1004}, + {"noprogressbar", no_argument, 0, 1004}, {"noscriptlet", no_argument, 0, 1005}, {"ask", required_argument, 0, 1006}, {"cachedir", required_argument, 0, 1007}, + {"asdeps", no_argument, 0, 1008}, {0, 0, 0, 0} }; - struct stat st; while((opt = getopt_long(argc, argv, "ARUFQSTr:b:vkhscVfmnoldepituwygz", opts, &option_index))) { if(opt < 0) { @@ -323,8 +318,8 @@ static int parseargs(int argc, char *argv[]) config->logmask |= PM_LOG_DEBUG; break; default: - fprintf(stderr, _("error: '%s' is not a valid debug level\n"), - optarg); + pm_printf(PM_LOG_ERROR, _("'%s' is not a valid debug level\n"), + optarg); return(1); } } else { @@ -337,13 +332,14 @@ static int parseargs(int argc, char *argv[]) case 1005: config->flags |= PM_TRANS_FLAG_NOSCRIPTLET; break; case 1006: config->noask = 1; config->ask = atoi(optarg); break; case 1007: - /* TODO redo this logic- check path somewhere else, delete other cachedirs, etc */ - if(stat(optarg, &st) == -1 || !S_ISDIR(st.st_mode)) { - fprintf(stderr, _("error: '%s' is not a valid cache directory\n"), - optarg); + if(alpm_option_add_cachedir(optarg) != 0) { + pm_printf(PM_LOG_ERROR, _("problem adding cachedir '%s' (%s)\n"), + optarg, alpm_strerrorlast()); return(1); } - alpm_option_add_cachedir(optarg); + break; + case 1008: + config->flags |= PM_TRANS_FLAG_ALLDEPS; break; case 'A': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_ADD); break; case 'F': @@ -357,21 +353,24 @@ static int parseargs(int argc, char *argv[]) case 'U': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_UPGRADE); break; case 'V': config->version = 1; break; case 'b': - if(stat(optarg, &st) == -1 || !S_ISDIR(st.st_mode)) { - fprintf(stderr, _("error: '%s' is not a valid db path\n"), - optarg); + if(alpm_option_set_dbpath(optarg) != 0) { + pm_printf(PM_LOG_ERROR, _("problem setting dbpath '%s' (%s)\n"), + optarg, alpm_strerrorlast()); return(1); } - alpm_option_set_dbpath(optarg); + config->have_dbpath = 1; break; case 'c': (config->op_s_clean)++; config->flags |= PM_TRANS_FLAG_CASCADE; config->op_q_changelog = 1; break; - case 'd': config->flags |= PM_TRANS_FLAG_NODEPS; break; + case 'd': + config->op_q_deps = 1; + config->flags |= PM_TRANS_FLAG_NODEPS; + break; case 'e': - config->op_q_orphans++; + config->op_q_explicit = 1; config->flags |= PM_TRANS_FLAG_DEPENDSONLY; break; case 'f': config->flags |= PM_TRANS_FLAG_FORCE; break; @@ -388,12 +387,12 @@ static int parseargs(int argc, char *argv[]) config->flags |= PM_TRANS_FLAG_PRINTURIS; break; case 'r': - if(stat(optarg, &st) == -1 || !S_ISDIR(st.st_mode)) { - fprintf(stderr, _("error: '%s' is not a valid root path\n"), - optarg); + if(alpm_option_set_root(optarg) != 0) { + pm_printf(PM_LOG_ERROR, _("problem setting root '%s' (%s)\n"), + optarg, alpm_strerrorlast()); return(1); } - alpm_option_set_root(optarg); + config->have_root = 1; break; case 's': config->op_s_search = 1; @@ -401,7 +400,7 @@ static int parseargs(int argc, char *argv[]) config->flags |= PM_TRANS_FLAG_RECURSE; break; case 't': - config->op_q_test = 1; + config->op_q_orphans = 1; break; case 'u': config->op_s_upgrade = 1; @@ -420,7 +419,7 @@ static int parseargs(int argc, char *argv[]) } if(config->op == 0) { - fprintf(stderr, _("error: only one operation may be used at a time\n")); + pm_printf(PM_LOG_ERROR, _("only one operation may be used at a time\n")); return(1); } @@ -453,7 +452,7 @@ static int _parseconfig(const char *file, const char *givensection, char *ptr, *section = NULL; pmdb_t *db = NULL; - pm_printf(PM_LOG_DEBUG, _("config: attempting to read file %s\n"), file); + pm_printf(PM_LOG_DEBUG, "config: attempting to read file %s\n", file); fp = fopen(file, "r"); if(fp == NULL) { pm_printf(PM_LOG_ERROR, _("config file %s could not be read.\n"), file); @@ -490,26 +489,19 @@ static int _parseconfig(const char *file, const char *givensection, } section = strdup(ptr); section[strlen(section)-1] = '\0'; - pm_printf(PM_LOG_DEBUG, _("config: new section '%s'\n"), section); + pm_printf(PM_LOG_DEBUG, "config: new section '%s'\n", section); if(!strlen(section)) { pm_printf(PM_LOG_ERROR, _("config file %s, line %d: bad section name.\n"), file, linenum); return(1); } - /* a section/database named local is not allowed */ - if(!strcmp(section, "local")) { - pm_printf(PM_LOG_ERROR, _("config file %s, line %d: 'local' cannot be used as section name.\n"), - file, linenum); - return(1); - } /* if we are not looking at the options section, register a db */ if(strcmp(section, "options") != 0) { - db = alpm_db_register(section); + db = alpm_db_register_sync(section); } } else { /* directive */ - char *key; - const char *upperkey; + char *key, *upperkey; /* strsep modifies the 'line' string: 'key \0 ptr' */ key = line; ptr = line; @@ -522,6 +514,10 @@ static int _parseconfig(const char *file, const char *givensection, file, linenum); return(1); } + /* For each directive, compare to the uppercase and camelcase string. + * This prevents issues with certain locales where characters don't + * follow the toupper() rules we may expect, e.g. tr_TR where i != I. + */ upperkey = strtoupper(strdup(key)); if(section == NULL && (strcmp(key, "Include") == 0 || strcmp(upperkey, "INCLUDE") == 0)) { pm_printf(PM_LOG_ERROR, _("config file %s, line %d: 'Include' directive must belong to a section.\n"), @@ -532,19 +528,19 @@ static int _parseconfig(const char *file, const char *givensection, /* directives without settings, all in [options] */ if(strcmp(key, "NoPassiveFTP") == 0 || strcmp(upperkey, "NOPASSIVEFTP") == 0) { alpm_option_set_nopassiveftp(1); - pm_printf(PM_LOG_DEBUG, _("config: nopassiveftp\n")); + pm_printf(PM_LOG_DEBUG, "config: nopassiveftp\n"); } else if(strcmp(key, "UseSyslog") == 0 || strcmp(upperkey, "USESYSLOG") == 0) { alpm_option_set_usesyslog(1); - pm_printf(PM_LOG_DEBUG, _("config: usesyslog\n")); + pm_printf(PM_LOG_DEBUG, "config: usesyslog\n"); } else if(strcmp(key, "ILoveCandy") == 0 || strcmp(upperkey, "ILOVECANDY") == 0) { config->chomp = 1; - pm_printf(PM_LOG_DEBUG, _("config: chomp\n")); + pm_printf(PM_LOG_DEBUG, "config: chomp\n"); } else if(strcmp(key, "UseColor") == 0 || strcmp(upperkey, "USECOLOR") == 0) { config->usecolor = 1; - pm_printf(PM_LOG_DEBUG, _("config: usecolor\n")); + pm_printf(PM_LOG_DEBUG, "config: usecolor\n"); } else if(strcmp(key, "ShowSize") == 0 || strcmp(upperkey, "SHOWSIZE") == 0) { config->showsize= 1; - pm_printf(PM_LOG_DEBUG, _("config: showsize\n")); + pm_printf(PM_LOG_DEBUG, "config: showsize\n"); } else { pm_printf(PM_LOG_ERROR, _("config file %s, line %d: directive '%s' not recognized.\n"), file, linenum, key); @@ -554,7 +550,7 @@ static int _parseconfig(const char *file, const char *givensection, /* directives with settings */ if(strcmp(key, "Include") == 0 || strcmp(upperkey, "INCLUDE") == 0) { int ret; - pm_printf(PM_LOG_DEBUG, _("config: including %s\n"), ptr); + pm_printf(PM_LOG_DEBUG, "config: including %s\n", ptr); ret = _parseconfig(ptr, section, db); if(ret != 0) { return(ret); @@ -568,12 +564,12 @@ static int _parseconfig(const char *file, const char *givensection, while((q = strchr(p, ' '))) { *q = '\0'; alpm_option_add_noupgrade(p); - pm_printf(PM_LOG_DEBUG, _("config: noupgrade: %s\n"), p); + pm_printf(PM_LOG_DEBUG, "config: noupgrade: %s\n", p); p = q; p++; } alpm_option_add_noupgrade(p); - pm_printf(PM_LOG_DEBUG, _("config: noupgrade: %s\n"), p); + pm_printf(PM_LOG_DEBUG, "config: noupgrade: %s\n", p); } else if(strcmp(key, "NoExtract") == 0 || strcmp(upperkey, "NOEXTRACT") == 0) { char *p = ptr; char *q; @@ -581,12 +577,12 @@ static int _parseconfig(const char *file, const char *givensection, while((q = strchr(p, ' '))) { *q = '\0'; alpm_option_add_noextract(p); - pm_printf(PM_LOG_DEBUG, _("config: noextract: %s\n"), p); + pm_printf(PM_LOG_DEBUG, "config: noextract: %s\n", p); p = q; p++; } alpm_option_add_noextract(p); - pm_printf(PM_LOG_DEBUG, _("config: noextract: %s\n"), p); + pm_printf(PM_LOG_DEBUG, "config: noextract: %s\n", p); } else if(strcmp(key, "IgnorePkg") == 0 || strcmp(upperkey, "IGNOREPKG") == 0) { char *p = ptr; char *q; @@ -594,12 +590,12 @@ static int _parseconfig(const char *file, const char *givensection, while((q = strchr(p, ' '))) { *q = '\0'; alpm_option_add_ignorepkg(p); - pm_printf(PM_LOG_DEBUG, _("config: ignorepkg: %s"), p); + pm_printf(PM_LOG_DEBUG, "config: ignorepkg: %s", p); p = q; p++; } alpm_option_add_ignorepkg(p); - pm_printf(PM_LOG_DEBUG, _("config: ignorepkg: %s\n"), p); + pm_printf(PM_LOG_DEBUG, "config: ignorepkg: %s\n", p); } else if(strcmp(key, "HoldPkg") == 0 || strcmp(upperkey, "HOLDPKG") == 0) { char *p = ptr; char *q; @@ -607,38 +603,56 @@ static int _parseconfig(const char *file, const char *givensection, while((q = strchr(p, ' '))) { *q = '\0'; alpm_option_add_holdpkg(p); - pm_printf(PM_LOG_DEBUG, _("config: holdpkg: %s\n"), p); + pm_printf(PM_LOG_DEBUG, "config: holdpkg: %s\n", p); p = q; p++; } alpm_option_add_holdpkg(p); - pm_printf(PM_LOG_DEBUG, _("config: holdpkg: %s\n"), p); + pm_printf(PM_LOG_DEBUG, "config: holdpkg: %s\n", p); } else if(strcmp(key, "DBPath") == 0 || strcmp(upperkey, "DBPATH") == 0) { - if(alpm_option_get_dbpath() == NULL) { - alpm_option_set_dbpath(ptr); - pm_printf(PM_LOG_DEBUG, _("config: dbpath: %s\n"), ptr); + /* don't overwrite a path specified on the command line */ + if(!config->have_dbpath) { + if(alpm_option_set_dbpath(ptr) != 0) { + pm_printf(PM_LOG_ERROR, _("problem setting dbpath '%s' (%s)\n"), + ptr, alpm_strerrorlast()); + return(1); + } + pm_printf(PM_LOG_DEBUG, "config: dbpath: %s\n", ptr); } } else if(strcmp(key, "CacheDir") == 0 || strcmp(upperkey, "CACHEDIR") == 0) { - alpm_option_add_cachedir(ptr); - pm_printf(PM_LOG_DEBUG, _("config: cachedir: %s\n"), ptr); + if(alpm_option_add_cachedir(ptr) != 0) { + pm_printf(PM_LOG_ERROR, _("problem adding cachedir '%s' (%s)\n"), + ptr, alpm_strerrorlast()); + return(1); + } + pm_printf(PM_LOG_DEBUG, "config: cachedir: %s\n", ptr); } else if(strcmp(key, "RootDir") == 0 || strcmp(upperkey, "ROOTDIR") == 0) { - if(alpm_option_get_root() == NULL) { - alpm_option_set_root(ptr); - pm_printf(PM_LOG_DEBUG, _("config: rootdir: %s\n"), ptr); + /* don't overwrite a path specified on the command line */ + if(!config->have_root) { + if(alpm_option_set_root(ptr) != 0) { + pm_printf(PM_LOG_ERROR, _("problem setting root '%s' (%s)\n"), + ptr, alpm_strerrorlast()); + return(1); + } + pm_printf(PM_LOG_DEBUG, "config: rootdir: %s\n", ptr); } } else if (strcmp(key, "LogFile") == 0 || strcmp(upperkey, "LOGFILE") == 0) { - if(alpm_option_get_logfile() == NULL) { - alpm_option_set_logfile(ptr); - pm_printf(PM_LOG_DEBUG, _("config: logfile: %s\n"), ptr); + if(!config->have_logfile) { + if(alpm_option_set_logfile(ptr) != 0) { + pm_printf(PM_LOG_ERROR, _("problem setting logfile '%s' (%s)\n"), + ptr, alpm_strerrorlast()); + return(1); + } + pm_printf(PM_LOG_DEBUG, "config: logfile: %s\n", ptr); } } else if (strcmp(key, "XferCommand") == 0 || strcmp(upperkey, "XFERCOMMAND") == 0) { alpm_option_set_xfercommand(ptr); - pm_printf(PM_LOG_DEBUG, _("config: xfercommand: %s\n"), ptr); + pm_printf(PM_LOG_DEBUG, "config: xfercommand: %s\n", ptr); } else if (strcmp(key, "UpgradeDelay") == 0 || strcmp(upperkey, "UPGRADEDELAY") == 0) { /* The config value is in days, we use seconds */ time_t ud = atol(ptr) * 60 * 60 *24; alpm_option_set_upgradedelay(ud); - pm_printf(PM_LOG_DEBUG, _("config: upgradedelay: %d\n"), (int)ud); + pm_printf(PM_LOG_DEBUG, "config: upgradedelay: %d\n", (int)ud); } else { pm_printf(PM_LOG_ERROR, _("config file %s, line %d: directive '%s' not recognized.\n"), file, linenum, key); @@ -660,9 +674,13 @@ static int _parseconfig(const char *file, const char *givensection, return(1); } } + free(upperkey); } } fclose(fp); + if(section){ + free(section); + } pm_printf(PM_LOG_DEBUG, "config: finished parsing %s\n", file); return(0); @@ -678,12 +696,9 @@ int parseconfig(const char *file) return(_parseconfig(file, NULL, NULL)); } -/** - * @brief Main function. - * +/** Main function. * @param argc argc * @param argv argv - * * @return A return code indicating success, failure, etc. */ int main(int argc, char *argv[]) @@ -718,16 +733,28 @@ int main(int argc, char *argv[]) config->noprogressbar = 1; } - /* initialize pm library */ + /* initialize library */ if(alpm_initialize() == -1) { - fprintf(stderr, _("error: failed to initialize alpm library (%s)\n"), - alpm_strerror(pm_errno)); + pm_printf(PM_LOG_ERROR, _("failed to initialize alpm library (%s)\n"), + alpm_strerrorlast()); cleanup(EXIT_FAILURE); } /* Setup logging as soon as possible, to print out maximum debugging info */ alpm_option_set_logcb(cb_log); alpm_option_set_dlcb(cb_dl_progress); + /* define root and dbpath to reasonable defaults */ + alpm_option_set_root(ROOTDIR); + alpm_option_set_dbpath(DBPATH); + + /* Priority of options: + * 1. command line + * 2. config file + * 3. compiled-in defaults + * However, we have to parse the command line first because a config file + * location can be specified here, so we need to make sure we prefer these + * options over the config file coming second. + */ /* parse the command line */ ret = parseargs(argc, argv); @@ -735,37 +762,35 @@ int main(int argc, char *argv[]) cleanup(ret); } - /* use default config file if location wasn't specified on cmdline */ - if(config->configfile == NULL) { - config->configfile = strdup(CONFFILE); - } - /* parse the config file */ ret = parseconfig(config->configfile); if(ret != 0) { cleanup(ret); } + /* add a default cachedir if one wasn't specified */ + if(alpm_option_get_cachedirs() == NULL) { + alpm_option_add_cachedir(CACHEDIR); + } + #if defined(HAVE_GETEUID) /* check if we have sufficient permission for the requested operation */ -if(0) { if(myuid > 0) { if(config->op != PM_OP_MAIN && config->op != PM_OP_QUERY && config->op != PM_OP_DEPTEST) { if((config->op == PM_OP_SYNC && !config->op_s_sync && (config->op_s_search || config->group || config->op_q_list || config->op_q_info || config->flags & PM_TRANS_FLAG_PRINTURIS)) - || (config->op == PM_OP_DEPTEST && config->op_d_resolve) + || config->op == PM_OP_DEPTEST || (strcmp(alpm_option_get_root(), "/") != 0)) { /* special case: PM_OP_SYNC can be used w/ config->op_s_search by any user */ /* special case: ignore root user check if -r is specified, fall back on * normal FS checking */ } else { - fprintf(stderr, _("error: you cannot perform this operation unless you are root.\n")); + pm_printf(PM_LOG_ERROR, _("you cannot perform this operation unless you are root.\n")); cleanup(EXIT_FAILURE); } } } -} #endif if(config->verbose > 0) { @@ -784,10 +809,10 @@ if(0) { } /* Opening local database */ - db_local = alpm_db_register("local"); + db_local = alpm_db_register_local(); if(db_local == NULL) { - fprintf(stderr, _("error: could not register 'local' database (%s)\n"), - alpm_strerror(pm_errno)); + pm_printf(PM_LOG_ERROR, _("could not register 'local' database (%s)\n"), + alpm_strerrorlast()); cleanup(EXIT_FAILURE); } @@ -812,7 +837,7 @@ if(0) { ret = pacman_deptest(pm_targets); break; default: - fprintf(stderr, _("error: no operation specified (use -h for help)\n")); + pm_printf(PM_LOG_ERROR, _("no operation specified (use -h for help)\n")); ret = EXIT_FAILURE; } diff --git a/src/pacman/query.c b/src/pacman/query.c index cfd53df7..26a1bd8f 100644 --- a/src/pacman/query.c +++ b/src/pacman/query.c @@ -153,7 +153,7 @@ static int query_search(alpm_list_t *targets) /* print the package size with the output if ShowSize option set */ if(config->showsize) { /* Convert byte size to MB */ - double mbsize = alpm_pkg_get_size(pkg) / (1024.0 * 1024.0); + double mbsize = (double)alpm_pkg_get_size(pkg) / (1024.0 * 1024.0); printf(" [%.2f MB]", mbsize); } @@ -168,10 +168,11 @@ static int query_search(alpm_list_t *targets) indentprint(alpm_pkg_get_desc(pkg), 4); printf("\n"); } - /* we only want to free if the list was a search list */ - if(freelist) { - alpm_list_free(searchlist); - } + + /* we only want to free if the list was a search list */ + if(freelist) { + alpm_list_free(searchlist); + } return(0); } @@ -195,8 +196,9 @@ static int query_group(alpm_list_t *targets) } } else { for(i = targets; i; i = alpm_list_next(i)) { + pmgrp_t *grp; package = alpm_list_getdata(i); - pmgrp_t *grp = alpm_db_readgrp(db_local, package); + grp = alpm_db_readgrp(db_local, package); if(grp) { const alpm_list_t *p, *pkgnames = alpm_grp_get_pkgs(grp); for(p = pkgnames; p; p = alpm_list_next(p)) { @@ -211,131 +213,93 @@ static int query_group(alpm_list_t *targets) return ret; } -static int query_isfile(alpm_list_t *targets) -{ - int ret = 0; - char *package = NULL; - alpm_list_t *i; - pmpkg_t *info = NULL; - if(targets == NULL) { - fprintf(stderr, _("error: no package file was specified for --file\n")); - return(1); - } else { - for(i = targets; i; i = alpm_list_next(i)) { - package = alpm_list_getdata(i); - if(alpm_pkg_load(package, &info) == -1) { - fprintf(stderr, _("error: failed to load package '%s' (%s)\n"), - package, alpm_strerror(pm_errno)); - ret++; - continue; - } - if(config->op_q_info) { - dump_pkg_full(info, config->op_q_info); - } - if(config->op_q_list) { - dump_pkg_files(info); - } - if(!config->op_q_info && !config->op_q_list) { - printf("%s %s\n", alpm_pkg_get_name(info), - alpm_pkg_get_version(info)); - } - alpm_pkg_free(info); - info = NULL; - } - } - return(ret); -} - -static int query_test(void) -{ - int ret = 0; - alpm_list_t *testlist; - - printf(_("Checking database for consistency...")); - testlist = alpm_db_test(db_local); - if(testlist == NULL) { - printf(_("check complete.\n")); - return(0); - } else { - /* on failure, increment the ret val by 1 for each failure */ - alpm_list_t *i; - printf(_("check failed!\n")); - fflush(stdout); - for(i = testlist; i; i = alpm_list_next(i)) { - fprintf(stderr, "%s\n", (char*)alpm_list_getdata(i)); - ret++; - } - return(ret); - } -} - static int query_upgrades(void) { - printf(_("Checking for package upgrades...")); alpm_list_t *syncpkgs; + printf(_("Checking for package upgrades... \n")); if((syncpkgs = alpm_db_get_upgrades()) != NULL) { display_targets(syncpkgs); return(0); } - printf(_("no upgrades found")); + printf(_("no upgrades found.\n")); return(1); } -static int query_foreign(void) +static int is_foreign(pmpkg_t *pkg) { - alpm_list_t *sync_dbs = NULL; - alpm_list_t *i; - - /* ensure we have at least one valid sync db set up */ - sync_dbs = alpm_option_get_syncdbs(); - if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) { - pm_printf(PM_LOG_ERROR, _("no usable package repositories configured.\n")); + const char *pkgname = alpm_pkg_get_name(pkg); + alpm_list_t *j; + alpm_list_t *sync_dbs = alpm_option_get_syncdbs(); + + int match = 0; + for(j = sync_dbs; j; j = alpm_list_next(j)) { + pmdb_t *db = alpm_list_getdata(j); + pmpkg_t *findpkg = alpm_db_get_pkg(db, pkgname); + if(findpkg) { + match = 1; + break; + } + } + if(match == 0) { return(1); } + return(0); +} - for(i = alpm_db_getpkgcache(db_local); i; i = alpm_list_next(i)) { - pmpkg_t *pkg = alpm_list_getdata(i); - const char *pkgname = alpm_pkg_get_name(pkg); - const char *pkgver = alpm_pkg_get_version(pkg); - alpm_list_t *j; - - int match = 0; - for(j = sync_dbs; j; j = alpm_list_next(j)) { - pmdb_t *db = alpm_list_getdata(j); - pmpkg_t *pkg = alpm_db_get_pkg(db, pkgname); - if(pkg) { - match = 1; - break; - } - } - if(match == 0) { - printf("%s %s\n", pkgname, pkgver); - } +static int is_orphan(pmpkg_t *pkg) +{ + if(alpm_pkg_get_requiredby(pkg) == NULL) { + return(1); } return(0); } -static int query_orphans(void) +static int filter(pmpkg_t *pkg) { - alpm_list_t *i; + /* check if this package was explicitly installed */ + if(config->op_q_explicit && + alpm_pkg_get_reason(pkg) != PM_PKG_REASON_EXPLICIT) { + return(0); + } + /* check if this package was installed as a dependency */ + if(config->op_q_deps && + alpm_pkg_get_reason(pkg) != PM_PKG_REASON_DEPEND) { + return(0); + } + /* check if this pkg isn't in a sync DB */ + if(config->op_q_foreign && !is_foreign(pkg)) { + return(0); + } + /* check if this pkg is orphaned */ + if(config->op_q_orphans && !is_orphan(pkg)) { + return(0); + } + return(1); +} - for(i = alpm_db_getpkgcache(db_local); i; i = alpm_list_next(i)) { - pmpkg_t *pkg = alpm_list_getdata(i); - const char *pkgname = alpm_pkg_get_name(pkg); - const char *pkgver = alpm_pkg_get_version(pkg); - - /* two cases here: - * 1. one -e option was specified, return only those installed as dep - * 2. more than one -e specified, return all with empty requiredby */ - if(alpm_pkg_get_requiredby(pkg) == NULL - && (alpm_pkg_get_reason(pkg) == PM_PKG_REASON_DEPEND - || config->op_q_orphans > 1)) { - printf("%s %s\n", pkgname, pkgver); - } +static void display(pmpkg_t *pkg) +{ + if(config->op_q_info) { + dump_pkg_full(pkg, config->op_q_info); + } + if(config->op_q_list) { + dump_pkg_files(pkg); + } + if(config->op_q_changelog) { + char changelog[PATH_MAX]; + /* TODO should be done in the backend- no raw DB stuff up front */ + snprintf(changelog, PATH_MAX, "%s/%s/%s-%s/changelog", + alpm_option_get_dbpath(), + alpm_db_get_name(db_local), + alpm_pkg_get_name(pkg), + alpm_pkg_get_version(pkg)); + dump_pkg_changelog(changelog, alpm_pkg_get_name(pkg)); + } + if(!config->op_q_info && !config->op_q_list && !config->op_q_changelog) { + printf("%s %s\n", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); } - return(0); } int pacman_query(alpm_list_t *targets) @@ -351,12 +315,6 @@ int pacman_query(alpm_list_t *targets) return(ret); } - /* check DB consistancy */ - if(config->op_q_test) { - ret = query_test(); - return(ret); - } - /* check for package upgrades */ if(config->op_q_upgrade) { ret = query_upgrades(); @@ -369,35 +327,28 @@ int pacman_query(alpm_list_t *targets) return(ret); } - /* search for installed packages not in a sync DB */ if(config->op_q_foreign) { - ret = query_foreign(); - return(ret); - } - - /* list orphaned packages */ - if(config->op_q_orphans) { - ret = query_orphans(); - return(ret); + /* ensure we have at least one valid sync db set up */ + alpm_list_t *sync_dbs = alpm_option_get_syncdbs(); + if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) { + pm_printf(PM_LOG_ERROR, _("no usable package repositories configured.\n")); + return(-1); + } } /* operations on all packages in the local DB * valid: no-op (plain -Q), list, info * invalid: isfile, owns */ - if(targets == NULL && !(config->op_q_isfile || config->op_q_owns)) { + if(targets == NULL) { + if(config->op_q_isfile || config->op_q_owns) { + pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n")); + return(1); + } + for(i = alpm_db_getpkgcache(db_local); i; i = alpm_list_next(i)) { pmpkg_t *pkg = alpm_list_getdata(i); - const char *pkgname = alpm_pkg_get_name(pkg); - const char *pkgver = alpm_pkg_get_version(pkg); - - if(config->op_q_info) { - dump_pkg_full(pkg, config->op_q_info); - } - if(config->op_q_list) { - dump_pkg_files(pkg); - } - if(!config->op_q_info && !config->op_q_list) { - printf("%s %s\n", pkgname, pkgver); + if(filter(pkg)) { + display(pkg); } } return(0); @@ -405,17 +356,6 @@ int pacman_query(alpm_list_t *targets) /* Second: operations that require target(s) */ - if(targets == NULL) { - pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n")); - return(1); - } - - /* output info for a .tar.gz package */ - if(config->op_q_isfile) { - ret = query_isfile(targets); - return(ret); - } - /* determine the owner of a file */ if(config->op_q_owns) { ret = query_fileowner(targets); @@ -426,32 +366,22 @@ int pacman_query(alpm_list_t *targets) * valid: no-op (plain -Q), list, info */ for(i = targets; i; i = alpm_list_next(i)) { char *strname = alpm_list_getdata(i); - pmpkg_t *pkg = alpm_db_get_pkg(db_local, strname); + pmpkg_t *pkg = NULL; + + if(config->op_q_isfile) { + alpm_pkg_load(strname, &pkg); + } else { + pkg = alpm_db_get_pkg(db_local, strname); + } + if(pkg == NULL) { fprintf(stderr, _("error: package \"%s\" not found\n"), strname); ret++; continue; } - /* find a target */ - if(config->op_q_info) { - dump_pkg_full(pkg, config->op_q_info); - } - if(config->op_q_list) { - dump_pkg_files(pkg); - } - if(config->op_q_changelog) { - char changelog[PATH_MAX]; - /* TODO should be done in the backend- no raw DB stuff up front */ - snprintf(changelog, PATH_MAX, "%s/%s/%s-%s/changelog", - alpm_option_get_dbpath(), - alpm_db_get_name(db_local), - alpm_pkg_get_name(pkg), - alpm_pkg_get_version(pkg)); - dump_pkg_changelog(changelog, alpm_pkg_get_name(pkg)); - } - if(!config->op_q_info && !config->op_q_list && !config->op_q_changelog) { - printf("%s %s\n", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); + if(filter(pkg)) { + display(pkg); } } diff --git a/src/pacman/remove.c b/src/pacman/remove.c index 0b6b4ce2..860bf491 100644 --- a/src/pacman/remove.c +++ b/src/pacman/remove.c @@ -44,7 +44,7 @@ static int remove_cleanup(void) int ret = alpm_trans_release(); if(ret != 0) { pm_printf(PM_LOG_ERROR, _("failed to release transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); ret = 1; } @@ -97,7 +97,7 @@ int pacman_remove(alpm_list_t *targets) if(alpm_trans_init(PM_TRANS_TYPE_REMOVE, config->flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) { fprintf(stderr, _("error: failed to init transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); if(pm_errno == PM_ERR_HANDLE_LOCK) { printf(_(" if you're sure a package manager is not already\n" " running, you can remove %s.\n"), alpm_option_get_lockfile()); @@ -113,7 +113,7 @@ int pacman_remove(alpm_list_t *targets) if(alpm_trans_addtarget(targ) == -1) { printf("failed.\n"); fprintf(stderr, _("error: failed to add target '%s' (%s)\n"), targ, - alpm_strerror(pm_errno)); + alpm_strerrorlast()); remove_cleanup(); FREELIST(finaltargs); return(1); @@ -123,13 +123,14 @@ int pacman_remove(alpm_list_t *targets) /* Step 2: prepare the transaction based on its type, targets and flags */ if(alpm_trans_prepare(&data) == -1) { fprintf(stderr, _("error: failed to prepare transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); switch(pm_errno) { case PM_ERR_UNSATISFIED_DEPS: for(i = data; i; i = alpm_list_next(i)) { pmdepmissing_t *miss = alpm_list_getdata(i); - printf(_(":: %s depends on %s\n"), alpm_dep_get_target(miss), - alpm_dep_get_name(miss)); + pmdepend_t *dep = alpm_miss_get_dep(miss); + printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss), + alpm_dep_get_name(dep)); } alpm_list_free(data); break; @@ -166,7 +167,7 @@ int pacman_remove(alpm_list_t *targets) /* Step 3: actually perform the removal */ if(alpm_trans_commit(NULL) == -1) { fprintf(stderr, _("error: failed to commit transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); remove_cleanup(); FREELIST(finaltargs); return(1); diff --git a/src/pacman/sync.c b/src/pacman/sync.c index d5888a57..3e599830 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -24,7 +24,6 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <sys/stat.h> #include <unistd.h> #include <dirent.h> @@ -206,7 +205,7 @@ static int sync_synctree(int level, alpm_list_t *syncs) alpm_db_get_name(db), downloadLastErrString); } else { fprintf(stderr, _("error: failed to update %s (%s)\n"), - alpm_db_get_name(db), alpm_strerror(pm_errno)); + alpm_db_get_name(db), alpm_strerrorlast()); } } else if(ret == 1) { printf(_(" %s is up to date\n"), alpm_db_get_name(db)); @@ -228,6 +227,7 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets) { alpm_list_t *i, *j, *ret; int freelist; + int found = 0; for(i = syncs; i; i = alpm_list_next(i)) { pmdb_t *db = alpm_list_getdata(i); @@ -241,6 +241,8 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets) } if(ret == NULL) { continue; + } else { + found = 1; } for(j = ret; j; j = alpm_list_next(j)) { /* print repo/name (group) info about each package in our list */ @@ -261,7 +263,7 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets) if((grp = alpm_pkg_get_groups(pkg)) != NULL) { group = alpm_list_getdata(grp); - printf(" (%s)\n", (char *)alpm_list_getdata(grp)); + printf(" (%s)", (char *)alpm_list_getdata(grp)); } /* we need a newline and initial indent first */ @@ -275,7 +277,7 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets) } } - return(0); + return(!found); } static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets) @@ -496,7 +498,7 @@ int pacman_sync(alpm_list_t *targets) if(alpm_trans_init(PM_TRANS_TYPE_SYNC, config->flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) { fprintf(stderr, _("error: failed to init transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); if(pm_errno == PM_ERR_HANDLE_LOCK) { printf(_(" if you're sure a package manager is not already\n" " running, you can remove %s.\n"), alpm_option_get_lockfile()); @@ -520,7 +522,7 @@ int pacman_sync(alpm_list_t *targets) printf(_(":: Starting full system upgrade...\n")); alpm_logaction("starting full system upgrade"); if(alpm_trans_sysupgrade() == -1) { - fprintf(stderr, _("error: %s\n"), alpm_strerror(pm_errno)); + fprintf(stderr, _("error: %s\n"), alpm_strerrorlast()); retval = 1; goto cleanup; } @@ -546,18 +548,18 @@ int pacman_sync(alpm_list_t *targets) if(yesno(_(":: Cancel current operation? [Y/n] "))) { if(alpm_trans_release() == -1) { fprintf(stderr, _("error: failed to release transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); retval = 1; goto cleanup; } if(alpm_trans_init(PM_TRANS_TYPE_SYNC, config->flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) { fprintf(stderr, _("error: failed to init transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); return(1); } if(alpm_trans_addtarget("pacman") == -1) { - fprintf(stderr, _("error: pacman: %s\n"), alpm_strerror(pm_errno)); + fprintf(stderr, _("error: pacman: %s\n"), alpm_strerrorlast()); retval = 1; goto cleanup; } @@ -582,7 +584,7 @@ int pacman_sync(alpm_list_t *targets) } if(pm_errno != PM_ERR_PKG_NOT_FOUND) { fprintf(stderr, _("'error: %s': %s\n"), - (char *)i->data, alpm_strerror(pm_errno)); + (char *)i->data, alpm_strerrorlast()); retval = 1; goto cleanup; } @@ -644,25 +646,26 @@ int pacman_sync(alpm_list_t *targets) alpm_list_t *data; if(alpm_trans_prepare(&data) == -1) { fprintf(stderr, _("error: failed to prepare transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); switch(pm_errno) { alpm_list_t *i; case PM_ERR_UNSATISFIED_DEPS: for(i = data; i; i = alpm_list_next(i)) { pmdepmissing_t *miss = alpm_list_getdata(i); - printf(_(":: %s depends on %s\n"), alpm_dep_get_target(miss), - alpm_dep_get_name(miss)); - switch(alpm_dep_get_mod(miss)) { + pmdepend_t *dep = alpm_miss_get_dep(miss); + printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss), + alpm_dep_get_name(dep)); + switch(alpm_dep_get_mod(dep)) { case PM_DEP_MOD_ANY: break; case PM_DEP_MOD_EQ: - printf("=%s", alpm_dep_get_version(miss)); + printf("=%s", alpm_dep_get_version(dep)); break; case PM_DEP_MOD_GE: - printf(">=%s", alpm_dep_get_version(miss)); + printf(">=%s", alpm_dep_get_version(dep)); break; case PM_DEP_MOD_LE: - printf("<=%s", alpm_dep_get_version(miss)); + printf("<=%s", alpm_dep_get_version(dep)); break; } printf("\n"); @@ -671,9 +674,9 @@ int pacman_sync(alpm_list_t *targets) case PM_ERR_CONFLICTING_DEPS: for(i = data; i; i = alpm_list_next(i)) { pmdepmissing_t *miss = alpm_list_getdata(i); - + pmdepend_t *dep = alpm_miss_get_dep(miss); printf(_(":: %s: conflicts with %s"), - alpm_dep_get_target(miss), alpm_dep_get_name(miss)); + alpm_miss_get_target(miss), alpm_dep_get_name(dep)); } break; default: @@ -704,16 +707,11 @@ int pacman_sync(alpm_list_t *targets) confirm = yesno(_("Proceed with download? [Y/n] ")); } } else { - /* don't get any confirmation if we're called from makepkg */ - if(config->op_d_resolve) { + if(config->noconfirm) { + printf(_("Beginning upgrade process...\n")); confirm = 1; } else { - if(config->noconfirm) { - printf(_("Beginning upgrade process...\n")); - confirm = 1; - } else { - confirm = yesno(_("Proceed with installation? [Y/n] ")); - } + confirm = yesno(_("Proceed with installation? [Y/n] ")); } } if(!confirm) { @@ -724,7 +722,7 @@ int pacman_sync(alpm_list_t *targets) /* Step 3: actually perform the installation */ if(alpm_trans_commit(&data) == -1) { fprintf(stderr, _("error: failed to commit transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); switch(pm_errno) { alpm_list_t *i; case PM_ERR_FILE_CONFLICTS: @@ -766,7 +764,7 @@ cleanup: } if(alpm_trans_release() == -1) { fprintf(stderr, _("error: failed to release transaction (%s)\n"), - alpm_strerror(pm_errno)); + alpm_strerrorlast()); retval = 1; } diff --git a/src/pacman/util.c b/src/pacman/util.c index a0829e64..8bf4ec14 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -34,6 +34,7 @@ #include <ctype.h> #include <dirent.h> #include <unistd.h> +#include <limits.h> #include <alpm.h> #include <alpm_list.h> @@ -162,12 +163,12 @@ void indentprint(const char *str, int indent) while(*p) { if(*p == ' ') { const char *next = NULL; - unsigned int len; + int len; p++; if(p == NULL || *p == ' ') continue; next = strchr(p, ' '); if(next == NULL) { - next = p + strlen(p); + next = p + mbstowcs(NULL, p, 0); } len = next - p; if(len > (getcols() - cidx - 1)) { @@ -283,13 +284,13 @@ void list_display(const char *title, const alpm_list_t *list) const alpm_list_t *i; int cols, len; - len = strlen(title); + len = mbstowcs(NULL, title, 0); printf("%s ", title); if(list) { for(i = list, cols = len; i; i = alpm_list_next(i)) { char *str = alpm_list_getdata(i); - int s = strlen(str) + 2; + int s = mbstowcs(NULL, str, 0) + 2; int maxcols = getcols(); if(s + cols >= maxcols) { int i; @@ -503,8 +504,6 @@ int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list ar /* print the message using va_arg list */ ret = vfprintf(stream, format, args); - /* TEMP HACK because libalpm strings don't have \n */ - fprintf(stream, "\n"); return(ret); } diff --git a/src/util/.gitignore b/src/util/.gitignore index 8bfb0085..36688806 100644 --- a/src/util/.gitignore +++ b/src/util/.gitignore @@ -1,6 +1,5 @@ .deps .libs -Makefile -Makefile.in vercmp testpkg +testdb diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 0c48f10e..97a0ffa1 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -1,8 +1,19 @@ -bin_PROGRAMS = vercmp testpkg +# paths set at make time +conffile = ${sysconfdir}/pacman.conf +dbpath = ${localstatedir}/lib/pacman/ +cachedir = ${localstatedir}/cache/pacman/pkg/ +bin_PROGRAMS = vercmp testpkg testdb + +DEFS = -DLOCALEDIR=\"@localedir@\" \ + -DCONFFILE=\"$(conffile)\" \ + -DROOTDIR=\"$(ROOTDIR)\" \ + -DDBPATH=\"$(dbpath)\" \ + -DCACHEDIR=\"$(cachedir)\" \ + @DEFS@ INCLUDES = -I$(top_srcdir)/lib/libalpm -AM_CFLAGS = -pedantic +AM_CFLAGS = -pedantic -D_GNU_SOURCE vercmp_SOURCES = vercmp.c vercmp_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la @@ -10,4 +21,7 @@ vercmp_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la testpkg_SOURCES = testpkg.c testpkg_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la +testdb_SOURCES = testdb.c +testdb_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la + # vim:set ts=2 sw=2 noet: diff --git a/src/util/testdb.c b/src/util/testdb.c new file mode 100644 index 00000000..d59d0108 --- /dev/null +++ b/src/util/testdb.c @@ -0,0 +1,193 @@ +/* + * testdb.c : Test a pacman local database for validity + * + * Copyright (c) 2007 by Aaron Griffin <aaronmgriffin@gmail.com> + * + * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include <unistd.h> +#include <stdio.h> +#include <stdlib.h> +#include <errno.h> +#include <string.h> +#include <sys/stat.h> +#include <dirent.h> +#include <libgen.h> + +#include <alpm.h> +#include <alpm_list.h> + +int _alpm_str_cmp(const void *s1, const void *s2) +{ + return(strcmp(s1, s2)); +} + +static void diffrqdby(const char *pkgname, alpm_list_t *oldrqdby, alpm_list_t *newrqdby) +{ + oldrqdby = alpm_list_msort(oldrqdby, alpm_list_count(oldrqdby), _alpm_str_cmp); + newrqdby = alpm_list_msort(newrqdby, alpm_list_count(newrqdby), _alpm_str_cmp); + + alpm_list_t *i = oldrqdby; + alpm_list_t *j = newrqdby; + + while(i || j) { + char *s1 = NULL; + char *s2 = NULL; + int n; + if(i && !j) { + n = -1; + } else if(!i && j) { + n = 1; + } else { + s1 = i->data; + s2 = j->data; + n = strcmp(s1, s2); + } + if(n < 0) { + s1 = i->data; + printf("wrong requiredby for %s : %s\n", pkgname, s1); + i = i->next; + } else if (n > 0) { + s2 = j->data; + printf("missing requiredby for %s : %s\n", pkgname, s2); + j = j->next; + } else { + i = i->next; + j = j->next; + } + } +} + +static void cleanup(int signum) { + if(alpm_release() == -1) { + fprintf(stderr, "error releasing alpm: %s\n", alpm_strerrorlast()); + } + + exit(signum); +} + +void output_cb(pmloglevel_t level, char *fmt, va_list args) +{ + if(strlen(fmt)) { + switch(level) { + case PM_LOG_ERROR: printf("error: "); break; + case PM_LOG_WARNING: printf("warning: "); break; + default: return; + } + vprintf(fmt, args); + printf("\n"); + } +} + +int db_test(char *dbpath) +{ + struct dirent *ent; + char path[PATH_MAX]; + struct stat buf; + int ret = 0; + + DIR *dir; + + if(!(dir = opendir(dbpath))) { + fprintf(stderr, "error : %s : %s\n", dbpath, strerror(errno)); + return(1); + } + + while ((ent = readdir(dir)) != NULL) { + if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) { + continue; + } + /* check for desc, depends, and files */ + snprintf(path, PATH_MAX, "%s/%s/desc", dbpath, ent->d_name); + if(stat(path, &buf)) { + printf("%s: description file is missing\n", ent->d_name); + ret++; + } + snprintf(path, PATH_MAX, "%s/%s/depends", dbpath, ent->d_name); + if(stat(path, &buf)) { + printf("%s: dependency file is missing\n", ent->d_name); + ret++; + } + snprintf(path, PATH_MAX, "%s/%s/files", dbpath, ent->d_name); + if(stat(path, &buf)) { + printf("%s: file list is missing\n", ent->d_name); + ret++; + } + } + return(ret); +} + +int main(int argc, char **argv) +{ + int retval = 0; /* default = false */ + pmdb_t *db = NULL; + char *dbpath; + char localdbpath[PATH_MAX]; + alpm_list_t *i; + + if(argc == 1) { + dbpath = DBPATH; + } else if(argc == 3 && strcmp(argv[1], "-b") == 0) { + dbpath = argv[2]; + } else { + fprintf(stderr, "usage: %s -b <pacman db>\n", basename(argv[0])); + return(1); + } + + snprintf(localdbpath, PATH_MAX, "%s/local", dbpath); + retval = db_test(localdbpath); + if(retval) { + return(retval); + } + + if(alpm_initialize() == -1) { + fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerrorlast()); + return(1); + } + + /* let us get log messages from libalpm */ + alpm_option_set_logcb(output_cb); + + alpm_option_set_dbpath(dbpath); + + db = alpm_db_register_local(); + if(db == NULL) { + fprintf(stderr, "error: could not register 'local' database (%s)\n", + alpm_strerrorlast()); + cleanup(EXIT_FAILURE); + } + + /* check dependencies */ + alpm_list_t *data; + data = alpm_checkdeps(db, PM_TRANS_TYPE_ADD, alpm_db_getpkgcache(db)); + for(i = data; i; i = alpm_list_next(i)) { + pmdepmissing_t *miss = alpm_list_getdata(i); + pmdepend_t *dep = alpm_miss_get_dep(miss); + printf("missing dependency for %s : %s\n", alpm_miss_get_target(miss), + alpm_dep_get_name(dep)); + } + + /* check requiredby */ + for(i = alpm_db_getpkgcache(db); i; i = alpm_list_next(i)) { + pmpkg_t *pkg = alpm_list_getdata(i); + const char *pkgname = alpm_pkg_get_name(pkg); + alpm_list_t *rqdby = alpm_pkg_compute_requiredby(pkg); + diffrqdby(pkgname, alpm_pkg_get_requiredby(pkg), rqdby); + } + + cleanup(retval); +} diff --git a/src/util/testpkg.c b/src/util/testpkg.c index 1ad1d14b..7da18ca6 100644 --- a/src/util/testpkg.c +++ b/src/util/testpkg.c @@ -21,15 +21,13 @@ #include "config.h" -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <libgen.h> +#include <stdio.h> /* printf */ +#include <stdarg.h> /* va_list */ +#include <string.h> /* strlen */ #include <alpm.h> -void output_cb(pmloglevel_t level, char *fmt, va_list args) +static void output_cb(pmloglevel_t level, char *fmt, va_list args) { if(strlen(fmt)) { switch(level) { @@ -52,7 +50,7 @@ int main(int argc, char **argv) } if(alpm_initialize() == -1) { - fprintf(stderr, "cannot initilize alpm: %s\n", alpm_strerror(pm_errno)); + fprintf(stderr, "cannot initilize alpm: %s\n", alpm_strerrorlast()); return(1); } @@ -67,7 +65,7 @@ int main(int argc, char **argv) } if(alpm_release() == -1) { - fprintf(stderr, "error releasing alpm: %s\n", alpm_strerror(pm_errno)); + fprintf(stderr, "error releasing alpm: %s\n", alpm_strerrorlast()); } return(retval); diff --git a/src/util/vercmp.c b/src/util/vercmp.c index cc951988..873ef1c9 100644 --- a/src/util/vercmp.c +++ b/src/util/vercmp.c @@ -21,29 +21,26 @@ #include "config.h" -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <unistd.h> -#include <limits.h> -/* TODO this is probably not the best way to do this */ -#ifndef PATH_MAX -#define PATH_MAX 1024 -#endif +#include <stdio.h> /* printf */ +#include <string.h> /* strncpy */ #include <alpm.h> +#define MAX_LEN 255 + int main(int argc, char *argv[]) { - char s1[255] = ""; - char s2[255] = ""; + char s1[MAX_LEN] = ""; + char s2[MAX_LEN] = ""; int ret; if(argc > 1) { - strncpy(s1, argv[1], 255); + strncpy(s1, argv[1], MAX_LEN); + s1[MAX_LEN -1] = '\0'; } if(argc > 2) { - strncpy(s2, argv[2], 255); + strncpy(s2, argv[2], MAX_LEN); + s2[MAX_LEN -1] = '\0'; } else { printf("0\n"); return(0); |