Commit Graph

1751 Commits

Author SHA1 Message Date
psykose 4e4e005530 ==== release 3.11.5 ==== 2023-06-03 12:56:21 +02:00
Sören Tempel e2ab6219d3 abuild: Warn if -doc subpackage exceeds a certain threshold
In the warning, suggest splitting the -doc subpackage into additional
smaller packages (which are not pulled in by the `docs` meta package).

Fixes https://gitlab.alpinelinux.org/alpine/tsc/-/issues/16
2023-06-03 10:55:12 +00:00
psykose a787a9c9c1 ==== release 3.11.4 ==== 2023-06-01 09:32:00 +02:00
psykose 0e333003df abuild: downgrade binfmt-registration error to a warning
strictly speaking, it is possible for an x86_64 cpu to run 32-bit
userspace binaries without qemu emulation. it is also possible for an
aarch64 cpu to run armhf/armv7 binaries (as long as the cpu implements
it, most do). rather than check for every possible combination of when
this is allowed (host cpu + emulated target, does cpu support it, ...),
just downgrade this case to a warning, to permit non-emulated use.

ref https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/117#note_255174
2023-06-01 09:29:59 +02:00
psykose fdf1a3a6fb ==== release 3.11.3 ==== 2023-06-01 06:15:46 +02:00
psykose 44c933da5d default.conf: enable _GLIBCXX_ASSERTIONS
these have a slight runtime hit (like fortify-source), but help find
bugs early, by making programs crash on invariants that would corrupt
memory and lead to hard to debug crashes/bugs later.
2023-06-01 04:14:58 +00:00
psykose 861e21fab2 default.conf: kill cppflags
these are mostly useless and redundant given the other flags. all they
do is spam more flags onto every invocation line- things don't "only"
pass cppflags for anything in the general case.
2023-06-01 04:14:58 +00:00
psykose 59caf9e11e checkapk: handle + in pkgname
the pkgname is passed to awk, and + matches in regex, so it fails to
match the actual package name.

closes #10077
2023-06-01 04:13:23 +00:00
psykose 72fa67ca7f abuild: do not use cache in rootbld when cross-building
ref https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10111
2023-06-01 06:11:43 +02:00
psykose eab5926d17 ==== release 3.11.2 ==== 2023-05-26 23:20:46 +02:00
psykose b99565a722 abuild: also set CARCH for rootbld root
otherwise it's set to the default host one, and things that use CARCH in rootbld see the wrong one
2023-05-26 23:19:28 +02:00
psykose fc2f1d628a newapkbuild: make cmake crossopts less aggressive 2023-05-26 00:14:23 +02:00
psykose 96cfde0e88 ==== release 3.11.1 ==== 2023-05-24 02:11:54 +02:00
Natanael Copa c39a988c1b functions: set sharedir properly
fixes loading of default.conf

(applied from aports)

closes #10108
2023-05-24 02:11:12 +02:00
psykose f1d8172827 newapkbuild: don't add python to depends by default
this is already traced by abuild python changes
2023-05-24 02:09:48 +02:00
Lauren N. Liberda bfb88aef29 newapkbuild: add documentation for -e (gpep517 flag) 2023-05-24 00:08:39 +00:00
Lauren N. Liberda a9e06de217 newapkbuild: add gpep517 buildtype 2023-05-24 00:08:39 +00:00
psykose 19d620e8b4 newapkbuild: use cargo-auditable for rust builds 2023-05-20 01:04:12 +02:00
Hugo Osvaldo Barrera 5f500be4c6 abuild.1: add new manpage
This is mostly based on the output of --help.
2023-05-15 18:02:11 +02:00
Hugo Osvaldo Barrera b2b87f8394 newapkbuild.1: fix indentation
There's some extra indentation on the first sections that doesn't match
other man pages and just looks misaligned with the rest of the page.

Example from man:

```
NAME
     man – display manual pages

SYNOPSIS
     man [-acfhklw] [-C file] [-M path] [-m path] [-S subsection]
         [[-s] section] name ...

DESCRIPTION
```

Example from newapkbuild before this patch:

