Commit Graph

46 Commits

Author SHA1 Message Date
David Oberhollenzer 5fc1a2f138 cleanup: move rest of pkgcmd into build_pacakge
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2020-04-19 08:41:52 +02:00
David Oberhollenzer 55d13e06fd Make sysroot preparation & packaging overrideable package actions
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2020-04-19 08:41:52 +02:00
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 42df0f592a Replace pkg2sqfs with the squashfs-ng tools
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-06-08 18:06:18 +02:00
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer afd023802f cleanup: merge package download/build phases
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-18 23:28:05 +01:00
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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
David Oberhollenzer 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