summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-02-11ensure chk_fileconflicts reads entire file listDan McGee
If the end of the pB list was reached before the end of pA, we failed to read any remaining files from the pA list. Add an additional loop to ensure all entries of pA are added to the return list regardless of whether we have reached the end of pB. This new loop also eliminates the now-unnecessary check for a null pB, as we need to ensure we are excluding directories in the resulting output anyway. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-11Fixes file relocation pactestsNagy Gabor
This patch fixes upgrade040.py and upgrade041.py (041 now fails!): * the old pactests didn't check the existence of the relocated file * upgrade041.py was broken due to a typo (missing comma) New upgrade046.py pactest was added (derived from the fixed upgrade041.py). This fails because the file relocation check is _hacked_ to conflict.c, and _alpm_db_find_fileconflicts is not called in case of --force. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-11makepkg : set sane umask before source extraction.Chantry Xavier
This fixes FS#9242 and FS#9362. Set umask before the sources are extracted, and after the /etc/profile.d/* files are sourced in handledeps. This sourcing of profile.d files is why umask was moved to the build function in the first place, as can be seen in commit ac965ed401. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-07Merge branch 'maint'Dan McGee
2008-02-07Remove alpm_sync_get_newversion functionNagy Gabor
sync->newversion shouldn't be public at all, and internally we access it directly. (Before pmsyncpkg_t clean-up the analogue of this field [type] was needed in replaces computation.) Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-07alpm_sync_sysupgrade splitNagy Gabor
This patch indroduces a new public alpm_sync_newversion, which scans for new version of a package in sync repos. Hopefully this will reduce code duplication in the future: * check-for-pacman-new-version from front-end can be easier * -Qu refactoring Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-07makepkg: do a quick check for the VCS binariesDan McGee
Fixes FS#9230. Ensure we have the VCS binaries available when doing the development version number checking. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-07pactest: make more resiliant to missing filesDan McGee
Add a bunch of guards around function calls like open() and stat() to ensure we are not going to get ourselves a python error. This made implementing and testing the new upgrade045 pactest much easier, as its whole purpose was to create a dead symlink and debug a segfault of pacman (which caused no DB entries to be written) to support the previously checked in fix for FS#9235 (commit 0c2206f542ce6df2606586d43f190cd5a423fb13). Both of these cases are now non-fatal in pactest. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-07libalpm/add.c : safety check for fixing FS#9235.Chantry Xavier
Fixes FS#9235. We already had the following case in extract_single_file : /* cases 1,2,3: couldn't stat an existing file, skip all backup checks */ But we actually only did a lstat here. And if lstat worked, we did a stat without checking. When lstat works and stat fails, it means we have a broken symlink, like in FS#9235. We can actually treat this case like a non-existing file. The broken symlink will then be simply overwritten. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-06libalpm/package.c : add _alpm_pkgname_pkg_cmp function.Nagy Gabor
_alpm_pkgname_pkg_cmp(pkgname, pkg) returns true iff pkg's name is pkgname. This is useful if you want to remove a package from pmpkg_t* list, and you want to search for package name. This allows cleaning the -Ru code a bit, by removing the need of a dummy pkg. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-06New remove option : -u / --unneeded (FS#6505).Nagy Gabor
With --unneeded option 'pacman -R' doesn't stop in case of dependency error; it removes the needed-dependency targets from the target-list instead. See also: http://archlinux.org/pipermail/pacman-dev/2007-October/009653.html . The patch also adds a new causingpkg field to pmdepmissing_t which indicates the to-be-removed package which would cause a dependency break. This is needed, because miss->depend.name may be a provision. miss->causingpkg will be useful in -R dependency error messages too. [Xavier: renamed inducer to causingpkg, removed the _alpm_pkgname_pkg_cmp helper function as requested by Aaron. This might be added by a further commit. Other small cleanups, updated manpage and bash completion.] Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-05remove --force option from repo-add.Chantry Xavier
The force option should only be specified in the PKGBUILD with options=(force). This information should be handled like any other meta info, and there is no need to have a special repo-add option for it. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> [Dan: fix up a few more references in contrib/ scripts, etc] Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-05Merge branch 'maint'Dan McGee
Conflicts: contrib/gensync contrib/updatesync
2008-02-05Don't follow symlinks with -Qo.Chantry Xavier
Fixes FS#9473 and the issue reported there : http://www.archlinux.org/pipermail/pacman-dev/2008-February/011061.html Only the dirname should be resolved, not the basename. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-05pacman/util.c: add mdirname functionDan McGee
This function mirrors mbasename and will be used by the 'owns' machinery. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-05Remove "Installed Size" hackerationDan McGee
Keeping this hack around where installed size is only shown if it is greater than total download size encourages broken repository databases. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-05doc/makepkg: document --log, address locale issuesDan McGee
Looks like no one ever documented -L/--log, so do that now. In addition, address some of the issues brought up in FS#9156 and add a note about build output and logs being in the current locale. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-05Add new ChangeLog.proto file.Chantry Xavier
Fixes FS#7231. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-02add 'force' to PKGINFO, have repo-add respect it.Chantry Xavier
Ref: http://www.archlinux.org/pipermail/pacman-dev/2008-January/011023.html Also see FS#9347 and FS#9349. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02Clarify the "failed to add target" errors.Chantry Xavier
Make the error message printed when addtarget fails consistent between add.c, remove.c and sync.c. The main problem was that the "failed to add target" in case of a removal operation could sound confusing. There was also a little output problem with -U ("failed" was missing). Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02repo-remove: print an error in case of an empty dbChantry Xavier
When removing the last packages from a database, repo-remove silently failed. Now an error is printed. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02Remove gettext calls from gensync/updatesyncDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02Remove gensync and updatesync from normal distributionDan McGee
Move these two scripts into contrib/, and start the process of de-automaking them by removing the @sysconfdir@ references and the gettext initialization. The removal of all gettext will soon follow. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02Add deprecation warnings to gensync and updatesyncDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02Merge branch 'maint'Dan McGee
2008-02-02Remove /bin/true from install.protoRoman Kyrylych
Signed-off-by: Roman Kyrylych <roman@archlinux.org> [Dan: update indentation inside functions] Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02updatesync: incorrect package deletion logicAlex Merry
Fixes FS#9279. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02Update libtool version (1.5.24 -> 1.5.26)Dan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-27makepkg: ensure binaries in /opt/* are strippedDan McGee
The path selection for stripping binaries was slightly off, so any binaries in subdirectories of opt/ were missed. Fixes FS#9342. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-27pmsyncpkg_t cleanupNagy Gabor
Fix for sync044.py and reason001.py. Rename sync->data to sync->removes (alpm_list_t *) Replace pmsynctype_t sync->type by pmpkgreason_t sync->newreason The type field was set to UPGRADE or DEPEND or REPLACE. Instead of using type = UPGRADE or DEPEND, we now rather use a "pmpkgreason_t newreason" field directly (= explicit or depend) which allows a better handling of the install reason. And the REPLACE type is now deduced implicitly when the sync->removes list is not empty. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-27Merge branch 'maint'Dan McGee
2008-01-27Fix PM_ERR_CONFLICTING_DEPS handling in sync.cNagy Gabor
* eliminate asymmetry (innerconflict vs. outerconflict) * fix a memleak (in case of PM_ERR_MEMORY deps wasn't freed) * fix wrong pmconflict_t duplication (*retconflict = *conflict) Note: the new code introduces some code duplication which shall disappear by fixing FS#7524. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-27New _alpm_conflict_dup functionNagy Gabor
Added function to cleanly duplicate a conflict. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-01-27small sync.c code clean-upNagy Gabor
Remove unnecessary synclist_free function, and use our standard way (alpm_list_free_inner + alpm_list_free) instead. This slightly reduces code duplication. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-27Clarify the "cancel current operation" message.Chantry Xavier
Fixes FS#9295. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> [Dan: 'new pacman' -> 'new pacman version'] Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-27makepkg : improve determination of svn revision.Chantry Xavier
The previous sed command matched every line starting with r. For example, with mpd-svn package in aur, the svn log output was rather big, and there were several lines starting with r (the actual revision : r7155, but also other lines starting with reverting and run), so this broke makepkg: > makepkg ==> Determining latest svn revision... -> Version found: 7155 everting un sed: -e expression #1, char 27: unterminated `s' command To make the sed command more bullet proof, I added the -q option of svn log, which produces a quieter output, without the log. And I changed the sed command to only match numbers for the revision. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-24doc/makepkg.8: add missing '-' to manpage optionDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-23libalpm/sync.c : conflicts resolving cleanup.Chantry Xavier
The original patch from Nagy tried to resolve target vs target conflicts, and so broke the following pactests : sync040, sync041 and sync990 Nagy's proposal to solve this situation was to choose the interactive way, ask the user how to deal with it: either remove pkg1 or remove pkg2 or stop here. So he left this as a TODO. But instead of trying to resolve these conflicts or asking the user, I tried to find a more conservative way, looking at what the current pactests expected: If between the two conflicting packages, one provides the other, pacman will keep that one and remove the other from the target list. That breaks sync893 and sync897. But Dan agreed these two looked weird and should be changed. This commit should close FS#8897, FS#8899 and FS#9024. Reference: http://www.archlinux.org/pipermail/pacman-dev/2007-October/009745.html http://www.archlinux.org/pipermail/pacman-dev/2007-December/010393.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-23Fix flip-flopped parameters to CALLOC macroDan McGee
The mixup causes a fail in the build using --enable-debug on x86_64 but not i686, so none of us caught this right away. Fix it. FS#9297. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-23libalpm/cache.c : don't duplicate packages in pkgcache.Chantry Xavier
Edit _alpm_db_add_pkgincache to not duplicate packages, because this is not needed, is slower, and uses more memory. This made the max memory usage during base reinstall go from 10.4MB to 9.7MB. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-23testdb : add conflicts checking.Chantry Xavier
Testdb will now scan the local database to check there are no conflicts. I'm not sure how it's possible to get this situation. At least pacman doesn't allow installing a package that conflicts with a local one, without removing the local one. But maybe in a very weird situation, or because of a bug, it could be possible. But anyway, this only requires 5 lines of code. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-23Add new public alpm_checkdbconflicts function.Chantry Xavier
This function has a limited purpose, but might be interesting to do a sanity check from a frontend (eg testdb). Also removed the private _alpm_checkconflicts function to avoid confusion. This function was used only once in libalpm, in sync.c, and was just a single line anyway. Having to do it manually makes it explicit that we are looking for two kind of conflicts (targ vs targ and db vs targ). Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-23small memleak fix in sync.c.Chantry Xavier
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-01-21pactest: remove check for root permissions messageDan McGee
Pacman isn't designed to fail when under fakeroot anymore, so kill this check off which fails anyway if the logfile is missing (such as when the --valgrind flag is used). Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-21conflict.c: move debug message out of inner loopDan McGee
We have a debug message in the target vs. target file conflict check, and this is a bit rediculous when it comes to watching output from something like smoke001.py. Instead, put the output outside this inner loop so we only see it at most once per target, which is much more reasonable. Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-21Fix memleak found by add004.pyDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-21Merge branch 'maint'Dan McGee
2008-01-21New --asexplicit optionNagy Gabor
This is the symmetric of --asdeps, install packages explicitly. Documentation and completion files were updated accordingly. Added sync301.py and upgrade032.py pactest files to test this. I also made a little modification in ALLDEPS handling too. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-01-21Move the deptest code from frontend to backend.Chantry Xavier
The deptest code (pacman -T) used by makepkg was mostly in the frontend. There were 2 drawbacks: 1) the public splitdep function returns a pmdepend_t struct, but the _alpm_dep_free function for freeing it is private. So there was a memleak. 2) there is a helper in the backend (satisfycmp in deps.c) which makes this function much easier. So this adds a new public alpm_deptest in libalpm/deps.c, which cleans pacman_deptest in pacman/deptest.c a lot. Besides, alpm_splitdep was made private, because the frontend no longer requires it, and _alpm_dep_free is also private. Finally the deptest001 pactest was extended. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-21Convert deltas to dynamic allocationDan McGee
Another elimination of a static length structure in libalpm. Should result in a little more memory saved during execution of packages with lots of deltas attached. Signed-off-by: Dan McGee <dan@archlinux.org>