summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* libalpm: export alpm_splitdep as alpm_dep_from_depstring and alpm_dep_freeFlorian Pritz2014-09-30
| | | | Signed-off-by: Florian Pritz <bluewind@xinu.at>
* deps.c: split _alpm_depcmp into _alpm_depcmp_providesFlorian Pritz2014-09-30
| | | | | | | This allows to reuse the provision checker for a simple list of provisions without a package. Signed-off-by: Florian Pritz <bluewind@xinu.at>
* table_display: only check width when non-zeroAndrew Gregory2014-09-30
| | | | | | | | A width of 0 indicates that either pacman is not attached to a tty or the user does not want line wrapping. Either way pacman should not fall back to the basic display. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
* avoid line wrapping if not in a tty or COLUMNS=0Andrew Gregory2014-09-30
| | | | | | | Scripts that parse pacman's output (like pacsearch) generally do not want wrapped lines. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
* makepkg: allow less than the full fingerprint in validpgpkeysDave Reisner2014-09-30
| | | | | | | | | | | | | | | I found this feature confusing, and the documentation wasn't any help. It was pointed out to me on IRC that validpgpkeys expects full fingerprints, and won't accept shorter forms. This makes the documentation insufficient, and the variable name itself misleading. This patch bolsters the documentation to explain more about what the contents should be, and implements suffix matching to allow matching on shorters fingerprint suffices. Now, when makepkg tells you that a key ID isn't valid, it's sufficient to manually check the key ID against the known good ID, and add it as is to validpgpkeys. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: move negation in inequality comparisonsDave Reisner2014-09-30
| | | | | | | | | | | | This commit changes the few remaining instances of: [[ ! $foo = "$bar" ]] to the more common: [[ $foo != "$bar" ]] Signed-off-by: Allan McRae <allan@archlinux.org>
* paccache: parse_filename bug fixMaxim Andersson2014-09-30
| | | | | | | | Filenames got parsed wrongly, causing whitelist- and blacklist-checks to always return false. Caused by 8122fae51a when full path names to pkgs were introduced. Signed-off-by: Maxim Andersson <thesilentboatman@gmail.com>
* makepkg: abort if we can't add install/changelog to packageDave Reisner2014-09-30
|
* updpkgsums: update to recognize arch-specific sourcesDave Reisner2014-09-30
| | | | | | This change reveals a bootstrapping bug -- since we call the bare "makepkg" and rely on PATH lookup, we might not have a makepkg which can generate architecture-specific checksums.
* PKGBUILD: add support for arch-specific sourcesDave Reisner2014-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements support for declarations such as: arch=('i686' 'x86_64') ... source=("somescript.sh") source_i686=("http://evilmonster.com/i686/ponies-9001-1.i686.bin") source_x86_64=("http://evilmonster.com/i686/ponies-9001-1.x86_64.bin") md5sums=('d41d8cd98f00b204e9800998ecf8427e') md5sums_i686=('e4ca381035a34b7a852184cc0dd89baa') md5sums_x86_64=('4019740e6998f30a3c534bac6a83f582') Just the same as the "untagged" sources, multiple integrity algorithms are supported. The manpage is updated to reflect support for these suffices. This commit also refactors download_sources slightly: 1) to use the otherwise preferred convention of lowercase local variable names, and to make the handling of $1 more clear. 2) rename the "fast" parameter to "novcs", to make it more clear what this token does. 3) add a new possible token "allarch" to ensure that download_sources will fetch all sources, for all architectures.
* makepkg: break out checksum generation to its own functionDave Reisner2014-09-30
| | | | | | This also fixes a "bug" in which a PKGBUILD without any source array would generate "md5sums=()". While not technically wrong, we can easily do better and emit nothing at all.
* makepkg: break out check_checksums to reasonably sized functionsDave Reisner2014-09-30
|
* Revert "Remove log_cb, add ALPM_EVENT_LOG instead"Andrew Gregory2014-09-30
| | | | | | | | | | | | | | | Moving logging to the event callback caused warnings under clang due to non-literal format strings and silenced all log messages when --print was used. This reverts commit cd793c5ab7689cc8cbc18277375b368060e5acfe. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Conflicts: lib/libalpm/alpm.h src/pacman/callback.c Signed-off-by: Allan McRae <allan@archlinux.org>
* pacman.c: Add -gg, -ii, and -yy to help summaryJohannes Löthberg2014-09-23
| | | | | | | | | | | | | The sync help summaries was missing the information about: * -gg: View all groups and members * -ii: View extended information * -yy: Force refresh even if DBs are up to date Fixes FS#41388. Original-work-by: Earnestly <zibeon@gmail.com> Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* pacman: set SA_RESTART for signal handlerAndrew Gregory2014-09-23
| | | | | | | Calling a signal handler interrupts some functions, most notably read() and therefore fgets(). Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
* wrap fgets to retry on EINTRAndrew Gregory2014-09-23
| | | | | | | | | | The read() underlying fgets() can be interrupted by a signal handler causing fgets() to return NULL. Before we started handling SIGWINCH, the odds of interrupting a read were low and typically resulted in termination anyway. Replace all fgets calls with a wrapper that retries in EINTR. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
* makepkg: disallow values of 'arch' which might be problematicDave Reisner2014-09-23
| | | | | | | | | We rely on values in the arch array to be valid as part of variable names, so extend the arch lint check to catch this. This also cleans up lint_arch to restrict the use of "lint" only to the package-specific architecture checks. It previously had an odd declaration with a conditional expansion that would never be true.
* makepkg: let --source imply --ignorearchDave Reisner2014-09-23
| | | | | | | | Since source package creation is architecture independent, we should ignore architecture-dependent behaviors such as the lint check which will halt execution when the host machine is not a supported arch. https://github.com/falconindy/pkgbuild-introspection/issues/15
* makepkg: use correct terminologyDave Reisner2014-09-23
| | | | unix has no "folders".
* replace --reference on chmod/chown commandsWolfgang Bumiller2014-09-23
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* alpm.h: remove outdated pkg_get_backup doxygenAndrew Gregory2014-09-23
| | | | | | | | alpm_pkg_get_backup hasn't returned strings since 54ef162a1a9e27e362732d873f0739bc0a2cf1bf in 2011. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* Check the version of the local database during validationAllan McRae2014-09-23
| | | | | | | When we check the database version directly, there is no longer a need to scan for depends files. Signed-off-by: Allan McRae <allan@archlinux.org>
* Add version file to empty local databaseAllan McRae2014-09-23
| | | | | | | If a user manually creates the local database directory, or has an empty local database for some other reason, we silently add a version file Signed-off-by: Allan McRae <allan@archlinux.org>
* Add version file when creating local database directoryAllan McRae2014-09-23
| | | | | | | | The version of the local pacman database is stored in its root in the file ALPM_DB_VERSION. The version is starting at 9, corresponding to the next libalpm library version. Signed-off-by: Allan McRae <allan@archlinux.org>
* Create local database directory if it is missingAllan McRae2014-09-23
| | | | | | | | This means that a missing local database becomes an error (as it should be immediately created). Note this only creates the "local" directory and not its parent, which is checked for during locking. Signed-off-by: Allan McRae <allan@archlinux.org>
* Extend database upgrade script to handle alpm db version 9Andrew Gregory2014-09-23
| | | | | | Original-work-by: Allan McRae <allan@archlinux.org> Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* pacman-db-upgrade: use pacman-style optionsAndrew Gregory2014-09-16
| | | | | | | | | | * convert dbpath from argument to option * add --config and --root options * read dbpath and root from config file * if root is set but not dbpath, dbpath is set relative to root Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* fix improper FREELIST callsAndrew Gregory2014-09-16
| | | | | | | | * conflicts need to be freed with alpm_conflict_free * sync dbs need to be unregistered and are handled by alpm_release Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* updpkgsums: use a throwaway build dirDave Reisner2014-09-15
| | | | | | | This prevents updpkgsums from potentially dirtying an otherwise pristine directory (likely $PWD) when makepkg creates the srclinks. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: do not eval dlcmdlolilolicon2014-09-15
| | | | | | | | | | | | | | | | | | | | This eval enables the following in a PKGBUILD to "just work": source=('$pkgname-$pkgver.tar.gz'::'https://host/$pkgver.tar.gz') This has at least two problems: - It violated the principle of least surprise. - It could be a security issue since URLs are arbitrary input. Instead, expand the dlagent command line into an array, replace the %o, %u place holders, and run the resultant command line as is. Embedded spaces in the DLAGENTS entry can be escaped with a backslash. Fixes FS#41682 Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: Allow using sources with :: in themWilliam Giokas2014-09-15
| | | | | | | | | | | | | | | | | | | | Git has the ability to use helper applications for interfacing with hg, and from what we had before, the following url:: foo::git+hg::http://foo.bar/foobar would get converted to something along the lines of: filename: foo URL: http://foo.bar/foobar and the 'git+hg' part would essentially be ignored when it's getting set up in the 'get_protocol' and 'get_downloadclient' functions. With this patch it is possible to have a source link with '::' in it, however it is not possible to have a filename with '::', which is the current behavior. Signed-off-by: Allan McRae <allan@archlinux.org>
* paccache: read default cachedir from pacman.confDave Reisner2014-09-15
| | | | Implements FS#40738.
* paccache: add support for multiple cachedirsMaxim Andersson2014-09-15
| | | | Signed-off-by: Maxim Andersson <thesilentboatman@gmail.com>
* PKGBUILD(5): arch-specific fields are always additionalDave Reisner2014-09-15
| | | | | | Change e10775340 should have included this. Signed-off-by: Allan McRae <allan@archlinux.org>
* pacman-key: stricter parsing for -verifyAllan McRae2014-08-09
| | | | | | | | | Prevents trust being spoofed by using TRUST_FULLY in the signatory's name or in an added notation. Fixes FS#41147. Signed-off-by: Allan McRae <allan@archlinux.org>
* pkgdelta(8): Fix broken example of --min-pkg-size with human-readable valuesJason St. John2014-08-09
| | | | | | | | | | | | The example for human-readable values must not contain a space between the value and the unit; otherwise, pkgdelta will not recognize the command options and will error out. In prose, however, there should be a space between the value and the unit. Signed-off-by: Jason St. John <jstjohn@purdue.edu> Signed-off-by: Allan McRae <allan@archlinux.org>
* man: Improve grammar and add missing single quotes around command optionsJason St. John2014-08-09
| | | | | Signed-off-by: Jason St. John <jstjohn@purdue.edu> Signed-off-by: Allan McRae <allan@archlinux.org>
* man: Use uniform line spacing between sectionsJason St. John2014-08-09
| | | | | | | | Remove blank lines immediately following section headings. Ensure two blank lines before the start of a new section. Signed-off-by: Jason St. John <jstjohn@purdue.edu> Signed-off-by: Allan McRae <allan@archlinux.org>
* pacman(8): Improve grammar and quotingJason St. John2014-08-09
| | | | | | | | | Notable changes: * Add double quotes around printf-like formatting options for "--print-format" * Add a missing backslash in '--force' Signed-off-by: Jason St. John <jstjohn@purdue.edu> Signed-off-by: Allan McRae <allan@archlinux.org>
* Fix loading invalid packageOlivier Brunel2014-08-09
| | | | | | | | | | | | In 5acfa65f when adding a new variable (hit_mtree), the initialization of a variable (config) was dropped, which could lead to loading invalid package files, i.e. files that aren't archive (no metadata loaded) would return a new alpm_pkg_t with everything set to 0/NULL. Depending on the operation/use of the package, this could lead to segfault. Signed-off-by: Olivier Brunel <jjk@jjacky.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: replace bare eval with var extraction functionsDave Reisner2014-08-08
|
* PKGBUILD: handle arch specific attributesDave Reisner2014-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces support for architecture-specific conflicts, depends, optdepends, makedepends, replaces, and conflicts by appending "_$CARCH" to the array name. For example, in the global section: arch=('i686' 'x86_64') depends=('foo') depends_x86_64=('bar') This will generate depends of 'foo' and 'bar' on x86_64, but only 'foo' on i686. Moreover, this is supported in the package functions with the same heuristics as the generic names, e.g. ... arch=('i686' 'x86_64') depends=('foo') ... package_somepkg() { depends_x86_64=('bar') ... } Again, will cause x86_64 to have depends of 'foo' and 'bar', but only 'foo' for i686.
* makepkg: refactor check_sanity, give it some sanity of its ownDave Reisner2014-08-08
| | | | | | | | | | | | | | | | | | | | Break apart each of the blocks into their own separate functions. And, instead of the hand crafted eval statements, reuse the logic from pkgbuild-introspection[0] to abstract away the complexities of parsing bash. This commit fixes at least 3 bugs in check_sanity: 1) The wrong variable is shown for the error which would be thrown when, e.g. pkgname=('foopkg' 'bar^pkg') 2) The "arch" variable is not sanity checked when the PKGBUILD has an arch override, but only one output package. 3) https://bugs.archlinux.org/task/40361 Lastly, there's some string changes here which should help to clarify a few errors emitted in the linting process. [0] https://github.com/falconindy/pkgbuild-introspection
* Update PKGBUILD documentation for removed override optionsAllan McRae2014-08-08
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: disallow pkgver/pkgrel/epoch overrides in packagesDave Reisner2014-08-08
| | | | This is a confusing feature, and no one uses it.
* remove --destination-dir argument from a2x optionsDave Reisner2014-08-08
| | | | | | This option is only for HTML output, and we're building manpages here. Signed-off-by: Allan McRae <allan@archlinux.org>
* Add Andrew to maintainers list.Allan McRae2014-08-04
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* trans_commit: log beginning and end of transactionAndrew Gregory2014-08-04
| | | | | | | | This makes it clear whether a transaction successfully completed and allows log parsers to group related actions. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* filecache_find_url: dereference the 'filebase' pointerRyo Munakata2014-08-04
| | | | | Signed-off-by: Ryo Munakata <ryomnktml@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* replace strdup with STRDUPAndrew Gregory2014-08-04
| | | | | Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>