Commit Graph

155 Commits

Author SHA1 Message Date
Martchus f7272c0836 Adapt makechrootpkg invocation to change in devtools-custom 2024-03-16 22:36:00 +01:00
Martchus 4017d50a20 Fix locking when removing packages from source repository 2024-03-07 00:53:10 +01:00
Martchus 56ee1325f0 Add "AUR-only" flag for "Prepare build" action
This might be useful to avoid accidentally rebuilding a package with a
local/custom override withiout actually updating the custom PKGBUILD.
2024-02-11 17:40:28 +01:00
Martchus 9150d90233 Fix handling of "Use container" flag for the "Prepare build" action 2024-02-09 23:09:38 +01:00
Martchus 4e141f7a04 Avoid misleading name of lock variable 2023-12-21 20:54:16 +01:00
Martchus 5d5b673b3c Improve updating package database when loading library dependencies
* Make use of `PackageUpdater` more efficient by avoiding multiple calls of
  `addDepsAndProvidesFromOtherPackage`
* Fix leaving old provides in the database by splitting the update via new
  `beginUpdate()` and `endUpdate()` functions
2023-12-21 20:51:38 +01:00
Martchus 0d4b6c1ad0 Fix build preparation when an empty dependency is present 2023-12-02 20:35:44 +01:00
Martchus edd78667c5 Allow configuring retention for build actions 2023-11-23 18:49:43 +01:00
Martchus 24e2ec0136 Fix reporting an error during build preparation as such 2023-11-22 21:50:45 +01:00
Martchus bf67d1914d Allow using `repo-add`/`repo-remove` from container in repo management actions 2023-11-09 13:48:57 +01:00
Martchus 60a477af99 Keep setup lock while checking executables
In the error case we use the fields from `m_setup.building` so the lock
needs to be kept.
2023-11-09 13:46:47 +01:00
Martchus 72d1999e72 Fallback to using `updpkgsums`/`repo-add` from container for containerized builds
If those tools are not installed on the host but we use `makecontainerpkg`
anyways for the build we might as well use it to run these additional tools
as well.
2023-11-08 17:27:46 +01:00
Martchus 10e86c759c Avoid running into exception when checking whether executable exists
When we cannot even check whether the executable exists we can just assume
it doesn't.
2023-11-08 17:26:04 +01:00
Martchus e108c98826 Apply clang-format 2023-11-08 17:25:18 +01:00
Martchus c31027fc7f Pass `PKGNAME` to `makecontainerpkg` to avoid sourcing PKGBUILD again 2023-11-08 16:08:54 +01:00
Martchus 1a4b9282d2 Allow using `makecontainerpkg` in prepare action 2023-11-08 15:09:42 +01:00
Martchus 0acbc2d193 Avoid resetting updated version if the package has already been built 2023-09-04 21:20:10 +02:00
Martchus 61756023db Fix accidentally adding an old package version to the repository
Ensure updated version from previous run is cleared
2023-09-04 21:06:38 +02:00
Martchus 91ee500b0a Show amended upstream version correctly 2023-09-03 22:09:28 +02:00
Martchus c816972a16 Avoid having to rely on `pkgver()` yielding a newer version for VCS packages
Bump pkgver/pkgrel of VCS packages. This should help with case (1) and
should not interfere with case (2).

(1) If the pkgver does not change after all then makepkg leaves the bumped
    pkgrel untouched.
(2) If the pkgver does change then makepkg will reset the bumped pkgrel and
    it is as if we haven't changed anything.
