Commit Graph

1526 Commits

Author SHA1 Message Date
Dan McGee 5adb8d4b5a util/testdb: fix up function naming
We shouldn't use the _alpm prefix (copy-paste issue, no big deal).

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-10 06:57:42 -05:00
Nagy Gabor 3c4e98f7b5 Add two new pactests to check symlink behavior
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-09 13:27:08 -05:00
Dan McGee 7f3adc3936 Add new French Arch mirror
Fix Aaron's busted-a** commit. :P

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-09 12:48:02 -05:00
Aaron Griffin 5e3a1bdec6 New French mirror at ftp.free.fr
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-10-09 12:41:05 -05:00
Dan McGee 6db0562b8d Add gcc format attribute to _alpm_log, catch a few bugs in the process
This fixed a few of our formatted output strings that were broken before
but never being checked.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 21:25:52 -05:00
Dan McGee 087b8df781 libalpm/package.c: ensure we use package name when loading packages
Some of the error messages in _alpm_pkg_load failed to use the pkgname
value when printing, which made error messages rather hard to decode.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 21:21:04 -05:00
Chantry Xavier e03a1f0044 pacman/pacman.c : add --logfile option.
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-10-08 20:46:56 -05:00
Dan McGee 920b0d2049 Update usage of gcc __attribute__ flags
Change the default visibility of libalpm functions to internal instead of
hidden- this allows for slightly better optimization because it tells GCC
that the function can never be called outside of the current module (see
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html).

Also added some attributes to the pacman print functions so that they check
the format strings being passed to them.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 20:46:56 -05:00
Dan McGee b1613c2651 Clean up the scriptlet fork code a bit, honor the child return value
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 20:46:55 -05:00
Nagy Gabor 3d8408759d Add new (failing) sync pactest
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 20:46:55 -05:00
Dan McGee 1ff8e7f364 Remove the non-user friendly --ask option
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 20:46:55 -05:00
Dan McGee 60dc4b43fd Fix backward compatibility with non-epoch builddates
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 20:46:55 -05:00
Dan McGee 6aac221879 Add new french mirror
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 20:46:55 -05:00
Dan McGee f5f4650de7 pacman-optimize: add check for diff/diffutils
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-08 20:46:55 -05:00
Aaron Griffin 4853a4aad9 Fail loudly is scriptlets cannot be run via /bin/sh
If /bin/sh is missing in the root directory, scriptlets cannot be executed, as
we're explicitly calling it.

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-10-04 21:36:25 -05:00
Chantry Xavier 98bcd1f5b1 Fix -Sy and -Sp operations.
When the -Sy operation failed, the lock wasn't removed because
alpm_trans_release wasn't called. This is fixed now.

Also, after my last change in commit 52e7e6d747 ,
Sp didn't do anything anymore.
That's because needs_transaction returned false for -Sp, so the sync transaction
wasn't run. However, the current implementation of -Sp requires a sync transaction.

Also, since a transaction creates the lock file at the beginning, and releases it
at the end, this mean that -Sp requires root access anyway..

I think I understand now why Aaron found that the current -Sp implementation is hackish :)

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-10-04 18:13:09 -05:00
Nathan Jones 02ec82b8c6 makepkg: Fix typo to make xdelta creation work.
Signed-off-by: Nathan Jones <nathanj@insightbb.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-10-04 17:50:29 -05:00
Chantry Xavier 52e7e6d747 needs_transaction adjustments
I just moved the root path check out of needs_transaction, and put it directly
in pacman.c . I think this part is alright.

For the other problems, I thought about doing the transaction first, in a new
sync trans function, which will init and release a transaction.  And then doing
the commands like -Ss / -Sl / -Sg / -Si.

