Commit Graph

283 Commits

Author SHA1 Message Date
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
Franco Fichtner 5b2763b3e3 build/ports: properly read PORT_LIST 2014-12-21 09:34:06 +01:00
Franco Fichtner 50af468e0a build: no more bootstrapping
Requirements for the build are a FreeBSD system with pkg and git
installed.  It is a little awkward when the pkg of the FreeBSD
is out of sync with the one in ports.git.  Need to take a look
at that later.
2014-12-21 07:43:38 +01:00
Franco Fichtner 3050fa5a57 build: setup_stage needs to know about chroot, so...
... refactor chroot foo into setup_chroot.  Everybody is happy, right?
2014-12-20 23:43:10 +01:00
Franco Fichtner 3971334486 build: introduce jailed ports build 2014-12-20 23:43:10 +01:00
Franco Fichtner 4a07062a7d build/core: embed version info into post-install phase
... so we can get rid of keeping a stale version file in core.git.
2014-12-20 12:14:23 +01:00
Franco Fichtner 3353221342 build: install needs new code too 2014-12-12 09:18:35 +01:00
Franco Fichtner 982ab90cb7 build: add versioning support for core 2014-12-11 15:23:35 +01:00
Franco Fichtner 03e988548b build: create a symlink for now 2014-12-11 14:30:39 +01:00
Franco Fichtner 4a0ef9d54f build: add memstick image(s) 2014-12-11 14:08:30 +01:00
Franco Fichtner ba82919f9e build: replace varmfs/etcmfs and set default password 2014-12-10 21:27:02 +01:00
Franco Fichtner 1cf6c8176f build: advertise platform type here for now 2014-12-10 17:13:01 +01:00
Franco Fichtner f6cc6b9cb6 build: fill the opnsense package with repo content 2014-12-09 17:11:54 +01:00
Franco Fichtner 3f0a731160 build: create directories core.git doesn't have anymore 2014-12-09 17:06:45 +01:00
Franco Fichtner 0041ea91f9 build: migrate installer files 2014-12-09 13:28:43 +01:00
Franco Fichtner 9b704c5530 build: roll back some changes now that core.git adapts 2014-12-09 11:49:54 +01:00
Franco Fichtner 144b407d9f build: update email address 2014-12-09 09:14:09 +01:00
Franco Fichtner 44a55e28a9 build: more sanity glue; don't hide console menu by hiccup 2014-12-09 09:04:53 +01:00
Franco Fichtner 1607d16fc3 build: rewrite mtree generation for final bsdinstaller stage 2014-11-16 16:28:08 +01:00
Franco Fichtner 3be4f0c0c9 build: proper iso name 2014-11-15 21:12:09 +01:00
Franco Fichtner fab13f604e build: core uses wrong syslogd in new iso 2014-11-15 18:26:02 +01:00
Franco Fichtner 28fe589165 build: one more file for the installer 2014-11-15 17:34:18 +01:00
Franco Fichtner a4186fb4a8 build: copy stray installer scripts
They should really reside in core.git to be honest.
While there, fixup the permissions of the files.
2014-11-15 17:00:01 +01:00
Franco Fichtner fdd67d47e9 build: hook up opnsense_SMP.10 for kernel build 2014-11-15 16:07:43 +01:00
Franco Fichtner da283dc54f build: add an opnsense package that holds all the dependencies
Makes it super-easy to manage package updates...  Later we'll add
the actual core.git contents.
2014-11-15 15:32:16 +01:00
Franco Fichtner 68978fd506 iso: bootstrap freesbie legacy foo for now 2014-11-15 11:42:58 +01:00
Franco Fichtner 44cea03906 build: iso boot fixes 2014-11-15 11:33:29 +01:00
Franco Fichtner d5df1f502f build: overlay core.git into iso for now 2014-11-15 11:19:36 +01:00
Franco Fichtner 3ab8a90e0c build: install packages on final iso 2014-11-15 10:55:32 +01:00
Franco Fichtner 81666de384 build: add a ports builder using pkgng
While there, break down the old ports list into a cleaner
format and fixup most entries for the new ports tree.
2014-11-15 09:31:37 +01:00
Franco Fichtner bf06aebcd8 build: add a first bootable iso :) 2014-11-09 13:14:07 +01:00
Franco Fichtner 5a1383d173 build: add a clean script to deal with object/stage dir removal 2014-11-09 11:15:01 +01:00
Franco Fichtner 469640eba0 build: minor whitespace cleanup 2014-11-09 11:06:26 +01:00
Franco Fichtner 43fac44e53 build: add common file to avoid duplication 2014-11-09 11:04:44 +01:00