Commit Graph

894 Commits (c4295e9cf8132588c84b1f4e5907b023cbc7a8f6)

Author SHA1 Message Date
Timo Teräs 4f823f2a50 make 'mode, uid, gid' triplet separate atomized struct
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.
2014-11-01 20:18:57 +02:00
Timo Teräs 36d5b91495 support extended pax header in tar extractor 2014-11-01 19:17:06 +02:00
Timo Teräs bb1ac2557d db: improve and unify fdb error messages 2014-10-13 13:33:19 +03:00
Timo Teräs 82713dc389 db: unconditionally refresh index with --force 2014-10-09 19:32:48 +03:00
Timo Teräs 38e3f54638 rework option parsing to have a group structure
Add also a new 'commit' group that is the common options
for all applets that can commit package changes.
2014-10-08 15:29:27 +03:00
Timo Teräs 275dd16c42 url: fix double free from late libfetch changes 2014-10-08 15:29:04 +03:00
Timo Teräs 32627939f5 io,url,db: support for if-modified-since 2014-10-08 11:13:21 +03:00
Timo Teräs 555363f056 url: use libfetch to retrieve http/https/ftp files 2014-10-08 10:10:45 +03:00
Timo Teräs aab5f46959 apk-tools-2.4.5 2014-10-08 08:12:41 +03:00
Timo Teräs 5496560a4f db: fix crash if unable to download cache item
fixes #3371
2014-10-07 17:05:06 +03:00
Timo Teräs 1bbca16333 io: fix few error path leaks 2014-10-07 17:04:38 +03:00
Timo Teräs 09e48d8f06 db: rework directory permission handling
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
2014-10-07 14:11:29 +03:00
Timo Teräs e0f9b0897b solver: enforce conflicts during upgrades and new pkg installs
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.
2014-10-06 16:30:09 +03:00
Timo Teräs f2d9a14405 cache: delete more aggressively unneeded cached files
Also if --purge is specified delete all uninstalled packages.
Fixes #2889
2014-10-06 15:54:52 +03:00
Timo Teräs f5674b9582 db: use per-pkg architecture (if available) to form download url
Allows one arch index files to refer to other arch packages. Mostly
useful with noarch packages, but could be used e.g. to ship build
with some of packages optimized for specific cpu generation and
share most packages with the standard build.
2014-10-06 14:54:54 +03:00
Timo Teräs 6ea922cc87 info who-owns: print symlink target owner as a fallback
busybox trigger creates symlinks to itself. This helps user
to see where these come from.
2014-10-06 14:45:10 +03:00
Timo Teräs f911f7043b index: fix warning about package names without provider
It's real only if there's a package with actual dependency
(conflicts and install_if dependencies do not count).
2014-10-06 14:09:50 +03:00
Timo Teräs ac39e84d53 apk-tools-2.4.4 2014-05-20 10:35:34 +03:00
Timo Teräs 1dc70477b5 solver: fix installation of non-repository packages during tmpfs boot
allow packages in the cache's installed to be selected for installation
by the solver. add test case for the issue.
2014-05-19 11:50:10 +03:00
Timo Teräs 7e64edfad6 test: improve loading of repositories, fix broken install-if test 2014-05-19 11:48:36 +03:00
Timo Teräs 2c4f6bb503 del: allow deletion of world dependency when it is not installed
this happens e.g. after tmpfs boot when not all packages where
available: the dependency is in world, but not installed.
2014-05-19 08:49:55 +03:00
Timo Teräs 1e36692a8a finally fix building PIE binaries
the dynamic applet registration never worked with PIE, and as
a temporary hack -nopie was added to default link flags in 2008.

