summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* pacman-key: return $ret, not errorsDave Reisner2011-07-21
| | | | | | | fixes: /usr/bin/pacman-key: line 286: return: errors: numeric argument required Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* Convert package filelists to an array instead of linked listDan McGee2011-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This accomplishes quite a few things with one rather invasive change. 1. Iteration is much more performant, due to a reduction in pointer chasing and linear item access. 2. Data structures are smaller- we no longer have the overhead of the linked list as the file struts are now laid out consecutively in memory. 3. Memory allocation has been massively reworked. Before, we would allocate three different pieces of memory per file item- the list struct, the file struct, and the copied filename. What this resulted in was massive fragmentation of memory when loading filelists since the memory allocator had to leave holes all over the place. The new situation here now removes the need for any list item allocation; allocates the file structs in contiguous memory (and reallocs as necessary), leaving only the strings as individually allocated. Tests using valgrind (massif) show some pretty significant memory reductions on the worst case `pacman -Ql > /dev/null` (366387 files on my machine): Before: Peak heap: 54,416,024 B Useful heap: 36,840,692 B Extra heap: 17,575,332 B After: Peak heap: 38,004,352 B Useful heap: 28,101,347 B Extra heap: 9,903,005 B Several small helper methods have been introduced, including a list to array conversion helper as well as a filelist merge sort that works directly on arrays. Signed-off-by: Dan McGee <dan@archlinux.org>
* contrib: add paclog-pkglist to gitignoreDan McGee2011-07-21
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Clean up my debug logger messDan McGee2011-07-19
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Merge remote-tracking branch 'allan/pacman-key'Dan McGee2011-07-18
|\
| * pacman-key: --init: correct creation of gpg.confPang Yan Han2011-07-19
| | | | | | | | | | Signed-off-by: Pang Yan Han <pangyanhan@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: correct spelling mistakePang Yan Han2011-07-19
| | | | | | | | | | Signed-off-by: Pang Yan Han <pangyanhan@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: add dependency on parse_options to MakefileAllan McRae2011-07-19
| | | | | | | | Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: check required permissions on keyringAllan McRae2011-07-19
| | | | | | | | | | | | | | | | Makes sure that the pacman keyring is readable and that the user has permissions to create a lock file if lock-never is not specified in the gpg.conf file. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: add --init optionAllan McRae2011-07-19
| | | | | | | | | | | | | | | | Add an --init option that ensures that the pacman keyring has all the necessary files and they have the correct permissions for being read as a user. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: tidy up logic for finding pacman keyring directoryDave Reisner2011-07-19
| | | | | | | | Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: refactor get_fromDave Reisner2011-07-19
| | | | | | | | | | | | | | | | | | | | | | This function had a variety of pitfalls, including the inability to successfully find a key=value pair where no whitespace surrounded the equals sign. Make it more robust by splitting the line on the equals itself, and performing whitespace trimming on the resulting key/value pair. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: add --verify optionAllan McRae2011-07-19
| | | | | | | | Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: check only a single operation has been specifiedAllan McRae2011-07-19
| | | | | | | | | | | | | | | | | | Follow the example of gpg and only allow a single operation to be specified each time. Prevents having to deal with conflicting variable names and potential issues due to the order in which the operations are run. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: move verifying keyring files to own functionAllan McRae2011-07-19
| | | | | | | | | | | | Also check all files before bailing on errors. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: move --edit-key and --receive processing to functionsAllan McRae2011-07-19
| | | | | | | | | | | | | | | | | | | | | | This moves the processing of the --edit-key and --receive options to functions, keeping the final option processing to be all single line statements. Also rework the --edit-key option to validate all input before processing. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: update man pageAllan McRae2011-07-19
| | | | | | | | | | | | | | Update man page to reflect current options. Also add a description on how to manually interact with the pacman keyring with gpg. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: hide output of executed commands on logic checksIvan Kanakarakis2011-07-19
| | | | | | | | | | | | | | | | | | This commit correctly redirects to /dev/null the output of several commands that get executed on logic checks. Original-patch-by: Denis A. Altoé Falqueto <denisfalqueto@gmail.com> Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: rename --trust to --edit-keyAllan McRae2011-07-19
| | | | | | | | | | | | | | | | This keeps the naming of the option more consistent with what is actually being called by gpg. Original-patch-by: Denis A. Altoé Falqueto <denisfalqueto@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: fix quotation on several variable assignmentsIvan Kanakarakis2011-07-19
| | | | | | | | | | | | | | | | This commit adds quotes to several variable assignments. Unquoted values can cause problems on several occasions if the value is empty. It is safer to have every assignment quoted. Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
| * pacman-key: allow the export of all key idsAllan McRae2011-07-19
| | | | | | | | | | | | | | The gpg --export will exprt all keys if none are specified. Replicate this behavior in pacman-key. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: rename --del to --deleteAllan McRae2011-07-19
| | | | | | | | | | | | | | There is already the short -d alias provided, so stay verbose with the longer option name. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: remove the --adv optionAllan McRae2011-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | The conversion to using parse_options causes this option to break. It is preferable to remove the option rather than fix it as it is simply a wrapper for "gpg --homedir @sysconfdir@/pacman.d/gnupg". Any user using more advanced keyring management than provided by pacman-key can manage to point gpg at the right place themselves... How to manually edit the keyring with gpg will instead be documented in the man page in a later commit. Signed-off-by: Allan McRae <allan@archlinux.org>
| * pacman-key: use our option parserAllan McRae2011-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pacman-key script is complicated enough to warrent usage of the parse_options script. This is especially helpful in dealing with all the configuration file override flags as the no longer need to be specified first. It also allows us to do the right thing early with --help/--version and no option cases cleanly. This change also makde the check for root privileges only occur on operations where they are needed. This patch is inspired by and supercedes some patches submitted by Denis A. Altoé Falqueto and Ivan Kanakarakis who were altering the previous option handling in an attempt to deal with the above issues. Signed-off-by: Allan McRae <allan@archlinux.org>
* | Fix test suite when GPGME is disabledDan McGee2011-07-18
| | | | | | | | | | | | | | | | As noted by Allan, we failed pretty hard if gpgme was compiled out. With these changes, only sign001.py fails. This can/will be fixed later once we beef up the test suite with more signing tests anyway. Signed-off-by: Dan McGee <dan@archlinux.org>
* | pacman/callback: show .sig suffix on sig downloadDave Reisner2011-07-18
| | | | | | | | | | Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | PKGBUILD.vim: add new var and assert bash syntaxDave Reisner2011-07-18
|/ | | | | | | * assert is_bash to pickup more valid syntax * add checkdepends highlighting Signed-off-by: Dave Reisner <dreisner@archlinux.org>
* replace access() calls for debug info where applicableFlorian Pritz2011-07-18
| | | | | Signed-off-by: Florian Pritz <bluewind@xinu.at> Signed-off-by: Dan McGee <dan@archlinux.org>
* signing.c: check if needed files are readableFlorian Pritz2011-07-18
| | | | | | | | | If we can't read the keyring, gpgme will output confusing debug information and fail to verify the signature, so we should log some debug information. Signed-off-by: Florian Pritz <bluewind@xinu.at> Signed-off-by: Dan McGee <dan@archlinux.org>
* add _alpm_access() wrapperFlorian Pritz2011-07-18
| | | | | | | | This is a wrapper function for access() which logs some debug information and eases handling in case of split directory and filename. Signed-off-by: Florian Pritz <bluewind@xinu.at> Signed-off-by: Dan McGee <dan@archlinux.org>
* Merge branch 'maint'Dan McGee2011-07-18
|\
| * makepkg: fix issue with filenames with spaces and noextractAllan McRae2011-07-18
| | | | | | | | | | | | | | | | | | | | | | Specifying a filename with spaces in a PKGBUILDs noextract array fails due to a lack of quoting. Fixes FS#25100. Reported-by: Thomas Weißschuh <thomas_weissschuh@lavabit.com> Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | Fix compilation without gpgmeAllan McRae2011-07-18
| | | | | | | | | | Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | configure: output more compile settingsAllan McRae2011-07-18
| | | | | | | | | | | | | | | | | | | | | | Add information on CPPFLAGS, LDFLAGS and LIBS to the end of the configure output. This is very helpful in tracing issues when adjusting the configure file and also will allow us to more easily replicate any issues discovered due to a users build environment. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | makepkg.conf: remove curl from other common toolsAllan McRae2011-07-18
| | | | | | | | | | | | | | It is now set as the main tool, so make wget another common one. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | repo-add: do not print full path of signature fileAllan McRae2011-07-18
| | | | | | | | | | | | | | | | The full path to the signature file when it is created is in a temporary directory so only print the filename. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | repo-add: always remove repo signature symlinkAllan McRae2011-07-18
| | | | | | | | | | | | | | | | This prevents a dangling symlink being left behind if the repo goes from being signed to unsigned. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | contrib/paclog-pkglist: whitespace cleanupDave Reisner2011-07-18
| | | | | | | | | | | | | | add a modeline and change 2 space indent to a tab. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | contrib/paclog-pkglist: rework as bash wrapping awkDave Reisner2011-07-18
| | | | | | | | | | | | | | | | | | | | Avoid some pain in awk's limited handling of command line arguments by wrapping this in a Bash script. We also default to @localstatedir@/log/pacman.log when no args are specified, meaning that -h or --help is required to get the help message. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | Add a new epoch pactestDan McGee2011-07-18
| | | | | | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* | Handle removal of empty directories properlyDan McGee2011-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This addresses FS#25141. We shouldn't remove every empty directory we come across during the removal process unless it is truly not known to any other package. This will prevent removal of essential directories such as '/var/lock/'. This is accomplished by first checking the empty/non-empty status of a directory, which was previously done implicitly by calling rmdir() and ignoring errors. We do this to avoid the next (new) check in most cases, which is to look at all local packages to see if the to-be-removed directory is present in another packages' filelist. If we do not find it anywhere, then we remove it, else we keep the file around. The pactest has been updated to test more cases, as well as finding a flaw in the original expected to fail case- we need separate DIR and FILE based EXIST rules. Signed-off-by: Dan McGee <dan@archlinux.org>
* | makepkg: only test for writable PKGDEST when needed.Rogutės Sparnuotos2011-07-18
| | | | | | | | | | | | | | | | | | There is no need for a writable PKGDEST when using the --nobuild or --geninteg flags. Allan: added --geninteg Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | Move some .gitignore entriesAllan McRae2011-07-18
| | | | | | | | | | | | | | | | Put a .gitignore entry at the right level and sort that file alphabetically. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | doc/PKGBUILD: clarify scriptlet version argumentsDan McGee2011-07-14
| | | | | | | | | | | | | | | | | | | | | | It was a bit unclear that both pkgver and pkgrel were included in the passed version strings; clarify this fact in the manpage. Also include epoch in the mix now that it exists. Also make two other minor consistency touchups to code-print variables in text. Signed-off-by: Dan McGee <dan@archlinux.org>
* | Make alpm_db_set_pkgreason() arguments more saneDan McGee2011-07-14
| | | | | | | | | | | | | | | | | | This can only ever operate on the local database, and a local package at that. Change the function signature to take a handle and package object, add the relevant asserts, and ensure the frontend can detect the package not found condition when finding packages to pass to this method. Signed-off-by: Dan McGee <dan@archlinux.org>
* | contrib/paclog-pkglist: new contributionDave Reisner2011-07-14
| | | | | | | | | | | | | | | | converts a pacman log file to a list of installed packages, which should match the output of `pacman -Q'. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | contrib/bash_completion: update with new makepkg optsDave Reisner2011-07-14
| | | | | | | | | | Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | makepkg: remove unused -C option from option listDave Reisner2011-07-14
| | | | | | | | | | | | | | We nuke it from the completion file as well along with its longopt. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | makepkg: skip devel_check when reading from a pipeDave Reisner2011-07-14
| | | | | | | | | | Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
* | makepkg: Remove pre-optimization from in_array()DJ Mills2011-07-14
| | | | | | | | | | | | | | The '[[ -z' test in in_array() is redundant, so remove it. Signed-off-by: DJ Mills <danielmills1@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>