Commit Graph

428 Commits

Author SHA1 Message Date
Leonid Pliushch
0dba6f512d build-package.sh: set ac_cv_func_posix_spawnp=no for all autotools builds
Reason same as for posix_spawn.
2019-08-13 15:10:07 +03:00
Leonid Pliushch
088d10cd77 build-package.sh: set ac_cv_func_posix_spawn=no for all autotools builds
posix_spawn is not available on Android devices.

While this commit is not necessary for cross-compiling, it is required
when building on-device since there posix_spawn is found somehow. This
produces following errors:

 ./spawn.h:514:17: error: use of undeclared identifier 'POSIX_SPAWN_RESETIDS'
             [(((POSIX_SPAWN_RESETIDS | POSIX_SPAWN_SETPGROUP
2019-08-13 15:02:14 +03:00
Leonid Pliushch
ceb385a9a8 build-package.sh: fix metapackage creation
Metapackages shouldn't have data inside.

%ci:reset-backlog
2019-08-13 02:03:59 +03:00
Leonid Pliushch
52ceb56d3f build-package.sh: more fixes 2019-08-13 02:03:52 +03:00
Leonid Pliushch
d08dc0fa13 build-package.sh: use text-based comparsion in conditionals instead of exit-code based 2019-08-13 02:03:47 +03:00
Leonid Pliushch
898cb887ab fix typo in scripts/build/termux_extract_dep_info.sh 2019-08-12 23:48:13 +03:00
Leonid Pliushch
b7ace4093d build-package.sh: allow static packages to be in dependencies 2019-08-12 22:50:41 +03:00
Leonid Pliushch
c352216c63 packages: standardize values of several control variables for build.sh
Variables

 TERMUX_PKG_PLATFORM_INDEPENDENT
 TERMUX_DEBUG
 TERMUX_PKG_HAS_DEBUG
 TERMUX_PKG_ESSENTIAL
 TERMUX_SUBPKG_ESSENTIAL
 TERMUX_PKG_NO_STATICSPLIT
 TERMUX_PKG_BUILD_IN_SRC
 TERMUX_PKG_FORCE_CMAKE
 TERMUX_PKG_HOSTBUILD

should not accept arbitrary values for marking them "enabled". Instead
they should accept boolean values which makes them easier to handle and
also makes their meaning clear.

build-package.sh should make decision based on variable's value but not on
whether it is set or empty.

%ci:no-build
2019-08-12 18:49:13 +03:00
Leonid Pliushch
33f341c259 add support for on-device bootstrapping of "make" 2019-08-11 16:03:35 +03:00
Leonid Pliushch
e8ccf506a0 scripts/setup-termux.sh: split packages on "tier 1" & "tier 2" groups
And remove packages that are installed with bootstrap archive (essential ones).
2019-08-11 16:03:35 +03:00
Butta
4c735a6580 on-device build: Fix up ncurses and ninja, adjust some setup scripts,
and add dependency info to scripts/setup-termux.sh.
2019-08-11 16:03:35 +03:00
Leonid Pliushch
0b4d758d6d fix typo in termux_step_massage.sh 2019-08-11 03:27:18 +03:00
Leonid Pliushch
4583afe579 build-package.sh: fix error in termux_step_massage() when bin, lib, libexec are not exist
Fixes https://github.com/termux/termux-packages/issues/4160.
2019-08-11 03:24:28 +03:00
Leonid Pliushch
c31dad8663 scripts/setup-termux.sh: add missing package 'valac' 2019-08-10 18:56:12 +03:00
Leonid Pliushch
48d257989a build-package.sh: export CC_FOR_BUILD for on-device builds
Required by some packages.
2019-08-10 17:28:08 +03:00
Leonid Pliushch
13f0811d76 build-package.sh: on-device builds without termux-exec are unsupported 2019-08-10 02:01:22 +03:00
Leonid Pliushch
a2b2c75806 build-package.sh: for on-device builds use device-specific default value for maintainer 2019-08-10 01:23:17 +03:00
Leonid Pliushch
328a9303bd build-package.sh: prefix and home shouldn't be overridable for on-device builds
And set TERMUX_NO_CLEAN to true for on-device builds as well.
2019-08-10 01:18:42 +03:00
Leonid Pliushch
ba62c10575 build-package.sh: source properties.sh before handling command line arguments
Fixes problem when it is not possible to override TERMUX_ARCH set in ~/.termuxrc.
2019-08-10 01:04:46 +03:00
Leonid Pliushch
cda78acbb0 scripts/setup-termux.sh: install binutils-gold
Required by at least ipfs package.
2019-08-08 22:15:02 +03:00
Leonid Pliushch
3b8537b03b scripts/setup-termux.sh: use bash in shebang 2019-08-08 17:40:52 +03:00
Leonid Pliushch
e303212ae5 enable on-device builds
Partial compatibility for on-device builds.

There is no guarantee that it will be possible to build all available
packages and built packages will have same reliability that cross-compiled
but should solve "self-hosting" problems as much as possible.
2019-08-08 16:58:34 +03:00
Leonid Pliushch
7c764b989b run-docker.sh: allow to set custom image via environment variable 2019-08-02 17:39:27 +03:00
Leonid Pliushch
9173eaad20 build-package.sh: use globstar when splitting static libraries
Handle cases when static libraries located in subdirectory.

Enables support for globstar (example './**/*.a') pattern in subpackage
splitting.
2019-07-30 01:21:01 +03:00
Leonid Pliushch
0f298bae8f build-package.sh: avoid linking with extra/unneeded libraries 2019-07-29 22:49:15 +03:00
Leonid Pliushch
1b2d8259fb build-package.sh: basic hardening via CFLAGS/LDFLAGS
See https://github.com/termux/termux-packages/issues/4107.

In short:

 * Stack protector will be used by default.

 * GOT/PLT ELF sections will be read-only.
2019-07-29 22:49:15 +03:00
Leonid Pliushch
61dbc35394 scripts/buildorder.py: do not handle static library subpackages
* They are not used during normal build procedures.

* During "fast-builds" (option '-i') they just consume our bandwidth.
2019-07-29 16:09:26 +03:00
Leonid Pliushch
6e70277fb3 no more develsplit + provide static libraries as separate package
%ci:no-build
2019-07-28 21:17:12 +03:00
Leonid Pliushch
4778a36e54 update download checksum in termux_setup_protobuf.sh 2019-07-28 02:02:34 +03:00
Leonid Pliushch
8c1e1f7d92 docker image: install valac 2019-07-25 18:23:57 +03:00
Leonid Pliushch
2d7f6ecb75 CI: omit newlines when printing list of packages for building 2019-07-24 21:41:27 +03:00
Leonid Pliushch
eb444b2d01 docker image: install libc-ares-dev and libicu-dev
Needed by host-build part of nodejs v12.6.0+
2019-07-24 19:49:02 +03:00
Leonid Pliushch
b97a70a2b0 CI: add support for automatic docker image rebuilding 2019-07-23 23:42:20 +03:00
Leonid Pliushch
2e07999fd3 CI: fix expression for filtering packages 2019-07-23 15:41:25 +03:00
Leonid Pliushch
fb4b3a982c CI: look for changes only in build.sh scripts 2019-07-23 12:36:34 +03:00
Leonid Pliushch
9fac976ab1 CI: restore old way for building & uploading packages
Do not use pipes for building & uploading packages because:

 * They spawn more jobs on Bintray for metadata generation - each upload is
   done in a separate session.

 * Bintray doesn't handle well concurrent uploads and metadata can be corrupted.
   This happened in all recent builds of platform independent packages - in
   each upload task file had a same name and that triggered problem with metadata.

 * Using delays for workaround for a problem described above works, but isn't
   safe.
2019-07-23 03:08:34 +03:00
Leonid Pliushch
2b21492262 CI: fix syntax errors in 'scripts/build/ci/cirrus-ci_dispatcher.sh' 2019-07-22 22:48:36 +03:00
Leonid Pliushch
c18beff6c0 CI: better implementation for workaround introduced in f75cb1d4f2
Use predefined upload delays for each pipe.
2019-07-22 22:38:32 +03:00
Leonid Pliushch
b1f23e5f4c CI: do not start upload if API key or passphrase is not set
CI periodically shows error like

  Failed to decrypt some environment variables

so it will be better to stop immediately when environment is inconsistent
for unknown reason (e.g. due to Github's problems).
2019-07-22 21:33:21 +03:00
Leonid Pliushch
e2aed73d91 CI: attempt to workaround inconsistent metadata during concurrent upload of same file
All platform independent packages affected by this issue. Results in
persistent apt error like:

 Writing more data than expected (22610650 > 22610408)
 Hashes of expected file:
  - SHA256:08abc5cffb9e1967fab487a471bb547f5ae706c48bf8e59d1443b2ad4af9caaf
  - SHA1:36ded1e207135bdeb8b7301bc03309ebced3cd32 [weak]
  - Filesize:22610408 [weak]
2019-07-22 21:26:44 +03:00
Leonid Pliushch
d7087a90b1 CI: check if necessary environment variables are set 2019-07-22 20:04:24 +03:00
Leonid Pliushch
c4f308fae3 CI: if all 3 attempts of upload failed, exit with status code '1' 2019-07-22 18:39:16 +03:00
Leonid Pliushch
4f811f734e build-package.sh: allow to mark subpackages as essential 2019-07-21 22:18:09 +03:00
Leonid Pliushch
62b194d620 docker image: install autopoint 2019-07-21 18:57:09 +03:00
Leonid Pliushch
b9a77b5bf6 CI: fix syntax errors in dispatcher script 2019-07-21 17:44:31 +03:00
Leonid Pliushch
aa98b2bc4d CI: rework way how upload will be retried
* Allow 3 attempts for uploading.

* Add 30 second delay between attempts.
2019-07-21 17:31:46 +03:00
Leonid Pliushch
088cf170a7 CI: fix pull requests URL in dispatcher script 2019-07-21 02:29:24 +03:00
Leonid Pliushch
f6a1564aec CI: retry package uploading in case of failure
In certain cases Bintray may return errors like `invalid version a.b.c` for
specific tasks. This probably happens because we now running package uploading in
parallel.

Retrying upload one more time should fix the problem.
2019-07-21 01:42:24 +03:00
Leonid Pliushch
ca8f0d0b74 CI: use pipe instead of separate tasks
No more need to pass packages between tasks through http cache but will require
a separate configuration for earch architecture.
2019-07-20 23:01:15 +03:00
Leonid Pliushch
5c90cf72db Revert "CI: restore full builds for pull requests"
This reverts commit 77f24af5b851a3a0cd067fcfffd18ecc6972ea83.
2019-07-20 19:12:45 +03:00
Leonid Pliushch
cfaa34408e CI: restore full builds for pull requests
When processing pull request, build dependencies instead of
downloading them.
2019-07-20 15:44:01 +03:00
Leonid Pliushch
4aaba4d074 build-package.sh: allow to build multiple packages at one time
Support for call syntax:

 ./build-package.sh pkg1 pkg2 pkg3 ...
2019-07-20 15:32:54 +03:00
Leonid Pliushch
2563fd812c update CI setup
* Move package building/uploading implementation from config to a separate script.

* Implement new tag '%ci:no-build' to allow immediately stop build with status 'passed'.

%ci:no-build
2019-07-20 13:33:55 +03:00
Henrik Grimler
a36acc44e4 setup_golang: set CGO_CFLAGS=-I$TERMUX_PREFIX/include 2019-07-19 10:22:31 +02:00
Fredrik Fornwall
51c97e3bb5 Always use -Oz optimization level 2019-07-14 20:38:26 +02:00
Leonid Pliushch
cc06bee73e docker image: install libdbus-1-dev
Required by host-build if dbus-glib.
https://github.com/termux/termux-packages/pull/4046.
2019-07-13 17:08:57 +03:00
Fredrik Fornwall
c5a58e63a2 golang: Update from 1.12.6 to 1.12.7 2019-07-11 14:31:17 +02:00
Leonid Pliushch
06f048b540 build-package.sh: fix typo
Chmod has to be called recursively.
2019-07-04 14:44:48 +03:00
Leonid Pliushch
225b1c471f clean.sh & build-package.sh: avoid errors in case chmod's target dir is not exist 2019-07-04 14:29:06 +03:00
Leonid Pliushch
f45ed59766 build-package.sh: fix rm problems when builddir/srcdir contains RO files 2019-07-04 14:09:44 +03:00
Leonid Pliushch
2fa11b13ef build-package.sh: always keep info pages
Info pages usually provide more complete information
about package and its usage than man pages.
2019-07-02 00:00:02 +02:00
Tom Yan
0645971354 build-package.sh: export OBJCOPY 2019-06-26 12:14:11 +03:00
its-pointless
8c8292fece set updsted ndk sha256 2019-06-19 20:26:31 +03:00
its-pointless
1900df549d avoid using system clang instead of ndk one 2019-06-19 20:26:31 +03:00
its-pointless
6c2c06fd6f fix arm-cpp properly... 2019-06-19 20:26:31 +03:00
its-pointless
e83b5a2ea8 fix arm cpp 2019-06-19 20:26:31 +03:00
its-pointless
5eada22838 ndk-20 update 2019-06-19 20:26:31 +03:00
Leonid Pliushch
32ef9db225 golang: update to 1.12.6 2019-06-16 18:38:39 +03:00
Leonid Pliushch
4707ae3b9f fix scripts/check-built-packages.py
Now it will compare packages with right repository (android-7/bintray).
2019-06-08 14:04:04 +03:00
Leonid Pliushch
e4e0379086 cmake: update to 3.14.5 2019-06-08 01:10:02 +03:00
Leonid Pliushch
74832cbea8 update setup-archlinux.sh 2019-06-03 23:24:34 +03:00
Leonid Pliushch
f574b08871 update Vagrantfile
* Ubuntu disco

* Raised RAM to 4 GB (2 GB may be too small)

* Some other fixes
2019-06-03 20:33:24 +03:00
Christopher Latham
cb6dc126e4 setup-ubuntu.sh: Download 19.04 java package when running Ubuntu 19.04 2019-05-27 23:57:30 -04:00
Christopher Latham
f59bc57f0b Fix broken java 8 download link locations 2019-05-27 23:18:18 -04:00
Leonid Pliushch
de0589ea9e build-package.sh: fix license installation step 2019-05-24 23:34:33 +03:00
Leonid Pliushch
b5e34cb1b9 build-package.sh: handle disable packages when building for all architectures 2019-05-22 15:01:59 +03:00
Henrik Grimler
1197b9a9e0 termux_step_massage: drop TERMUX_PKG_KEEP_SHARE_DOC 2019-05-19 21:36:30 +03:00
Henrik Grimler
4c87b7a46c termux_step_install_license: fix link path 2019-05-19 21:36:30 +03:00
Henrik Grimler
de23e4c2a8 termux_step_install_license: install to usr/share/doc/ instead of usr/share/ 2019-05-19 21:36:30 +03:00
Henrik Grimler
3bfb8b45b9 termux_step_install_license: Handle spaces in license name 2019-05-19 21:36:30 +03:00
Henrik Grimler
b9db6b4de8 termux_step_install_license: error if no LICENSE file is installed 2019-05-19 21:36:30 +03:00
Henrik Grimler
83177e08e3 termux_step_install_license: use license file from $TERMUX_PKG_LICENSE_FILE if specified
Otherwise use the licenses specified in $TERMUX_PKG_LICENSE
2019-05-19 21:36:30 +03:00
Henrik Grimler
9c0fd0513f build-package: licenses->LICENSES 2019-05-19 21:36:30 +03:00
Henrik Grimler
117ecbfb88 build-package: install licenses to $PREFIX/share/$PKG/LICENSE 2019-05-19 21:36:30 +03:00
Leonid Pliushch
a1bb53e935 cmake: update to 3.14.4 2019-05-18 17:07:08 +03:00
Tom Yan
d4d8aaeac9 build-package: fix unwind symbols hiding
Apparently because libgcc.a is now a linker script, `--exclude-libs libgcc.a` doesn't seem to do a thing. Also hiding symbols from libunwind.a.
2019-05-14 17:53:00 +03:00
Leonid Pliushch
899b158460 repology metadata tools are located in a separate repository
See https://github.com/termux/termux-repology.
2019-05-14 15:44:51 +03:00
Fredrik Fornwall
503c204164 protobuf: Update from 3.6.1 to 3.7.1 2019-05-12 00:22:25 +02:00
Fredrik Fornwall
e0af3a3a6f Update meson from 0.49.2 to 0.50.1 2019-05-11 22:36:06 +02:00
Leonid Pliushch
7a25f8489b termux_create_subpackages.sh: fix syntax errors 2019-05-10 18:50:03 +03:00
Tom Yan
fc76b5e1f4 build-package: fix subpackage-parent dependency 2019-05-10 18:50:03 +03:00
Leonid Pliushch
96f46c6a5d build-package.sh: don't write dependency list if empty 2019-05-09 22:56:26 +03:00
Leonid Pliushch
19c660dc05 build-package.sh: fix situation where subpackage's dependency list is not written to metadata 2019-05-09 22:46:46 +03:00
Leonid Pliushch
c2b843a72d build-package.sh: break possible circular dependencies 2019-05-09 22:44:05 +03:00
Fredrik Fornwall
2e6aa72a19 golang: Update from 1.12.2 to 1.12.5 2019-05-07 22:41:30 +02:00
Fredrik Fornwall
264989a264 Remove not needed line in termux_setup_rust 2019-05-07 22:20:43 +02:00
Tom Yan
52198eee5d buildorder.py: remove libandroid-support from always_deps
as libiconv is no longer a symlink of it
2019-05-07 22:16:36 +03:00
Leonid Pliushch
d850d1a4f1 build-package.sh: introduce field "Pre-Depends"
Required in rare cases where package update may break package manager during
installation process.

See https://www.debian.org/doc/debian-policy/ch-relationships.html for
more information.
2019-05-06 20:38:12 +03:00
Leonid Pliushch
da442fc146 build-package.sh: subpackages should depend on current version of the main
Avoid potential issues caused by version mismatch.
2019-05-06 16:38:33 +03:00
Leonid Pliushch
9dda444a87 new package: libiconv 2019-05-05 21:29:36 +02:00