[pacman-dev] [GIT] The official pacman repository branch, master, updated. v3.1.4-163-gfb09d35
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "The official pacman repository". The branch, master has been updated via fb09d35e6a24ef433005728c77453bce99efd010 (commit) via 33e3182dbd1ad9b68f72914abbf4a93a97b0d79b (commit) via a8ee1854135f333091337e3dbcb1f96cdb1aab01 (commit) via 84283672853350a84d2a71b72dc06e180cad1587 (commit) via dd98aa8564a21ed43782704bf9feb5b2b114825f (commit) via a422f6e39c9c60b89269c2b09e697a9eb142b904 (commit) via f671147282e0f5c6a2e05c8cb7a0d5b72ef8cb61 (commit) via ae5ef3b90fcad0627d450f0be6ea04dbea2019e2 (commit) via 584ffa6aef13d0933ad4930ab9cb70d3af2977ff (commit) via d5278ebb3ba94efdc9fffb7924ac66b6747d9011 (commit) via f43805d875ad5c672afbbfff48bded2087204773 (commit) via 8248b4bfb1abe175d73e20106a18172da5296836 (commit) via e80232f24c51838d3f4ccff1fbc9c8fda87e1ecb (commit) from 663408532ae852e7123da6b9658df1cacc0c642d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit fb09d35e6a24ef433005728c77453bce99efd010 Author: Xavier Chantry <shiningxc@gmail.com> Date: Tue Apr 15 17:10:39 2008 +0200 Disable geteuid in cygwin. This is one of those rare cases where we actually want to code in a platform-specific #ifdef. Because you don't need to be the root user on a Windows box, and fakeroot doesn't exist so we can do easy testing, lets disable any checking of the UID. Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org> commit 33e3182dbd1ad9b68f72914abbf4a93a97b0d79b Author: Xavier Chantry <shiningxc@gmail.com> Date: Wed Apr 16 10:13:21 2008 +0200 pactest: only use fakeroot when it is found. Only use fakeroot and fakechroot when they are found AND required. fakechroot only had the first condition, and fakeroot only the second. When they are required (user != root) but not found, display a warning. Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org> commit a8ee1854135f333091337e3dbcb1f96cdb1aab01 Author: Dan McGee <dan@archlinux.org> Date: Wed May 14 00:37:51 2008 -0500 Remove wrapper call around versioncmp Actually, just rename _alpm_versioncmp to alpm_pkg_vercmp and get rid of the need for a wrapper since it did nothing anyway. Signed-off-by: Dan McGee <dan@archlinux.org> commit 84283672853350a84d2a71b72dc06e180cad1587 Author: Dan McGee <dan@archlinux.org> Date: Wed May 14 00:30:04 2008 -0500 Update _alpm_versioncmp This code hasn't been looked at in some time. I grabbed a more recent version of the RPM source (4.4.2.3) and attempted to sync up any changes they have made, as well as make the libalpm additional code much cleaner and limited to only a few added lines of code. The size of this patch might make you think we added code, but bloat-o-meter actually tells us otherwise: <function> <old> <new> <diff> _alpm_versioncmp 1485 1021 -464 Signed-off-by: Dan McGee <dan@archlinux.org> commit dd98aa8564a21ed43782704bf9feb5b2b114825f Author: Dan McGee <dan@archlinux.org> Date: Tue May 13 19:03:54 2008 -0500 Simplify _alpm_pkg_new() Any real call of this function doesn't specify a name or version ahead of time, so just kill that functionality off. Now to remove those dummy packages... Signed-off-by: Dan McGee <dan@archlinux.org> commit a422f6e39c9c60b89269c2b09e697a9eb142b904 Author: Dan McGee <dan@archlinux.org> Date: Sat May 10 13:32:19 2008 -0500 Remove lazy init code from pkg name and version functions If we have a package without name and/or version, we are really out of luck. Speed these functions up by removing unnecessary code. Note that both the splitname and pkg_load functions, where the name and version of packages are initially populated for databases and pkg.tar.gz files respectively, enforce that every new package struct created has a name and version. Signed-off-by: Dan McGee <dan@archlinux.org> commit f671147282e0f5c6a2e05c8cb7a0d5b72ef8cb61 Author: Xavier Chantry <shiningxc@gmail.com> Date: Mon May 12 18:56:14 2008 -0500 Fix rewinddir regression by cleaning up db_scan Commit 046003844739416ff6d168dd2dec76490adb0727 caused a regression when rereading the pkgcache after updating the on-disk databases. A rewinddir call was errantly removed. Instead of replacing the call to rewindir, clean up this whole mess. db_scan is used only once and with target == NULL so there was actually half the code of db_scan which was unused. This is gone now and replaced by a single new db_populate function. Dan: add_sorted ended up being 3x slower than one msort at the end, so I changed back to that. I also made one pointer variable const and merged this whole patch with my original fix for the rewinddir issue. Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org> commit ae5ef3b90fcad0627d450f0be6ea04dbea2019e2 Author: Dan McGee <dan@archlinux.org> Date: Sat May 3 09:35:37 2008 -0500 Remove --builddeps from makepkg This really should be in an external script, as it is not makepkg's job to rebuild your system. Signed-off-by: Dan McGee <dan@archlinux.org> commit 584ffa6aef13d0933ad4930ab9cb70d3af2977ff Author: Dan McGee <dan@archlinux.org> Date: Mon May 12 20:49:18 2008 -0500 Remove an outdated exception check in file conflict code This has been around since at least pacman 2.9.8. Frugalware just dumped it in commit 113ec73bfcfdc, and deleting it here and running pactest shows that nothing that we have actually tested changes. If someone can pactest the edge case where this is needed, then show me the money. Signed-off-by: Dan McGee <dan@archlinux.org> commit d5278ebb3ba94efdc9fffb7924ac66b6747d9011 Author: Chantry Xavier <shiningxc@gmail.com> Date: Mon Jan 28 19:49:27 2008 +0100 Add SyncFirst option. This patch offers a way to fix FS#9228. By putting "SyncFirst = pacman" in pacman.conf, the version check will happen before the transaction really starts, and before any replacements is made. Otherwise, no version check is done. The sync301 pactest was updated to use this SyncFirst option. Example session with SyncFirst = pacman, and a newer pacman version available : $ pacman -Su (or pacman -S <any targets>) :: the following packages should be upgraded first : pacman :: Do you want to cancel the current operation :: and upgrade these packages now? [Y/n] resolving dependencies... looking for inter-conflicts... Targets: pacman-x.y.z-t Total Download Size: x.xx MB Total Installed Size: x.xx MB Proceed with installation? [Y/n] n As Nagy previously noted, doing this check on any -S operations might look intrusive, but it can be required. For example, the case where you want to install a package with versioned provisions, using a pacman version which didn't support that feature yet (and there is already a newer pacman in sync db supporting it). Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org> commit f43805d875ad5c672afbbfff48bded2087204773 Author: Chantry Xavier <shiningxc@gmail.com> Date: Sat May 10 18:47:42 2008 +0200 Cleanup usages of alpm_list_find and alpm_list_remove. * remove obsolete and unused *_cmp helper functions like deppkg_cmp and _alpm_grp_cmp * new alpm_list_remove_str function, used 6 times in handle.c * remove _alpm_prov_cmp / _alpm_db_whatprovides and replace them by a more general alpm_find_pkg_satisfiers with a cleaner implementation. before: alpm_db_whatprovides(db, targ) after: alpm_find_pkg_satisfiers(alpm_db_getpkgcache(db), targ) * remove satisfycmp and replace alpm_list_find + satisfycmp usage by _alpm_find_dep_satisfiers. before : alpm_list_find(_alpm_db_get_pkgcache(db), dep, satisfycmp) after : _alpm_find_dep_satisfiers(_alpm_db_get_pkgcache(db), dep) * remove _alpm_pkgname_pkg_cmp, which was used with alpm_list_remove, and use _alpm_pkg_find + alpm_list_remove with _alpm_pkg_cmp instead. This commit actually get rids of all complicated and asymmetric _cmp functions. I first thought these functions were worth it, be caused it allowed us to reuse list_find and list_remove. But this was at the detriment of the clarity and also the ease of use of these functions, dangerous because of their asymmetricity. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org> commit 8248b4bfb1abe175d73e20106a18172da5296836 Author: Nagy Gabor <ngaba@bibl.u-szeged.hu> Date: Thu May 1 23:58:33 2008 +0200 Swap the parameters of alpm_pkg_find Now the syntax is coherent with alpm_list_find and alpm_sync_find. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org> commit e80232f24c51838d3f4ccff1fbc9c8fda87e1ecb Author: Dan McGee <dan@archlinux.org> Date: Tue May 13 07:16:21 2008 -0500 Remove errant include of error.h This doesn't exist anymore, the header file was removed a while back in commit 4c872594da321aa406cfb306c32c94ce2929d59e. Signed-off-by: Dan McGee <dan@archlinux.org> ----------------------------------------------------------------------- Summary of changes: doc/makepkg.8.txt | 7 -- doc/pacman.conf.5.txt | 6 ++ etc/makepkg.conf.in | 2 - lib/libalpm/add.c | 11 +-- lib/libalpm/alpm.h | 4 +- lib/libalpm/alpm_list.c | 28 +++++- lib/libalpm/alpm_list.h | 1 + lib/libalpm/be_files.c | 108 +++++++----------------- lib/libalpm/be_package.c | 3 +- lib/libalpm/cache.c | 22 ++---- lib/libalpm/conflict.c | 20 ----- lib/libalpm/db.c | 67 +-------------- lib/libalpm/db.h | 6 +- lib/libalpm/deps.c | 58 +++++++++---- lib/libalpm/deps.h | 1 + lib/libalpm/group.c | 10 -- lib/libalpm/group.h | 1 - lib/libalpm/handle.c | 30 +++---- lib/libalpm/package.c | 209 ++++++++++++++++++++++++---------------------- lib/libalpm/package.h | 6 +- lib/libalpm/remove.c | 10 +- lib/libalpm/sync.c | 25 +++--- pactest/pmtest.py | 21 +++-- pactest/tests/sync301.py | 4 +- scripts/makepkg.sh.in | 43 +--------- src/pacman/conf.c | 2 + src/pacman/conf.h | 1 + src/pacman/pacman.c | 11 ++- src/pacman/sync.c | 81 ++++++++++-------- 29 files changed, 334 insertions(+), 464 deletions(-) hooks/post-receive -- The official pacman repository
Add SyncFirst option.
This patch offers a way to fix FS#9228. By putting "SyncFirst = pacman" in pacman.conf, the version check will happen before the transaction really starts, and before any replacements is made. Otherwise, no version check is done.
The sync301 pactest was updated to use this SyncFirst option.
Example session with SyncFirst = pacman, and a newer pacman version available : $ pacman -Su (or pacman -S <any targets>) :: the following packages should be upgraded first : pacman :: Do you want to cancel the current operation :: and upgrade these packages now? [Y/n]
resolving dependencies... looking for inter-conflicts...
Targets: pacman-x.y.z-t
Total Download Size: x.xx MB Total Installed Size: x.xx MB
Proceed with installation? [Y/n] n
As Nagy previously noted, doing this check on any -S operations might look intrusive, but it can be required. For example, the case where you want to install a package with versioned provisions, using a pacman version which didn't support that feature yet (and there is already a newer pacman in sync db supporting it).
Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
\o/
commit f43805d875ad5c672afbbfff48bded2087204773 Author: Chantry Xavier <shiningxc@gmail.com> Date: Sat May 10 18:47:42 2008 +0200
Cleanup usages of alpm_list_find and alpm_list_remove.
* remove obsolete and unused *_cmp helper functions like deppkg_cmp and _alpm_grp_cmp
* new alpm_list_remove_str function, used 6 times in handle.c
* remove _alpm_prov_cmp / _alpm_db_whatprovides and replace them by a more general alpm_find_pkg_satisfiers with a cleaner implementation. before: alpm_db_whatprovides(db, targ) after: alpm_find_pkg_satisfiers(alpm_db_getpkgcache(db), targ)
Warning: pkg literal also satisfies pkg. But in most cases we called what_provides if we didn't find a literal.
* remove satisfycmp and replace alpm_list_find + satisfycmp usage by _alpm_find_dep_satisfiers. before : alpm_list_find(_alpm_db_get_pkgcache(db), dep, satisfycmp) after : _alpm_find_dep_satisfiers(_alpm_db_get_pkgcache(db), dep)
Warning: possible slowdown, the old way just stopped after a satisfier (which is ideal in checkdeps), now we scan the whole db.
* remove _alpm_pkgname_pkg_cmp, which was used with alpm_list_remove, and use _alpm_pkg_find + alpm_list_remove with _alpm_pkg_cmp instead.
Imho this is ugly. First we find it, then we again find it via list_remove. ---------------------------------------------------- SZTE Egyetemi Könyvtár - http://www.bibl.u-szeged.hu This mail sent through IMP: http://horde.org/imp/
Nagy Gabor wrote:
commit f43805d875ad5c672afbbfff48bded2087204773 Author: Chantry Xavier<shiningxc@gmail.com> Date: Sat May 10 18:47:42 2008 +0200
Cleanup usages of alpm_list_find and alpm_list_remove.
* remove obsolete and unused *_cmp helper functions like deppkg_cmp and _alpm_grp_cmp
* new alpm_list_remove_str function, used 6 times in handle.c
* remove _alpm_prov_cmp / _alpm_db_whatprovides and replace them by a more general alpm_find_pkg_satisfiers with a cleaner implementation. before: alpm_db_whatprovides(db, targ) after: alpm_find_pkg_satisfiers(alpm_db_getpkgcache(db), targ)
Warning: pkg literal also satisfies pkg. But in most cases we called what_provides if we didn't find a literal.
I know, it's not exactly equivalent but I think it makes more sense that way and as you noticed, it works the same for our use case.
* remove satisfycmp and replace alpm_list_find + satisfycmp usage by _alpm_find_dep_satisfiers. before : alpm_list_find(_alpm_db_get_pkgcache(db), dep, satisfycmp) after : _alpm_find_dep_satisfiers(_alpm_db_get_pkgcache(db), dep)
Warning: possible slowdown, the old way just stopped after a satisfier (which is ideal in checkdeps), now we scan the whole db.
Right, I knew about that too, I just wanted to keep the code as clean as possible and didn't find another way. Though it might be worth to do some benchmarking / profiling. If it's really too bad, it will have to change.
* remove _alpm_pkgname_pkg_cmp, which was used with alpm_list_remove, and use _alpm_pkg_find + alpm_list_remove with _alpm_pkg_cmp instead.
Imho this is ugly. First we find it, then we again find it via list_remove.
Yeah, it's not ideal either. But neither are dummy pkg or fake asymmetric cmp functions. I just preferred it like that. Imo the real problem here is that our data structures suck and are inefficient. Linear search ftw. Anyway, other better suggestions for these 3 points are always welcome.
Nagy Gabor wrote:
commit f43805d875ad5c672afbbfff48bded2087204773 Author: Chantry Xavier<shiningxc@gmail.com> Date: Sat May 10 18:47:42 2008 +0200
Cleanup usages of alpm_list_find and alpm_list_remove.
* remove obsolete and unused *_cmp helper functions like deppkg_cmp and _alpm_grp_cmp
* new alpm_list_remove_str function, used 6 times in handle.c
* remove _alpm_prov_cmp / _alpm_db_whatprovides and replace them by a more general alpm_find_pkg_satisfiers with a cleaner implementation. before: alpm_db_whatprovides(db, targ) after: alpm_find_pkg_satisfiers(alpm_db_getpkgcache(db), targ)
Warning: pkg literal also satisfies pkg. But in most cases we called what_provides if we didn't find a literal.
Yes, there is no problem with this (I just emphasized it). I like the new function better because I think find_satisfiers is quite a common task. Btw, as I see, after this patch pacman -S 'kernel26>=2.6.24' automagically works, which is cool imho.
I know, it's not exactly equivalent but I think it makes more sense that way and as you noticed, it works the same for our use case.
* remove satisfycmp and replace alpm_list_find + satisfycmp usage by _alpm_find_dep_satisfiers. before : alpm_list_find(_alpm_db_get_pkgcache(db), dep, satisfycmp) after : _alpm_find_dep_satisfiers(_alpm_db_get_pkgcache(db), dep)
Warning: possible slowdown, the old way just stopped after a satisfier (which is ideal in checkdeps), now we scan the whole db.
Right, I knew about that too, I just wanted to keep the code as clean as possible and didn't find another way. Though it might be worth to do some benchmarking / profiling. If it's really too bad, it will have to change.
One more thing, the result of alpm_find_dep_satisfiers should be freed, which is forgotten (memleak). Remember, that the old list_find was a boolean function, it was modified in order to handle causingpkg for -Ru. No doubt, this will be slower. The average slowdown of (successful) dependency check will be about 2x. (considering only the real calculations, not disk read etc.) The question is that overall this will be notable or not, this needs testing, indeed. Basically, I don't prefer clean code over "performance", so I think this should be changed (*).
* remove _alpm_pkgname_pkg_cmp, which was used with
alpm_list_remove,
and use _alpm_pkg_find + alpm_list_remove with _alpm_pkg_cmp instead.
Imho this is ugly. First we find it, then we again find it via list_remove.
Yeah, it's not ideal either. But neither are dummy pkg or fake asymmetric cmp functions. I just preferred it like that. Imo the real problem here is that our data structures suck and are inefficient. Linear search ftw.
(*) is also holds here. However, performance is not an issue here, just simply we do an "unneeded" task here, which I find ugly. alpm_list_find compare functions could be easily killed, but list_remove is quite a complicated function, thus "reimplementing" won't work. I think in this case keeping pkgpkgnamecmp was better, even if it was ugly. An alternative idea: alpm_list_find_node, which returns with an alpm_list_t node, not the ->data; and reimplement alpm_list_remove_node, but with two param list (head) and node. This information is enough to cleanly remove that node, and can be cut from the current list_remove (by splitting that function). Bye ---------------------------------------------------- SZTE Egyetemi Könyvtár - http://www.bibl.u-szeged.hu This mail sent through IMP: http://horde.org/imp/
Nagy Gabor wrote:
Nagy Gabor wrote:
commit f43805d875ad5c672afbbfff48bded2087204773 Author: Chantry Xavier<shiningxc@gmail.com> Date: Sat May 10 18:47:42 2008 +0200
Cleanup usages of alpm_list_find and alpm_list_remove.
* remove obsolete and unused *_cmp helper functions like deppkg_cmp and _alpm_grp_cmp
* new alpm_list_remove_str function, used 6 times in handle.c
* remove _alpm_prov_cmp / _alpm_db_whatprovides and replace them by a more general alpm_find_pkg_satisfiers with a cleaner implementation. before: alpm_db_whatprovides(db, targ) after: alpm_find_pkg_satisfiers(alpm_db_getpkgcache(db), targ) Warning: pkg literal also satisfies pkg. But in most cases we called what_provides if we didn't find a literal.
Yes, there is no problem with this (I just emphasized it). I like the new function better because I think find_satisfiers is quite a common task. Btw, as I see, after this patch pacman -S 'kernel26>=2.6.24' automagically works, which is cool imho.
I am glad you liked at least one thing about my patch :)
I know, it's not exactly equivalent but I think it makes more sense that way and as you noticed, it works the same for our use case.
* remove satisfycmp and replace alpm_list_find + satisfycmp usage by _alpm_find_dep_satisfiers. before : alpm_list_find(_alpm_db_get_pkgcache(db), dep, satisfycmp) after : _alpm_find_dep_satisfiers(_alpm_db_get_pkgcache(db), dep)
Warning: possible slowdown, the old way just stopped after a satisfier (which is ideal in checkdeps), now we scan the whole db.
Right, I knew about that too, I just wanted to keep the code as clean as possible and didn't find another way. Though it might be worth to do some benchmarking / profiling. If it's really too bad, it will have to change.
One more thing, the result of alpm_find_dep_satisfiers should be freed, which is forgotten (memleak). Remember, that the old list_find was a boolean function, it was modified in order to handle causingpkg for -Ru. No doubt, this will be slower. The average slowdown of (successful) dependency check will be about 2x. (considering only the real calculations, not disk read etc.) The question is that overall this will be notable or not, this needs testing, indeed. Basically, I don't prefer clean code over "performance", so I think this should be changed (*).
I think these are valid concerns, I will send a patch which should address them, please review it :)
* remove _alpm_pkgname_pkg_cmp, which was used with
alpm_list_remove,
and use _alpm_pkg_find + alpm_list_remove with _alpm_pkg_cmp instead.
Imho this is ugly. First we find it, then we again find it via list_remove.
Yeah, it's not ideal either. But neither are dummy pkg or fake asymmetric cmp functions. I just preferred it like that. Imo the real problem here is that our data structures suck and are inefficient. Linear search ftw.
(*) is also holds here. However, performance is not an issue here, just simply we do an "unneeded" task here, which I find ugly. alpm_list_find compare functions could be easily killed, but list_remove is quite a complicated function, thus "reimplementing" won't work. I think in this case keeping pkgpkgnamecmp was better, even if it was ugly.
An alternative idea: alpm_list_find_node, which returns with an alpm_list_t node, not the ->data; and reimplement alpm_list_remove_node, but with two param list (head) and node. This information is enough to cleanly remove that node, and can be cut from the current list_remove (by splitting that function).
Since performance doesn't apply here (this code is just used by -Ru, and should not be run an insane amount of times), then I prefer clean code here. Anyway, I think we have many other more important things to worry about.
Idézés Xavier <shiningxc@gmail.com>:
Nagy Gabor wrote:
Nagy Gabor wrote:
commit f43805d875ad5c672afbbfff48bded2087204773 Author: Chantry Xavier<shiningxc@gmail.com> Date: Sat May 10 18:47:42 2008 +0200
Cleanup usages of alpm_list_find and alpm_list_remove.
* remove obsolete and unused *_cmp helper functions like deppkg_cmp and _alpm_grp_cmp
* new alpm_list_remove_str function, used 6 times in handle.c
* remove _alpm_prov_cmp / _alpm_db_whatprovides and replace them by a more general alpm_find_pkg_satisfiers with a cleaner implementation. before: alpm_db_whatprovides(db, targ) after: alpm_find_pkg_satisfiers(alpm_db_getpkgcache(db), targ) Warning: pkg literal also satisfies pkg. But in most cases we called what_provides if we didn't find a literal.
Yes, there is no problem with this (I just emphasized it). I like the new function better because I think find_satisfiers is quite a common task. Btw, as I see, after this patch pacman -S 'kernel26>=2.6.24' automagically works, which is cool imho.
I am glad you liked at least one thing about my patch :)
If we like this then we could document it. But unfortunately in case of versioned dependencies the "literal first" rule disappear. We need something similar to "search for satisfier part" of resolvedeps. Maybe we could move that part to its own function and somehow use it. Bye P.S.: Sorry for "chit-chat", this is my last year in uni (hopefully;), I'm quite busy now. But in summer holiday patch flood will come... ;-) ---------------------------------------------------- SZTE Egyetemi Könyvtár - http://www.bibl.u-szeged.hu This mail sent through IMP: http://horde.org/imp/
participants (3)
-
Dan McGee
-
Nagy Gabor
-
Xavier