The problem is that for commands like -Sys / -Syl / etc, only the refresh part
of the transaction should be done.  So I had to introduce an ugly sync_only
hack.

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-10-03 21:02:36 -05:00
Dan McGee 4453ce155c libalpm: Optimize/inline the md5 functionality
The md5 routines are one of the chokepoints of libalpm (main chokepoint being
archive extraction). Although IO delay causes a lot of it, we can at least
inline some of the md5 stuff as we aren't that concerned about space and
eliminate quite a few function calls.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 23:27:14 -05:00
Dan McGee 01e92e9ded libalpm/deps.c: fix memleak found by valgrind
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 23:27:14 -05:00
Dan McGee 7d5dca4043 libalpm/be_files: Fix outdated code setting path for lastupdate file
The code for setting the lastupdate file path still referenced both the
root and dbpath, when we should only be using dbpath. Fix it.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 23:27:14 -05:00
Dan McGee d5fa2da171 makepkg: Fix output color codes for real
Make sure we reset both the bold attribute and the color attributes when it
is necessary.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 12:45:14 -05:00
Dan McGee 5977a6ec9e Remove outdated mirror
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 06:46:27 -05:00
Dan McGee 69d68ef0b5 makepkg: When we add an option, we should probably make it work
The -A,--ignorearch option was added and given help text, but never actually
listed as valid to the option parser. Fix this.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 00:36:48 -05:00
Aaron Griffin 48bf088e65 Use ANSI 'foreground' color instead of hardcoding 'white'
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Aaron Griffin b86479cf9b Allow --refresh specified for most -S options
Included options are -g, -i, -s, and -l
All of these will sync the DB if -y is specified and permissions are
appropriate.

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Aaron Griffin 4942d21632 Break out transaction test to a separate function
Added needs_transaction, putting out "hey do we need root?" tests in one place.

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Aaron Griffin 50bb16e015 OMG a space!
Yeah, I added a space. It deserves its own commit.

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Aaron Griffin cb3c3a920d Minor "cannot remove" message cleanup
The strings differed in quotes only, this way we have only one i18n string for
translation

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Aaron Griffin f2f4ada1d6 Remove buildtype package accessor prototype
This was removed a while ago, but the prototype was still hanging out.

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Aaron Griffin 47622eef4d Support for localized times in metadata
Packages and DBs now support using the UNIX epoch (seconds since Jan 1, 1970)
for use in builddate and installdate. This will only affect newly built
packages. Old existing packages with the text format are still supported, but
this is deprecated.

In the case of removal of text time support, this code will fail gracefully,
returning the start of the epoch for broken packages.

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Dan McGee 219808714f Add 'full' parameter to alpm_pkg_load
In most cases, we want to fully scan a package when we load it, which serves
as a integrity verification check. However, there are times when it is only
desired to read the metadata and nothing else, so allow the caller of pkg_load
to choose the behavior they need.

This pays big dividends in speeding up pacman cache cleaning functionality.
Old (729 packages):
real    1m43.717s
user    1m20.785s
sys     0m2.993s
New (729 packages):
real    0m25.607s
user    0m19.389s
sys     0m0.543s

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 00:16:43 -05:00
Dan McGee d2edcb58e2 Update comments dealing with pkgext/dbext stripping
pacman/callback.c already did the work I set out to do with this commit, so
update the comments accordingly in the frontend and backend.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 00:16:43 -05:00
Dan McGee 16cb8e6e61 Reimplement pacman cache cleaning the right way
Partial cache cleaning was eliminated in a previous commit because it relied
on package naming conventions. Re-add it the correct way- we actually open
up each package in the cache and get a name and version out of it. If the
name and version match that of an installed package, keep it. If the package
is not installed or the version does not match the locally-installed version,
get rid of it.

This can easily be modified if some other heuristic of keeping and removing
packages is desired, or if we should clean out the cache dir of any files
that are not packages, etc.

The biggest current problem with this new approach- speed. Here is one run
on my local machine, going from 1643 to 729 packages in the cache (753 in
the local DB):
real    4m25.829s
user    3m22.527s
sys     0m6.713s

This is likely best addressed by the package loading scheme, which may be
loading the entirety of each package archive, which is a waste when we only
need the .PKGINFO file read.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 00:16:43 -05:00
Dan McGee f7bbfe4052 Remove package name dependency from libalpm
Previously, package names must match a specified scheme or they will cause
pacman add operations to fail. This is not a very intelligent or necessary
way to act, so remove the dependency on the name of the package to be
installed and read all relevant information from the metadata instead.

