1. 07 Oct, 2021 4 commits
    • Kevin Daudt's avatar
      tests: set APORTSDIR for abuild tests · 12ba0a14
      Kevin Daudt authored
      If `APORTSDIR` is not set, abuild tries to find it. One way it does this
      is by trying to look at the url for the git remote 'origin'. This fails
      either if there is no git repository, or the git repository has no
      remote called 'origin'.
      
      Instead of having abuild guess the location, provide it by exporting
      APORTSDIR.
      12ba0a14
    • Kevin Daudt's avatar
      ci: add job to run tests · d4af7cd4
      Kevin Daudt authored
      This uses the alpinelinux/abuild-ci image to run the test suite, which
      has all the required dependencies already installed.
      d4af7cd4
    • Natanael Copa's avatar
      abuild: make sure to not get colors in git_last_commit · 1c00caad
      Natanael Copa authored
      git log may return color codes if users colored output forcibly enabled
      with:
      
      [color]
      	ui = always
      
      Use `git rev-list` instead of `git log` to make sure that we don't get
      any color codes.
      
      fixes #10042
      1c00caad
    • Natanael Copa's avatar
      tests: enable colors in git config · 3d9918f1
      Natanael Copa authored
      Force colors in git config so we can test that we don't get color codes
      in our last commit.
      
      ref #10042
      3d9918f1
  2. 27 Sep, 2021 2 commits
  3. 21 Sep, 2021 3 commits
  4. 20 Sep, 2021 1 commit
  5. 10 Jun, 2021 8 commits
  6. 14 May, 2021 3 commits
  7. 06 May, 2021 8 commits
    • Leo's avatar
      tests(abuild): test whether pyX.Y providers work · 2ed215fa
      Leo authored
      2ed215fa
    • Leo's avatar
      feat(abuild): add support for pyX.Y providers · ac3ee424
      Leo authored
      
      
      Now all python packages that install python modules under
      /usr/lib/pythonX.Y/site-packages will have a provider that indicates
      their MAJOR (X) and MINOR (Y) versions.
      
      pyX maps to the MAJOR version of the package, its objective is to allow
      users to quickly install a python module without having to search around
      for the correct package, doing `apk add py3.9:foo` will install whatever
      packages provides the foo module.
      
      The directories checked only go one level deep, so
      '/usr/lib/python3.9/site-packages/date' will generate
      py3:date=$pkgver-r$pkgrel.
      
      files ending with .py also count and are added with their .py prefix
      stripped away. so '/usr/lib/python3.9/site-packages/six.py' will
      generate py3:six=$pkgver-r$pkgrel.
      
      The reason for doing this is the same as creating pc:, so: and cmd:, it
      is more reliable and robust to depened on what we known of what the package
      provides than to try to guess via the pkgname.
      Co-authored-by: Chloe Kudryavtsev's avatarChloe Kudryavtsev <toast@toast.cafe>
      ac3ee424
    • Natanael Copa's avatar
      ==== release 3.8.0_rc2 ==== · d3845277
      Natanael Copa authored
      d3845277
    • Gray Wolf's avatar
      Set non-zero size if there are any files in the package · 29557a4a
      Gray Wolf authored and Natanael Copa's avatar Natanael Copa committed
      If there are only empty files in the pkgdir, on some filesystems
      (discovered on btrfs), du might return 0 for the sum size of the files.
      But apk-tools considers packages with size = 0 to be virtual and skips
      extraction of any files contained.
      
      To work around that (until it is resolved in apk-tools 3), settings the
      size to 1 when it is zero AND some files are present should work fine.
      29557a4a
    • Natanael Copa's avatar
      tests: abuild-keygen: test PACKAGER set · 5f15ae83
      Natanael Copa authored
      5f15ae83
    • Natanael Copa's avatar
      tests: abuild-keygen: create a fake git · b4816004
      Natanael Copa authored
      test what happens when git has no user.email configured
      b4816004
    • Tom Lebreux's avatar
      e520288d
    • Natanael Copa's avatar
      abuild-fetch: simplify and fix locking · 3da770ce
      Natanael Copa authored
      Simplify locking by using lockf(3). It is POSIX compatible and should
      work over NFS.
      
      Fix download race condition when:
      1) host A creates lockfile and aquire lock to fetch from distfiles
         mirror
      2) host B opens the lockfile and waits for lock
      3) host A gets 404 from distfiles, releases lock and deletes the
         lockfile, which host A has an open file handle for
      4) host B gets lock of the deleted file and downloads file
      5) host A retries download and creates a new lockfile, but is not
         blocked by host B, even if it should
      
      Solve this by releaseing the lock, give the other processes a chance
      to aquire it (using sleep(0)), and then only delete the lockfile if:
      a) download was successful (no 404) or b) no-one else has a lock.
      
      This reverts commit 281720ec (abuild-fetch: aquire a second lock
      using flock(2))
      
      fixes #10026
      3da770ce
  8. 05 May, 2021 2 commits
  9. 30 Apr, 2021 5 commits
  10. 29 Apr, 2021 4 commits