Build and packaging library
  • Python 67.3%
  • Makefile 23.6%
  • Shell 9.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Lindemann 36978c55e2
lib.pm.*.install_packages(): Add functions
Currently, jw-pkg install is sometimes left to the high-level package
manager, which is allowed to install dependencies along, and that's
sometimes unwanted, but there's no backend in the low-level package manager
module lib.pm to allow specifying that. This commit adds it:
lib.pm.*.install_packages().

The functions install a list of local package files using the low-level
package managers rpm / dpkg, bypassing the high-level package managers yum
/ apt / zypper.

pm.rpm runs rpm -U and pm.dpkg runs dpkg -i. Every file is classified
against the installed state of its package, queried by name: a file
for a package that is not installed is installed fresh, a file with
another version installed is upgraded, and a file whose version is already
installed is reinstalled when force is set and skipped otherwise. On rpm,
plain -U refuses a package that is already installed, and --reinstall
aborts the transaction when a file of the incoming package differs from
the installed one, so the upgrades run before the reinstalls and the
same-version files need force.

With only_update, a file for a package that is not installed raises before
anything is installed.

The dpkg route is gated on an apt simulation, because dpkg -i leaves a
half-configured package when a dependency is missing: the simulation runs
first and the install is refused when it would install or remove anything
but the given files' own packages.

Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v1.4.0
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-10-28 20:14:55 +01:00
.github/workflows ci.yaml: test-packaging.yaml@{master-test -> master} 2026-06-08 19:43:15 +02:00
bin bin, make, scripts: Re-add files necessary for packaging jw-build 2025-11-14 11:22:50 +01:00
conf gitignore: Add web compilation artifacts 2026-10-24 18:58:02 +02:00
doc doc: Add subdir 2026-08-19 20:51:11 +02:00
make py-version.mk: Include common.mk 2026-10-24 21:50:24 +02:00
scripts pkg.sh: Use md5 for the dput hash option 2026-10-27 08:17:43 +01:00
src lib.pm.*.install_packages(): Add functions 2026-10-28 20:14:55 +01:00
test lib.pm.*.install_packages(): Add functions 2026-10-28 20:14:55 +01:00
.gitignore run-success.mk: Record last successful run 2026-09-16 18:16:17 +02:00
HASH Release 1.0.0-282@suse-tumbleweed/x86_64 2026-10-27 08:04:12 +00:00
Makefile .gitignore: Run make gitignore 2026-09-13 23:09:26 +02:00
RELEASES Release 1.0.0-282@kali-rolling/amd64 2026-10-27 09:08:14 +00:00
VERSION Start version: 1.0.0-282 2026-10-27 08:03:09 +00:00