Commit Graph

283 Commits

Author SHA1 Message Date
Franco Fichtner d8a2f5cf73 build: allow to place packages/plugins in the final image 2017-01-05 18:40:55 +01:00
Franco Fichtner 424c2853d3 build: append build info to packages done markers 2017-01-05 07:49:32 +01:00
Franco Fichtner acc875d0d4 build: sign all packages on the mirror 2016-12-29 21:12:07 +01:00
Franco Fichtner 7a7a5c42e1 build/kernel: allow to build GENERIC through KERNEL=GENERIC 2016-12-26 11:08:46 +01:00
Franco Fichtner 37df87e7a3 build: implement argument passing for branch info 2016-12-23 16:55:19 +01:00
Franco Fichtner ff437f6c95 build: lock down branches, can override through build.conf
Actually, build.conf can hold all overrides from the main Makefile
now.  This is pretty handy for OEMs now.  Thanks for the prodding
on IRC for this one.  :)
2016-12-23 16:44:27 +01:00
Franco Fichtner 2960dd4ead build: start signing the package set 2016-10-04 01:47:38 +02:00
Franco Fichtner a25bd40568 build: improve printing for base/kernel set runs 2016-10-03 04:36:00 +02:00
Franco Fichtner 49e17c78e0 build: unset hooks before import, they can shadown each other 2016-09-22 17:40:20 +02:00
Franco Fichtner cf04bb9530 build: simplify package build progress 2016-08-29 20:10:19 +02:00
Franco Fichtner 5213355727 build: split nano and serial configs
Serial is better off being serial-only, while we keep nano in a
split mode for now...

PR: https://github.com/opnsense/core/issues/1101
2016-08-02 23:58:37 +02:00
Franco Fichtner 44ccf5dcd7 build: when inside the chroot don't use STAGEDIR again 2016-07-25 08:54:32 +02:00
Franco Fichtner 263b143b76 build: uname -p 2016-07-21 21:40:28 +02:00
Franco Fichtner 7782ef0841 build: filter environment in kernel and ports like base 2016-07-19 16:39:54 +02:00
Franco Fichtner bda0830a43 build: arch-dependent STAGEDIR, print target, clean-obj target 2016-07-19 08:39:00 +02:00
Franco Fichtner ae9fee5ff5 build: make ABI_FILE workaround more prominent
Just to document this again: if we cross-build, /bin/sh may be a
native-xtool implementation with the wrong ELF ABI.  pkg(8) normally
looks up /bin/sh to figure out the ABI, but ABI_FILE is implemented
in libpkg to circumvent this.
2016-07-19 08:02:59 +02:00
Franco Fichtner bcf4649544 build: more cross-build adventures 2016-07-18 17:53:08 +02:00
Franco Fichtner 440dd65e70 build/xtools: new target, more cross-buid fun 2016-07-18 08:38:36 +02:00
Franco Fichtner 767afa741f build: more on cross-building using qemu 2016-07-18 07:16:57 +02:00
Franco Fichtner 95e8fd0ce0 build: more cleanups to allow simple cross-builds 2016-07-17 17:13:20 +02:00
Franco Fichtner 20517931c8 build: introduce PRODUCT_ARCH for cross-building 2016-07-17 15:47:49 +02:00
Franco Fichtner e1a4e36eec build: decpouple top package suffix 2016-07-12 07:22:57 +02:00
Franco Fichtner dbe29b5a31 build: allow UEFI override 2016-07-11 08:52:52 +02:00
Franco Fichtner 772d00b702 build/ports: clear plugins and core when redoing ports 2016-07-10 16:52:19 +02:00
Franco Fichtner 05f7f08a11 build: more plumbing to make plugins work like ports 2016-07-05 10:08:50 +02:00
Franco Fichtner 81d78b75fc build/clean: allow ports, plugins and core clean; closes #36 2016-07-05 09:33:20 +02:00
Franco Fichtner 6c00be225f build: allow signing keys to exist in CONFIGDIR 2016-07-05 08:57:14 +02:00
Franco Fichtner 483dbce9d8 build: append to loader.conf instead of rewrite 2016-07-04 09:03:10 +02:00
Franco Fichtner 95725b3b28 build/uefi: instead of vga, we build uefi (amd64 only) 2016-07-02 11:34:53 +02:00
Franco Fichtner 81213cc8be build: clear markers that need redo after run 2016-06-28 20:34:11 +02:00
Franco Fichtner bb1deef226 build/test: test plugins against core package, also lint 2016-06-03 12:12:07 +02:00
Franco Fichtner e781418aae build: simplify custom package metadata creation step 2016-05-26 08:10:30 +02:00
Franco Fichtner b880044e04 build/plugins: keep git and pkg installed for a speedup 2016-05-26 07:27:09 +02:00
Franco Fichtner 71a6e923d8 build/test: renamed from regress 2016-05-23 23:44:10 +02:00
Franco Fichtner f4f7723881 build: migrate serial handling used by nano and serial image
Can now set SPEED=115200 during the build step for maximum flexibility.
2016-05-23 22:06:57 +02:00
Franco Fichtner 7576ae0816 build: remember image progress 2016-05-21 11:54:42 +02:00
Franco Fichtner 9aa9108ae5 build: stagify remaining pieces
This will not taint the build system except for the final
sets and image dirs.  Helps in keeping the build system
clean and that it's easier to inspect the build step.

