summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAge
* validate %FILEPATH% when parsing repo dbsSimon Gomizelj2013-06-04
| | | | | | | | | | | | | | | | | | Currently we make no effort to validate the %FILENAME% field in the repo db. This allows for relative paths to be considered valid. A carefully crafted db entry with a malicious relative path, (e.g. `../../../../etc/passwd`) will cause pacman to to overwrite _any_ file on the target's machine. Add the following validation: - doesn't start with '.' - doesn't contain a '/' - won't overflow PATH_MAX Signed-off-by: Simon Gomizelj <simongmzlj@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* Fix comment typoAllan McRae2013-05-18
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* More translation updatesAllan McRae2013-05-07
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Pull translation updates from transifexAllan McRae2013-04-30
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Use libalpm version in pkg-config fileAllan McRae2013-04-26
| | | | | | | | | We currently use the pacman version number in the libalpm.pc file. It makes more sense to use the libalpm version. Fixes FS#34967. Signed-off-by: Allan McRae <allan@archlinux.org>
* Fix spelling errors using 'codespell' toolAnatol Pomozov2013-04-18
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Update translations from transifexAllan McRae2013-04-01
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Improve documentation of libalpm interface functionsRichard Pougnet2013-03-31
| | | | | | | | Add details to the doxygen for the initialization and relase functions of the library. Signed-off-by: Richard Pougnet <richard@pougnet.ca> Signed-off-by: Allan McRae <allan@archlinux.org>
* More translation updatingAllan McRae2013-03-17
| | | | | | | Pull updates from transifex. Add new "id" translation. Regerate po files with updated filelists... Signed-off-by: Allan McRae <allan@archlinux.org>
* Update POTFILES.in for libalpm and pacmanAllan McRae2013-03-17
| | | | | | | | Be complete with files listed. Comment out files where code is used or heavily based on other projects so will never have translatable strings. Signed-off-by: Allan McRae <allan@archlinux.org>
* Merge updates from TransifexAllan McRae2013-03-15
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Remove Indonesian translationAllan McRae2013-03-15
| | | | | | | | I imported this translation from transifex without realising that there was no strings translated despite being "acitve" on transifex for quite some time. Remove it until translation begins... Signed-off-by: Allan McRae <allan@archlinux.org>
* Save and restore old locale when manipulating via setlocaleDan McGee2013-03-14
| | | | | | | | | | We shouldn't assume a frontend program didn't explicitly set the LC_TIME setting to a value not in the environment, which is what we previously assumed. Save the old locale before forcing the 'C' locale and restore it when we are done. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
* alpm/remove.c: add newlines to debug outputAndrew Gregory2013-03-14
| | | | | Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* Update all translations files to push to TransifexAllan McRae2013-03-10
| | | | | | Run update-po and fix the few errors reported. Signed-off-by: Allan McRae <allan@archlinux.org>
* Pull updated translations from transifexAllan McRae2013-03-10
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Add new languages from TransifexAllan McRae2013-03-10
| | | | | | Languages: eo, nl, hr, ko, ja, fa, ar, sl, gl, id Signed-off-by: Allan McRae <allan@archlinux.org>
* make status/log messages reflect version changeSimon Gomizelj2013-03-10
| | | | | | | | | Currently pacman either prints 'adding' or 'upgrading' when installing a package. This make pacman print and log the other possible actions: 'downgrade' and 'reinstall' Signed-off-by: Simon Gomizelj <simongmzlj@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* libalpm/sync: remove useless intermediate variableDave Reisner2013-03-10
| | | | | | | | This also rearranges some code to ensure that declarations and code aren't mixed. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
* libalpm: Search for replacers before literalsOlivier Brunel2013-03-07
| | | | | | | | | | | | | | | | | Since 882bff36 literals would be searched before replacers, resulting in a package being replaced by another not actually being replaced under certain conditions (e.g. they're both in the same repo). This change effectively reversed the expectations in test sync132. This patch switches the order back to replacers first, thus making sure if a package is replacing another one, the change will always happen, even if both are in the same repo. Note that a package replacing another one in a repo with higher priority will not be done, see FS#11737 and test sync1105 Signed-off-by: Olivier Brunel <i.am.jack.mail@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* libalpm: Fix installing update of a replaced packageOlivier Brunel2013-03-07
| | | | | | | | | During a sysupgrade, if a package is replaced by another, and an update for the former package is found (on another repo) the replaced package would be re-installed. Signed-off-by: Olivier Brunel <i.am.jack.mail@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* Do not resolve every local package filelist on removeAllan McRae2013-03-07
| | | | | | | | | | Although technically correct, this results in my system taking ~30 seconds to resolve all filelists when removing a package that has a directory not owned by any package. The check for if any package own the empty directory is a rare enough occurance, and it will be even rarer when that directory has a directory symlink in its path, so just revert this at this stage. Signed-off-by: Allan McRae <allan@archlinux.org>
* add SYMEXPORT to alpm_filelist_containsAndrew Gregory2013-02-24
| | | | | | | | alpm_filelist_contains is listed in alpm.h and should be public but was not exported. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* dload: don't download sig if package is found in cacheDave Reisner2013-02-24
| | | | | | | Avoids the segfault seen in FS#33911. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
* Provide full path names in warning messagesRichard Pougnet2013-02-24
| | | | | | | Fix FS#31556 by printing filename instead of entryname. Thus, removing a lot of confusion from the output. Signed-off-by: Allan McRae <allan@archlinux.org>
* Perform limited conflict checking with --forceAllan McRae2013-02-24
| | | | | | | | | | | | Pacman currently bails when trying to extract a file over a directory when using --force. Instead of ignoring all conflict, perform the check and skip any file-file conflicts. Conflicts between directories and files are still flagged and cause the transation to abort. As a bonus, we now know about files changing packages when using --force, so we can skip removing them fixing upgrade046. Signed-off-by: Allan McRae <allan@archlinux.org>
* use resolved_path for filelist_containsAndrew Gregory2013-02-24
| | | | | | | | | | | alpm_filelist_contains was being used to search for resolved paths, but searching in the unresolved paths, causing it to miss matches. We always search unresolved paths and search the resolved paths if available because _alpm_filelist_resolve is not public and requires a context handle, so it can't be called from alpm_filelist_contains. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* return resolved paths from filelist_differenceAndrew Gregory2013-02-24
| | | | | | | | | | | We were comparing files based on resolved paths but returning the original file_t structures, which were not necessarily in the same order. The extra file_t information was only being used to determine if the file was a directory which can be accomplished by testing for a trailing slash, so just return the resolved path. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* return resolved paths from filelist_intersectionAndrew Gregory2013-02-24
| | | | | | | | | | We were comparing files based on resolved paths but returning the original file_t structures, which were not necessarily in the same order. The additional file_t information was never used, so just return the resolved path. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* use alpm_list_free on filelist intersectionAndrew Gregory2013-02-24
| | | | | | | | alpm_filelist_intersection returns a list of pointers to internal file_t struct's, so only the list itself should be freed. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* fix off-by-one error in _alpm_filelist_resolveAndrew Gregory2013-02-16
| | | | | | | '/' should not be appended to the resolved root when root is "/". Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* fix style violationsAndrew Gregory2013-02-16
| | | | | Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* fix alpm_validation_t commentAndrew Gregory2013-02-16
| | | | | Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* find_fileconflicts: reduce path resolution callsAndrew Gregory2013-02-16
| | | | | Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* libalpm: never attempt to remove a mountpointDave Reisner2013-02-16
| | | | | | | | | | | | | | | | | | | | | | | Arch Linux typically runs into this with /sys when upgrading the filesystem package in build chroots, but LXC users might also run into this, since their /sys is shared from the host and must, for security reasons, be mounted RO. I've neglected to add any tests for this because they would require root in order to run. Current tests all pass with this patch and I've confirmed the desired behavior in a VM. Incidentally, the first hunk of this patch (skipping can_remove_file checks for directories) resolves the case of API mountpoints being removed since they eventually fall into unlink_file and fail with "contains files". However, this patch should still be the Right Thing To Do™, as we can't possibly remove a directory that is also a mountpoint. Signed-off-by: Dave Reisner <dreisner@archlinux.org> [Allan] Do not skip checking if directories can be removed. Instead test if directories are mountpoints in can_remove_file. Signed-off-by: Allan McRae <allan@archlinux.org>
* Fix registering database with non-gpgme buildsAllan McRae2013-02-13
| | | | | | | | | | We record whether the default SigLevel is set in order to add upon it for the *FileSigLevel entries. When using the only valid value of "SigLevel = Never" with non-gpgme builds, we need to ignore the ALPM_SIG_PACKAGE_SET flag when determining if we have a valid value for the database SigLevel. Signed-off-by: Allan McRae <allan@archlinux.org>
* Fix --without-gpgme buildAllan McRae2013-02-13
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Add format attributes to all required functionsAllan McRae2013-02-13
| | | | | | | | | Fixes all clang warnings with -Wformat-literal. Also, fix genuine formating issue discovered once adding these attributes and add a cast to prevent a gcc warning. Signed-off-by: Allan McRae <allan@archlinux.org>
* Fix compilation error on clangAllan McRae2013-02-13
| | | | | | | | This also lead me to notice that in _alpm_gpgme_checksig many things were not being cleaned up. Fix this by having CHECK_ERR goto gpg_error and make the required adjustments. Signed-off-by: Allan McRae <allan@archlinux.org>
* Skip reading sync db deltas files if UseDelta is unsetAllan McRae2013-02-09
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Import key if needed when installing package from fileAllan McRae2013-02-09
| | | | | | | | When installing a package with "pacman -U" that has a detached signature, check if the needed key is in the keyring and download if necessary. Signed-off-by: Allan McRae <allan@archlinux.org>
* Prompt to delete packages with signature failsAllan McRae2013-02-09
| | | | | | | Offer to remove the bad package when a signature fails to validate as is done for checksum failures. Signed-off-by: Allan McRae <allan@archlinux.org>
* Remove retry path from signature validationAllan McRae2013-02-09
| | | | | | | | Now that the keyring is checked for all needed keys before the validation, we can not reach a point of a missing key when doing validity checks for sync operations. Signed-off-by: Allan McRae <allan@archlinux.org>
* Check keys are in keyring before package validationAllan McRae2013-02-09
| | | | | | | | | | | | Keys used to create signatures are checked for presence in the keyring before package validation is performed. Signed-off-by: Allan McRae <allan@archlinux.org> Conflicts: lib/libalpm/alpm.h Signed-off-by: Allan McRae <allan@archlinux.org>
* Make decode_signature available to the libraryAllan McRae2013-02-09
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Add function to extract key id from signaturesAllan McRae2013-02-09
| | | | | | | This does not support all possibilities of RFC4880, but it does cover every key currently used in Arch Linux. Signed-off-by: Allan McRae <allan@archlinux.org>
* Move key importing into separate functionAllan McRae2013-02-09
| | | | | | | | This will be useful for checking the availablity of all keys before perfoming validation in sync operations and for downloading a needed key in upgrade operations. Signed-off-by: Allan McRae <allan@archlinux.org>
* Make key_in_keychain available in libraryAllan McRae2013-02-09
| | | | | | | In preparation for checking key presence and downloading needed keys before conflict checking. Signed-off-by: Allan McRae <allan@archlinux.org>
* inline libarchive compat wrappersDave Reisner2013-02-07
| | | | | | Suggested-by: Dan McGee <dan@archlinux.org> Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
* Add configuration option for Upgrade operation SigLevelAllan McRae2013-02-07
| | | | | | | | | | | | | Add LocalFileSigLevel and RemoteFileSigLevel to control the signature checking for "pacman -U <file>" and "pacman -U <url>" operations respectively. The starting value for both these options is SigLevel, if it is specified in the [options] section, or the built-in system default. The specified values override and/or supplement this initial value. Note there is no distinction between setting "Required" and "PackageRequired" as there are no database options for Upgrade operations. Signed-off-by: Allan McRae <allan@archlinux.org>