Skip to content
Snippets Groups Projects
  1. Aug 10, 2018
    • Oliver Smith's avatar
      pmb: qemu-user-static from aport, not from Debian · 68e1feef
      Oliver Smith authored
      Overview:
      In order to execute foreign arch binaries on the host system, we are
      using the Linux kernel's binfmt_misc feature in combination with
      static builds of QEMU. Before this patch, the statically compiled
      QEMU binaries were taken from Debian (mostly because I did not realize
      that Alpine ships them as well). Now we can use the ones from the aport.
      
      Benefits:
      This allows us to easily update and patch the QEMU executables, we
      don't need to be in sync with Debian's versions anymore.
      
      Alpine's package is more modular, so we can save some download,
      install, zap time, as well as disk space: setting up an armhf chroot
      with pmbootstrap took ~102 MB before, now it's ~18 MB.
      
      Detailed changes:
      * Remove `cross/qemu-user-static-repack` aport
      * Add `data/qemu-user-binfmt.txt` with the binfmt_misc flags for ELF
        binaries of various arches (extracted from Debian's packaging)
      * When parsing that file, don't write verbose messages to
        `pmbootstrap log` anymore, only to the verbose log (can be enabled
        with `pmbootstrap -v`)
      * Rename `pmb.parse.arch.alpine_to_debian()` to ...`alpine_to_qemu()`
      * Rename `arch_debian` to `arch_qemu`
      68e1feef
  2. Aug 02, 2018
  3. Aug 01, 2018
  4. Jul 30, 2018
  5. Jul 29, 2018
  6. Jul 28, 2018
  7. Jul 26, 2018
    • Oliver Smith's avatar
      pmb: unsupported arch: link to wiki page · f7558620
      Oliver Smith authored
      The old message was outdated and incomplete, added a link to this wiki
      page instead: <https://postmarketos.org/newarch>
      f7558620
    • Xinayder's avatar
      bc7f6ba7
    • Oliver Smith's avatar
      pmb: flasher: require action argument · b0d4244b
      Oliver Smith authored
      With this patch, "pmbootstrap flasher" will fail with "the following
      arguments are required: action_flasher". Without it, it just prints
      "Done" and quits.
      b0d4244b
    • Oliver Smith's avatar
      pmb: adjust to distcc 3.3 and wrap it with sshd · 4844719b
      Oliver Smith authored
      Overview:
      Since Alpine updated to distcc 3.3 last week, pmbootstrap wasn't able to use
      distcc for cross compilation anymore. It always falled back to running the
      compiler in QEMU (which works, but is a lot slower). The reason for that is,
      that distcc requires all compilers that are being used in a whitelist now.
      
      This partially fixes CVE-2004-2687 in distccd, which allowed trivial remote
      code execution by any process connecting to the distccd server. We only run
      distccd on localhost, but still this can be used for privilege escalation of
      sandboxed processes running on the host system (not part of pmbootstrap
      chroots).
      
      Because the CVE is only partially fixed (see the comment in
      `pmb/chroot/distccd.py` for details), we make sure that only the building
      chroots can talk to the distcc server by running distcc over ssh.
      
      Details:
      * Completely refactored `pmb/chroot/distccd.py` to run distcc over ssh
        * Store the running distcc server's arguments as JSON now, not as INI
      * Make debugging distcc issues easy:
        * Set DISTCC_BACKOFF_PERIOD=0, so the distcc client will not ignore the
          server after errors happened (this masks the original error!)
        * New pmbootstrap parameters:
          * `--distcc-nofallback`: avoids falling back to compiling with QEMU and not
      	   throwing an error
      	* `--ccache-disable`: avoid ccache (when the compiler output is cached,
      	  distcc does not get used)
        * `--verbose` prints verbose output of the distcc too
        * New test case, that uses the new pmbootstrap parameters to force
      	compilation through distcc, and shows the output of distcc and distccd in
      	verbose mode on error (as well as the log of sshd)
      4844719b
  8. Jul 25, 2018
    • Oliver Smith's avatar
      test/aports: detect linux-firmware-* in depends · d648794f
      Oliver Smith authored
      All firmware packages go into subpackages nowadays, so we have them
      optional. The `test/test_aports.py` file has a test case, that makes
      sure that there are no firmware packages in the `depends` of a device
      package. So far we have only checked for `firmware-*` and
      `linux-firmware`, this commit makes it check for `linux-firmware*` as
      well.
      
      In addition, the URL displayed in the "Please use kernel subpackages"
      message has been fixed (points to devicepkg instead of deviceinfo now).
      d648794f
    • Oliver Smith's avatar
      Don't uninstall depends when build --strict fails · 2399cbb3
      Oliver Smith authored
      Alpine's `abuild` will uninstall all dependencies by default, when a
      package build fails.
      
      Leaving this configuration unchanged leads to unexpected behavior with
      pmbootstrap: when executing `pmbootstrap build --strict` and pressing
      `^C` during the build, pmbootstrap will stop, but an `apk` process
      will be started in the background to remove the dependency packages.
      
      Running `pmbootstrap shutdown` at this time will not work, because the
      `apk` process is still running.
      
      With this commit, dependencies don't get cleaned up from the chroots.
      2399cbb3
    • Ashymad's avatar
      Add support for Samsung SIII mini VE (gt-i8200) · 4d770cee
      Ashymad authored
      4d770cee
  9. Jul 24, 2018
  10. Jul 22, 2018
  11. Jul 17, 2018
  12. Jul 15, 2018
    • Oliver Smith's avatar
      s/system partition/rootfs: fix remaining mentions · 0d7802d7
      Oliver Smith authored
      Follow-up to !1373, where `pmbootstrap flasher flash_system` was
      replaced with `pmbootstrap flasher flash_rootfs`. We still had used
      terms like "system partition" in a lot of places.
      
      This commit replaces it everywhere, so it's clear that we're talking
      about the pmOS rootfs (which may or may not be installed to Android's
      system partition).
      Unverified
      0d7802d7
    • Oliver Smith's avatar
      pmb: fix test suite not running through twice · cca5c9aa
      Oliver Smith authored
      The test suite needed a `pmbootstrap shutdown` after running through,
      before it could successfully run again.
      
      Explanation:
      This was caused by `test/test_pkgrel_bump.py`, which creates a
      temporary work folder with every subfolder ("chroot_native",
      "cache_apk_x86_64", ...) linked to the original work folder except for
      the "packages" folder. At the end of the test case,
      `pmbootstrap shutdown` gets executed and is expected to umount
      everything as usual. But it does not umount anything because of the
      symlinks, so `work/chroot_native/mnt/pmbootstrap-packages` points to
      the fake packages folder of that test case, even after it is finished.
      
      As a result, any test case that tries to access the packages folder in
      the native chroot, will fail until `pmbootstrap shutdown` gets called.
      
      Detailed Changes:
      * Umount all folders inside the work folder, even if these are symlinks
      * Remove obsolete reference to "disable timestamp based rebuilds" in a
        comment in `test/test_pkgrel_bump.py`
      * Run `pmbootstrap work_migrate` and `pmbootstrap shutdown` at the
        beginning of `test/testcases_fast.sh`, in case the pkgrel_bump test
        case was aborted before it could properly shutdown and to make it
        more robust in general (user may have changed the mountpoints, work
        folder may need to be migrated)
      cca5c9aa
    • Oliver Smith's avatar
      Testsuite: fail after first error · 0adc6a1f
      Oliver Smith authored
      This makes debugging much easier, because the relevant log messages
      before the crash can always be found at the bottom of the log files,
      and not somewhere in the middle.
      0adc6a1f
  13. Jul 14, 2018
  14. Jul 13, 2018
  15. Jul 11, 2018
Loading