This does have one causality to be addressed later- pacman cache cleaning
functionality, which has never been phenomenal, just lost most capability.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 00:16:43 -05:00
Dan McGee 0758012b66 libalpm: Add newline to alpm log function output
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 00:15:28 -05:00
Dan McGee 679eff90cc Mirrorlist updates
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-27 22:13:33 -05:00
Chantry Xavier a6b58638d1 document the -Qii option.
I suppose -Qii could be used for other things than displaying
the list of backup files, but currently, it's the only one,
so that's how I documented it..

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-27 22:00:57 -05:00
Dan McGee fc0e83f05b Preliminary support for optdepends
Add some alpm functions for getting optdepends, have makepkg include them
in the PKGINFO file, and have a pacman -Qi operation display the raw string
as stored by libalpm.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-25 23:02:30 -05:00
Dan McGee 012f793978 Allow a normal 'make' to compile without asciidoc installed
If we don't have asciidoc installed or enabled, we should still have a
successful make. However, we want to ensure 'make dist' fails without
asciidoc. This commit should ensure this.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-23 21:19:06 -05:00
Dan McGee 843d368ef6 libalpm/add.c: fix backup array issue
As seen with the recent upgrade of pacman and the removal of the
pacman.d/current mirrorlist, files that were formerly in the backup array
get deleted upon their removal, which could be dangerous. Instead, we should
use the combined backup array of the old and new package. This fix should
address this issue in a relatively straightforward way.

In addition, old files should be moved to pacsave locations as expected.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-23 20:48:04 -05:00
Chantry Xavier 105fd40a4a Add sync044 pactest : A dependency induces a replacement.
That is the problem mentioned by Nagy there (with suggestions for fixing it) :
http://www.archlinux.org/pipermail/pacman-dev/2007-August/009082.html

If a dependency conflicts with a local package and has to replace it,
the PM_SYNC_TYPE_DEPEND information is lost, and the resulting install
reason is wrong (the package is marked as explictly installed).

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-09-23 19:50:11 -05:00
Chantry Xavier 6898bb0f97 Add two pactests with broken requiredby, and two about pacsave handling.
remove048 is the case mentioned there (fails in 3.0 but works in 3.1) :
http://www.archlinux.org/pipermail/pacman-dev/2007-September/009294.html
It's the same as remove046 with -R instead of -Rc.

sync060 is a case reported this morning on IRC :
a pacman -Su wanted to replace gensplashutils by gensplash,
but pacman said gensplashutils was required by initscripts-gensplash,
while initscripts-gensplash was not even installed.
This is also fixed in the current 3.1 code though.

upgrade02{4,5} are the backup handling problem I described there :
http://www.archlinux.org/pipermail/pacman-dev/2007-September/009376.html

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-09-23 19:50:03 -05:00
Dan McGee 8acb6d24af libalpm/remove.c: fix up arguments to unlink_file
Move the progressbar code out of unlink_file so we can pass half the args.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-23 19:47:52 -05:00
Dan McGee d3c8003020 alpm: removed unused strtoupper wrapper, remove installeddate on parse_descfile
installdate should never be present in a package descfile, so get rid of it.
With the last commit, we also don't need the util strtoupper function.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-23 12:20:48 -05:00
Chantry Xavier 443950b7e9 libalpm/package.c : fix for FS#8081, case sensitive comparisons in parse_descfile.
This fix FS#8081. The tr_TR locale has known issue with case insensitive
comparisons, mostly because upper(i) != I.

So the .PKGINFO files generated by makepkg MUST contain all keywords in lowercases now.
This was already done, but was not mandatory.

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-09-23 12:05:30 -05:00
Chantry Xavier f9b7c67d24 libalpm/add.c : fix backup handling (2)
The mistake fixed in commit 26441cf65c
was actually done at two places.
This fix the second one.

Also remove one unnecessary newline introduced by
commit d34b2c4ed8

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-09-18 18:56:40 -05:00
Dan McGee 1860ab8980 Update NEWS, -S testing/qt example, and mirrorlist change
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-18 13:40:19 -05:00
Dan McGee 7325ebbc22 Refine pacman manpage, clarify -S repo/package possibility, remove --test
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-17 23:01:01 -05:00
Chantry Xavier d34b2c4ed8 libalpm/add.c : newline fix.
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2007-09-17 22:56:42 -05:00