Compare commits

..

26 Commits

Author SHA1 Message Date
Dan McGee
e62566a763 Transifex updates
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-07 10:52:57 -05:00
Allan McRae
67c33fb8ff Remove incorrect output when downloading only
When only downloading a package, pacman can produce some incorrect
output.

> pacman -Sddw nvidia-utils
warning: nvidia-utils-270.41.19-1 is up to date -- reinstalling

This line is now now silenced when using -Sw.

Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-07 10:51:46 -05:00
Allan McRae
3df88a1a01 makepkg: fix creation of source package with -p
When creating a source package using an non-local buildscript via
the -p option, the inclusion of changelog and install files would
fail. Fixes FS#24567.

Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-07 10:49:28 -05:00
Dan McGee
1744fe12d4 3.5.3 release preparation
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-02 16:33:45 -05:00
Dan McGee
d63599719a repo-add: anchor exclusion pattern when generating filelist
Fixes FS#24534. Dotfiles, such as /etc/skel/.bash_profile, were not
being included in generated files entries. bsdtar --exclude option
supports anchors on the pattern, so using "^.*" instead of ".*" solves
our problem and still excludes all root-level dotfiles (e.g. .PKGINFO).

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-02 08:04:06 -05:00
Dan McGee
c1f742d775 Ensure list_display works on outputs of unknown width
If getcols() returns 0, we were getting stuck before in a loop of no
return. Teach getcols() to take a default value to return if the width
is unknown, and use this everywhere as appropriate.

Also make a few other cleanups while diagnosing this issue, such as
const-ifying some variables.

Noticed-by: Dave Reisner <d@falconindy.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-01 14:58:10 -05:00
Dan McGee
aad57cc06a doc: fix attribute substitution in monospaced text
When I switched all paths to use `` formatting, I didn't realize
substitution didn't work in these quote marks. Use ++ instead to ensure
attributes are substituted where appropriate.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-01 12:11:31 -05:00
Dan McGee
ac1726788c doc: update Makefile for new asciidoc resource location
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-01 12:11:24 -05:00
Dan McGee
1855b3073a doc: add a few more escapes and fix usage of {}
These addditional attributes come from the git asciidoc.conf file. Also,
fix a place where we used {treename} without escaping the braces,
causing the generated manpage to be missing text.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-01 11:46:13 -05:00
Pang Yan Han
e711e5b950 alpm_list: fix typo in doxygen comment
Signed-off-by: Pang Yan Han <pangyanhan@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-24 08:27:21 -05:00
Dan McGee
65c1880735 Bail early if we don't have a valid lockfile path
This addresses FS#24292. If one does the bad thing of not checking
pm_errno after calling set_dbpath(), you may not realize the
initialization process went wrong and calling trans_init() resulted in a
segfault. If we don't have a lockfile path, bail out and have
trans_init() fail.

Also remove a ALPM_LOG_FUNC call that was causing pm_errno to return "no
handle"; this was due to a log call in the handle setup (whereby the log
attempts to use a callback attached to the handle).

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-19 17:42:22 -05:00
Dan McGee
f2c4e7e552 Coding style cleanups; add a null check
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-19 16:59:53 -05:00
Dan McGee
ba467779bb Ensure --print doesn't enable --noconfirm when not expected
This is at best a hack around the way we currently do our --print magic,
but at least prevents someone from shooting themselves in the foot as
indicated in FS#24287.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-16 11:52:49 -05:00
Dan McGee
aec60e3782 Fix segfault when uninstalling broken backed-up symlink
Issue FS#24230. If a symlink is broken and included in the removal
process of a package, we blew up and segfaulted due to
alpm_compute_md5sum() returning NULL and then performing a strcmp()
operation.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-16 11:50:13 -05:00
Dan McGee
93f02f5793 Add test for FS#24230, dead backup symlink removal
This currently causes a segfault, which is bad news.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-16 11:32:33 -05:00
Dan McGee
3000b6b473 pactest: treat symlinks with more respect
Don't call os.stat() when we should be using os.lstat(); this allows us
to actually test dead symlinks that don't have a corresponding file. Add
a new LINK_EXIST rule that complements FILE_EXIST for a similar purpose.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-16 11:31:26 -05:00
Dan McGee
ac6f6b317a Transifex updates
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-16 10:19:21 -05:00
Dave Reisner
b9a2318bec trans.c: create transaction prior to checking DB version
The addition of the DB version check introduces a lag time between the
lockfile creation and the transaction initialization. In cases where the
local DB is large enough and/or the user's disk is slow enough, this
time is significant enough that its possible for a user to send a SIGINT
and leave behind a db.lck file.

