aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* use murmur3_32 hashTimo Teräs2015-06-111-6/+45
| | | | it is more efficient than the previously used djb hash
* speed improvements for database openingTimo Teräs2015-06-112-4/+44
| | | | | | | | resolve reverse dependencies after all packages have been loaded, and avoid traversing the reverse name lists. now that we use automatic virtual packages (soname, pkg-config, etc.) the reverse dependency chains can become considerable longer than what it was when the rdependency construction code was originally written.
* search: fix swapped needle and haystackBobby Bingham2015-06-101-2/+2
|
* fix directory permissions loadingTimo Teräs2015-06-012-2/+5
| | | | | commit 941fc1b1 uncovered a bug that directory permissions are not updated properly at db load time if it's the default acl.
* detect failures in writing to file during final flush of buffersAlex Dowad2015-05-261-1/+3
| | | | | | | | | | | | | | | | | In practice this should fix to e.g. not wipe out /etc/apk/world if final flush to /etc/apk/world.new fails. This was prompted by an incident the other day where I ran the root partition of an Alpine box out of space using 'apk add', and apk helpfully wiped the contents of /etc/apk/world at the same time. It might be tricky to try to reproduce exactly the same failure, but from an examination of the code, setting 'rc' before the final call to fdo_flush rather than after is one possible cause of this behavior. (If the entire contents of /etc/apk/world.new are buffered, and all get written out in the final fdo_flush call, and that call fails, fdo_close will still happily rename /etc/apk/world.new to /etc/apk/world.)
* do not extract files with malicious nameTimo Teräs2015-04-241-1/+14
| | | | | | | | | the security implications are not as high as compared to regular tar/unzip archiver. this is because you are anyway trusting the package to install files anywhere in the filesystem. this serves rather as a sanity to check against errors in created package.
* allow virtual packages beginning with dot by default on tmpfs installsTimo Teräs2015-04-241-3/+3
| | | | | the allows update-kernel script to work on tmpfs install before cache is configured.
* modifications for the previous commit in error message handlingTimo Teräs2015-04-244-5/+8
| | | | forgot to --amend my changes
* print.c: provide more detailed error messages if retrieving a package failsAlex Dowad2015-04-222-1/+21
| | | | | | | | | | | | fetch_maperror() translates error codes returned by libfetch to our error codes. Handle those in apk_error_str(), returning error messages which advise the user of the most likely fix. A custom error code, EAPKSTALEINDEX, has been added for cases where retrieving a package fails due to a HTTP error 404 or similar. [TimoT: add also EAPKBADURL, as well as organize a bit better where the EAPKSTALEINDEX is generated]
* io: fix compiler error by including stdint.hAlex Dowad2015-04-221-0/+1
| | | | | | | According to the C standards, uint32_t is defined in stdint.h. Presumably apk is usually built against C libraries where stdint.h is indirectly included through another header file, but this isn't the case with the version of glibc which I am using.
* fix issue introduced in previous xattr error handling changesTimo Teräs2015-04-171-2/+2
|
* disable xattrs on symlinks for nowTimo Teräs2015-04-172-2/+2
| | | | | | there's no nice syscall to manipulate xattrs with atfd and or open the symlink without dereferencing it (and having fd that we can do xattrs with)
* make file install errors non-fatal, and xattr errors hiddenTimo Teräs2015-04-175-83/+109
| | | | | | | | | user xattrs on tmpfs are not supported no non-grsec kernels, and many times root fs is mounted without user_xattr. Thus to allow things to go smoothly on non-grsec kernels xattr unsupported errors are now hidden. xattrs can be fixed still now with "apk fix --xattrs"
* fix tee io error handlingTimo Teräs2015-04-132-4/+6
| | | | use ERR_PTR mechanism, and handle it at all places.
* fix error mapping typesTimo Teräs2015-04-131-1/+1
| | | | | | on arm char is by default unsigned, so this caused crashes as the ERR_PTR mechanism did not work as expected with unsigned types. extend the array type to be signed short explicitly.
* update: return errors also with --quietNatanael Copa2015-04-101-1/+1
| | | | fixes #4040
* use memmove for copying buffer leftovers, as the ranges may overlapTimo Teräs2015-04-081-1/+1
| | | | issue cought by fortify
* unbreak audit after xattr supportTimo Teräs2015-04-081-2/+1
|
* ignore .apk-new files for overlaysTimo Teräs2015-04-083-1/+12
|
* make default dir/file acl implicitTimo Teräs2015-04-081-2/+2
| | | | | apk in alpine 3.1 already supports this optimization, but kept the database format. now is time to start using this feature.
* audit xattrsTimo Teräs2015-04-083-38/+90
| | | | ref #3027
* update: return failure if any mirror update failedNatanael Copa2015-04-073-3/+10
| | | | fixes #4040
* commit: return failure if there are any errorsNatanael Copa2015-04-071-1/+1
| | | | fixes #4019
* calculate and store checksum of xattrsTimo Teräs2015-03-115-7/+63
| | | | ref #3027
* rename file info related functions for consistencyTimo Teräs2015-03-108-17/+17
|
* extract xattrs from packagesTimo Teräs2015-03-103-0/+46
| | | | ref #3027
* rework error handling for write streamsTimo Teräs2015-03-104-29/+19
|
* rework error handling for read streamsTimo Teräs2015-03-108-42/+74
|
* remove old compat. field entry from installed db handlingTimo Teräs2015-02-041-1/+0
| | | | | | Package pinning was first implemented with 'p' tag. However, it was before any release renamed to 's', and 'p' was reserved for package provides support for which is used now.
* remove spurious audit message from missing files with --systemTimo Teräs2015-01-301-4/+2
| | | | fixes #3840
* sort world dependencies alphabeticallyTimo Teräs2015-01-301-0/+8
| | | | | | | this makes 'lbu diff' and aaudit diffs nice when a world dependency is added or removed. sorting also makes the ordering more deterministic as the world targets constraints are always applied in the same order. test suite updated accordingly.
* always save 'world' with line feedsTimo Teräs2015-01-302-4/+1
| | | | | using space was for backwards compatibility with apk-tools 2.2.2 and earlier (from January 2012)
* remove support for old database location in /varTimo Teräs2015-01-303-57/+0
| | | | | the location changed in apk-tools 2.1.0 (March 2011) which was used in Alpine Linux 2.2.
* remove reverse dependencies firstTimo Teräs2015-01-301-0/+6
| | | | | | when removing large sets of packets, the ordering of removal was not quaranteed to honor dependencies. this fixes the removal order to be in reverse dependency order as far as possible.
* make del, fetch, fix and info return errorsTimo Teräs2014-12-088-32/+63
| | | | | | In case all applet arguments are packages names (that is are not including wildcards), return error if they do not match to some package.
* fix test modeTimo Teräs2014-12-081-5/+7
|
* db: assign write permission to lock fileKaarle Ritvanen2014-11-031-2/+2
| | | | | Allows running apk as an unprivileged user, e.g. with fakeroot. Opening the lock file fails without the write permission.
* move --simulate to commit options group and alias -s for itTimo Teräs2014-11-011-5/+4
|
* make 'mode, uid, gid' triplet separate atomized structTimo Teräs2014-11-013-53/+68
| | | | | | | there are only few combinations for that triplet, and they occur multiple times reducing the struct sizes a bit. make sane defaults and prepare to not write defaults to disk to reduce on-disk installed db size.
* support extended pax header in tar extractorTimo Teräs2014-11-013-38/+93
|
* db: improve and unify fdb error messagesTimo Teräs2014-10-131-27/+13
|
* db: unconditionally refresh index with --forceTimo Teräs2014-10-091-1/+3
|
* rework option parsing to have a group structureTimo Teräs2014-10-0814-319/+390
| | | | | Add also a new 'commit' group that is the common options for all applets that can commit package changes.
* url: fix double free from late libfetch changesTimo Teräs2014-10-081-1/+0
|
* io,url,db: support for if-modified-sinceTimo Teräs2014-10-086-53/+81
|
* url: use libfetch to retrieve http/https/ftp filesTimo Teräs2014-10-083-56/+51
|
* db: fix crash if unable to download cache itemTimo Teräs2014-10-071-2/+3
| | | | fixes #3371
* io: fix few error path leaksTimo Teräs2014-10-072-6/+9
|
* db: rework directory permission handlingTimo Teräs2014-10-074-58/+88
| | | | | | | | | | | | | | | | | | Apk used to reset directory permissions always, but this is undesirable if user has modified the permissions - especially during tmpfs boot. Though, it is desirable to update the permissions when packaging has changed permissions, or a new package is installed and the merged permission mask / owner changes. Thus the new code updates the permissions only if: 1) We are booting and directory is not in apkovl 2) The directory is modified by a package install/remove/upgrade 3) The filesystem directory permission matched database Additionally "apk fix --directory-permissions" can be used to reset all directory permissions to the database defaults. Fixes #2966
* solver: enforce conflicts during upgrades and new pkg installsTimo Teräs2014-10-061-2/+11
| | | | | | | This makes sure any conflicted packages will be removed first. Useful if we know there are conflicting files, and want to avoid adding potentially harmful replaces line. Add a test case for this too.