While there, expand chroot to take a subdir argument as
some build steps need the STAGEDIR root for more than a
single purpose.
2016-05-21 10:43:10 +02:00
Franco Fichtner 02936668d7 build: code review additions 2016-05-20 22:38:10 +02:00
Franco Fichtner a38058f0dc build/vm: add various VM disk images to the mix; closes #9 2016-05-20 16:12:11 +02:00
Franco Fichtner 8e81c7922d build: small typo with new DEVICE option 2016-05-06 07:07:24 +02:00
Franco Fichtner 45e845451e device: allow for device-specific extras; closes #31 2016-05-06 06:55:01 +02:00
Franco Fichtner ddd58223cb build: make extras hook test a bit more portable and traceable 2016-05-05 22:37:51 +02:00
Franco Fichtner 3ca6d0cd5d build: add extras.conf with per-type hook, idea by @lattera; closes #30 2016-05-05 17:33:56 +02:00
Franco Fichtner 32c2f5e21c build: split serial / vga stages; closes #29 2016-05-05 16:50:04 +02:00
Franco Fichtner 23f7d50e40 build: also ignore private plugins 2016-04-20 20:01:42 +02:00
Franco Fichtner ed1ba8be37 build: source SERIAL_* variables from common 2016-03-30 18:25:43 +02:00
Franco Fichtner 661bd233fe build: expand previous for refs vs. none 2016-03-16 11:38:45 +01:00
Franco Fichtner aca59bd7cd build: fix type for reftype proagation 2016-03-16 11:15:28 +01:00
Franco Fichtner 3791a3e9c2 core: for tags, assume release state too
This makes it possible to run a single batch build for:

    # make core-master,stable/16.1,16.1.6
