summaryrefslogtreecommitdiffstats
path: root/abuild.in
Commit message (Collapse)AuthorAgeFilesLines
* abuild: detect /bin/sh dependency even if shebang has spacesNatanael Copa2019-11-071-1/+1
| | | | fixes !7
* Allow round brackets in the license variableBart Ribbers2019-11-071-1/+1
|
* abuild: get the git commit date only when neededNatanael Copa2019-11-071-8/+12
| | | | | 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.
* abuild: rename global last_commit to ABUILD_LAST_COMMITNatanael Copa2019-11-071-4/+4
| | | | rename the global variable to upppercase.
* abuild: fix git_* functionsNatanael Copa2019-11-071-3/+3
| | | | | | Add -- to explicitly separate out the file path. Let git_last_commit_epoch take an option with the hash.
* abuild: make built package reproducibleNatanael Copa2019-11-071-3/+11
| | | | | Flags to make the tarball reproducible is taken from here: http://h2.jaguarpaw.co.uk/posts/reproducible-tar/
* abuild: set SOURCE_DATE_EPOCH to last commit date by defaultNatanael Copa2019-11-071-5/+13
| | | | | set datestamps to be used in the built packages to date of commit. This makes it much easier to have reproducible builds.
* allow override sharedir for testingNatanael Copa2019-11-071-1/+1
| | | | | Aloow overrid sharedir with global ABUILD_SHAREDIR so we test the local functions.sh instead of a system installed functions.sh
* rename datadir -> sharedirNatanael Copa2019-11-071-6/+6
| | | | | abuild uses datadir as local variable in various functions. Rename the global datadir to sharedir to avoid confusion.
* abuild: remove unused print_version functionNatanael Copa2019-10-011-4/+0
| | | | | the function is not used since commit 3379e675512d (abuild: print version of built package early)
* abuild: add -V for print abuild versionNatanael Copa2019-10-011-1/+2
|
* abuild: only set sysconfdir in functions.shNatanael Copa2019-10-011-1/+0
| | | | | we set sysconfdir in functions.sh so there is no need to set it in abuild.
* Make default_dev move to /usr/share/pkgconfigLeo2019-10-011-6/+5
|
* Add support for parsing pkg-config files in /usr/share/pkgconfigLeo2019-10-011-9/+13
|
* abuild: add amove func to move from $pkgdir to $subpkgdirNatanael Copa2019-10-011-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | 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
* abuild: various USE_CCACHE fixesNatanael Copa2019-10-011-13/+2
| | | | | | | | | | | | | - 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.
* abuild: only set up ccache in rootbld when USE_CCACHE is setNatanael Copa2019-10-011-2/+3
| | | | | | | | 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.
* feat: add support for ccacheJoseph Benden2019-09-301-4/+27
| | | | | | | | | | | 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>
* abuild: simplify depends_staticRichard Mortier2019-09-301-11/+6
| | | | Should not be any significant functional difference.
* abuild: -static depends on -dev by defaulttcely2019-09-301-1/+17
| | | | | | | | 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.
* abuild: convert -{alpha,beta,rc,pre} version suffixes from pkgconfNatanael Copa2019-08-091-1/+1
| | | | | convert version suffixes in pkgconf modversion to something apk can deal with.
* abuild: verify that the pkgconf version is validNatanael Copa2019-08-091-0/+1
|
* abuild: install dependencies from other reposKaarle Ritvanen2019-08-071-8/+24
|
* abuild: remove recursive modeKaarle Ritvanen2019-08-071-147/+7
| | | | | | | | | 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()
* abuild: rename makedepends_host virtual packageOliver Smith2019-08-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | 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
* add missing backslash on rmdir commandLeo2019-07-301-1/+1
|
* abuild: remove empty dirs in main packageNatanael Copa2019-07-171-0/+6
| | | | clean up empty dirs
* abuild: add SOURCE_DATE_EPOCH supportkpcyrd2019-07-171-2/+12
|
* change ~ to /home/pdietlPete Dietl2019-07-171-2/+2
|
* abuild.in: fixup flags and usage textPete Dietl2019-07-171-3/+3
|
* Better use license.lst in abuild sanitycheckKeith Maxwell2019-07-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change an invalid licence= in an APKBUILD will pass `abuild sanitycheck`. '/usr/share/spdx/license.lst' contains one licence per line. `grep -x` will match partial lines whereas `grep -w` will only match whole lines. An simple demonstration is with 'GPL-3.0' which is not a valid SPDX licence identifier. 'GPL-3.0-only' and 'GPL-3.0-or-later' are valid licences. ``` $ grep --help BusyBox v1.30.1 (2019-04-26 06:26:16 UTC) multi-call binary. Usage: grep [-HhnlLoqvsriwFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]... Search for PATTERN in FILEs (or stdin) ✂ -w Match whole words only -x Match whole lines only ✂ $ grep -w -F GPL-3.0 /usr/share/spdx/license.lst GPL-3.0-only GPL-3.0-or-later $ grep -x -F GPL-3.0 /usr/share/spdx/license.lst $ ```
* make default_static depend on depends_staticLeo2019-07-171-1/+1
| | | | keeps it in line with other default_ functions.
* abuild.in: make is_x_package functions reliant on being given a nameLeo2019-07-171-2/+2
|
* Fix condition check for adding static libraries to -dev package.Leo2019-07-081-1/+1
| | | | | This was the wrong way, we only want to add the static library to the -dev package when there isn't a -static package.
* abuild usage fix: fetch does not verify sourcesOliver Smith2019-06-121-1/+1
| | | | | | | | | Replace text in usage description of fetch that claims to verify sources with a suggestion to use 'abuild fetch verify', which will actually verify them. 'abuild fetch' alone will not verify sources, as it only executes the fetch() function.
* abuild: fix -openrc to work with multiple subpackagesNatanael Copa2019-05-031-1/+1
| | | | allow a single APKBUILD have multiple -openrc subpackages.
* abuild.in: fix warning with gawk-5.0Leo2019-04-301-1/+1
| | | | awk: cmd. line:1: warning: regexp escape sequence `\#' is not a known regexp operator
* abuild: cleanup default_dbgNatanael Copa2019-04-301-20/+18
| | | | | | | | | Run the loop in a subshell via a pipe so we dont need a subshell for each iteration. Use `if ...; then` to make code slightly more readable. Fix a whitespace before tab while at it.
* abuild: default_dbg: do not trigger trap with test failuretcely2019-04-301-0/+1
| | | | Resolves alpinelinux/abuild#71
* abuild.in: remove duplicate options_has callLeo2019-04-291-1/+1
|
* abuild: default_dbg: eliminate side effectstcely2019-04-291-17/+18
| | | | | | | | | | | - do not overwrite variables srcdir is very important for abuild operation - quoted various paths - use a sub-shell to contain directory changing Resolves alpinelinux/abuild#58
* abuild-clean: add option to make files writable before cleanupKevin Daudt2019-04-291-0/+3
| | | | | | | | | | | Some projects might leave files which are not writable for the current user. The cleanup process then fails and leaves files / directories behind. This can easily be fixed by making everything writable before removing the files. Add the option 'chmod-clean' which does just that.
* abuild: change word choice in commenttcely2019-04-291-1/+1
|
* abuild: fix whitespace before EOLNatanael Copa2019-04-291-1/+1
|
* abuild: provide a default_static() and static() functionsLeo2019-04-291-2/+37
| | | | - Also check for static archives and warn on lack of static subpackage
* Revert "abuild: replace command -v with which to fix build issues"Mike Sullivan2019-04-291-1/+1
| | | | | | This reverts commit 57f2830739e31f9c73d2edaf5103502fbdae6822. https://github.com/alpinelinux/aports/pull/7203 fixes the original problem
* Revert "abuild: unset depends for subpackages"Natanael Copa2019-04-251-1/+0
| | | | | | | | | | | | | | | Apparently there are many packages that does soemthing like: subpackages="$pkgname-foo:_foo" _foo() { depends="$depends something-else" } and thus depend on the previous behavior. We need to revert and plan this better. This reverts commit 8fbbffd201a28a06804c7f6d3a2b5cd948c6ce07.
* abuild: add depends_libs variable to default_libs()Sören Tempel2019-04-091-0/+1
| | | | | | | | | Other subpackage such as -dev, -doc and even -openrc allow adjusting depends of the subpackage through such a variable. This is, for instance, useful to remove a dependency of the origin package from the -libs subpackage. While at it document it in APKBUILD(5).
* abuild: -openrc should not inherit dependstcely2019-04-031-0/+1
|
* Add default_cleanup_srcdirChloe Kudryavtsev2019-04-031-1/+9
| | | | | | | | | | | | | | | | | | | | In some cases, a simple rm -rf is not sufficent to clean srcdir. One such case is the new go module system, that marks everything as read-only - thus only letting root rm -rf it without a chmod. There is a command intended to clean them - `go clean -modcache`. However, for that to work, GOPATH must be defined and existent. Running chmod for all srcdir cleanups makes no sense, nor does enforcing root, or putting global overrides just for go. This patch allows overriding what happens on `cleanup srcdir`, by overriding cleanup_srcdir, and allows the use of default_cleanup_srcdir. In our go example, it might be used as such: cleanup_srcdir() { go clean -modcache default_cleanup_srcdir }