1
0
Fork 0
mirror of https://github.com/pygos/build.git synced 2024-11-14 15:37:11 +01:00
Commit graph

44 commits

Author SHA1 Message Date
2dc8bd9cd6 Make "download" a package function
This commit moves the "fetch_package" utility function to the package
skeleton and turns it into an overrideable function called "download".

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2020-04-16 15:16:58 +02:00
1a697b336f Fix sysroot directory
Use a seperate sysroot directory (stored in variable SYSROOT)
instead of installing everything into the toolchain directory.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2020-04-07 03:28:21 +02:00
80b107050a Fix assignment order in BUILD_PATH_PREFIX_MAP
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2020-04-07 03:28:21 +02:00
b7bb057e45 Add BUILD_PATH_PREFIX_MAP for tools that support it
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-08-02 14:05:16 +02:00
d1c688328e Set SOURCE_DATE_EPOCH from last commit timestamp
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-08-02 11:57:32 +02:00
42df0f592a Replace pkg2sqfs with the squashfs-ng tools
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-06-08 18:06:18 +02:00
0414ee80ed Replace custom pkg-config with propperly set environment variables
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-04-22 00:21:47 +02:00
268c0a605b Integrate prefered provider mechanism of pkg utility
This commit renames the release packages so they all produce a single
package named "release", creates a preference listing from the
PREFERED_PROVIDER array and lets `pkg buildstrategy` decide what package
to build.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-31 14:34:28 +02:00
491d09f544 Merge various package variables into PREFERED_PROVIDER array
This commit merges LINUXPKG and RELEASEPKG into a single associative
array named PREFERED_PROVIDER.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-31 14:33:20 +02:00
afd023802f cleanup: merge package download/build phases
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-18 23:28:05 +01:00
7496023d5f Use pkg tool for determining a build strategy
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 17:26:07 +01:00
509d1fdd4d Build pkg-utils during seperate "boot strap phase"
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 17:25:33 +01:00
b77f8892bb cleanup: move actual package build to helper function
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-09 17:15:58 +01:00
a9eb892920 cleanup: use package files instead of source package dotfiles
Try to build a source package if at least one binary package is missing. If
that is the case, clean up possibly built packages so we can cleanly recover
from a prior crash.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-06 21:19:31 +01:00
2184f4dae7 cleanup: make $BUILDROOT point to actual product output directory
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-06 16:12:08 +01:00
e497ba164c Cleanup directories before and after building a package
In case a package build fails, we can simply restart the build script without
having to do manual cleanup of the intermediate directories.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-06 10:03:41 +01:00
b3529c8deb cleanup: remove unneeded parameter from deploy_dev_cleanup
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-05 20:05:26 +01:00
2c741e06f3 Eliminate latent, per package deploy directory
Same process as for the build dir. We have one intermediate deploy directory
that the packaes installs it self to, then we package the contents, finally
we nuke the build and deploy directory before starting with the next package.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-05 15:09:34 +01:00
c8d01f966a Use pkgtool to resolve and manage dependencies, add sub package support
Been working on this for too long, don't remember the specifics, will add
documentation.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-03 17:47:02 +01:00
934a746b3f Add pkgtool to cross toolchain
The dependency in tc-pkg-config is added to make sure the pkg tool is built
*before* pkg-config.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-01 10:01:05 +01:00
David Oberhollenzer
c7231478d5 Restructure build system configuration
Add a generic, stackable layer based structure instead of special purpose
subdirectories with specific behaviour.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-09-23 16:19:52 +02:00
David Oberhollenzer
50dce293c1 Add helper macro for running configure with standard arguments
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-09-03 13:58:35 +02:00
David Oberhollenzer
7204b9dd75 Cleanup: strip executables in mk.sh
Automagically strip all executables (recursively for subdirectories in lib
and bin) inside the mk.sh build loop.

This removes the necessity in the build scripts to strip the files. This also
allows us to remove the error prone install-strip target from the build
scripts.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-06-17 20:22:10 +02:00
David Oberhollenzer
3d30afef75 Remove dev deploy split
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-06-17 20:22:10 +02:00
David Oberhollenzer
b472ff031a Move file override functions to seperate helper script file
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-05-10 16:01:53 +02:00
David Oberhollenzer
c6ae50eb40 Add helpers for override behaviour based shell inclusion
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-05-10 16:01:53 +02:00
David Oberhollenzer
94cc2d2c46 Implement board/product config schema
- build needs a pair of product and board name
 - some products can only be built for some boards
 - Config files in product/<name> directory override those in board/<name>
 - For some config files, like LDPATH or ROOTFS, the files are merged
 - product/common provides defaults

Add default config for various services:
 - Add default config for unbound
 - Add default config for dnsmasq

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-03-24 18:28:29 +01:00
David Oberhollenzer
9e361a4cd3 Use config.guess to determine the host tuple
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-03-24 18:28:29 +01:00
David Oberhollenzer
96966bf73b Minor cleanup
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-24 22:45:00 +01:00
David Oberhollenzer
b36d66bb9b Move checkfile test to package main loop
- Only one checkfile per package, not per stage
 - Have to rebuild entire package on failure anyway
 - Faster build since we can simply guard toolchain restore
   with checkfile test

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-24 22:45:00 +01:00
David Oberhollenzer
2147fbb3b2 Remove "-dev" prefix for development files
Instead of adding a prefix, move development files to a different
deploy directory.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-17 03:02:16 +01:00
David Oberhollenzer
05ae80634c Don't keep build directory
Use $PKGBUILDDIR for building packages. Delete it again after
the deploy is done. If the build fails, the script aborts and it
is kept. If the build and deploy pass, there is no reason to keep
it around.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-17 03:02:15 +01:00
David Oberhollenzer
1636fc8aac Merge management of regular and toolchain packages
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-15 23:47:54 +01:00
David Oberhollenzer
6d44a92258 Remove --broken from git describe
Older git versions apparently don't know that (SuSe, CentOS, ...)

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-15 13:56:16 +01:00
David Oberhollenzer
5dd2790a67 Add os-name & release
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-15 13:56:16 +01:00
David Oberhollenzer
8dca35930b Add utility function for applying patches
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-10 19:59:51 +01:00
David Oberhollenzer
ae57b55b9c Rename board configuration directory to "board"
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-02-09 18:06:16 +01:00
David Oberhollenzer
df68358afd Merge run_pkg_command functions
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-01-30 14:02:09 +01:00
David Oberhollenzer
015cb894cd Major cleanup
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-01-30 14:02:09 +01:00
David Oberhollenzer
78c616ca27 Simplify dependency handling
- dependencies() accepts a single package name instead of a list.
   Is used only that way anwayway.
 - Remove most temporary packge lists

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-01-30 14:02:09 +01:00
David Oberhollenzer
d979842663 Add packages for release
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-01-30 14:02:09 +01:00
David Oberhollenzer
40fd03640c Remove magic squashfs path variable
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-01-30 14:02:09 +01:00
David Oberhollenzer
4039cd1c81 Move rootfs generation to dedicated packages
Add rootfs-<cfg> packages that create the skeleton system, copy
the files and create the squashfs images. Old "SQUASHFS" package
list is depends file of rootfs-<cfg> package.

This removes some of the special case code.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-01-30 14:02:09 +01:00
David Oberhollenzer
dbbb1889f4 Initial commit
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2018-01-29 10:17:30 +01:00