Commit Graph

167 Commits

Author SHA1 Message Date
Albert Hopkins 4a591cdf3a switch over to GRUB 2
The GRUB 1 configuration hasn't been working in a while and-- let's face
it-- it's time. So now we have GRUB 2.

It should still work with a serial console though I haven't tested it yet.
2017-05-27 22:13:01 +00:00
Albert Hopkins 18fdbb86ea Makefile: perform the change-password step in the stage4 phase
This should really happen as late as possibly and possibly not at all.  If
we change (lock) the password too soon, then some build steps can fail.
For example, adduser will fail if root needs to change its password first.
2016-12-08 11:57:41 +00:00
Albert Hopkins 4423189dba Makefile: run "postinstall" as late as possible
This is in case the "postinstall" step wants to override something that the
software target did.
2016-12-06 02:32:58 +00:00
Albert Hopkins 7a54cf9e1c Makefile: remove "latest" from stage3 tarball name.
Because it's not always the latest :P
2016-08-07 10:53:09 +00:00
Albert Hopkins be9f75a457 scripts: replace kernel.sh with build-kernel
This newer script is Python-based and smarter than the bash script.
2016-07-24 15:08:27 +00:00
Albert Hopkins 81b7e1cd1b Makefile: assume we're using the systemd stage3
So that means we don't have to uninstall eudev and replace it with systemd.
Also apparently we need to set the machine-id as it doesn't appear to exist
in the stage3 and I think installing systemd (which we don't do anymore)
does it for you.
2016-07-23 21:16:26 +00:00
Albert Hopkins b1aab65861 Makefile: don't eselect profile
Since we're now pulling in the systemd stage3s presumably the profile is
set correctly in the stage3.
2016-07-23 21:14:14 +00:00
Albert Hopkins 5d1b56c692 scripts: replace sync-stage3.sh with fetch-stage3
This new script is smarter and more powerful.  The only drawback is that
instead of rsync it uses HTTP.
2016-07-23 21:11:49 +00:00
Albert Hopkins 9e1441231f Makefile: remove commented out code 2016-07-23 11:33:02 +00:00
Albert Hopkins d48248ca46 Makefile: s/udev/eudev/
Apparently Gentoo no longer supports the no longer supported split udev
and replaced it with eudev in their stage3s.
2016-03-17 18:45:58 +00:00
Albert Hopkins 59eac8da06 Makefile: shell: make a quieter
So that the user can see the instructional messages better.
2016-03-10 20:10:24 +00:00
Albert Hopkins e867f3cf2e Makefile: use the git repo for the PORTAGE_DIR
Now more rsync'ing snapshots.  We can just clone/pull the repo on github.
2015-12-17 21:25:59 +00:00
Albert Hopkins 45f3ee7a75 Makefile: use /var/tmp instead of /tmp
systemd (by default) opens with a clean /tmp, so copying a file into it
will get cleared out (it's a tmpfs mount).
2015-12-17 21:25:03 +00:00
Albert Hopkins 899184e1ec Makefile: fix typo
The line that was including the appliance-specific config had a typo.  The
typo was overlooked all this time because no appliance really uses this
feature.  Until now...
2015-12-11 01:15:10 +00:00
Albert Hopkins e73c7cebb5 Makefile: shell: remove /root/.bash_history on exit
So not to pullute the history in the appliance.
2015-12-10 17:17:50 +00:00
Albert Hopkins 43408fc986 Makefile: print some helpful status messages 2015-12-10 17:17:21 +00:00
Albert Hopkins ae1b17132e Makefile: add a "shell" target
This will put you at a shell prompt inside the build environment.  Why
didn't I think of this before?!
2015-12-09 18:15:09 +00:00
Albert Hopkins 9eb8ceeb06 Set the locale
By default it's set to en_US.utf8
2015-09-26 20:57:49 +00:00
Albert Hopkins 168de34153 Use xargs to process the world file
Instead of the if `stat ....` we can simply use xarg -r -a ...
2015-09-16 23:29:49 +00:00
Albert Hopkins 2f9b52e3c5 Change the way we create checksums 2015-09-14 11:09:15 +00:00
Albert Hopkins 91b5e962ec Allow per-appliance build directories.
This allows different appliances from the same profile to be built
simultaneously.
2015-09-14 10:22:42 +00:00
Albert Hopkins 1da2ba10dd Set systemd container name according to profile.
This allows more different profiles to with the same appliance to build
simultaneously.
2015-09-14 10:16:56 +00:00
Albert Hopkins 24be5ce588 Allow images/packages to build in a different directory
By setting the VABUILDER_OUTPUT Makefile variable, one can have images
and packages saved to and retrieved from that directory instead of the
default (CURDIR).  This can be use to, e.g., have different profile's
builds in different directories (instead of having to give images
different filenames, etc.).
2015-09-14 10:00:37 +00:00
Albert Hopkins 0b3f6db39e Don't use `-C ../` when extracting portage
This is wrong and potentially can damage the host filesystem.
2015-09-08 16:45:23 +00:00
Albert Hopkins 6ffc462188 Exclude virtuals from the package list file
There's really no point in showing the virtuals.
2015-09-03 14:11:01 +00:00
Albert Hopkins 48cb7905e9 Makefile: remove bogus .PHONY targets
These targets were removed but listed in .PHONY
2015-08-07 22:34:42 +00:00
Albert Hopkins 7144d2d3ec images: change the way checksums are produced 2015-08-02 18:15:26 +00:00
Albert Hopkins 327013b660 Makefile: don't call passwd twice
Instead of calling passwd twice, one to delete the root password and one
to expire it, simply call it once and pass --delete and --expire to the
same command.
2015-08-02 17:48:27 +00:00
Albert Hopkins b0a7dae92b make "etc-update" work
It was using the old method of setting the EDITOR environment variable to
nano, which does not work with systemd-nspawn.  Fixed.
2015-04-10 09:25:44 +00:00
Albert Hopkins cff474da63 Makefile: new target: checksumps
Creates a sha256 checksum file in the $(IMAGES) directory.
2015-03-16 02:08:25 +00:00
Albert Hopkins 5240c6b302 Makefile: Add missing endquote 2015-03-15 12:56:38 +00:00
Albert Hopkins df92b10200 Makefile: fix a typo
"IMAGES" was misspelled.
2015-03-15 12:56:18 +00:00
Albert Hopkins 0504f76a1a Makefile(s): use long option names when calling emerge
Because I can never remember the difference between -n and N, -c and -C,
etc.
2015-03-13 11:31:00 +00:00
Albert Hopkins 1a31e4f951 Makefile: appliance-list: Display appliances in 1 column 2015-03-09 11:20:14 +00:00
Albert Hopkins 5889d9f251 Makefile: touch the portage tarball after downloading
Just in case.
2015-03-09 11:19:23 +00:00
Albert Hopkins b92d617f84 Makefile: clean: Remove temporary image files 2015-03-01 12:49:04 +00:00
Albert Hopkins 58d4bad383 Makefile: PORTAGE_DIR: touch the directory when it's unpacked.
Otherwise it retains the same timestamp as the tarball, which may not
trigger a stage4 rebuild.
2015-03-01 12:47:02 +00:00
Albert Hopkins 1a36e228c0 Makefile:STAGE4_TARBALL: Fix typo
Target should have been "PORTAGE_DIR" and not "PORTAGE"
2015-03-01 12:46:18 +00:00
Albert Hopkins 95e3d1e9af Makefile: make the default target "stage4" instead of "image" 2015-03-01 01:55:57 +00:00
Albert Hopkins f4e8a22ddb Makefile: use /usr/bin/basename in a few echo statements 2015-03-01 01:52:49 +00:00
Albert Hopkins 86311ebd9f Makefile: Get rid of BUILD_SOFTWARE option.
It's hardly useful anymore.
2015-03-01 01:31:55 +00:00
Albert Hopkins 07c96253dc Merge SWAP_FILE and SYSCONFIG targets into PREPROOT
They were small targets and PREPROOT is pretty much responsible for that
anyway.
2015-03-01 01:06:24 +00:00
Albert Hopkins bc22178119 Makefile: add sync_stage3 to .PHONY 2015-02-28 22:36:23 +00:00
Albert Hopkins 9562528920 stage4: Remove "build_stage4" and don't force stage4 to build every time
The stage4 target, specifically the STAGE4_TARBALL target now depends on
the portage/ directory, the appliances/<appliance>/ directory and the
stage3 tarball.  It will not be rebuild if these are up-to-date.  Therefore
other targets that depend on stage4 (e.g. RAW_IMAGE) won't force stage4 to
be rebuilt if it is up to date.

If you want to force a stage4 rebuild, for example if the appliance pulls
from a live VCS, then the recommended way to do this is:

    $ touch appliances/<appliance>
    $ make APPLIANCE=<appliance> stage4
2015-02-28 22:35:45 +00:00
Albert Hopkins c8c9bc1a1f Make the other image/ targets depend on $(RAW_IMAGE).
Instead of "image" so that if the raw image is built and up-to-date then it
need not be rebuilt to satisfy the other image targets.  This excludes the
stage4 "image" which of course is necessary to build the $(RAW_IMAGE)
target.
2015-02-28 22:30:01 +00:00
Albert Hopkins dff2e32481 Makefile: make the $(RAW_IMAGE) target install the stage4 files.
The raw image making was kind of split up, with different targets to create
the image, partition, copy files, install grub, etc.  This change makes it
all one target.  After "make image" is done, or, e.g., "make images/base.img"
then the resulting file will be built and contain all the necessary files.

This make the $(RAW_IMAGE) target more uniform with the other image/
targets.  It will also make the other image/ targets easier to satify.
2015-02-28 22:27:39 +00:00
Albert Hopkins e28fcda122 Fix package.* files installation to work with new stage3's
The new (2015-02) stage3 tarballs use package.* directories instead of
files, causing the files to fail to be copied over.  This change instead
copies them to the directories, creating them if they don't already exist.
2015-02-28 22:20:50 +00:00
Albert Hopkins d66a465456 Makefile: Make the systools target inside the chroot 2015-02-27 22:25:56 +00:00
Albert Hopkins 27f7653ee7 Makefile: Make the sysconfig target inside the chroot 2015-02-27 22:12:46 +00:00
Albert Hopkins 1a9d97d016 Makefile: Make the preproot target inside the chroot 2015-02-27 22:05:17 +00:00