2016-03-14 09:22:56 +01:00
Franco Fichtner 1829ce5046 core: treat all builds as release, stable branch is now "stable" 2016-03-12 00:11:50 +01:00
Franco Fichtner 920838ded1 build: move stagedir to unique location to enable parallel flavour build 2016-02-28 23:09:27 +01:00
Franco Fichtner 19562b3dec build: refactor to pass custom sign commands 2016-02-17 22:04:20 +01:00
Franco Fichtner 4b9bde5a90 build: add setup_entropy idea by @lattera the FreeBSD way 2016-02-04 21:55:29 +01:00
Franco Fichtner f3f062de66 build/prefetch: choose a random mirror that can take a beating or two 2016-02-02 20:56:10 +01:00
Franco Fichtner 426cccbd93 build/ports: must remove uninstalled deps too for previous 2016-02-01 20:23:29 +01:00
Franco Fichtner 180ecff083 build: adapt a patch by @lattera to directly set PUBKEY+PRIVKEY 2016-02-01 18:07:20 +01:00
Franco Fichtner 6c9beb690c build: skip check if forced by optional arguments 2016-01-25 07:45:36 +01:00
Franco Fichtner 4734a177c2 build: check packages for progress even earlier 2016-01-25 07:38:07 +01:00
Franco Fichtner de44675921 build: move stage dir to /usr/obj/stage 2016-01-24 09:33:38 +01:00
Franco Fichtner 23fda3eec1 build: make images behave a little more like the rest of the system
Build only one at a time by cleaning up the old one individually.
While there, update the README to reflect reality.
2016-01-20 17:45:36 +01:00
Franco Fichtner e828219a8c build: remember packages progress
This implements the usual "memory" we have when using make(1) to run
a build: progress is remembered and repeated steps are thus skipped,
especially useful for errors coupled with subsequent invokes of the
infamous `make everything'.
2016-01-20 10:24:20 +01:00
Franco Fichtner 7836972bd0 build: emit signing message only when signing 2015-12-26 17:37:52 +01:00
Franco Fichtner 0eaa7c02bb build: generate signatures for kernel and base set 2015-12-25 23:52:32 +01:00
Franco Fichtner 3e112d2369 build/common: sign the bootstrap package as well
Taken from: Poudriere
2015-11-17 20:10:41 +01:00
Franco Fichtner a44c08adcc build: fix previous, always manage to forget getopt :) 2015-10-30 19:01:42 +01:00
Franco Fichtner e213702060 build: add override for signing keys #20
The logic of scripts dir was that it doesn't need build dir foo,
which isn't true anymore for the pkg_* scripts so that needs to
be shuffled now.
2015-10-30 07:32:21 +01:00
Franco Fichtner 5e0d2230ca build/distfiles: use it whenever possible 2015-09-11 22:18:34 +02:00
Franco Fichtner 78d5d789f3 build: omit plugin install, it's this is unnecessary 2015-09-10 19:02:01 +02:00
Franco Fichtner d5340349f7 build: fix previous 2015-09-10 17:41:01 +02:00
Franco Fichtner 6faee0986e build: improve error reporting when packages are not there 2015-09-10 15:50:04 +02:00
Franco Fichtner e093cc884c build: allow type to be overridden; fixes #19
Building has gotten pretty complicated with the introduction
of opnsense-devel pacakges, which will be further complicated
by doing opnsense-stable soon enough...

This needs more smarts, but for now the README works again.
This only affects image builds.
2015-09-09 15:58:42 +02:00
Franco Fichtner 93e8a6381d config: os-update is now known as opnsense-update 2015-08-25 11:30:47 +02:00
Franco Fichtner b27c205126 build/core: small tweak to avoid trashing the second branch 2015-08-10 10:33:35 +02:00
Franco Fichtner 613a63a5a1 build: switch to vanilla copy to avoid "origin/" woes 2015-08-05 08:58:23 +02:00
Franco Fichtner 2dd7845ad0 build: fix removal path 2015-07-24 13:28:03 +02:00
Franco Fichtner b3c8fdaa9c build/core: if arguments are given, build all of those 2015-07-24 12:24:14 +02:00
Franco Fichtner 4dac7e0762 build: what-you-print-is-what-you-write 2015-07-24 09:54:46 +02:00
Franco Fichtner 9abacaa2a7 build: replace `ls' usage with `find' 2015-07-24 08:23:41 +02:00
Franco Fichtner ce779265e1 build: change naming a litte; derive packages version from ports 2015-07-24 07:41:23 +02:00
Franco Fichtner 59885a97c7 build: split off remove_packages() for plugin use; fixes #11 2015-07-18 18:47:46 +02:00
Franco Fichtner e563a343dc build/plugins: only install needed packages 2015-07-17 17:51:48 +02:00
Franco Fichtner 804cdf50b2 build: this is the fun part -- make core and plugin invoke trivial 2015-07-17 17:43:02 +02:00
Franco Fichtner 9a98814dd7 build/plugins: clear out plugin packages on rerun 2015-07-16 18:27:04 +02:00
Franco Fichtner 48587c6347 build/core: only remove the correct packages on extract 2015-07-16 18:13:34 +02:00
Franco Fichtner 3541703340 build: refactor common custom package magic 2015-07-16 17:34:35 +02:00
Franco Fichtner d9ce7a0bd9 build/plugins: add the plugins pass for packages 2015-07-09 14:49:23 +02:00
Franco Fichtner 3a6f9b9c95 build: marker files for opnsense-update(8) have been split
via: opnsense/core#216
2015-06-18 11:58:59 +02:00
Franco Fichtner 0201b9c3b8 build: anfaengerfehler 2015-06-12 08:25:28 +02:00
Franco Fichtner 634a50fb7c config: change config handling again; decouples NAME and SETTINGS 2015-06-12 08:01:54 +02:00
Franco Fichtner a6dc804c86 build: postpone the use of @sample
It would make configs linger in the file system after upgrades
and further moving.  The actual code that needed the sample file
is gone.  Ideally, the sample file must be set to disabled and
only enabled when regenerated by the system.
2015-06-12 07:34:58 +02:00
Franco Fichtner 544cb95fda build: strangest bug with pkg-repo(8); wants trailing slash for directory 2015-06-11 10:00:03 +02:00
Franco Fichtner cc467c7745 build: void a potential clash of PACKAGESDIR and pkg-repo in the future 2015-06-11 08:05:03 +02:00
Franco Fichtner c64b97692a build: rename pkgng repo config here too 2015-06-11 00:59:48 +02:00
Franco Fichtner b7189cc039 build/core: revive %%REPO_FLAVOUR%% 2015-06-10 17:37:11 +02:00
Franco Fichtner 5119ed798a build: fiddle with git and improve skim 2015-06-10 08:46:59 +02:00
Franco Fichtner fde9447a2e build: unify usage() 2015-06-09 10:22:22 +02:00
Franco Fichtner 7ddb44e22e build: make repositories customisable; fixes #8 2015-06-09 10:14:37 +02:00
Franco Fichtner a5814e2465 build/checkout: remove git_clear in favour of proper stage; #8
This will make it a bit harder to build clean sets in the future,
but it has been requested so here it is.  ;)
2015-06-09 09:54:47 +02:00
Franco Fichtner ac66d5fe68 build: do flavours via GUI from now on 2015-06-08 14:17:27 +02:00
Franco Fichtner bcc68c8bd6 build: route the cleaning of individual sets through clean target 2015-05-16 13:25:53 +02:00
Franco Fichtner 1ae0487e3d build: scrub it like you mean it
common.sh eats up the arguments via getopts, but on return to the parent
script the arguments are restored.  To adapt the argument scrubbing to
the actual number of arguments eaten we'll sprinkle a bit of arcane shell
magic around and hope for the best.
2015-05-16 12:50:50 +02:00
Franco Fichtner 35068a9393 build: remove execution bits, not meant to be handled manually 2015-05-16 12:39:09 +02:00
Franco Fichtner 5b550b2045 build: add a Makefile as a sane launch pad...
o Talking to Shawn Webb revealed that build.conf behaviour is
  still fragile.  This will properly invoke all build steps with
  the variables that are allowed to be overridden.

