abuild merge requestshttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests2024-02-02T02:44:23Zhttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/243apkbuild-cpan.in: Improve the script, reduce issues and special cases2024-02-02T02:44:23ZTimothy Leggeapkbuild-cpan.in: Improve the script, reduce issues and special caseshttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/223checkapk: Check how many packages depend on a previous soname2024-01-28T12:49:06ZSören Tempelcheckapk: Check how many packages depend on a previous sonameSince the changeset committed by psykose a while ago in commit
26118d49973636d34cb905965ab3a285fa3e646d we now extract the
previous soname. We can pass this previous soname to `apk search -R`
to figure out how many packages are linked ag...Since the changeset committed by psykose a while ago in commit
26118d49973636d34cb905965ab3a285fa3e646d we now extract the
previous soname. We can pass this previous soname to `apk search -R`
to figure out how many packages are linked against this old soname.
I believe this to be useful for reviewing MRs since the checkapk
output will directly tell us if a contributor has missed rebuilds.
It will also inform us when no rebuilds are necessary, e.g. if the
SONAME was changed but no packages is linked against the library.
Example output for `main/libsodium`:
```
>>> Size difference for libsodium: 336 KiB -> 340 KiB
--- filelist-libsodium-old 2023-09-22 11:24:54.799204225 +0200
+++ filelist-libsodium-new 2023-09-22 11:24:54.799204225 +0200
@@ -1,5 +1,5 @@
.PKGINFO
usr/
usr/lib/
-usr/lib/libsodium.so.23
-usr/lib/libsodium.so.23.3.0
+usr/lib/libsodium.so.26
+usr/lib/libsodium.so.26.1.0
SODIFF:
-usr/lib/libsodium.so.23.3.0: SONAME libsodium.so.23
+usr/lib/libsodium.so.26.1.0: SONAME libsodium.so.26
REBUILDS:
*** 36 packages linked against 'libsodium.so.23' need to be rebuild!
```
I think this might be a good addition to the SODIFF output, this is just a suggestion though if others believe the SODIFF output to be enough then we don't need to merge this :)https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/228speed up abuild cleanoldpkg test, add test for checkapk2023-10-18T09:38:42ZNatanael Copaspeed up abuild cleanoldpkg test, add test for checkapkskip various steps when buliding the package.skip various steps when buliding the package.https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/227tests: add another test for abuild deps2023-10-17T20:32:10ZNatanael Copatests: add another test for abuild depsTest that passing only `CHOST=... abuild deps` works as expectedTest that passing only `CHOST=... abuild deps` works as expectedhttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/226tests: test checkdepends2023-10-17T20:05:50ZNatanael Copatests: test checkdependsverify that checkdepends is pulled in when it should and not installed
when it shouldn't.verify that checkdepends is pulled in when it should and not installed
when it shouldn't.https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/225tests: add test for abuild dep2023-10-17T19:52:25ZNatanael Copatests: add test for abuild depverify that makedepends_build and makedepends_host works as expected.verify that makedepends_build and makedepends_host works as expected.https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/224ci: build with clang and scan-build2023-10-17T16:33:52ZNatanael Copaci: build with clang and scan-buildref: https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10102ref: https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10102https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/150abuild: simplify finding repo_template2023-10-17T14:02:21ZPatrycja Rosaalpine@ptrcnull.meabuild: simplify finding repo_templaterelated to #10069, this keeps the original behaviour when
running in aports and allows for using rootbld in other package repositoriesrelated to #10069, this keeps the original behaviour when
running in aports and allows for using rootbld in other package repositorieshttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/222Actually set values for libcpp hardening macros2023-10-03T11:59:27ZjvoisinActually set values for libcpp hardening macrosOtherwise, it wouldn't do much…Otherwise, it wouldn't do much…https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/220apkbuild-pypi.in: suppress some warnings2023-08-30T05:52:21Zsudotacapkbuild-pypi.in: suppress some warningsAccording to [the coding style of aports](https://gitlab.alpinelinux.org/alpine/aports/-/blob/6dfcbcf81ce0a727a7f84d85513e592647d4795e/CODINGSTYLE.md#command-substitution), `$()` is preferred over backticks, so fixed it.
[Perl's smartma...According to [the coding style of aports](https://gitlab.alpinelinux.org/alpine/aports/-/blob/6dfcbcf81ce0a727a7f84d85513e592647d4795e/CODINGSTYLE.md#command-substitution), `$()` is preferred over backticks, so fixed it.
[Perl's smartmatch is deprecated in 5.37.10 and will be removed in 5.42.0](https://perldoc.perl.org/perldeprecation#Smartmatch), so replaced it with if/elif.
It will be a little bit uglier than before, but I think it is the only way to be backwards compatible.https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/221Enable more hardening for libcpp2023-08-30T05:45:37ZjvoisinEnable more hardening for libcpp- `_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS`: This macro is used to enable [`-Wthread-safety` annotations](https://clang.llvm.org/docs/ThreadSafetyAnalysis.html) on libc++’s `std::mutex` and `std::lock_guard`.
- `_LIBCPP_ENABLE_HARDENED_...- `_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS`: This macro is used to enable [`-Wthread-safety` annotations](https://clang.llvm.org/docs/ThreadSafetyAnalysis.html) on libc++’s `std::mutex` and `std::lock_guard`.
- `_LIBCPP_ENABLE_HARDENED_MODE` to enable the [hardened mode](https://libcxx.llvm.org/Hardening.html):
> The hardened mode enables a set of security-critical assertions that prevent undefined behavior caused by violating preconditions of the standard library. These assertions can be done with relatively little overhead in constant time and are intended to be used in production.https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/218fix typo (apkbuild-cpan)2023-07-07T20:53:56ZIztok Fister Jr.fix typo (apkbuild-cpan)minor typo fixminor typo fixhttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/156abuild: set cache directories to a temporary directory if MOVE_CACHES is set2023-06-28T18:35:13ZPatrycja Rosaalpine@ptrcnull.meabuild: set cache directories to a temporary directory if MOVE_CACHES is setthis allows for isolating cache directories per packagethis allows for isolating cache directories per packagehttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/217newapkbuild: do not expand $CTARGET2023-06-22T14:21:14ZCow Cowcowingtonpost@gmail.comnewapkbuild: do not expand $CTARGEThttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/106Fix newapkbuild generating wrong URL2023-06-22T04:12:03ZRodrigo LourençoFix newapkbuild generating wrong URLWhen giving GitHub URLs like
https://github.com/USER/REPO/archive/refs/tags/TAG.tar.gz
Strip away the /refs/tags part so a valid URL is generated.
Fixes #10034.When giving GitHub URLs like
https://github.com/USER/REPO/archive/refs/tags/TAG.tar.gz
Strip away the /refs/tags part so a valid URL is generated.
Fixes #10034.https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/136abuild: fix completions to vendor dir, warn on incorrect dir2023-06-22T04:10:31ZJakub Panekabuild: fix completions to vendor dir, warn on incorrect dirVendor completions (completions made/generated by packages) should be contained in `/usr/share/fish/vendor_completions.d` as per https://fishshell.com/docs/current/completions.html#where-to-put-completions:
> - A directory for third-p...Vendor completions (completions made/generated by packages) should be contained in `/usr/share/fish/vendor_completions.d` as per https://fishshell.com/docs/current/completions.html#where-to-put-completions:
> - A directory for third-party software vendors to ship their own completions for their software, usually `/usr/share/fish/vendor_completions.d`
> - The completions shipped with fish, usually installed in `/usr/share/fish/completions`;
>
> [...]
> If you are developing another program and would like to ship completions with your program, install them to the "vendor" completions directory. As this path may vary from system to system, the pkgconfig framework should be used to discover this path with the output of `pkg-config --variable completionsdir fish`.
Completions should not be installed into `/usr/share/fish/completions` as they will collide with completions shipped by fish (which already happened for few packages).
Signed-off-by: Jakub Panek <me@panekj.dev>https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/211abuild: simplify et_dyn/et_exec check2023-06-22T04:07:59ZGhost Userabuild: simplify et_dyn/et_exec checkhttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/212abuild: unset option variables to prevent environment leaking in2023-06-22T03:37:05ZDimitry Andricdimitry@unified-streaming.comabuild: unset option variables to prevent environment leaking inIn abuild's getopts loop, option variables such as "keep", "verbose",
etc are only set if the corresponding option is found. If such an option
is *not* found, any environment variable with the same name will leak
in, instead. Prevent thi...In abuild's getopts loop, option variables such as "keep", "verbose",
etc are only set if the corresponding option is found. If such an option
is *not* found, any environment variable with the same name will leak
in, instead. Prevent this by explicitly unsetting almost all of them.https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/216sample.*: improve sample init script2023-06-21T23:09:17ZJakub Jirutkasample.*: improve sample init scripthttps://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/215abuild: refactor duplicate python detection to not use find(1)2023-06-15T12:54:36ZGhost Userabuild: refactor duplicate python detection to not use find(1)the previous implementation used -regex, which is subtly different between busybox and findutils
`[0-9]\+` matches on busybox, but doesn't match with gnu findutils
`[0-9]+` matches with findutils, but doesn't match on busybox
this me...the previous implementation used -regex, which is subtly different between busybox and findutils
`[0-9]\+` matches on busybox, but doesn't match with gnu findutils
`[0-9]+` matches with findutils, but doesn't match on busybox
this means python deps were subtly broken when findutils was installed
(sometimes pulled via makedeps) vs not