Commit Graph

357 Commits

Author SHA1 Message Date
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