o Adds an external CONFIG that is allowed to set NAME, VERSION,
  FLAVOUR.

o Remove persistent environment awareness.

o Document the whole thing.

There's still some things to do in order to do parallel builds,
but at least now the build scripts can't be poisoned by a changing
config file underneath.
2015-05-16 11:44:14 +02:00
Franco Fichtner dda1c80024 config: scrub env only when explicitly desired 2015-05-12 12:39:47 +02:00
Franco Fichtner c553750143 build/configure: persistent build options
Inspired by: Shawn Webb's HardenedBSD patches
2015-05-12 11:56:11 +02:00
Franco Fichtner 82f28d8c8c build/core: pkg is bootstrapped under the hood 2015-05-12 10:32:55 +02:00
Franco Fichtner f304248a7f build: expand all configs around the product name 2015-05-11 17:57:49 +02:00
Franco Fichtner d598757ff3 build: deflate PACKAGESDIR
It only exists inside the chroot environment so that it can be
cleaned up in one sweep via `rm -r ${PACKAGESDIR}'.  More tweaks
and fails along the way.
2015-05-10 13:59:51 +02:00
Franco Fichtner 3bb6fb6938 build: refresh packages via set
Lots of changes, mostly to merge the cool layout of kernel and base
sets with the packages approach.  What happens now is that ports.sh
and core.sh generate a packages set all the time so that it is portable
and can be pushed to a web server too if needed.
2015-05-08 15:13:21 +02:00
Franco Fichtner 64dea6f80c build: always describe git repo; yes 2015-05-07 19:26:01 +02:00
Franco Fichtner 1a0793ea6f build: nope vt(4); boot serial via probe; moar style 2015-05-07 14:07:03 +02:00
Franco Fichtner af04ac8e63 build: must extract base set first; some style 2015-05-07 13:08:21 +02:00
Franco Fichtner 4cd200bf9b build: use vt(4) in all images; gonna be a default anyway 2015-05-07 11:55:08 +02:00
Franco Fichtner cc048ebf9f build: more flavour awareness
Looks solid now.  Smaller issues can be ironed out when the next
release is due.  Enjoy. :)
2015-05-07 10:51:35 +02:00
Franco Fichtner a63303ada9 build: add PRODUCT_FLAVOUR awareness to ports/packages 2015-05-07 09:00:32 +02:00
Franco Fichtner 020d1eac63 build: always bootstrap target directories 2015-05-07 08:37:22 +02:00
Franco Fichtner da79c50876 build: softcode PRODUCT_NAME where we can 2015-05-07 08:11:21 +02:00
Franco Fichtner 27477b79fe build: more automation for LibreSSL builds 2015-05-07 00:06:39 +02:00
Franco Fichtner d20d609c4e build: don't hardcode repo flavour link anymore
Not competely sane, but we're getting there step by step.
2015-05-06 20:48:16 +02:00
Franco Fichtner 1a422d91df build: minor chroot/sh invoke tweaks 2015-05-04 09:13:58 +02:00
Franco Fichtner ceccbef575 build: extract does auto-detect 2015-04-28 13:58:28 +02:00
Franco Fichtner 6dfb52d265 build: CONFIG_XML should be general knowledge *salutes*
Also enables `use_mfs_tmpvar' by default on the NanoBSD images.
2015-04-27 22:40:14 +02:00
Franco Fichtner 3a1d2cdb48 build: another pass for setup_packages()
This time, put some of the old ideas back into play for the simple
fact that it doesn't work otherwise.  To not forget any of this
(again), I've added more elaborate comments as cautionary tales.
2015-04-27 22:05:26 +02:00
Franco Fichtner a42cfcfe0e build: improvement pass for setup_packages() 2015-04-27 10:35:01 +02:00
Franco Fichtner 0ccc3d7559 config: patch went upstream a while ago :) 2015-04-24 16:38:09 +02:00
Franco Fichtner 5aadb13689 build/nano: first pass for embedded images; fixes #5
Builds an image that loads in bhyve, but might still need some more
tweaking.  We don't have two slices.  I am not sure if they'll be
back soon.  Not sure if these images are ready for release as well,
but at least now we have the script for providing initial snapshots.
2015-04-23 18:48:57 +02:00
Franco Fichtner 8f786b188e build: unfactor setup_platform() 2015-04-03 12:08:03 +02:00
Franco Fichtner cd6d715c94 build: use an embedded tmpfs entry in fstab 2015-04-03 12:04:33 +02:00
Franco Fichtner 2c2247dcc7 build: don't need trigger_initial_wizard anymore 2015-04-03 11:19:40 +02:00
Franco Fichtner 37f8b5019a build: platform support was recently abandoned 2015-03-24 17:35:46 +01:00
Franco Fichtner 132641c826 build: improve opnsense-update(8) marker file write 2015-03-13 04:02:19 +01:00
Franco Fichtner af86540519 build: fix a lie--installer is fine now but directory is still needed 2015-03-09 13:33:25 +01:00
Franco Fichtner 31aacf2ece build: the password for images is (re)set on boot 2015-03-09 13:33:25 +01:00
Franco Fichtner f21914aaeb build: let opnsense-update(8) know it was up to date
This is important for release images so that running the utility
for the first time won't update the system to the version that
was already installed.
2015-03-09 13:33:25 +01:00
Franco Fichtner 974557de9d build: /cf/conf cleanup 2015-03-05 08:16:19 +01:00
Franco Fichtner 601d6d384f config: really annotate the repository info 2015-02-23 23:12:56 +01:00
Franco Fichtner 205f1ba4f8 build: annotate repository info when bootstrapping images
This brings us closer to safely use CONSERVATIVE_UPGRADE eventually,
but for now it seems like the annotation doesn't actually work as
double checking for annotated tags shows no tag at all.  Hmmmm.

