The option parsing was catching any "-d" in an argument so packages
with this in their name did not work.
Also removed commented code line that appears to be inserted during
testing.
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
When the output is going to a file, glibc seems to buffer way too much
making it hard to monitor progress while tailing a file.
Signed-off-by: Simo Leone <simo@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
If the delta line doesn't match our regex, we won't go and process it,
possibly walking off the end of the string.
Signed-off-by: Dan McGee <dan@archlinux.org>
This patch slightly modifies pacman.c/_parseconfig():
See FS#12148. Now pacman prints the following error message in that case:
"error: could not register 'unstable' database (could not open database)"
I also added an error message for alpm_db_setserver() error.
I changed the "return(1);" scheme to "ret = 1; goto cleanup;" to make
sure that we free allocated memory and close open files.
Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu>
Signed-off-by: Dan McGee <dan@archlinux.org>
Not only does this require less sed-magic, it also fixes FS#12286 where
fetching the revision number fails if mercurial is in compact mode.
Signed-off-by: Dan McGee <dan@archlinux.org>
We don't want a failed write to kill our whole program when we are
downloading things, so set the SIGPIPE handler to ignore when downloading
and restore any previous signal handler when we complete the download.
Signed-off-by: Dan McGee <dan@archlinux.org>
Use libfetch naming in the code in place of libdownload names. This is in
preparation for dropping support for libdownload at some point as libfetch
can run on Linux.
Signed-off-by: Dan McGee <dan@archlinux.org>
From now on -Qu is an "outdated package" filter on local database.
(This is a behaviour change.)
This patch fixes some memleaks and makes the code cleaner, for details see
my comment on FS#7884.
FS#11868 is implemented.
Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu>
Signed-off-by: Dan McGee <dan@archlinux.org>
If PKGBUILD (BUILDSCRIPT) is not found, test for information from a
pipe and use that. Fixes FS#9187.
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
Do not attemp to update pkgver/pkgrel when reading a SCM based PKGBUILD
from a pipe.
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
Example usage and output :
> src/util/testdb -h
usage:
testdb [-b <pacman db>] : check the local database
testdb [-b <pacman db>] core extra ... : check the listed sync databases
> src/util/testdb
Checking the integrity of the local database in /var/lib/pacman/
> src/util/testdb core extra testing community
Checking the integrity of the sync databases in /var/lib/pacman/
missing dependency for archboot : bcm43xx-fwcutter>=006-2
missing dependency for xvattr : xfree86
missing dependency for eclipse-ve : eclipse<3.3
missing dependency for flumotion : twisted-web
missing dependency for gg2 : arts
missing dependency for man-pages-cs : groff-utf8
missing dependency for qc-usb : kernel26<2.6.26
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
This patch addresses quite a few lingering issues in the pacman-optimize
script. FS#11767 provoked this look-over and the following issues were
noticed and fixed:
* If an alternate dbroot was specified, then the lockfile location was never
updated to reflect it. The lockfile location is now set after all dbpath
initialization.
* The inclusion of a trailing slash on dbroot was problematic and led to the
following command being executed:
bsdtar -xpf /tmp/pacman-optimize.p12Q4vAUWY/pacman-db.tar.gz \
-C /var/lib/pacman/.new/
It is doubtful we meant to create a hidden directory like this below our
database root, only to go and delete it a second later and then
re-extract. Fix the whole thing by ensuring our dbpath has its trailing
slash stripped and then appending it when necessary.
* The DB extraction was performed twice for no real apparent reason. This
opens the door for extraction problems the second time around, leaving you
with no original database to fall back to. Change the behavior so we only
extract once, and then perform a directory shuffle once we verify the
checksums are correct.
* Perform an explicit sync after we drop the new database on the disk. It
should work better this way.
* Tighten up our check for a pacman lockfile and the time we create one.
There is still a possible race condition but the window is shorter.
Signed-off-by: Dan McGee <dan@archlinux.org>
This is similar to the change we made in makepkg so it is cross-platform
compatible and doesn't require coreutils.
Signed-off-by: Dan McGee <dan@archlinux.org>
We never had a call to pclose() in here before, leaving our file descriptor
in some sort of limbo state. In addition, clean up some of the other logic
such as directly calling exit(1) on a popen() failure rather than going to
our cleanup block, and handling and respecting the exit status of the
subprocess correctly.
Signed-off-by: Dan McGee <dan@archlinux.org>
Inspired by commit 7e8f1469c4, use our given
PKGEXT or SRCEXT to determine what method of compression to use on the
package we create. If the extension is invalid, this should fall back to
creating a non-compressed tar file.
Signed-off-by: Dan McGee <dan@archlinux.org>
When we do our sed edits, we really don't need every command printed out to
the terminal. Now with "make -s", the output is quite palatable.
Signed-off-by: Dan McGee <dan@archlinux.org>
Calling printf() in a signal handler can be dangerous, so avoid it by
writing directly which is guaranteed to be safe according to signal(7).
Signed-off-by: Dan McGee <dan@archlinux.org>
I mess this up more often than not, and maybe this will do the trick. Remove
the --enable-asciidoc option as it has been superseded by the --disable-doc
option in usefulness. If you want to skip building docs, you skip building
all docs which is much easier when it comes to ensuring the make 'dist' and
'distcheck' targets will always build the manpages and always build the most
up to date manpages.
Developers shouldn't be affected in their normal builds, nor should end
users of the source tarball.
Signed-off-by: Dan McGee <dan@archlinux.org>
Do the checks in the tests that need it, and get rid of some of the
cluttered output when it is not available (one line per test run).
Signed-off-by: Dan McGee <dan@archlinux.org>
Every call to getcols() results in two ioctl() calls, which we really didn't
need as changing the number of columns in mid-print would be pretty crazy.
Signed-off-by: Dan McGee <dan@archlinux.org>
It is possible to throw EINTR from a system call such as open(), close(), or
waitpid() if custom signal handlers are set up and they are not initialized
with the SA_RESTART flag. This was noticed by Andreas Radke when ^C (SIGINT)
was given during the call to waitpid(), causing it to throw the EINTR error
and we could not accommodate it.
Simply wrap these calls in a simple loop that allows us to retry the call if
interrupted.
Signed-off-by: Dan McGee <dan@archlinux.org>
Because libalpm always returns a root path with a trailing slash, when we
use it to create our unspecified paths we get double slashes in the result.
Use the fix suggested by Jürgen Hötzel to remedy this.
Signed-off-by: Dan McGee <dan@archlinux.org>
This fixes FS#11339, which is a regression of commit 89c2c5196:
When totaldownload is enabled, the database downloading percent (-Sy) is
always at 0. That is because we have no guarantee that the totaldownload
callback was called by libalpm. In particular, it is not called (and it
would not make sense to) when a single file is downloaded, like it is the
case with databases.
So the correct way to detect if totaldownload should be used is checking
both config->totaldownload and list_total, like it was already done in
several places in the cb_dl_progress function.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
A source entry can now have the following form, to specify a different
filename :
"filename::http://path/to/file"
Of course, the old syntax is still supported :
"http://path/to/file"
And as before, in the second case, the filename used is simply "file".
This fixes FS#11292, because handling multiple source files with the same
name is now possible (just choose a different filename).
But it will also allow to deal much more nicely with funny url like this by
using a sane filename (and unfortunately, there are quite a few) :
http://www.vim.org/scripts/download_script.php?src_id=6992
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
This is more consistent with the private functions :
_alpm_db_get_{pkg,grp}cache
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
These two functions now take directly a package list rather than a database.
checkdbconflicts was renamed to checkconflicts.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
During an upgrade, only the new optdepends will be displayed, to only keep
the useful information and not clutter pacman output too much.
The whole optdepends list is always available with -Si / -Qi.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
After commit 7865fb9af4, info pages are now treated like man pages.
This means even with !docs, info pages will still be included. And including
info pages was the main reason the docs option was enabled by default
recently. So this is now longer needed, and we can revert back to !docs by
default for disabling gigantic html pages and other docs.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
* Update all .po files because of the last "-q,--quiet" fix.
Also for some strange reason, en_GB was missing a few c-format tags.
* Finally, delete all unused translations.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>