this commit reworks the applet registration mechanism to something
that is compatible with PIE, and removes the hack. finally!
2014-05-12 19:45:36 +03:00
Timo Teräs 73a03c2e40 db: allow replacing files of origin package is same
basically this makes packager's life simpler as there is no need
to list the subpkg names in replaces. this was also very error
prone and tedious job to do properly.
2014-04-25 22:17:49 +03:00
Timo Teräs 9f679fa807 apk-tools-2.4.3 2014-04-14 11:29:21 +03:00
Timo Teräs 80e64f4c5d package: do not report duplicate reverse dependencies
most notable in error report from 'del' applet
2014-04-10 11:31:13 +00:00
Timo Teräs 9ee8c7ca00 url: double-fallback to static busybox 2014-04-10 12:57:58 +03:00
Timo Teräs c35086dc92 solver: purge install_if packages deleted from repositories on upgrade -a 2014-04-10 11:10:40 +03:00
Timo Teräs 9fa64ca1db solver: fix cleaning of packages that got replaced by provides 2014-04-10 09:52:40 +03:00
Timo Teräs 50cec5b959 apk-tools-2.4.2 2014-04-04 13:22:32 +03:00
Timo Teräs 06071700c5 solver: fix inherited flags/pinning for install_if packages
noticeable fixes upgrading of packages which get pulled in only
by install_if rule. this also simplifies the inheritance calculation
for packages, as well as the place where it is done for install_if
triggered packages.
2014-04-04 13:05:52 +03:00
Timo Teräs ec1a3d57ab solver: do not consider packages in cache as 'available'
'available' really means 'available in one or more configured
repository'. Cache is not a repository we track, so those are
only available for installation, but not available as preferred
to be installed from repository. fixes #2831.
2014-04-04 10:56:13 +03:00
Timo Teräs 8dce7755d4 apk-tools-2.4.1 2014-03-12 15:07:47 +02:00
Timo Teräs c39dacf21b audit: report missing files in system mode
fixes #2113
2014-03-12 14:59:49 +02:00
Timo Teräs 065715a377 solver: additional improvements to install_if handling 2014-03-12 13:10:19 +02:00
Timo Teräs d99e82c633 audit: include all files in etc/apk in overlay
This implements a new protected path flag '!' to include always
matching entries in the backup mode (overlay). This is also turned
on for etc/apk to include everything there in overlay, because
the full list of repositories and signing keys need to be in
overlay - just getting them from a package is not enough during
bootstrap.
2014-03-12 09:08:26 +02:00
Timo Teräs 5fdc391c10 solver: fixes to install_if handling 2014-03-11 18:38:39 +02:00
Timo Teräs f19566f6a8 info: fix printing of 'replaces' field 2014-03-07 10:22:03 +02:00
Natanael Copa f8b1c3ef83 fetch: disable all progress/log output with --stdout 2014-02-03 12:09:41 +00:00
Timo Teräs 354ba70dc5 fetch: disable progress when outputting pkg to stdout 2014-02-03 13:08:34 +02:00
Natanael Copa 5ccaa6796f Revert "fetch: run quiet when --stdout"
This reverts commit a99bedba6f.
2014-01-06 15:17:23 +01:00
Natanael Copa b06a43a465 apk: new option --print-arch
Simply print the default arch and exit.
This is so scripts don't need to parse the output of -V.
2014-01-06 14:52:05 +01:00
Natanael Copa a99bedba6f fetch: run quiet when --stdout
Prevent the progressbar and status messages to mess up stdout.
2013-12-10 15:47:56 +01:00
Natanael Copa 1f8b793471 print: flush on apk_log
Makes it more useful whith pipes.
2013-12-05 10:58:23 +01:00
Timo Teräs 5173787218 print: use stdout instead of stderr for logging and progress
stdout is the proper place for it. this also fixes the progress
bar in musl, which seems to not support using line buffering for
stderr.
2013-10-11 14:52:34 +03:00
Timo Teräs a6c4103df5 db: allow using cached packages with --no-network 2013-10-02 16:06:10 +03:00
Timo Teräs aa345aab59 apk-tools-2.4.0 2013-10-01 16:25:43 +03:00
Timo Teräs 74c4c95976 db, url: fix exec sentinels
http://ewontfix.com/11/
2013-10-01 16:22:29 +03:00
Timo Teräs 2721772488 db: minor improvements to an error and a verbose log messages 2013-09-20 21:54:33 +03:00
Timo Teräs 73820e4a3e archive: fix handling of name lengths of exactly 100 bytes 2013-09-20 21:51:57 +03:00
Timo Teräs cecb810746 db: fix error message 2013-09-20 21:31:29 +03:00