-
2.3.06dce8464 · ·
Release 2.3.0 It's been a while since the last release, so this is a big one! While the usual shortlog-style list will be below, I'll summarise the highlights first: - We've migrated from setup.py to pyproject.toml. If you're packaging pmbootstrap, you may have to adjust the build recipe. - The output from pmbootstrap has been cleaned up in many cases and should be easier to understand. For example, $ pmbootstrap status has been simplified greatly and the warnings are now printed when they're actually relevant. We also no longer print a stacktrace when a build fails, which should help make it more clear what went wrong. The stacktrace didn't actually contain say anything about why the build failed, so it was just distracting information. - We now have documentation both describing pmbootstrap's internal "API" and how to use it as a user, generated via Sphinx. However, we haven't figured out where to host it yet, but if you're really curious you can poke around the CI pipelines and maybe find it :) - systemd support has been worked on. I don't know much about this though :( - Compatibility when running pmbootstrap on an aarch64 (64-bit ARM) system has been improved. - Support for Python 3.7 and 3.8 has been removed to allow for using more modern features and type hints. And here goes the shortlog! Features: * Add "pmbootstrap repo_bootstrap" (MR 2273) * APKBUILD parser: recognize all top-level variables (MR 2300) * aportgen: Allow retaining current branch when forking Alpine (MR 2271) * aportgen: Add short forms of arguments (MR 2271) * aportgen: Set pkgver for devices to 1 by default (MR 2275) * docs: add new configuration for generating docs using sphinx (MR 2266) * init: ask whether to install systemd (MR 2273) * install: add pmos-base-systemd if systemd enabled (MR 2273) * logging: print text between *** in green (MR 2263) * Migrate from setup.py to pyproject.toml (MR 2265) * pmbootstrap init: remove text about daily zapping (MR 2293) * pmbootstrap status: rework (MR 2294) * pmb: Only log error if NonBugError is caught (MR 2279) * pmb: Handle BuildFailedError (MR 2288) * pmb.aportgen: add deviceinfo_bootimg_qcdt_type (MR 2276) * pmb.build._package: Raise BuildFailedError when build fails (MR 2288) * pmb.chroot.init: add postmarketos_mirror argument (MR 2273) * pmb.chroot.init: upgrade pkgs at the end (MR 2273) * pmb.chroot.init: warn about outdated chroots (MR 2293) * pmb.config: do not prompt for nonfree fw/userland (MR 2255) * pmb: install: allow to mount fat{16,32} /boot from /etc/fstab (MR 2304) * pmb: install: add some sane mount options to default /boot in /etc/fstab (MR 2304) * pmb: install: add options for default charset in vfat /boot partitions (MR 2304) * pmb.parse: add get_parser for returning ArgumentParser obj (MR 2266) * pmb.parse.bootimg: implement detection of QCDT types (MR 2276) * pmb.parse.kconfig: Raise NonBugError on invalid kernel config (MR 2279) * pmb.sideload: Query architecture from foreign device (MR 2282) * pmb.sideload: Run apk incantation in a subshell (MR 2283) * systemd installs: merge /usr on chroot init (MR 2273) * Support pmb:systemd-never option (MR 2273) Fixes: * aportgen: shorten hasatrr checks with getattr (MR 2271) * b4-config: Remove (MR 2257) * build: fix !pmb:crossdirect (MR 2291) * logging: reset style at the end of log line (MR 2272) * pmb: correct link after moving sources back to gitlab (MR 2270) * pmb.*: various comment reformatting to assist with generating docs (MR 2266) * pmb.chroot.apk: Use unl0kr instead of osk-sdl in example (MR 2289) * pmb.config: kconfig check: mark some EFI config as specific to ARM (MR 2269) * pmb.config: kconfig check: add vfat to uefi check (MR 2269) * pmb.config: kconfig check: add USB mass storage devices to community (MR 2281) * pmb.config: kconfig check: turn off RT_GROUP_SCHED in 'community' (MR 2305) * pmb.config.apkbuild_attributes: add sha512sums (MR 2296) * pmb/config: s/für/for/ * pmb.flasher: fix C0303: Trailing whitespace (trailing-whitespace) (MR 2280) * pmb.flasher.frontend: Replace osk-sdl with Unl0kr in FDE reminder (MR 2289) * pmb.helpers.aportupgrade: Import urllib.parse explicitly (MR 2258) * pmb.helpers.aportupgrade: Check for none pkgver_match in upgrade_git_package (MR 2258) * pmb.helpers.aportupgrade: Don't return any value from upgrade (MR 2258) * pmb.helpers.aportupgrade: Remove unused return values (MR 2258) * pmb.helpers.exceptions: Add licence header (MR 2284) * pmb.helpers.frontend: Add some type hints (MR 2262) * pmb.helpers.repo_missing: Replace osk-sdl with unl0kr in example (MR 2289) * pmb.helpers.run: Add some type hints (MR 2262) * pmb.helpers.status: Add type hints (MR 2262) * pmb.install: discover selected providers in dependencies too (MR 2261) * pmb.install: fall back to a valid hostname if none set (MR 2260) * pmb.install._install: Replace osk-sdl with unl0kr in nofde explanation (MR 2289) * pmb.install…get_selected_providers: tweak comment (MR 2261) * pmb.parse.arch: add armv8l -> armv7 mapping (MR 2259) * pmb.parse.arch: use qemu for running armhf on aarch64 (MR 2285) * pmb.parse.arch: Import pmb.config instead of pmb.parse.arch (MR 2282) * pmb.parse.arguments: Check for argcomplete in sys.modules instead (MR 2258) * pmb.parse._apkbuild: Disable attr-defined for entire module (MR 2258) * pmb.parse._apkbuild: Fix subpackages with set arch but no custom function (MR 2267) * pmb.sideload: Remove irrelevant output when querying architecture (MR 2286) * pyproject.toml: Fix deprecation warning (MR 2262) * Print ERROR: infront of {NonBug,BuildFailed}Error (MR 2298) * require_bootstrap: ensure apkindex exists (MR 2287) * README.md: mention parted bug in kernels between 5.8 and 6.0 (MR 2264) * README: Replace osk-sdl with tinydm in newapkbuild example (MR 2289) * test: Test subpackages which set a different architecture (MR 2267) * test.test_apk: Replace osk-sdl with unl0kr in apk install test (MR 2289) * test/test_parse_apkbuild: fix running standalone (MR 2300) * CI: mypy: make compatible with "pmbootstrap ci" (MR 2258) * CI: ruff: fix "ruff <path>" warning (MR 2274) * Remove unnecessary setup.cfg, non-universal is the default (MR 2265) Other: * Add sanity check for "systemd" config values (MR 2273) * config: add note on why mirrors are http and not https (MR 2256) * config: organize defaults matching config_keys and order alphabetically (MR 2256) * is_systemd_selected: check for branch support (MR 2273) * pmb.build.is_necessary: replace version_{new,old} (MR 2295) * pmb.build.is_necessary: tweak comments (MR 2295) * pmb.build.is_necessary: tweak log msgs (MR 2295) * pmb.helpers.exceptions: Introduce (MR 2279) * pmb.helpers.exceptions: Add BuildFailedError (MR 2288) * pmb.parse.arch: Break out marchine type to arch into separate function (MR 2282) * pmbootstrap build, install: require repo_bootstrap (MR 2273) * treewide: Rename unmaintained to archived (MR 2308) * gitignore: Ignore KDevelop files and folder (MR 2302) * test: disable cross compile test (MR 2307) * test: Test pmb.parse.arch.machine_type_to_alpine (MR 2282) * testdata/APKBUILD.var-replacements: add custom var (MR 2300) * Drop support for python3.7 and python3.8 (MR 2265) * CI: add Mypy check (MR 2258) * CI: Always update packages (MR 2297) * CI: Use yaml anchor for global before_script (MR 2297) * CI: Stop adding testing repository in before_script (MR 2297) * ci: add job to generate docs (MR 2266)
-
2.2.17102157b · ·
Release 2.2.1 Fixes: * envkernel: only export alias when defined (MR 2249) * install: get_recommends: fix infinite recursion (MR 2250) Other: * envkernel: Install envkernel.fish (MR 2249) * envkernel.fish: Support out-of-tree usage of envkernel.fish (MR 2249) * pmb.aportgen: drop deviceinfo_screen_* (MR 2253)
-
2.2.07f61262a · ·
Release 2.2.0 Features: * install: throw error if boot_size is too small * pmb.install: support pmb_recommends for any package * pmb.install: add --zap option * pmb.install.format: Write boot mountpoint to log * pmb.config: add new newapkbuild arguments * install: initial implementation of flat btrfs layout * helpers/envkernel.fish: export pmbootstrap_dir * helpers/envkernel.fish: set prompt prefix in fish-shell * helpers/envkernel.fish: add deactivate & reactivate function for fish * flasher: heimdall-bootimg: add support for '--no-reboot' and '--resume' * pmb.helpers.args: Skip some initialisation code when running checksum (MR 2228) * Guess kbuild out dir for downstreamkernel_package (MR 2231) * envkernel: Fall back to pmbootstrap from PATH (MR 2229) * Install envkernel.sh (MR 2229) * envkernel: Don't drop parameters in run-script (MR 2230) * build: use host native gzip (MR 2242) * build: use native abuild-apk (MR 2242) * pmb.install: include dependencies when searching for pmb_recommends (MR 2238) * install: more comprehensive subdivision of btrfs subvols (MR 2233) * kconfig check: enable NFT_COMPAT for iptables-nft wrapper (MR 2245) * kconfig check: Enable more options for community (MR 2245) Fixes: * install: do not fail on alpine-appstream-downloader error * pmb.flasher.vars: do not assume that args.no_reboot and args.resume are defined (MR 2232) * Fix preserving proxy variables (MR 2237) * pmb.install: fix crash on empty subpackage in get_recommends (MR 2238) * pmb.install: honor -y, don't prompt when target disk is >100GiB (MR 2239) * pmb: only enable abuild-apk wrapper for buildroot (MR 2246) * pmb.build: ensure all specified packages are built with --force (MR 2244) * build.envkernel: simplify and fix unhandled error path (MR 2243) * pmb.build.init: fix apk wrapper for x86 on x86_64 (MR 2247) Other: * aportgen: Only warn if binary version > APKBUILD version * parse.apkbuild.parse_subpackage: don't inherit pmb_recommends * pmb.install._install.get_recommends: tweak comment * README.md: update source code location * CI: use gitlab-ci * pmb.flasher.variables: use getattr instead of hasattr (MR 2232) * CI: bring back mr-settings check (MR 2234) * CONTRIBUTING: modernize (MR 2235)
-
2.1.04fb61591 · ·
Release 2.1.0 Features: * pmb.aportgen.device: modernize defaults * init: tweak UIs hidden message * install: get install_user_groups from pmaports.cfg * chroot: /mnt/pmbootstrap-* -> /mnt/pmbootstrap/* * build: use sccache for rust * pmb.config: uefi kconfig check: add zboot for aarch64 * pmb.config: uefi kconfig check: add mixed mode for x86_64 * kconfig check: enable USB_CONFIGFS_NCM for USB gadgets * parse.arguments: Allow providing multiple packages for kconfig_check * parse.bootimg: Separate kernel and ramdisk MediaTek headers * pmb.config: add RFKILL to iwd kconfig check * install: rename --sdcard arg to --disk * config.init: allow using pmb_select in pmos-base-ui * aportgen: build gcc-x86_64 etc. pkgs for aarch64 Fixes: * install: remove /mnt/pmbootstrap at the end * parse: allow "-r" in pkgver * parse.apkindex: fix typo * chroot.apk,apk_static: always disable interactive mode * install --sdcard: remove external_storage check * config: Fix typo in valid aport options * parse.depends: consider selected providers when resolving providers * pmb.helpers.pmaports.get: deal with operators * pkg resolver: don't guess if pmaport was found * pmb.helpers.frontend: Convert kconfig check --file argument Other: * Cosmetic: build: add comment about rust deps * test/test_crossdirect: remove * README.md: add armv7 to supported architecture * parse/init: allow importing arguments_install and arguments_flasher * test: cosmetic: install deviceinfo under /usr/share * pmb.aportgen.device: clarify supported values in modules_initfs * pkg resolve: add more verbose logs * pmb.config.apk_tools_min_version: add alpine 3.19 * aportgen: remove binutils
-
2.0.0b721b08e · ·
Release 2.0.0 After bumping the minor version 53 (!) times in 1.x.y, we have some breaking changes justifying a major version bump. For users it should still feel the same overall. Enjoy this release, and thanks so much to everybody who contributed to it! "Breaking" changes: * Remove distcc support (was already disabled by default since crossdirect had been added in 2019) * Remove --no-crossdirect argument * flasher: remove long deprecated flash_system alias * flasher: set default fastboot rootfs partition to userdata Features: * aportgen: replace deviceinfo_modules_initfs for modules file * pmb.install: create fstab and crypttab * Add mtkclient as a flasher option * Install makedepends in native chroot for packages using Rust * Support --no-cgpt * lint: drop call to pmb.build.init * aportgen: use pmb.build.init_abuild_minimal * pmb.config: only show first 3 releases * init: allow all locales * pmb.flasher: Improve flash_lk2nd action * pmb.helpers.frontend: Also clear testsuite log when running log -c * Don't use 'sudo' when running as root * config: use en_US as default locale * pmb: Remind users to ensure pmbootstrap is updated before reporting errors Fixes: * pmb.helpers.run_core: fix proxy env var logic * pmb/partition: fix cgpt root_size to not cause resize on boot * pmb.helpers.run_core: always configure proxy vars if set in environment * install/partition: set efi flag with cgpt * pmb.config: Use Python 3.8-compatible type annotation * envkernel.sh: use realpath to deal with symlink * pmb.helpers.run_core: fix sudo timer when not using sudo * install: run setup-timezone with "-i" when appropriate * pmb.config: select default UI in case current is not available * pmb.config: set default UI to console * pmb.config: add missing flash_rk_partition* flags * pmb.qemu.run: replace removed -soundhw option * pmb.helpers.run: fix sudo timer * pmb.config.sudo: Use type union compatible with Python 3.7 Other: * aportgen: device: rename modules to modules-initfs * test: fix test_build_depends_binary_outdated * test: fix running test_build_package.py standalone * deviceinfo: make parse_kernel_suffix private * pmb.helpers.run_core: move flat_cmd here * test/test_pkgrel_bump: make sure pmb doesn't cross compile * test: crossdirect: update stable branch ref * test: specify default git branch * test: dont fail on githook symlinks * CI: add codespell * treewide: fix typos found with codespell * install/partition: rearrange cgpt commands in natural order * CI: enable eval-annotations for vermin * Remove workaround for gcc with !tracedeps * install: move setup_timezone to its own function * treewide: rename _system to _rootfs in various places * pmb.flasher: remove outdated comment * Use ruff for linting * aportgen/binutils: set pmOS bugurl * aportgen/binutils: add more makedepends_host * aportgen/binutils: order fields alphabetically * pmb.flasher.frontend: Use elif instead of repeated if
-
1.53.06d0aa127 · ·
Release 1.53.0 Features: * Speed up 'pmbootstrap checksum' * build: make preferred target arch configurable * kconfig check: Add USB gadget check to community Fixes: * install: write new file instead of modifying locale.sh from alpine-baselayout Other: * pmb.build.init: refactor init marker related code * config: sort config_keys and fix layout
-
1.52.0a8695833 · ·
Release 1.52.0 Features: * pmb.config.init: copy pmaports githooks to default git hooks dir * pmb: Set PMBOOTSTRAP_CMD to argv[0] in environment * pmb.parse.kconfig: Pass background color for menuconfig * install/partition: set esp flag for /boot when using GPT * qemu/run: add support for EFI boot * parse/arguments: add qemu --efi option * install: make cached remote repositories available on first install * install: run alpine-appstream-downloader if available * qemu: warn that network won't work with ui=none * config: Add BINFMT_ELF and BINFMT_SCRIPT * pmb.config: mount go caching directories Fixes: * build: support new abuild.conf path * envkernel.sh: building x86 on x86_64 does not require a cross compiler * setup.py: adjust path to pmb.__version__ * pmb.config.pmaports: replace aports split msg * pmb.helpers.other.validate_hostname: allow periods * pmb.parse.kconfig.check: fix writing to list arg * pmb.parse.arguments: don't use python 3.9 feature * pmb.aportgen.device: fix flash method autocomplete * kconfig check: ANDROID_BINDER_IPC_SELFTEST not set * kconfig_options_waydroid: enable PSI * kconfig_options_waydroid: update to android 11 * kconfig check: extract_arch: support riscv64 * kconfig check: extract_version: replace - with _ * pmb.config.apkbuild_attributes: Add _depends_dev * pmb/parse/arch.py: add riscv64 -> riscv to kernel carch mapping * pmb.aportgen.linux: Depend on findutils * pmb.helpers.run: don't pass stdin to output=stdout Other: * Move version to pmb.__version__ * pmbootstrap.py: move all features to pmb:main() * pmbootstrap.py: require at least python 3.7 * Bump min. required Python version to 3.7 * test/test_zzz_keys.py: move from test/test_keys.py * kconfig_options_waydroid: order alphabetically * pmb.build.kconfig: split extract_and_patch_sources * parse.arguments.add_kernel_arg: add nargs param * pmb/build/kconfig.py: rename from menuconfig.py * test: rework kconfig check tests * kconfig check: less errors for non-detailed mode * kconfig check: add --no-details argument * kconfig check: add descriptions to more functions * kconfig check: move check_config_options_set up * kconfig check: drop "necessary_" * kconfig check: config_file -> config_path * kconfig check: remove redundant component lists * pmb.parse.kconfig: remove config_path_pretty * pmb.parse.kconfig.check_option: refactor * pmb.parse.arch: Include comma after last dictionary items * partition_cgpt: use pmb.chroot.apk.install * ci/pytest.sh: check if pmaports dir is clean
-
1.51.03ad159f9 · ·
Release 1.51.0 Features: * pmbootstrap init: don't allow 'root' as username * check_binfmt_misc: print more helpful error * pmb.build.other: do not copy leftover abuild dirs Fixes: * qemu: ssh hostfwd on 127.0.0.1 instead of 0.0.0.0 * pmb.qemu.run: fix 3d accel on amd64 Other: * Bump copyright to 2023
-
1.50.0757d2a0b · ·
Release 1.50.0 Features: - pmb.parse.kconfig: add wireguard, filesystems & more to community check - pmb.parse.kconfig: don't enforce non-core checks for testing devices - pmb ci: add --fast argument Fixes: - pmb: sideload: wait for apk database lock - flasher: heimdall: take depends from pmaports.cfg - pmb ci: fix arg desc for --all - pmb ci: error on using --all with script names - pmb.qemu.run: stop forcing bios for riscv64 - pmb ci: fix typo in URL Other: - CI: fix typo in pmOS CI url
-
1.49.06f45a5d5 · ·
Release 1.49.0 Features: * build: envkernel: support packaging kernels that were built on the host (MR 2175) * pmb.parse.build: mention host compiled kernels in envkenel help (MR 2175) * pmb: enable riscv64 architecture (MR 2215) * pmbootstrap log: show testsuite log too * pmbootstrap ci: new command * pmb.qemu.run: support riscv64 * envkernel: add dependencies for running 'make dtbs_check' Fixes: * pmb.config: add missing pmb:kconfigcheck-* for lint (MR 2214) * pmb: build: envkernel: Fix bind mount detection (MR 2217) * pmb.parse.kconfig: fix container check for kernels >= 6.1 (MR 2220) * pmb.parse.kconfig: drop remaining "_rc1" references (MR 2220) * helpers/envkernel.sh: return 0 from fish_compat if --fish is not present (MR 2221) * pmb.parse.kconfig: explicitly add dependency on SWAP * pmb.qemu.run: replace -nic option with -netdev and -device * aportgen: don't fail if binary ver < APKBUILD ver * helpers/envkernel.sh: rename yaml-lint to yamllint * pmbootstrap ci: fix error with deleted files * pmb.config.required_programs: add tar * flasher: fastboot: take depends from pmaports.cfg Other: * CI: replace gitlab CI with sourcehut CI * CI: add note about running scripts locally * README: remove outdated information * README: add line breaks * README: update development section * README: add new line * README: add link to issues * README: add ML subscribe link * build.yml: add missing sources line * README: Document git commands for setting the git-send-email defaults * b4-config: new file * b4-config: linkmask: encode < and > chars * CI: flake8: remove ignore for W605 * pmb.flasher.init.install_depends: new function Between this release and the previous one, pmbootstrap.git was migrated to sourcehut: https://gitlab.com/postmarketOS/pmbootstrap/-/issues/2181
-
1.47.0dac8b277 · ·
Release 1.47.0 Features: * pmb.helpers.run: only pass stdin where useful (MR 2197) * pmb: sideload: Handle ssh_install_apks() errors (MR 2195) * pmb.chroot.root: preserve proxy environment variables (MR 2201) * pmb.config.apkbuild_package_attributes: + triggers (MR 2202) * pmb.parse.kconfig: add 'community' option (MR 2204) * pmb.config.apkbuild_attributes: Add _pkgbase and _pkgsnap (MR 2208) Fixes: * Fix wrong output of pmbootstrap bootimg_analyze (MR 2198) * aportgen binutils: modernize (MR 2199) * pmb.parse.kconfig: fix containers check for x86 (MR 2204) * pmb.aportgen.gcc: remove isl from depends (MR 2203) * pmb.aportgen.gcc: set libgcc=false (MR 2203) * pmb.aportgen.gcc: add subpkg libstdc++-dev-$arch (MR 2207) Other: * treewide: fix various lint errors (MR 2197) * test/testdata/aportgen: upgrade binutils to 2.39 (MR 2199) * pmb.parse.kconfig: remove apparmor check (MR 2200) * pmb.parse.kconfig: rename anbox check to waydroid (MR 2204) * test_kconfig_check: modify nokia-n900 test (MR 2204) * testdata/gcc: upgrade to 12.1.1_git20220630-r5 (MR 2203) * testdata/gcc: upgrade to 12.2.1_git20220924-r1 (MR 2208)
-
1.46.08d736c5f · ·
Release 1.46.0 Features: - pmb.parse.bootimg: Add preliminary support for header v2 (MR 2194) - pmb.aportgen.device: Generate appropriate header v2 deviceinfo (MR 2194) - pmb.aportgen.linux: Install DTBs on header v2 (MR 2194) Fixes: - helpers/envkernel.sh: disable ccache (MR 2189) - Revert "helpers/envkernel.sh: add gawk when initialising chroot (MR 2186)" (MR 2188) - pmb.qemu.run: drop removed depedency (MR 2196) Other: - test: Add boot.img header v2 testcase (MR 2194)
-
1.45.0e527a159 · ·
Release 1.45.0 Features: * Rename Chrome OS kernel partition to pmOS_kernel (MR 2187) Fixes: * pmb.config.init: fix init when work path is an empty directory (MR 2192) * pmb/export: Fix Odin export filenames (MR 2191) * pmb/config: vndbinder ANDROID_BINDER_DEVICE is required for Waydroid (MR 2190) * pmb: flasher: frontend: don't fail if kernel config cannot be found (MR 2184) * pmb.chroot.apk.install: fix empty install messages (MR 2185) * pmb.chroot.apk.install: let apk figure out depends (MR 2185) Other: * helpers/envkernel.sh: add gawk when initialising chroot (MR 2186) * pmb.chroot.apk.install: move pkgname sanitization (MR 2185) * pmb.chroot.apk.packages_split_to_add_del: new func (MR 2185) * pmb.chroot.apk.install_run_apk: new func (MR 2185) * pmb.chroot.apk.install: move empty packages check (MR 2185) * pmb.chroot.apk.install_{is_necessary -> build} (MR 2185) * pmb.chroot.apk.install: rename to{add,del} vars (MR 2185) * pmb.chroot.apk.install: update func desc (MR 2185)
-
1.43.06fbe916e · ·
Release 1.43.0 Features: - pmb.config, pmb.install: add option to handle Samsung sparse image format (MR 2177) - pmb.parse.kconfig: print a helpful error message on invalid kconfig name (MR 2172) - config: allow using flash_lk2nd with heimdall too (MR 2174) - pmb.parse.kconfig: implement UEFI kconfig check (MR 2169) - pmb.parse.arguments: add zap --all flag (MR 2117) Fixes: - partitions_mount: fix finding the partition (MR 2178) - pmb.install: Treat empty "flash_sparse_samsung_format" as disabled (MR 2180) - config: Move ASHMEM into conditional (MR 2176) - install: fix alignment of information messages (MR 2174) - helpers/envkernel.sh: use "$pmbootstrap" in cross_compiler_version() (MR 2173) - pmb.parse.kconfig.check_file: fix broken f-string (MR 2169) - config: Move NFT_COUNTER into conditional (MR 2171) Other: - test_kconfig_check: note: don't add device tests (MR 2169)