Signed-off-by: Dave Reisner <d@falconindy.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-16 10:16:13 -05:00
Dan McGee
b14c5477e5 Ensure populate error return codes are consistent
It must be -1 to differentiate it from a number of packages loaded
count.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-05 12:10:51 -05:00
Allan McRae
8fd9037cfd makepkg: quote variable that may contain spaces
Prevents failures when $PKGDEST contains spaces (FS#24002)

Patch-by: Sebastien Duthil
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-02 10:04:36 -05:00
Allan McRae
9a127d8ed4 Update PKGBUILD example
Add quotes around $srcdir/$pkgdir (FS#23960) and use a package()
function.

Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-02 10:04:13 -05:00
Dan McGee
da24324e2d Transifex updates
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-04-29 16:04:13 -05:00
Matt Mooney
3ec723ddc7 pacman(8): grammar correction for relative clauses
Change "which" to "that" when used in a restrictive clause.
Replace usage of the relative prounoun "those" with a common noun for
added clarity.

Signed-off-by: Matt Mooney <mfm@muteddisk.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-04-29 15:58:59 -05:00
Matt Mooney
1b25cb80ba pacman(8): change "options" to "operation" when referring to -D
-D is an operation not an option.

Signed-off-by: Matt Mooney <mfm@muteddisk.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2011-04-29 15:58:32 -05:00
Dan McGee
e3268d5e88 Small translation update from Transifex
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-04-22 17:07:58 -05:00
Xavier Chantry
74994faee7 doc/pacman: split -Su description in 3 paragraphs
One paragraph for -Suu and one for -Su foo. Fixes FS#23451.

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-04-20 19:51:10 -05:00
31 changed files with 261 additions and 182 deletions

7
NEWS
View File

@@ -1,5 +1,12 @@
VERSION DESCRIPTION
-----------------------------------------------------------------------------
3.5.3 - segfault when creating lock in non-existent dir (FS#24292)
- segfault when uninstalling broken backed-up symlink (FS#24230)
- --print should not enable --noconfirm (FS#24287)
- fix default path substitution in documentation
- makepkg: quote variables that may contain spaces (FS#24002)
- repo-add: include dotfiles in filelists (FS#24534)
- minor translation updates: de, fi, sk
3.5.2 - ensure we show correct missing dependency info (FS#23424)
- pacman usage/--help updates (FS#23433, FS#23369)
- ensure stdout/stderr are flushed before prompts (FS#23492)

View File

@@ -42,12 +42,12 @@ AC_PREREQ(2.62)
# pacman_version_micro += 1
m4_define([lib_current], [6])
m4_define([lib_revision], [2])
m4_define([lib_revision], [3])
m4_define([lib_age], [0])
m4_define([pacman_version_major], [3])
m4_define([pacman_version_minor], [5])
m4_define([pacman_version_micro], [2])
m4_define([pacman_version_micro], [3])
m4_define([pacman_version],
[pacman_version_major.pacman_version_minor.pacman_version_micro])

View File

@@ -86,9 +86,9 @@ html: $(HTML_DOCS)
website: html
bsdtar czf website.tar.gz $(HTML_DOCS) \
-C /etc/asciidoc/stylesheets/ \
xhtml11.css xhtml11-manpage.css xhtml11-quirks.css \
asciidoc.css asciidoc-manpage.css \
-C /etc/asciidoc/javascripts/ \
asciidoc-xhtml11.js \
asciidoc.js \
-C /etc/asciidoc/ \
images

View File

@@ -13,8 +13,12 @@ source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('ee5ae84d115f051d87fcaaef3b4ae782')
build() {
cd $srcdir/$pkgname-$pkgver
cd "$srcdir"/$pkgname-$pkgver
./configure --prefix=/usr
make
make prefix=$pkgdir/usr install
}
package() {
cd "$srcdir"/$pkgname-$pkgver
make prefix="$pkgdir"/usr install
}

View File

@@ -17,7 +17,11 @@ plus=&#43;
caret=&#94;
startsb=&#91;
endsb=&#93;
backslash=&#92;
tilde=&#126;
apostrophe=&#39;
backtick=&#96;
litdd=&#45;&#45;
ifdef::backend-docbook[]
[linkman-inlinemacro]

View File

@@ -53,7 +53,7 @@ Options
in linkman:makepkg.conf[5].
*\--config* <file>::
Use an alternate config file instead of the `{sysconfdir}/makepkg.conf`
Use an alternate config file instead of the +{sysconfdir}/makepkg.conf+
default.
*-d, \--nodeps*::

View File

@@ -35,7 +35,7 @@ read from stdin.
Operations
----------
*-D, \--database*::
Modify the package database. This options allows you to modify certain
Modify the package database. This operation allows you to modify certain
attributes of the installed packages in pacman's database. At the
moment, you can only change the install reason using '\--asdeps' and
'\--asexplicit' options.
@@ -72,8 +72,8 @@ In addition to packages, groups can be specified as well. For example, if
gnome is a defined package group, then `pacman -S gnome` will install every
package in the gnome group, as well as the dependencies of those packages.
+
Packages which provide other packages are also handled. For example, `pacman -S
foo` will first look for a foo package. If foo is not found, packages which
Packages that provide other packages are also handled. For example, `pacman -S
foo` will first look for a foo package. If foo is not found, packages that
provide the same functionality as foo will be searched for. If any package is
found, it will be installed.
+
@@ -94,7 +94,7 @@ greater than `1:3.6-1`.
*-T, \--deptest*::
Check dependencies; this is useful in scripts such as makepkg to check
installed packages. This operation will check each dependency specified and
return a list of those which are not currently satisfied on the system.
return a list of dependencies that are not currently satisfied on the system.
This operation accepts no other options. Example usage: `pacman -T qt
"bash>=3.2"`.
@@ -117,7 +117,7 @@ Options
-------
*-b, \--dbpath* <path>::
Specify an alternative database location (a typical default is
`{localstatedir}/lib/pacman`). This should not be used unless you know what you are
+{localstatedir}/lib/pacman+). This should not be used unless you know what you are
doing. *NOTE*: if specified, this is an absolute path and the root path is
not automatically prepended.
@@ -125,7 +125,7 @@ Options
Specify an alternative installation root (default is `/`). This should
not be used as a way to install software into `/usr/local` instead of
`/usr`. This option is used if you want to install a package on a
temporary mounted partition which is "owned" by another system.
temporary mounted partition that is "owned" by another system.
*NOTE*: if database path or logfile are not specified on either the
command line or in linkman:pacman.conf[5], their default location will
be inside this root path.
@@ -138,7 +138,7 @@ Options
*\--cachedir* <dir>::
Specify an alternative package cache location (a typical default is
`{localstatedir}/cache/pacman/pkg`). Multiple cache directories can be specified,
+{localstatedir}/cache/pacman/pkg+). Multiple cache directories can be specified,
and they are tried in the order they are passed to pacman. *NOTE*: this
is an absolute path, the root path is not automatically prepended.
@@ -230,7 +230,7 @@ Query Options[[QO]]
*-e, \--explicit*::
Restrict or filter output to explicitly installed packages. This option
can be combined with '-t' to list explicitly installed packages which
can be combined with '-t' to list explicitly installed packages that
are not required by any other package.
*-g, \--groups*::
@@ -366,12 +366,14 @@ linkman:pacman.conf[5].
report of all packages to upgrade will be presented and the operation
will not proceed without user confirmation. Dependencies are
automatically resolved at this level and will be installed/upgraded if
necessary. Pass this option twice to enable package downgrade; in this
case pacman will select sync packages whose version does not match with
the local version. This can be useful when the user switches from a testing
repo to a stable one. Additional targets can also be specified manually, so
that '-Su foo' will do a system upgrade and install/upgrade the foo package in
the same operation.
necessary.
+
Pass this option twice to enable package downgrade; in this case pacman will
select sync packages whose version does not match with the local version. This
can be useful when the user switches from a testing repo to a stable one.
+
Additional targets can also be specified manually, so that '-Su foo' will do a
system upgrade and install/upgrade the foo package in the same operation.
*-w, \--downloadonly*::
Retrieve all packages from the server, but do not install/upgrade anything.

View File

@@ -35,7 +35,7 @@ NoUpgrade = etc/passwd etc/group etc/shadow
NoUpgrade = etc/fstab
[core]
Include = {sysconfdir}/pacman.d/core
Include = /etc/pacman.d/core
[custom]
Server = file:///home/pkgs
@@ -57,13 +57,13 @@ Options
*DBPath =* path/to/db/dir::
Overrides the default location of the toplevel database directory. A
typical default is `{localstatedir}/lib/pacman/`. Most users will not need to set
typical default is +{localstatedir}/lib/pacman/+. Most users will not need to set
this option. *NOTE*: if specified, this is an absolute path and the root
path is not automatically prepended.
*CacheDir =* path/to/cache/dir::
Overrides the default location of the package cache directory. A typical
default is `{localstatedir}/cache/pacman/pkg/`. Multiple cache directories can be
default is +{localstatedir}/cache/pacman/pkg/+. Multiple cache directories can be
specified, and they are tried in the order they are listed in the config
file. If a file is not found in any cache directory, it will be downloaded
to the first cache directory with write access. *NOTE*: this is an absolute
@@ -72,7 +72,7 @@ Options
*LogFile =* '/path/to/file'::
Overrides the default location of the pacman log file. A typical default
is `{localstatedir}/log/pacman.log`. This is an absolute path and the root directory
is +{localstatedir}/log/pacman.log+. This is an absolute path and the root directory
is not prepended.
*HoldPkg =* package ...::
@@ -149,7 +149,7 @@ Options
*UseSyslog*::
Log action messages through syslog(). This will insert log entries into
`{localstatedir}/log/messages` or equivalent.
+{localstatedir}/log/messages+ or equivalent.
*ShowSize*::
Display the size of individual packages for '\--sync' and '\--query' modes.
@@ -215,7 +215,7 @@ directory with these packages so pacman can find it when run with '\--refresh'.
The above command will generate a compressed database named
'/home/pkgs/custom.db.tar.gz'. Note that the database must be of the form
'{treename}.db.tar.gz', where '{treename}' is the name of the section defined in
'\{treename\}.db.tar.gz', where '\{treename\}' is the name of the section defined in
the configuration file. That's it! Now configure your custom section in the
configuration file as shown in the config example above. Pacman will now use your
package repository. If you add new packages to the repository, remember to

View File

@@ -92,7 +92,7 @@ int SYMEXPORT alpm_add_pkg(pmpkg_t *pkg)
_alpm_log(PM_LOG_WARNING, _("%s-%s is up to date -- skipping\n"),
localpkgname, localpkgver);
return(0);
} else {
} else if(!(trans->flags & PM_TRANS_FLAG_DOWNLOADONLY)) {
_alpm_log(PM_LOG_WARNING, _("%s-%s is up to date -- reinstalling\n"),
localpkgname, localpkgver);
}

View File

@@ -287,7 +287,7 @@ alpm_list_t SYMEXPORT *alpm_list_msort(alpm_list_t *list, size_t n, alpm_list_fn
/**
* @brief Remove an item from the list.
* item is not freed; this is the responsiblity of the caller.
* item is not freed; this is the responsibility of the caller.
*
* @param haystack the list to remove the item from
* @param item the item to remove from the list

View File

@@ -384,7 +384,8 @@ static int local_db_populate(pmdb_t *db)
dbpath = _alpm_db_path(db);
if(dbpath == NULL) {
RET_ERR(PM_ERR_DB_OPEN, -1);
/* pm_errno set in _alpm_db_path() */
return -1;
}
dbdir = opendir(dbpath);
if(dbdir == NULL) {

View File

@@ -223,8 +223,9 @@ static int sync_db_populate(pmdb_t *db)
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
if((archive = archive_read_new()) == NULL)
RET_ERR(PM_ERR_LIBARCHIVE, 1);
if((archive = archive_read_new()) == NULL) {
RET_ERR(PM_ERR_LIBARCHIVE, -1);
}
archive_read_support_compression_all(archive);
archive_read_support_format_all(archive);
@@ -232,7 +233,7 @@ static int sync_db_populate(pmdb_t *db)
dbpath = _alpm_db_path(db);
if(!dbpath) {
/* pm_errno set in _alpm_db_path() */
return 1;
return -1;
}
_alpm_log(PM_LOG_DEBUG, "opening database archive %s\n", dbpath);
@@ -242,10 +243,10 @@ static int sync_db_populate(pmdb_t *db)
_alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), dbpath,
archive_error_string(archive));
archive_read_finish(archive);
RET_ERR(PM_ERR_DB_OPEN, 1);
RET_ERR(PM_ERR_DB_OPEN, -1);
}
if(stat(dbpath, &buf) != 0) {
RET_ERR(PM_ERR_DB_OPEN, 1);
RET_ERR(PM_ERR_DB_OPEN, -1);
}
est_count = estimate_package_count(&buf, archive);

View File

@@ -46,8 +46,6 @@ pmhandle_t *_alpm_handle_new()
{
pmhandle_t *handle;
ALPM_LOG_FUNC;
CALLOC(handle, 1, sizeof(pmhandle_t), RET_ERR(PM_ERR_MEMORY, NULL));
return(handle);

View File

@@ -266,7 +266,7 @@ static void unlink_file(pmpkg_t *info, char *filename, alpm_list_t *skip_remove,
FREE(pkghash);
} else {
char *filehash = alpm_compute_md5sum(file);
int cmp = strcmp(filehash,pkghash);
int cmp = filehash ? strcmp(filehash, pkghash) : 0;
FREE(filehash);
FREE(pkghash);
if(cmp != 0) {

View File

@@ -58,6 +58,8 @@ static int make_lock(pmhandle_t *handle)
int fd;
char *dir, *ptr;
ASSERT(handle->lockfile != NULL, return -1);
/* create the dir of the lockfile first */
dir = strdup(handle->lockfile);
ptr = strrchr(dir, '/');
@@ -110,7 +112,6 @@ int SYMEXPORT alpm_trans_init(pmtransflag_t flags,
/* Sanity checks */
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
ASSERT(handle->trans == NULL, RET_ERR(PM_ERR_TRANS_NOT_NULL, -1));
/* lock db */
@@ -120,15 +121,6 @@ int SYMEXPORT alpm_trans_init(pmtransflag_t flags,
}
}
/* check database version */
db_version = _alpm_db_version(handle->db_local);
if(db_version < required_db_version) {
_alpm_log(PM_LOG_ERROR,
_("%s database version is too old\n"), handle->db_local->treename);
remove_lock(handle);
RET_ERR(PM_ERR_DB_VERSION, -1);
}
trans = _alpm_trans_new();
if(trans == NULL) {
RET_ERR(PM_ERR_MEMORY, -1);
@@ -142,6 +134,16 @@ int SYMEXPORT alpm_trans_init(pmtransflag_t flags,
handle->trans = trans;
/* check database version */
db_version = _alpm_db_version(handle->db_local);
if(db_version < required_db_version) {
_alpm_log(PM_LOG_ERROR,
_("%s database version is too old\n"), handle->db_local->treename);
remove_lock(handle);
_alpm_trans_free(trans);
RET_ERR(PM_ERR_DB_VERSION, -1);
}
return(0);
}

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2011-04-18 11:23-0500\n"
"PO-Revision-Date: 2011-04-12 12:00+0000\n"
"PO-Revision-Date: 2011-04-28 09:05+0000\n"
"Last-Translator: Mineo <themineo+transifex@googlemail.com>\n"
"Language-Team: German <None>\n"
"Language: de\n"
@@ -31,7 +31,7 @@ msgstr "Löse Abhängigkeiten auf...\n"
#, c-format
msgid "looking for inter-conflicts...\n"
msgstr "Suche nach Zwischen-Konflikten...\n"
msgstr "Suche nach Zwischenkonflikten...\n"
#, c-format
msgid "installing %s...\n"
@@ -790,7 +790,7 @@ msgstr[1] "%s: %d gesamte Dateien,"
msgid "%d missing file\n"
msgid_plural "%d missing files\n"
msgstr[0] "%d fehlende Datei\n"
msgstr[1] "%d fehlende Datein\n"
msgstr[1] "%d fehlende Dateien\n"
#, c-format
msgid "no usable package repositories configured.\n"
@@ -1208,7 +1208,7 @@ msgid "Failed to extract %s"
msgstr "Konnte %s nicht entpacken"
msgid "A failure occurred in %s()."
msgstr "Ein Unfall geschah in %s()."
msgstr "Ein Fehler geschah in %s()."
msgid "Starting %s()..."
msgstr "Beginne %s()..."
@@ -1328,7 +1328,7 @@ msgstr "so wie arch=('%s')"
msgid "Provides array cannot contain comparison (< or >) operators."
msgstr ""
"Der Array 'Provides' darf keine Vergleichs-Operatoren wie (< oder >) "
"Der Array 'provides' darf keine Vergleichs-Operatoren wie (< oder >) "
"enthalten."
msgid "Backup entry should not contain leading slash : %s"
@@ -1360,7 +1360,7 @@ msgid "requires an argument"
msgstr "erfordert ein Argument"
msgid "unrecognized option"
msgstr "nicht-erkannte Option"
msgstr "nicht erkannte Option"
msgid "invalid option"
msgstr "ungültige Option"
@@ -1587,7 +1587,7 @@ msgid "A package has already been built, installing existing package..."
msgstr "Es wurde bereits ein Paket gebaut, installiere existierendes Paket..."
msgid "A package has already been built. (use -f to overwrite)"
msgstr "Es wurde bereits ein Paket gebaut. (Benutzen Sie -f zum überschreiben)"
msgstr "Es wurde bereits ein Paket gebaut. (Benutzen Sie -f zum Überschreiben)"
msgid ""
"The package group has already been built, installing existing packages..."
@@ -1619,7 +1619,7 @@ msgstr "Erstelle Paket: %s"
msgid "A source package has already been built. (use -f to overwrite)"
msgstr ""
"Es wurde bereits ein Quell-Paket gebaut. (Benutzen Sie -f zum überschreiben)"
"Es wurde bereits ein Quell-Paket gebaut. (Benutzen Sie -f zum Überschreiben)"
msgid "Source package created: %s"
msgstr "Quell-Paket erstellt: %s"
@@ -1693,8 +1693,7 @@ msgstr ""
"aktualisieren."
msgid "Pacman lock file was found. Cannot run while pacman is running."
msgstr ""
"Pacman Sperr-Datei gefunden. Kann nicht arbeiten, während Pacman läuft."
msgstr "Pacman Lock-Datei gefunden. Kann nicht arbeiten, während Pacman läuft."
msgid "Pre-3.5 database format detected - upgrading..."
msgstr "Prä-3.5 Datenbankformat entdeckt - aktualisiere..."
@@ -1896,13 +1895,13 @@ msgid "Creating '%s' db entry..."
msgstr "Erstelle '%s' Datenbank-Eintrag"
msgid "Computing md5 checksums..."
msgstr "Errechne md5-Prüfsummen..."
msgstr "Errechne MD5-Prüfsummen..."
msgid "Old package file not found: %s"
msgstr "Alte Paket-Datei nicht gefunden: %s"
msgid "Failed to acquire lockfile: %s."
msgstr "Konnte die Lock-Datei nicht erreichen: %s."
msgstr "Konnte die Lock-Datei nicht beanspruchen: %s."
msgid "Held by process %s"
msgstr "Gehalten vom Prozess %s"
@@ -1911,7 +1910,7 @@ msgid "Repository file '%s' is not a proper pacman database."
msgstr "Repositorien-Datei '%s' ist keine korrekte pacman-Datenbank."
msgid "Extracting database to a temporary location..."
msgstr "Entpacke Datenbasis an einen temporären Ort..."
msgstr "Entpacke Datenbank an einen temporären Ort..."
msgid "Repository file '%s' was not found."
msgstr "Repositorium \"%s\" wurde nicht gefunden."

View File

@@ -8,9 +8,10 @@ msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2011-04-18 11:23-0500\n"
"PO-Revision-Date: 2011-04-15 17:59+0000\n"
"Last-Translator: apuasi <kaannokset.hellberg@gmail.com>\n"
"Language-Team: Finnish <None>\n"
"PO-Revision-Date: 2011-05-11 14:51+0000\n"
"Last-Translator: Larso <larso@gmx.com>\n"
"Language-Team: Finnish (http://www.transifex.net/projects/p/archlinux-pacman/"
"team/fi/)\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -349,7 +350,7 @@ msgstr " -c, --cascade poista paketit ja kaikki niiden riippuvuudet\n"
#, c-format
msgid " -n, --nosave remove configuration files\n"
msgstr ""
msgstr " -n, --nosave poista myös asetustiedostot\n"
#, c-format
msgid ""
@@ -359,7 +360,7 @@ msgstr ""
#, c-format
msgid " -u, --unneeded remove unneeded packages\n"
msgstr ""
msgstr " -u, --unneeded poista tarpeettomat paketit\n"
#, c-format
msgid " -c, --changelog view the changelog of a package\n"
@@ -550,7 +551,7 @@ msgstr ""
msgid ""
" --print print the targets instead of performing the "
"operation\n"
msgstr ""
msgstr " --print listaa paketit, mutta älä suorita operaatiota\n"
#, c-format
msgid ""
@@ -950,7 +951,7 @@ msgstr "paketti %s ei ole kelvollinen tai se on vahingoittunut\n"
#, c-format
msgid "Errors occurred, no packages were upgraded.\n"
msgstr "Yhtään pakettia ei ole päivitetty tapahtuneiden virheiden vuoksi.\n"
msgstr "Yhtään pakettia ei päivitetty tapahtuneiden virheiden vuoksi.\n"
#, c-format
msgid ":: Synchronizing package databases...\n"

149
po/fr.po
View File

@@ -1,16 +1,18 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# shining <chantry.xavier@gmail.com>, 2011
# Dan McGee <dpmcgee@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2011-04-18 11:23-0500\n"
"PO-Revision-Date: 2011-04-17 15:07+0000\n"
"Last-Translator: shining <chantry.xavier@gmail.com>\n"
"Language-Team: French <>\n"
"PO-Revision-Date: 2011-06-03 20:24+0000\n"
"Last-Translator: remyoudompheng <remy@archlinux.org>\n"
"Language-Team: French (http://www.transifex.net/projects/p/archlinux-pacman/"
"team/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,47 +21,47 @@ msgstr ""
#, c-format
msgid "checking dependencies...\n"
msgstr "Vérification des dépendances...\n"
msgstr "vérification des dépendances...\n"
#, c-format
msgid "checking for file conflicts...\n"
msgstr "Recherche des conflits entre fichiers...\n"
msgstr "recherche des conflits entre fichiers...\n"
#, c-format
msgid "resolving dependencies...\n"
msgstr "Résolution des dépendances...\n"
msgstr "résolution des dépendances...\n"
#, c-format
msgid "looking for inter-conflicts...\n"
msgstr "Recherche des conflits possibles entre paquets...\n"
msgstr "recherche des conflits entre paquets...\n"
#, c-format
msgid "installing %s...\n"
msgstr "Installation de %s...\n"
msgstr "installation de %s...\n"
#, c-format
msgid "removing %s...\n"
msgstr "Désinstallation de %s...\n"
msgstr "désinstallation de %s...\n"
#, c-format
msgid "upgrading %s...\n"
msgstr "Mise à jour de %s...\n"
msgstr "mise à jour de %s...\n"
#, c-format
msgid "checking package integrity...\n"
msgstr "Analyse de l'intégrité des paquets...\n"
msgstr "analyse de l'intégrité des paquets...\n"
#, c-format
msgid "checking delta integrity...\n"
msgstr "Analyse de l'intégrité des deltas...\n"
msgstr "analyse de l'intégrité des deltas...\n"
#, c-format
msgid "applying deltas...\n"
msgstr "Application des deltas...\n"
msgstr "application des deltas...\n"
#, c-format
msgid "generating %s with %s... "
msgstr "Génération de %s avec %s... "
msgstr "génération de %s avec %s... "
#, c-format
msgid "success!\n"
@@ -67,7 +69,7 @@ msgstr "succès !\n"
#, c-format
msgid "failed.\n"
msgstr "Échec.\n"
msgstr "échec.\n"
#, c-format
msgid ":: Retrieving packages from %s...\n"
@@ -130,19 +132,19 @@ msgstr ":: L'archive %s est corrompue. Voulez-vous l'effacer ?"
#, c-format
msgid "installing"
msgstr "Installation de"
msgstr "installation de"
#, c-format
msgid "upgrading"
msgstr "Mise à jour de"
msgstr "mise à jour de"
#, c-format
msgid "removing"
msgstr "Désinstallation de"
msgstr "désinstallation de"
#, c-format
msgid "checking for file conflicts"
msgstr "Analyse des conflits entre fichiers"
msgstr "analyse des conflits entre fichiers"
#, c-format
msgid "checking available disk space"
@@ -166,16 +168,15 @@ msgstr "aucune cible spécifiée (utiliser -h pour l'aide)\n"
#, c-format
msgid "no install reason specified (use -h for help)\n"
msgstr "pas d'origine d'installation spécifiée (-h pour l'aide)\n"
msgstr "aucun motif d'installation spécifié (-h pour l'aide)\n"
#, c-format
msgid "could not set install reason for package %s (%s)\n"
msgstr ""
"impossible de changer l'origine d'installation pour le paquet %s (%s)\n"
msgstr "impossible de changer le motif d'installation pour le paquet %s (%s)\n"
#, c-format
msgid "%s: install reason has been set to 'installed as dependency'\n"
msgstr "%s: paquet marqué comme étant une dépendance\n"
msgstr "%s : paquet marqué comme installé en tant que dépendance\n"
#, c-format
msgid "%s: install reason has been set to 'explicitly installed'\n"
@@ -239,7 +240,7 @@ msgstr "Remplace :"
#, c-format
msgid "Download Size : %6.2f K\n"
msgstr "A télécharger : %6.2f K\n"
msgstr "Taille (à télécharger): %6.2f K\n"
#, c-format
msgid "Compressed Size: %6.2f K\n"
@@ -303,7 +304,7 @@ msgstr "Fichiers de sauvegarde:\n"
#, c-format
msgid "(none)\n"
msgstr "(Aucun)\n"
msgstr "(aucun)\n"
#, c-format
msgid "no changelog available for '%s'.\n"
@@ -351,20 +352,20 @@ msgstr ""
#, c-format
msgid " -n, --nosave remove configuration files\n"
msgstr " -n, --nosave supprime les fichiers de configuration\n"
msgstr " -n, --nosave supprime les fichiers de configuration\n"
#, c-format
msgid ""
" -s, --recursive remove unnecessary dependencies\n"
" (-ss includes explicitly installed dependencies)\n"
msgstr ""
" -s, --recursive supprime les dépendances inutiles\n"
" (-ss inclut les dépendances installées "
" -s, --recursive supprime les dépendances inutiles\n"
" (-ss inclut les dépendances installées "
"explicitement)\n"
#, c-format
msgid " -u, --unneeded remove unneeded packages\n"
msgstr " -u, --unneeded supprime les paquets inutiles\n"
msgstr " -u, --unneeded supprime les paquets inutiles\n"
#, c-format
msgid " -c, --changelog view the changelog of a package\n"
@@ -548,13 +549,13 @@ msgid ""
" -d, --nodeps skip dependency version checks (-dd to skip all "
"checks)\n"
msgstr ""
" -d, --nodeps ignore les versions des dépendances\n"
" (-dd pour ignorer complètement toute dépendance)\n"
" -d, --nodeps ignore les versions des dépendances\n"
" (-dd pour ignorer complètement toute dépendance)\n"
#, c-format
msgid ""
" -k, --dbonly only modify database entries, not package files\n"
msgstr " -k, --dbonly modifie uniquement la base de donnée\n"
msgstr " -k, --dbonly modifie uniquement la base de données\n"
#, c-format
msgid ""
@@ -574,7 +575,8 @@ msgstr ""
msgid ""
" --print print the targets instead of performing the "
"operation\n"
msgstr " --print affiche les cibles sans exécuter l'opération\n"
msgstr ""
" --print affiche les cibles sans exécuter l'opération\n"
#, c-format
msgid ""
@@ -640,7 +642,7 @@ msgstr "problème en définissant le dossier de la base de données '%s' (%s)\n"
#, c-format
msgid "problem setting logfile '%s' (%s)\n"
msgstr "problème avec logfile '%s' (%s)\n"
msgstr "problème en définissant le chemin du fichier de log '%s' (%s)\n"
#, c-format
msgid "problem adding cachedir '%s' (%s)\n"
@@ -668,7 +670,7 @@ msgstr "impossible de déterminer le répertoire courant\n"
#, c-format
msgid "could not chdir to download directory %s\n"
msgstr "le déplacement vers le répertoire de téléchargement %s a échoué\n"
msgstr "impossible de se placer dans le répertoire de téléchargement %s\n"
#, c-format
msgid "running XferCommand: fork failed!\n"
@@ -701,7 +703,7 @@ msgstr ""
#, c-format
msgid "config file %s could not be read.\n"
msgstr "Le fichier de configuration %s n'a pas pu être lu.\n"
msgstr "le fichier de configuration %s n'a pas pu être lu.\n"
#, c-format
msgid "config file %s, line %d: bad section name.\n"
@@ -738,7 +740,7 @@ msgstr "débordement de tampon détecté en parsant les arguments\n"
#, c-format
msgid "failed to reopen stdin for reading: (%s)\n"
msgstr "impossible de lire l'entrée standard: (%s)\n"
msgstr "impossible de lire l'entrée standard : (%s)\n"
#, c-format
msgid "you cannot perform this operation unless you are root.\n"
@@ -1224,12 +1226,10 @@ msgid "Purging other files..."
msgstr "Suppression d'autres fichiers..."
msgid "Compressing man and info pages..."
msgstr "Compression des man/info pages..."
msgstr "Compression des pages de man/info..."
msgid "Stripping unneeded symbols from binaries and libraries..."
msgstr ""
"Strip des symboles de débogage inutiles dans les binaires et les "
"bibliothèques..."
msgstr "Strip des symboles inutiles dans les binaires et les bibliothèques..."
msgid "Removing libtool .la files..."
msgstr "Suppression des fichiers libtool .la..."
@@ -1244,7 +1244,7 @@ msgid "Please add a license line to your %s!"
msgstr "Veuillez ajouter une ligne license à votre %s !"
msgid "Example for GPL'ed software: license=('GPL')."
msgstr "Exemple pour les logiciels GPL: license=('GPL')."
msgstr "Exemple pour les logiciels GPL : license=('GPL')."
msgid "Backup entry file not in package : %s"
msgstr "Cette entrée backup est introuvable dans le paquet : %s"
@@ -1268,13 +1268,13 @@ msgid "'%s' is not a valid archive extension."
msgstr "'%s' n'est pas pas une extension valide pour une archive."
msgid "Failed to create package file."
msgstr "Echec à la création du paquet."
msgstr "Échec à la création du paquet."
msgid "Failed to create symlink to package file."
msgstr "Impossible de créer un lien vers le paquet."
msgid "Skipping integrity checks."
msgstr "Ignore les sommes d'intégrité."
msgstr "Vérifications d'intégrité ignorées."
msgid "Creating source package..."
msgstr "Création du paquet source..."
@@ -1301,7 +1301,7 @@ msgid "Installing %s package group with %s -U..."
msgstr "Installation du groupe %s avec %s -U..."
msgid "Failed to install built package(s)."
msgstr "Echec à l'installation des paquets."
msgstr "Échec à l'installation des paquets."
msgid "%s is not allowed to be empty."
msgstr "%s ne peut pas être vide."
@@ -1335,16 +1335,16 @@ msgid "Backup entry should not contain leading slash : %s"
msgstr "L'entrée backup ne doit pas commencer par une barre oblique : %s"
msgid "Invalid syntax for optdepend : '%s'"
msgstr "syntaxe invalide pour 'optdepend' : '%s'"
msgstr "Syntaxe invalide pour 'optdepend' : '%s'"
msgid "%s file (%s) does not exist."
msgstr "Le fichier %s (%s) n'a pas été trouvé."
msgstr "Le fichier %s (%s) n'existe pas."
msgid "options array contains unknown option '%s'"
msgstr "Le champ options contient une option inconnue : '%s'"
msgid "missing package function for split package '%s'"
msgstr "il manque la fonction package pour le paquet splitté '%s'"
msgstr "fonction package manquante dans le sous-paquet '%s'"
msgid "requested package %s is not provided in %s"
msgstr "le paquet demandé %s n'existe pas dans %s"
@@ -1371,16 +1371,16 @@ msgid "Options:"
msgstr "Options:"
msgid " -A, --ignorearch Ignore incomplete arch field in %s"
msgstr " -A, --ignorearch Ignore une entrée arch incomplète dans %s"
msgstr " -A, --ignorearch Ignorer une entrée arch incomplète dans %s"
msgid " -c, --clean Clean up work files after build"
msgstr " -c, --clean Nettoyage des fichiers après compilation"
msgstr " -c, --clean Nettoyer les fichiers après compilation"
msgid " -C, --cleancache Clean up source files from the cache"
msgstr " -C, --cleancache Nettoie les fichiers source dans le cache"
msgstr " -C, --cleancache Nettoyer les fichiers source dans le cache"
msgid " -d, --nodeps Skip all dependency checks"
msgstr " -d, --nodeps Ne vérifie pas les dépendances"
msgstr " -d, --nodeps Ne pas vérifier les dépendances"
msgid " -e, --noextract Do not extract source files (use existing src/ dir)"
msgstr ""
@@ -1388,16 +1388,16 @@ msgstr ""
"existant)"
msgid " -f, --force Overwrite existing package"
msgstr " -f, --force Ecrase le paquet existant"
msgstr " -f, --force Écraser le paquet existant"
msgid " -g, --geninteg Generate integrity checks for source files"
msgstr " -g, --geninteg Générer les sommes d'intégrité des sources"
msgid " -h, --help This help"
msgstr " -h, --help Cette aide"
msgstr " -h, --help Afficher cette aide"
msgid " -i, --install Install package after successful build"
msgstr " -i, --install Installe le paquet après une compilation réussie"
msgstr " -i, --install Installer le paquet après une compilation réussie"
msgid " -L, --log Log package build process"
msgstr " -L, --log Log la compilation du paquet"
@@ -1406,35 +1406,36 @@ msgid " -m, --nocolor Disable colorized output messages"
msgstr " -m, --nocolor Ne pas colorer les messages de sortie"
msgid " -o, --nobuild Download and extract files only"
msgstr " -o, --nobuild Seulement téléchargement et extraction des fichiers"
msgstr ""
" -o, --nobuild Effectuer seulement le téléchargement\n"
" et l'extraction des fichiers"
msgid " -p <file> Use an alternate build script (instead of '%s')"
msgstr " -p <file> Utilise un script alternatif (à la place de '%s')"
msgstr " -p <file> Utiliser un script alternatif (au lieu de '%s')"
msgid ""
" -r, --rmdeps Remove installed dependencies after a successful build"
msgstr ""
" -r, --rmdeps Supprime les dépendances installées après une compilation "
"réussie"
" -r, --rmdeps Supprimer les dépendances installées après une\n"
" compilation réussie"
msgid " -R, --repackage Repackage contents of the package without rebuilding"
msgstr " -R, --repackage Recréation du paquet sans recompiler"
msgstr " -R, --repackage Recréer le paquet sans recompiler"
msgid " -s, --syncdeps Install missing dependencies with pacman"
msgstr " -s, --syncdeps Installe les dépendances manquantes avec pacman"
msgstr " -s, --syncdeps Installer les dépendances manquantes avec pacman"
msgid ""
" --allsource Generate a source-only tarball including downloaded "
"sources"
msgstr ""
" --allsource Génère une archive source incluant les sources "
"téléchargées"
" --allsource Créer une archive source incluant les sources téléchargées"
msgid " --asroot Allow makepkg to run as root user"
msgstr " --asroot Autorise makepkg à s'exécuter en root"
msgstr " --asroot Autoriser makepkg à s'exécuter en root"
msgid " --check Run the check() function in the %s"
msgstr " --check Lance la fonction check() dans le %s"
msgstr " --check Lancer la fonction check() dans le %s"
msgid " --config <file> Use an alternate config file (instead of '%s')"
msgstr ""
@@ -1444,11 +1445,11 @@ msgstr ""
msgid ""
" --holdver Prevent automatic version bumping for development %ss"
msgstr ""
" --holdver Ne change pas automatiquement la version pour les %ss de "
"développement"
" --holdver Ne pas changer automatiquement la version pour\n"
" les %ss de développement"
msgid " --nocheck Do not run the check() function in the %s"
msgstr " --nocheck Ne lance pas la fonction check() dans le %s"
msgstr " --nocheck Ne pas lancer la fonction check() dans le %s"
msgid " --pkg <list> Only build listed packages from a split package"
msgstr ""
@@ -1463,22 +1464,22 @@ msgstr ""
msgid ""
" --source Generate a source-only tarball without downloaded sources"
msgstr ""
" --source Génère une archive source sans les sources téléchargées"
" --source Générer une archive source sans les sources téléchargées"
msgid "These options can be passed to pacman:"
msgstr "Ces options peuvent être passées à pacman:"
msgid ""
" --noconfirm Do not ask for confirmation when resolving dependencies"
msgstr " --noconfirm Ne demande aucune confirmation"
msgstr " --noconfirm Ne demander aucune confirmation"
msgid " --noprogressbar Do not show a progress bar when downloading files"
msgstr ""
" --noprogressbar N'affiche pas la barre de progression pendant le "
"téléchargement"
" --noprogressbar Ne pas afficher la barre de progression pendant le\n"
" téléchargement"
msgid "If -p is not specified, makepkg will look for '%s'"
msgstr "Si -p n'est pas spécifié, makepkg regardera seulement '%s'"
msgstr "Si -p n'est pas spécifié, makepkg cherchera seulement '%s'"
msgid ""
"Copyright (c) 2006-2011 Pacman Development Team <pacman-dev@archlinux.org>."

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2011-04-18 11:23-0500\n"
"PO-Revision-Date: 2011-04-17 10:21+0000\n"
"PO-Revision-Date: 2011-04-22 15:26+0000\n"
"Last-Translator: jose1711 <jose1711@gmail.com>\n"
"Language-Team: Slovak <None>\n"
"Language: sk\n"
@@ -1699,7 +1699,7 @@ msgid "Finished. Your pacman database has been optimized."
msgstr "Hotovo. Databáza pacmana bola optimalizovaná."
msgid "Usage: pkgdelta [-q] <package1> <package2>\\n"
msgstr "Použitie: pkgdelta [q] <balíček1> <balíček2>\\n"
msgstr "Použitie: pkgdelta [-q] <balíček1> <balíček2>\\n"
msgid ""
"\tpkgdelta will create a delta file between two packages.\\nThis delta file "

View File

@@ -1,16 +1,19 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# <rainofchaos@gmail.com>, 2011
# leonfeng <rainofchaos@gmail.com>, 2011
# 甘 露 <rhythm.gan@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2011-04-18 11:23-0500\n"
"PO-Revision-Date: 2011-04-12 04:10+0000\n"
"Last-Translator: ganlu <rhythm.gan@gmail.com>\n"
"Language-Team: Chinese (China) <None>\n"
"PO-Revision-Date: 2011-06-04 02:50+0000\n"
"Last-Translator: leonfeng <rainofchaos@gmail.com>\n"
"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/"
"archlinux-pacman/team/zh_CN/)\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -150,7 +153,7 @@ msgstr "正在下载 %s...\n"
#, c-format
msgid "malloc failure: could not allocate %zd bytes\n"
msgstr "内存分配失败:无法分配 %zd bytes\n"
msgstr "内存分配失败:无法分配 %zd \n"
#, c-format
msgid "no targets specified (use -h for help)\n"

View File

@@ -1076,7 +1076,7 @@ create_package() {
*tar.bz2) bzip2 -c -f ;;
*tar.xz) xz -c -z - ;;
*tar) cat ;;
esac > ${pkg_file} || ret=$?
esac > "${pkg_file}" || ret=$?
shopt -u nullglob
shopt -u -o pipefail
@@ -1135,7 +1135,7 @@ create_srcpackage() {
local i
for i in 'changelog' 'install'; do
local filelist=$(sed -n "s/^[[:space:]]*$i=//p" "$BUILDSCRIPT")
local filelist=$(sed -n "s/^[[:space:]]*$i=//p" "$BUILDFILE")
local file
for file in $filelist; do
# evaluate any bash variables used

View File

@@ -292,7 +292,7 @@ db_write_entry()
msg2 "$(gettext "Creating '%s' db entry...")" 'files'
local files_path="$tmpdir/$pkgname-$pkgver/files"
echo "%FILES%" >$files_path
bsdtar --exclude='.*' -tf "$pkgfile" >>$files_path
bsdtar --exclude='^.*' -tf "$pkgfile" >>$files_path
fi
# create a delta file

View File

@@ -351,7 +351,9 @@ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
int len, wclen, wcwid, padwid;
wchar_t *wcstr;
if(config->noprogressbar) {
const int cols = getcols(0);
if(config->noprogressbar || cols == 0) {
return;
}
@@ -397,7 +399,7 @@ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
return;
}
infolen = getcols() * 6 / 10;
infolen = cols * 6 / 10;
if (infolen < 50) {
infolen = 50;
}
@@ -454,7 +456,7 @@ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
free(wcstr);
/* call refactored fill progress function */
fill_progress(percent, percent, getcols() - infolen);
fill_progress(percent, percent, cols - infolen);
if(percent == 100) {
alpm_list_t *i = NULL;
@@ -497,7 +499,9 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
int file_percent = 0, total_percent = 0;
char rate_size = 'K', xfered_size = 'K';
if(config->noprogressbar || file_total == -1) {
const int cols = getcols(0);
if(config->noprogressbar || cols == 0 || file_total == -1) {
if(file_xfered == 0) {
printf(_("downloading %s...\n"), filename);
fflush(stdout);
@@ -505,7 +509,7 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
return;
}
infolen = getcols() * 6 / 10;
infolen = cols * 6 / 10;
if (infolen < 50) {
infolen = 50;
}
@@ -662,9 +666,9 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
free(wcfname);
if(totaldownload) {
fill_progress(file_percent, total_percent, getcols() - infolen);
fill_progress(file_percent, total_percent, cols - infolen);
} else {
fill_progress(file_percent, file_percent, getcols() - infolen);
fill_progress(file_percent, file_percent, cols - infolen);
}
return;
}

View File

@@ -1265,8 +1265,9 @@ static void cl_to_log(int argc, char* argv[])
size += strlen(argv[i]) + 1;
}
char *cl_text = malloc(size);
if(!cl_text)
if(!cl_text) {
return;
}
char *p = cl_text;
for(i = 0; i<argc-1; i++) {
strcpy(p, argv[i]);
@@ -1416,7 +1417,7 @@ int main(int argc, char *argv[])
}
/* set up the print operations */
if(config->print) {
if(config->print && !config->op_s_clean) {
config->noconfirm = 1;
config->flags |= PM_TRANS_FLAG_NOCONFLICTS;
config->flags |= PM_TRANS_FLAG_NOLOCK;

View File

@@ -60,16 +60,16 @@ static int search_path(char **filename, struct stat *bufptr)
char *envpath, *envpathsplit, *path, *fullname;
size_t flen;
if ((envpath = getenv("PATH")) == NULL) {
if((envpath = getenv("PATH")) == NULL) {
return(-1);
}
if ((envpath = envpathsplit = strdup(envpath)) == NULL) {
if((envpath = envpathsplit = strdup(envpath)) == NULL) {
return(-1);
}
flen = strlen(*filename);
while ((path = strsep(&envpathsplit, ":")) != NULL) {
while((path = strsep(&envpathsplit, ":")) != NULL) {
size_t plen = strlen(path);
/* strip the trailing slash if one exists */
@@ -78,6 +78,10 @@ static int search_path(char **filename, struct stat *bufptr)
}
fullname = malloc(plen + flen + 2);
if(!fullname) {
free(envpath);
return(-1);
}
sprintf(fullname, "%s/%s", path, *filename);
if(lstat(fullname, bufptr) == 0) {
@@ -94,7 +98,7 @@ static int search_path(char **filename, struct stat *bufptr)
static void print_query_fileowner(const char *filename, pmpkg_t *info)
{
if (!config->quiet) {
if(!config->quiet) {
printf(_("%s is owned by %s %s\n"), filename,
alpm_pkg_get_name(info), alpm_pkg_get_version(info));
} else {

View File

@@ -101,7 +101,7 @@ int needs_root(void)
}
/* gets the current screen column width */
int getcols(void)
int getcols(int def)
{
#ifdef TIOCGSIZE
struct ttysize win;
@@ -114,7 +114,7 @@ int getcols(void)
return win.ws_col;
}
#endif
return 0;
return def;
}
/* does the same thing as 'rm -rf' */
@@ -209,14 +209,13 @@ void indentprint(const char *str, int indent)
{
wchar_t *wcstr;
const wchar_t *p;
int len, cidx, cols;
int len, cidx;
const int cols = getcols(0);
if(!str) {
return;
}
cols = getcols();
/* if we're not a tty, print without indenting */
if(cols == 0) {
printf("%s", str);
@@ -425,8 +424,6 @@ static int string_length(const char *s)
void string_display(const char *title, const char *string)
{
int len = 0;
if(title) {
printf("%s ", title);
}
@@ -434,7 +431,7 @@ void string_display(const char *title, const char *string)
printf(_("None"));
} else {
/* compute the length of title + a space */
len = string_length(title) + 1;
int len = string_length(title) + 1;
indentprint(string, len);
}
printf("\n");
@@ -443,7 +440,7 @@ void string_display(const char *title, const char *string)
void list_display(const char *title, const alpm_list_t *list)
{
const alpm_list_t *i;
int cols, len = 0;
int len = 0;
if(title) {
len = string_length(title) + 1;
@@ -453,11 +450,12 @@ void list_display(const char *title, const alpm_list_t *list)
if(!list) {
printf("%s\n", _("None"));
} else {
int cols;
const int maxcols = getcols(80);
for(i = list, cols = len; i; i = alpm_list_next(i)) {
char *str = alpm_list_getdata(i);
int s = string_length(str);
int maxcols = getcols();
if(maxcols > 0 && (cols + s + 2) >= maxcols) {
if(cols + s + 2 >= maxcols) {
int j;
cols = len;
printf("\n");

View File

@@ -42,7 +42,7 @@
int trans_init(pmtransflag_t flags);
int trans_release(void);
int needs_root(void);
int getcols(void);
int getcols(int def);
int rmrf(const char *path);
const char *mbasename(const char *path);
char *mdirname(const char *path);

View File

@@ -102,7 +102,7 @@ class pmpkg(object):
# Generate package file system
for f in self.files:
util.mkfile(f, f)
self.size += os.stat(util.getfilename(f))[stat.ST_SIZE]
self.size += os.lstat(util.getfilename(f))[stat.ST_SIZE]
# .PKGINFO
data = ["pkgname = %s" % self.name]

View File

@@ -146,6 +146,14 @@ class pmrule(object):
else:
print "FILE rule '%s' not found" % case
success = -1
elif kind == "LINK":
filename = os.path.join(test.root, key)
if case == "EXIST":
if not os.path.islink(filename):
success = 0
else:
print "LINK rule '%s' not found" % case
success = -1
elif kind == "CACHE":
cachedir = os.path.join(test.root, util.PM_CACHEDIR)
if case == "EXISTS":

View File

@@ -0,0 +1,43 @@
self.description = "Dead backed-up symlink when removing package (FS#24230)"
# symlink file is changed
lp = pmpkg("dummy")
lp.files = ["etc/brokenlink -> nonexistent",
"etc/exists"]
lp.backup = ["etc/brokenlink*"]
self.addpkg2db("local", lp)
# symlink file is not changed
lp2 = pmpkg("dummy2")
lp2.files = ["etc/brokenlink2 -> nonexistent2",
"etc/exists2"]
lp2.backup = ["etc/brokenlink2"]
self.addpkg2db("local", lp2)
# package is left alone, not uninstalled
lp3 = pmpkg("dummy3")
lp3.files = ["etc/brokenlink3 -> nonexistent3",
"etc/exists3"]
self.addpkg2db("local", lp3)
self.args = "-R %s %s" % (lp.name, lp2.name)
#self.args = "-R"
self.addrule("PACMAN_RETCODE=0")
self.addrule("!PKG_EXIST=dummy")
self.addrule("!LINK_EXIST=etc/brokenlink")
self.addrule("!FILE_EXIST=etc/nonexistent")
self.addrule("!FILE_EXIST=etc/exists")
self.addrule("!PKG_EXIST=dummy2")
self.addrule("!LINK_EXIST=etc/brokenlink2")
self.addrule("!FILE_EXIST=etc/nonexistent2")
self.addrule("!FILE_EXIST=etc/exists2")
self.addrule("PKG_EXIST=dummy3")
self.addrule("LINK_EXIST=etc/brokenlink3")
self.addrule("!FILE_EXIST=etc/nonexistent")
self.addrule("FILE_EXIST=etc/exists3")
self.addrule("FILE_TYPE=etc/brokenlink3|link")
self.addrule("FILE_TYPE=etc/exists3|file")

View File

@@ -149,7 +149,6 @@ def getmd5sum(filename):
"""
"""
if not os.path.isfile(filename):
print "file %s does not exist!" % filename
return ""
fd = open(filename, "rb")
checksum = hashlib.md5()
@@ -177,9 +176,8 @@ def getmtime(filename):
"""
"""
if not os.path.exists(filename):
print "path %s does not exist!" % filename
return 0, 0, 0
st = os.stat(filename)
return None, None, None
st = os.lstat(filename)
return st[stat.ST_ATIME], st[stat.ST_MTIME], st[stat.ST_CTIME]
#