2023-09-03 14:29:04 +02:00
Martchus 524b16815a Do basic sanity check of a package's most important fields when checking for problems 2023-06-03 18:49:02 +02:00
Martchus 1376a01570 Allow fetching official PKGBUILDs from GitLab
The old approach of using a local checkout does not work anymore
after the Git migration. One could use
`pkgctl repo clone --universe` to get a similar checkout but this
takes ages on my server. So let's better just download the
individual sources as needed, similar to how it is done for AUR
packages.
2023-05-28 23:43:13 +02:00
Martchus 72d449977f Fix note about deleted build actions in cleanup action 2023-05-28 20:37:45 +02:00
Martchus 55e19d9041 Relax condition for adding `--skippgpcheck`
The `signed` parameter might be used like this:
```
"$pkgname::git+https://github.com/ankitects/anki#tag=${_tag}?signed"
```
So we can't rely on `.git` preceding it.
2023-04-08 19:26:46 +02:00
Martchus cce83f1f9e Allow considering pulling-in further dependencies unexpected
This allows one to review further dependencies if pulled-in automatically
during the build preparation first before conducting the build.
2023-04-08 19:10:59 +02:00
Martchus 86581ec002 Add note in cleanup action stating how many build actions have been deleted 2023-04-08 18:50:46 +02:00
Martchus 5af8de2468 Fix catching exception from `boost::filesystem` in `BuildServiceCleanup` and adapt tests 2023-04-08 18:43:58 +02:00
Martchus 87fd9bb4b1 Fix unqualified calls in `preparebuild.cpp` 2023-04-07 19:30:08 +02:00
Martchus 00edfed48b Improve error handling in `BuildServiceCleanup` 2023-04-07 19:23:13 +02:00
Martchus 836b7da8a3 Invoke `paccache` as part of the build service cleanup 2023-04-07 19:15:16 +02:00
Martchus 08af21ddb5 Fix warnings about unqualified calls in `buildaction.cpp` 2023-04-07 17:55:13 +02:00
Martchus e477613a8b Implement preserving chroot for containerized builds as well
This keeps the container around by passing the `DEBUG´ environment variable
recognized by `makechrootpkg`.
2023-02-03 23:06:43 +01:00
Martchus e5f4dc156c Avoid unqualified call to `std::move` 2023-02-03 21:30:42 +01:00
Martchus 599185d3ae Use async locks when invoking custom command 2023-01-17 23:27:36 +01:00
Martchus 80b5094659 Use async locks in repo actions 2023-01-17 22:20:10 +01:00
Martchus bb9da06950 Use async lock to lock repo when adding package 2023-01-17 22:07:00 +01:00
Martchus 4f413e86ba Allow to abort build action immediately while waiting for chroot locks
* Avoid aborted build actions from being stuck in running state while
  waiting until the chroot locks can be acquired; allow aborting action
  immediately instead
* Use async locks when invoking makechrootpkg and split affected function
  accordingly
2023-01-17 18:40:05 +01:00
Martchus b8f211e1d1 Make functions to invoke build async 2023-01-17 18:40:05 +01:00
Martchus 218e1f6b17 Add simple cleanup of old build actions 2022-11-24 21:33:42 +01:00
Martchus 962dd0088e Fix computing source package name
The `packageName` (key in build preparation) might not actually be
`pkgbase` when rebuilding a binary package and `pkgbase` changes compared
to what it was in the before. Then `packageName` is still set to the old
`pkgbase` and we need to use the name from the actual source info (which is
the name `pkgbase` value).
2022-11-13 22:09:44 +01:00
Martchus a205ffae38 Fix adding last package of current batch already to staging repository 2022-09-20 23:00:36 +02:00
Martchus aece080986 Pass sudo password and GPG passphrase from encrypted file
Not tested yet; so far just an idea to make everything at least a little
more secure
2022-07-25 21:48:24 +02:00
Martchus 255da5b091 Allow passing secrets to build action 2022-07-11 23:33:28 +02:00
Martchus 1e7e604917 Fix skipping package build due to failed dependency
Skip package as expected when a dependency failed that was attempted to be
built as last package of the previous batch (and building as far as
possible is enabled).
2022-07-01 19:27:39 +02:00
Martchus 6c1782ba42 Apply clang-format 2022-06-28 16:08:53 +02:00
Martchus 0e3be7ce69 Fix conduct build action from getting stuck when configuring chroot fails
by moving the creation of the process session below configuring the chroot
2022-06-27 12:49:47 +02:00
Martchus 0a536a992a Fix missing include for std::ifstream 2022-06-15 23:31:14 +02:00
Martchus 3b150428ae Allow building with `makecontainerpkg` 2022-06-12 20:42:14 +02:00
Martchus c155176098 Fix missing build date in package search
* Avoid using buildDate of PackageInfo in favor of the same field in
  PackageBase
    * PackageInfo::buildDate should be removed on the next breaking change
* Do not really use the deprecated attribute because it is still used by
  (de)serialization code until it is removed for good
2022-06-08 22:44:58 +02:00
Martchus 55c7c62c7c Speed up returning build actions table by avoiding deserializing whole obj 2022-05-31 20:54:02 +02:00