Commit Graph

1427 Commits

Author SHA1 Message Date
Sören Tempel
918b7b1920 abuild: Fix abuild rootbld
Without this change abuild rootbld would fail with:

	touch: invalid date '@'

Because SOURCE_DATE_EPOCH wasn't set when abuild rootbld was used. This
is a bug introduced in 71d9d5233b. Instead
of reverting the aforementioned commit move the SOURCE_DATE_EPOCH
initialization to a custom function and also call it from the abuild
rootbld function.

Fixes #9978
2019-11-14 10:36:33 +01:00
Natanael Copa
51d9e3bcb9 Revert "abuild: make built package reproducible"
The introduction of the --pax-options seems to confuse apk and resulted
in `BAD archive' errors.

This reverts commit f04a2ee34b.
2019-11-07 20:46:36 +00:00
Natanael Copa
95cd15c025 functions.sh: dont die if gcc is missing
abuild-sign does not use gcc.

fixes #9974
2019-11-07 16:02:47 +00:00
Natanael Copa
21dcfb1f21 ==== release 3.5.0_rc1 ==== 2019-11-07 15:39:35 +00:00
Natanael Copa
d8cfcd5dc9 abuild: detect /bin/sh dependency even if shebang has spaces
fixes !7
2019-11-07 15:39:35 +00:00
Fredrik Gustafsson
6d321050e5 Change permissions for sudo to 4555
Currently the permissions for abuild-sudo is set to 4111, this make it
impossible to move the sudo file after it has being created. Moving
the sudo file is needed by yocto when creating an apk-package of abuild.
The sudo binary in debian stretch since if debian does it, it can't be bad.

Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com>
2019-11-07 15:39:35 +00:00
Bart Ribbers
2162348a9a Allow round brackets in the license variable 2019-11-07 15:39:35 +00:00
Natanael Copa
71d9d5233b abuild: get the git commit date only when needed
getting the commit date can be timeconsuming so only do it once we need
it. We also re-use the ABUILD_LAST_COMMIT to speed up the operation.
2019-11-07 14:40:55 +00:00
Natanael Copa
114c0cf287 abuild: rename global last_commit to ABUILD_LAST_COMMIT
rename the global variable to upppercase.
2019-11-07 14:40:55 +00:00
Natanael Copa
1cfbdf688c abuild: fix git_* functions
Add -- to explicitly separate out the file path.

Let git_last_commit_epoch take an option with the hash.
2019-11-07 14:40:55 +00:00
Natanael Copa
f04a2ee34b abuild: make built package reproducible
Flags to make the tarball reproducible is taken from here:
http://h2.jaguarpaw.co.uk/posts/reproducible-tar/
2019-11-07 13:24:43 +00:00
Natanael Copa
672032a4be abuild-sign: dont set timestamp in gzip
This improves reproducibility of builds
2019-11-07 13:23:36 +00:00
Natanael Copa
b80a27b86a abuild-sign: use pigz if available
This is similar to what we do in abuild. It improves performance on
multicore machines.
2019-11-07 13:21:45 +00:00
Natanael Copa
5b34b696d4 abuild: set SOURCE_DATE_EPOCH to last commit date by default
set datestamps to be used in the built packages to date of commit. This
makes it much easier to have reproducible builds.
2019-11-07 12:06:24 +00:00
Natanael Copa
918cba2a77 make: install depends as virtual 2019-11-07 12:02:24 +00:00
Richard Mortier
b3dcf19ef7 make: add depends target
Signed-off-by: Richard Mortier <mort@cantab.net>
2019-11-07 12:01:13 +00:00
Natanael Copa
c486b3b4f3 allow override sharedir for testing
Aloow overrid sharedir with global ABUILD_SHAREDIR so we test the local
functions.sh instead of a system installed functions.sh
2019-11-07 11:42:23 +00:00
Natanael Copa
f3dc428ea0 rename datadir -> sharedir
abuild uses datadir as local variable in various functions. Rename the
global datadir to sharedir to avoid confusion.
2019-11-07 11:42:23 +00:00
Natanael Copa
43fb2c012e add basic tests using bats 2019-11-07 11:32:37 +00:00
Jakub Jirutka
a8f564287e newapkbuild: simplify source URL derived from GitHub URL
GitHub allows to reference https://github.com/<user>/<proj>/archive/<ver>.tar.gz
also as https://github.com/<user>/<proj>/archive/<ver>/<anything>.tar.gz.
2019-10-27 20:35:10 +01:00
Jakub Jirutka
6c3b2e6b58 newapkbuild: run cargo install with --locked
This forces cargo to install the exact versions of the dependencies
specified in Cargo.lock. This is essential for reproducible builds!
2019-10-27 13:50:53 +01:00
Natanael Copa
b09bdddff3 abuild: remove unused print_version function
the function is not used since commit  3379e67551 (abuild: print
version of built package early)
2019-10-01 16:56:47 +00:00
Natanael Copa
511b934182 abuild: add -V for print abuild version 2019-10-01 16:51:21 +00:00
Natanael Copa
66177eb5ec abuild: only set sysconfdir in functions.sh
we set sysconfdir in functions.sh so there is no need to set it in
abuild.
2019-10-01 16:20:53 +00:00
Leo
1c075c2855 Fix package version check on checkapk
The assignment of the oldpkg variable is missing the name of the package
2019-10-01 17:14:36 +01:00
Rasmus Thomsen
05eee44039 newapkbuild: add rust support 2019-10-01 17:12:19 +01:00
Joseph Burt
f9da71cc68 apkbuild-cpan.in: add 'configure' prereqs
Prereqs from the 'configure' phase also belong in makedepends
2019-10-01 17:08:51 +01:00
Joseph Burt
baf17c8dd7 apkbuild-cpan.in: always start pkgver with a digit
The 'version' string from CPAN can start with 'v...' or similar.
2019-10-01 17:08:51 +01:00
Leo
dbf0e80e62 Make default_dev move to /usr/share/pkgconfig 2019-10-01 17:01:11 +01:00
Leo
6e5bd59d6f Add support for parsing pkg-config files in /usr/share/pkgconfig 2019-10-01 16:37:42 +01:00
Natanael Copa
aa86438443 abuild: add amove func to move from $pkgdir to $subpkgdir
moving files and directories from $pkgdir to $subpkgdir is a common
pattern, so make a helper function for this.

usage: amove FILESPEC...

FILESPEC is a list of files or patterns/globs that will be exanded by
the shell.

amove will clean up empty directories after moving the files/dirs.

Example usage:

  amove 'usr/lib/lib*.a'
  amove 'etc/*.d' # moves both etc/conf.d and etc/init.d
  amove 'lib/*.so' 'usr/lib/*.so'

  cd "$pkgdir"
  find usr -name '*.h' | xargs amove

This is based on the work of Chloe Kudryavtsev:
https://github.com/alpinelinux/abuild/pull/92
2019-10-01 16:25:45 +01:00
Natanael Copa
610f1982ef Makefile: clean *.o files 2019-10-01 15:00:31 +01:00
Natanael Copa
f9707808ef abuild: various USE_CCACHE fixes
- set PATH in the rootbld environment so ccache is actually used.

- drop the check for command -v ccache. ccache will be pulled in as
  build dependency so we don't need to die if its missing.

- create ~/.ccache if missing rather than die. This directory will
  normally be created by ccache itself, but we need to create it so we
  can bind mount it incase of rootbld.

- don't die if ccache.conf is missing. ccache will create it.
2019-10-01 13:13:43 +00:00
Natanael Copa
3ca7660b66 abuild: only set up ccache in rootbld when USE_CCACHE is set
avoid install ccache and bind mount ~/.ccache when USE_CCACHE is not
set.

This fixes bind mount error when ~/.ccache is missing and USE_CCACHE is
unset.
2019-10-01 12:49:49 +00:00
Joseph Benden
b1b47140ea feat: add support for ccache
This introduces basic support for ccache, during packaging builds.

If you are building many packages, it is recommended to manually
increase the maximum size of the ccache cache. This is typically
achieved by modifying `~/.ccache/ccache.conf` and adjusting the
`max_size` setting.

Signed-off-by: Joseph Benden <joe@benden.us>
2019-09-30 12:08:17 +00:00
Richard Mortier
9be3a6c6a0 abuild: simplify depends_static
Should not be any significant functional difference.
2019-09-30 12:05:28 +00:00
tcely
5486d877c5 abuild: -static depends on -dev by default
When you have `-dev` and install `-libs-static`, for example,
it helps to only need to add one to `makedepends` instead of both.

After a grep of the current aports, it turns out matching the
prefix of `subpkgname` will be more useful.
2019-09-30 11:58:20 +00:00
Pete Dietl
7a8b3a8e7d Allow for git remote url to end in aports.git, (i.e., allow SSH git remotes) 2019-09-30 10:35:01 +00:00
Timothy Legge
6310405af8 apkbuild-pypi.in: fix bugs, upgrade for python3 only and add to make 2019-08-09 09:32:34 +00:00
Natanael Copa
0d4bb95046 gitignore apkbuild-pypi 2019-08-09 09:32:02 +00:00
Natanael Copa
9c284d4c33 abuild: convert -{alpha,beta,rc,pre} version suffixes from pkgconf
convert version suffixes in pkgconf modversion to something apk
can deal with.
2019-08-09 08:21:37 +00:00
Natanael Copa
7edafd8c75 abuild: verify that the pkgconf version is valid 2019-08-09 08:16:41 +00:00
Kaarle Ritvanen
baa554477e abuild: install dependencies from other repos 2019-08-07 14:30:46 +03:00
Kaarle Ritvanen
9a398eac0c abuild: remove recursive mode
This functionality is no longer needed by the build servers and is broken as it
does not handle
* provides= tags
* automatic dependencies added by trace_apk_deps()
* inter-repository dependencies
* circular dependencies caused by the unit tests in check()
2019-08-07 14:22:31 +03:00
Oliver Smith
c54d39d8aa abuild: rename makedepends_host virtual package
With a recent change in apk [1], virtual packages of the same name will
upgrade each other. Adjust abuild to this by not using the same virtual
package name for two types of dependencies.

This fixes the way crosscompilers are built in postmarketOS [2], which
is essentially the same as running this on Alpine's gcc aport:
$ cd aports/main/gcc
$ C_TARGET_ARCH=armhf CTARGET=armv6-alpine-linux-musleabihf \
  BOOTSTRAP=nobuildbase CBUILDROOT=/ abuild -r
...
>>> gcc-armhf: Installing for host:
(1/24) Upgrading .makedepends-gcc-armhf (20190714.104731 -> 20190714.104741)
(2/24) Purging binutils-armhf (2.31.1-r2)
...

[1] apk-tools.git 37fbafcd928c466c82c892a7868d686d710e5d07
    ("add: make virtual packages upgradeable (ref #9957)")
[2] https://gitlab.com/postmarketOS/pmaports/blob/master/cross/gcc-armhf/APKBUILD

Fixes: https://gitlab.alpinelinux.org/alpine/apk-tools/issues/10649
2019-08-05 11:57:21 +00:00
Leo
cb3a67edca add missing backslash on rmdir command 2019-07-30 05:48:40 +00:00
Natanael Copa
b8b8a651fc abuild: remove empty dirs in main package
clean up empty dirs
2019-07-17 13:57:17 +00:00
kpcyrd
ba16a67781 abuild: add SOURCE_DATE_EPOCH support 2019-07-17 13:11:20 +00:00
Pete Dietl
2c2a518ac7 change ~ to /home/pdietl 2019-07-17 12:47:12 +00:00
Pete Dietl
beb1b41054 abuild.in: fixup flags and usage text 2019-07-17 12:43:44 +00:00