```
NAME
           newapkbuild - generate a new APKBUILD

SYNOPSIS
           newapkbuild options... [pkgname[-pkgver] | source_url]

DESCRIPTION
```

Example for newapkbuild after this patch:

```
NAME
       newapkbuild - generate a new APKBUILD

SYNOPSIS
       newapkbuild options... [pkgname[-pkgver] | source_url]

DESCRIPTION
```
2023-05-15 18:00:52 +02:00
psykose 7bc993400f newapkbuild: fetch --target for rust
this fetches only things for the target triple, so it usually skips e.g.
all the windows crates.
we do this in aports already, in places where it doesn't work we just
unset it.
2023-05-10 15:01:07 +02:00
psykose f810a11cfb newapkbuild: improve default cmake
- -G Ninja because that is always preferred
- remove inferred trailing dot
- use =ON as that is what we usually use most of the time for true/false
- add samurai to makedeps for -G Ninja
- use flatter ctest invocation
2023-05-10 14:57:48 +02:00
Natanael Copa 6576698918 ==== release 3.11.0 ==== 2023-05-09 13:12:34 +00:00
Natanael Copa f2978eb33f abuild-keygen: add support for creating kernel signing key
We need to have a key that can be used to sign kernel modules and
specifically 3rd party kernel modules. Add support for creating this key
in abuild-keygen.

ref: https://gitlab.alpinelinux.org/alpine/aports/-/issues/14873
2023-05-05 13:39:47 +02:00
psykose b5c25f1b62 abuild: use $git in rootbld symbolic-ref
missed git call, compared to the others
2023-04-28 08:42:29 +00:00
psykose 9a61082d8d ==== release 3.11_rc13 ==== 2023-04-21 01:59:45 +02:00
psykose fa3e12f664 default.conf: drop int-conversion error for now
this is a good thing to have and we should reinstate it after 3.18,
however it requires fixing a million things, which is a bit too much for
a sudden release build.

i forgot the implications of this aside from fixing strerror_r and how
much work it was, so put this back after 3.18 branch.
2023-04-21 01:58:26 +02:00
psykose 2c8b0cd1ed newapkbuild: cleanup meson
the jobs are useless because SAMUFLAGS already reads the jobs.
we made a cross file in abuild-meson in aports too.
2023-04-20 18:44:59 +02:00
psykose 9624f202a8 ==== release 3.11_rc12 ==== 2023-04-19 15:28:08 +02:00
psykose 69b3e82296 abuild: .. but silence only errors, not output
fixes previous commit
2023-04-19 15:27:51 +02:00
psykose ff37770904 ==== release 3.11_rc11 ==== 2023-04-19 15:26:17 +02:00
psykose 633353b265 abuild: silence pycache postcheck
otherwise every package prints

 >>> gotosocial-openrc*: Running postcheck for gotosocial-openrc
 find: /builds/raspbeguy/aports/testing/gotosocial/pkg/gotosocial-openrc/usr/lib/python*: No such file or directory