Suggested by: pdf on the forums
2015-02-19 08:38:53 +01:00
Franco Fichtner 4db95e5700 build: make the release images naming more concise
All images are live images, with `cdrom' being the ISO variant,
`vga' the memstick without serial support, and `serial' the dual
boot memstick that has the serial console as the default instead.
2015-02-14 11:57:00 +01:00
Franco Fichtner 14bef4837f build: ease the release process workflow 2015-01-24 13:29:23 +01:00
Franco Fichtner 8128e34df8 build: FreeBSD release media policy consolidation 2015-01-12 17:53:25 +01:00
Franco Fichtner 0535976630 build: core.git is cloned in regress 2015-01-07 07:01:24 +01:00
Franco Fichtner f41792d8d7 build: avoid copying large directory structures for the speeds 2015-01-07 06:56:35 +01:00
Franco Fichtner 5cec5886a9 build: mhh, keep ARCH for all directory layouts 2015-01-03 20:12:59 +01:00
Franco Fichtner c1d977b617 build: retain directory after moving packages to the stage 2015-01-03 20:04:44 +01:00
Franco Fichtner d01671e454 build: make packages aware of their architecture
Here we stuff a directory into the path.  This is especially useful
when we are going to cross-build.  mips and arm, anyone?  ;)
2015-01-03 19:46:33 +01:00
Franco Fichtner 0e608c1586 build: remember and use the target architecture for all sets 2015-01-03 18:54:57 +01:00
Franco Fichtner a502bcee71 build: refactor cloning for upcoming regress foo 2014-12-28 11:02:55 +01:00
Franco Fichtner fc90d8fc23 build: we are not in Kansas anymore
Ports run in chroot(8) now, so we won't touch the system config.
2014-12-27 14:06:35 +01:00
Franco Fichtner cea8c505fb build: try to unify the packages chroot handling 2014-12-23 20:32:45 +01:00
Franco Fichtner dcb68668a1 build: pkg isn't installed by default, mhhh 2014-12-21 10:47:12 +01:00