summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2011-09-19Use more efficient way of restoring working directoryDan McGee3-24/+37
Rather than using a string-based path, we can restore the working directory via a file descriptor and use of fchdir(). From the getcwd manpage: Opening the current directory (".") and calling fchdir(2) to return is usually a faster and more reliable alternative when sufficiently many file descriptors are available. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-19Reduce path allocation on the stack in local databaseDan McGee1-32/+35
We did a lot of both malloc-ing and stack printing to form some paths in this code. Attempt to unify it all into the one get_pkgpath() method by adding an optional third "filename" parameter, and form the necessary path string all in one go. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-19Be smarter about running ldconfig during removal transactionsDan McGee4-9/+11
1. Don't run it if something failed in package removal- this mirrors what we already do in sync transactions. 2. Don't run it if we are invoking it for the replaces removal bit of a sync transaction- it doesn't make sense to run ldconfig halfway through a sync install; we should only run it once at the end. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-19Search for non-prefixed paths in skip_remove listDan McGee1-3/+3
We add them to this list with the root path not appended; we should be searching for them this way as well. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-18be_local: cope with a desc file without trailing newlineDan McGee1-2/+6
We checked the (fgets == NULL and !feof) case, but never actually bailed out of the loop if we were at the end of the file, causing infinite looping. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-18Remove const specifier from changelog_read() void parameterDan McGee6-8/+8
This shouldn't really be declared with const, and causes a compile error when -Wcast-qual is used. Remove the const specifier from the function specification and all implementations. Also fix one other trivial -Wcast-qual warning in _alpm_db_cmp(). Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-18Remove dead changelog_feof() codeDan McGee2-9/+0
We never ended up using or really needing this; kill it for now knowing it is in git history if ever needed again. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-18Add a random pactestDan McGee1-0/+25
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-18src/util: provide strndup definitions where neededDave Reisner2-0/+44
Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-18dload: avoid using memrchrDave Reisner1-3/+9
This function doesn't exist on OSX. Since there aren't any other candidates in alpm for which this function would make sense to use, simply replace the function call with a loop that does the equivalent. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-18Ensure entire struct is zeroed in _alpm_parsedate()Dan McGee1-1/+2
Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-18pactree: include missing ctype.h headerDave Reisner1-0/+1
needed for isspace() -- avoids warnings on OSX. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-18configure: Fix quoting in SEDINPLACE on DarwinDave Reisner1-1/+1
single quotes expanded to nothing, leaving us with a command that assumed the sed expression was the backup suffix. Use a pair of escaped double quotes, which survives automake and ends up properly in makepkg. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-18dload: remove user:pass@ definition from hostnameDave Reisner1-1/+9
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-18paccache: remove unnecessary if checkDave Reisner1-4/+2
This is superfluous as the ensuing for loop will exit immediately on the same condition avoided by the if. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-18Fix build without gpgmeDan McGee1-1/+3
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-14pacman: add short opt '-p' for --print to -{S,R}hDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-14include ldconfig.stub in EXTRA_DISTDave Reisner1-0/+1
Since c51b9ca, ldconfig.stub is required by pactest so we need to include it as part of the dist tarball. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-14buildsys: remove existing symlinks before installingDave Reisner2-0/+3
This fixes build errors when performing a manual install straight to a filesystem where the files already exist. Reported-by: Sergej Pupykin <ml@sergej.pp.ru> Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-14Don't duplicate header stringsDan McGee1-5/+5
There is no need to print them into buffers; we can use the values returned by gettext() directly without issue. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-14makepkg: fix recreation of hardlinks to .gz manpagesDave Reisner1-5/+6
4ed12ae tightened up the logic to use only find, but ignored the fact that since the manpage hard link names were no longer captured. They were created as separate compressed manpages, rather than as hardlinks. This also introduces a minor efficiency of deleting all hardlinks at once and using proper iteration over an array rather than a string. Note to anyone else touching this code: e2fsprogs and libpcap are useful for testing this. If that changes in the future, you can use the below bash to locate others: IFS=$'\n' read -rd '' -a a < <(find /usr/share/man -type f \! -links 1) pacman -Qqo "${a[@]}" | sort -u I broke it! Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-14makepkg: add missing newline on passing gpg sourcecheckDave Reisner1-3/+4
When a sourceball passes this check without any warnings, a newline is omitted. Similar to the if clause of this else block, print a single new line at the end of the clause instead of accounting for each output. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-12makepkg: check for var existance before file existanceDave Reisner1-1/+1
This prevents makepkg from aborting with 'file not found' when changelog= or install= are declared in a PKGBUILD, but empty. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-11account for partial delta files in download sizeDave Reisner1-5/+21
Similar to an earlier commit which accounts for .part files for full packages, calculate the download_size for deltas keeping mind the possibility of a partial transfer. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-11make compute_download_size consider .part filesDave Reisner1-3/+24
Check for the existance of a partial download of a package file before jumping to delta calculations. Currently, if there were 10MiB remaining in a 100MiB the values passed to the front end do not reflect this. Refactored from an old patch originally by Dan. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-11dload: provide optional netrc supportDave Reisner1-0/+1
if ~/.netrc exists and has credentials for the hostname requested in a download, they will be provided in an http auth request. This can still be overridden by explcitly declaring user:pass in the URL. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-11makepkg: unset errexit when sourcing /etc/profileDave Reisner1-1/+3
This is a fix for a bash3 specific bug, where a file sourced by /etc/profile would exit non-zero and make its way back up to makepkg, forcing it to exit after package installation. Along with unsetting the ERR handler, temporarily unset errexit to avoid this. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-11paccache: escape . in trimming of diskspace stringDave Reisner1-1/+1
Before: ==> finished dry run: 2 candidates (diskspace saved: 7. MiB) After: ==> finished dry run: 2 candidates (diskspace saved: 7.8 MiB) Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-11download callback: show decimal places in rate if we have roomDan McGee1-2/+8
Display now looks like this, whereas before we would have just showed '2M/s' for the extra repository download. The cutoff is placed at 100.0 to ensure we only use 4 character slots of width (e.g. '99.9', '100'). :: Synchronizing package databases... testing 39.9 KiB 470K/s 00:00 [######################] 100% core 51.4 KiB 469K/s 00:00 [######################] 100% extra 768.8 KiB 2.1M/s 00:00 [######################] 100% community-testing 1941.0 B 54.4M/s 00:00 [######################] 100% multilib 26.6 KiB 458K/s 00:00 [######################] 100% community 449.8 KiB 1649K/s 00:00 [######################] 100% Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-11Move download callback static vars into functionDan McGee1-3/+3
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-08diskspace: fix memory leak on root mount not foundDave Reisner1-1/+3
Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-08Print 'loading packages' message on -U operationsDan McGee1-0/+1
This will be the first thing printed when doing an upgrade. Currently there is no output at all until we start resolving dependencies, which can be a while in if specifying very large targets on the command line, in which case it is nice to let the user know we are doing something. Addresses FS#25822 in the most KISS way possible. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-07makepkg: use more awk'ish syntax in sanity checksDave Reisner1-6/+6
This simplifies the flow a bit, making the pipeline a little easier to grok. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-07makepkg: avoid for loop in deleting manpage hardlinksDave Reisner1-4/+2
find can do this all on its own and remain portable. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-07makepkg: act on function return value, not outputDave Reisner1-1/+1
Correcting a typo, as this function will never output anything. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-07makepkg: refactor check_pgpsigs outputDave Reisner1-16/+18
- display associated warnings on same line as pass/fail msg, to be more consistent with checksum verification output - properly error on a revoked key (matching pacman's behavior) Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-07Use more correct integer types in diskspace checksDan McGee2-16/+20
This adjusts type usage to match POSIX provided types from <sys/types.h> rather than assuming everything will fit in a long or unsigned long. Use fsblkcnt_t (unsigned) and blkcnt_t (signed) as appropriate. These are affected the same way off_t is on 32 bit platforms, where the types are extende to 64 bits if large file support is enabled. Because most numbers here are block counts, this isn't near as pressing as using a 32-bit variable for file sizes where anything over 2GiB can burn you; we likely can support files at least 512 but mainly 4096 times larger. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-07query check: use provided filelist count instead of keeping trackDan McGee1-6/+6
We don't need to keep track of how many files are in a package now that said value is provided to us. It also makes more sense to use size_t here for types rather than the (hopefully never too short) int. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-07Remove unnecessary castDan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-07Ensure PackageRequired works as expectedDan McGee1-6/+7
Changes in commit dc3336c277 caused this to stop working as expected for sync packages, due to the way the logic is structured. Ensure we always enter the signature code if the bitflag is flipped on to check signatures for packages. Rename 'use_sig' to 'has_sig' for clarity. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-06makepkg: use globs in place of regexDave Reisner1-7/+9
We seem to enjoy using bash regex capabilities, but never referencing the result with BASH_REMATCH. Replace almost all regexes with equivalent globs which are faster and functionally equivalent in these cases. This enables the extglob shopt. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-06dload: use intmax_t when printing off_tDan McGee1-2/+4
This works for both 32-bit and 64-bit platforms. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-06makepkg: unset variables as per !{make,build}flagsDave Reisner1-4/+2
Don't just set the flag variables to zero length strings, actually unset them from the environment. This fixes issues with broken gnu Makefies that use ?= for assigment, where the presence of a var is enough to make this condition avoid assignment. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-06rankmirrors: properly sort resulting timesDave Reisner1-1/+2
- Properly read each sorted line into a new array, instead of breaking on every word. - LC_COLLATE should apply to the sort portion of the pipeline, not the printing. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-06dload: abstract dload_interrupted reasonsDave Reisner1-3/+9
This gives us some amount of room to grow in case we ever find another reason that we might return with an error from the progress callback. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-06dload: improve debug outputDave Reisner1-2/+13
We lost some of this output in the fetch->curl conversion, but I also noticed in FS#25852 that we just lack some of this useful information along the way. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2011-09-06sync: add missing newline in warning messageDave Reisner2-2/+2
Dan: fix the other missing one too. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-06avoid blowing out the filecache list when using tmpdirDave Reisner1-4/+2
_alpm_filecache_setup() destroys the list of cachedirs when it finds no writeable directories in the config. This put us in an awkward situation where _alpm_filecache_find() would locate a downloaded file in a r/o cachedir, but then fail to install it after _alpm_filecache_setup() is called (with a NULL argument). Change this behavior to merely prepend the temporary directory to the list of available cachedirs. Dan exposed it in e07547ee4ed4, as now a package can be found in a directory we may not be able to actually store packages in. Reported-by: Rémy Oudompheng <remy@archlinux.org> Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-02More package operations cleanupDan McGee6-45/+12
Neither deltas nor filename attributes are ever present in the local database, so we can remove all of the indirection for accessing these attributes. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-09-02Add -p/--print tip for -Q operations on filepathDan McGee1-0/+6
Signed-off-by: Dan McGee <dan@archlinux.org>