the other postchecks already conditionalise on if [ -d, but we use a wildcard here

no actual package change
2023-04-19 15:26:05 +02:00
psykose 264be38ecd ==== release 3.11_rc10 ==== 2023-04-18 18:37:24 +02:00
psykose 91e6e0b542 abuild: set *-pyc as noarch
the files are noarch themselves
2023-04-18 18:36:23 +02:00
Natanael Copa 0daf4ae637 tests: unset CFLAGS
CFLAGS may be set in the running environment (eg in abuild check)
2023-04-18 15:53:11 +02:00
Natanael Copa 0a129755fd ==== release 3.11_rc9 ==== 2023-04-18 15:42:01 +02:00
Natanael Copa b24bc33446 abuild: warn if pycache is found
and add tests for -pyc package split
2023-04-18 13:27:51 +00:00
Dominique Martinet dd07911cbf abuild: add default_pyc helper
Python by default pre-compiles cache files in __pycache__ directories,
which we currently happily install along in python packages.

Theses .pyc files are rather big and the time/space tradeoff could be
left to users if we just split these out to a -pyc subpackage.

With this default_pyc helper, one can add $pkgname-pyc to their
package's subpackages and it will automatically split off the pyc files
in a package that will be automatically installed if the virtual 'pyc'
package is installed.
Note that this does not work so easily if there already were python
subpackages, the function could be adjusted to strip off the last dash
if required but that seems rather rare.

Random data, sizes:
 - python3: currently 47MiB, split into 23M (main package) / 24M (pyc)
 - py3-markdown: currently 700KiB, 368K (main) / 288K (pyc)

Random benchmark, with python3-pyc:
hyperfine --warmup 5 -m 100 \
    "python3 -c 'import time; print(time.strftime(\"%T\"))'"
  Time (mean ± σ):      24.5 ms ±   2.5 ms    [User: 18.4 ms, System: 6.0 ms]
  Range (min … max):    19.4 ms …  28.9 ms    148 runs

without python3-pyc (same as user without root permissions, root would
generate files on first root, for reference this command generates 184KB
of pyc files):
hyperfine --warmup 5 -m 100 \
    -p 'rm -rf /usr/lib/python3.10/__pycache__ /usr/lib/python3.10/encodings/__pycache__' \
    "python3 -c 'import time; print(time.strftime(\"%T\"))'"
  Time (mean ± σ):      53.7 ms ±   4.3 ms    [User: 39.3 ms, System: 14.3 ms]
  Range (min … max):    47.0 ms …  65.6 ms    100 runs

Link: https://gitlab.alpinelinux.org/alpine/aports/-/issues/11906
Suggested-by: Alex Xu (Hello71) <alex_y_xu@yahoo.ca>
2023-04-18 13:22:14 +00:00
Natanael Copa bb8b1f8dd0 git ignore abulid.conf and fix make clean 2023-04-18 15:14:28 +02:00
Natanael Copa 6008158fb9 default.conf: drop -fomit-frame-pointer
it is implied with -Os where it should.
2023-04-18 13:50:22 +02:00
Natanael Copa 565690da31 make: use install instead of cp 2023-04-18 13:49:04 +02:00
Natanael Copa bbb4fcdd3b Install default config as /usr/share/abuild/default.conf
Split the config a bit so its easier to ship default flags and
maintainer builders.
2023-04-18 13:47:17 +02:00
Natanael Copa a1b672cad2 functions: read default configs from /usr/share/abuild/default.conf
This makes it easier to push default config updates with apk
2023-04-18 13:26:49 +02:00
Natanael Copa fe26e9483b functions: add test for environment preference 2023-04-18 13:15:38 +02:00
Marian Buschsieweke 6806a0d39b abuild: scan for python3 version requirements
Packages installing python3 site packages for python3 in version 3.x.y
depend on python3~3.x. This automatically adds the required
dependencies.

Unit test cases have been added by reusing the `py3-foo-and-bar` test
package. However, the path of that has been renamed to contain spaces
to be extra sure the logic is safe in regrade to spaces in path
names.
2023-04-18 09:26:12 +00:00
Natanael Copa 40ecb4b07c abuild-fetch: try harder to yield
Try a bit harder to let other process aquire lock.

This will hopefully reduce flakiness of testsuite when builder is under
load.
2023-04-18 11:22:54 +02:00
Natanael Copa 6ef57910ab abuild-tar: improve invalid opt handling
make sure we always print usage help text if we have an invalid option.

fixes https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10101
2023-04-17 13:01:05 +02:00
psykose 2d446f094c ==== release 3.11.0_rc8 ==== 2023-04-16 12:32:59 +02:00
Sören Tempel 6864df03aa abuild-rootbld: copy REPODEST value from host to chroot
Otherwise, if a different REPODEST is being used (e.g. due to
`buildrepo -d <repo-dest>`) then the abuild invocation in the
created chroot will not write packages to the correct REPODEST.
Therefore, `buildrepo -R -d` does presently not work correctly.
This commit fixes this by also copying the REPODEST value from
the environment.

This fixes a regression introduced in 1582617eb8.
2023-04-16 14:25:42 +02:00
psykose bbd1185960 ==== release 3.11.0_rc7 ==== 2023-04-16 10:01:10 +02:00