| #
4e60e668 |
| 27-Jun-2018 |
Aaron LI <aly@aaronly.me> |
initrd: Handle ${DESTDIR} when building rescue tools
When building rescue tools for a target system (e.g., create release build), use tools (e.g., crunchide, crunchgen, cc), headers and libraries fr
initrd: Handle ${DESTDIR} when building rescue tools
When building rescue tools for a target system (e.g., create release build), use tools (e.g., crunchide, crunchgen, cc), headers and libraries from the target root (${DESTDIR}).
NOTE: GCC is more tolerant (e.g., doesn't warn about unused variables) to system headers than user headers, so we have to use "-isystem <inc_dir>" instead of "-I<dir>", but the former (option syntax) causes difficulty for <bsd.dep.mk> to filter the options to call mkdep(1). Therefore, we use "--sysroot=${DESTDIR}" and it's simpler than specifying headers paths with "-I<dir>" and library paths with "-L<dir>".
Meanwhile, improve the commands logic in Makefile, and set LC_ALL=C.
show more ...
|
| #
c91442e9 |
| 10-Jun-2018 |
Aaron LI <aly@aaronly.me> |
initrd: Reorganize and crunch 70 more rescue tools
* Merge "rescue.sbin" into "rescue" to save space (avoid duplicated libraries to be linked).
* Move "lvm" out of "rescue.libcrypto" since lvm(8)
initrd: Reorganize and crunch 70 more rescue tools
* Merge "rescue.sbin" into "rescue" to save space (avoid duplicated libraries to be linked).
* Move "lvm" out of "rescue.libcrypto" since lvm(8) doesn't need libcrypto.
* Crunch 70 more tools (aliases not counted):
awk, basename, bc, bzip2, cap_mkdb, chflags, chown, cmp, cpio, cut, date, dirname, dmsetup, dump, ed, env, expr, false, find, fstyp, gzip, head, hexdump, hostname, id, join, kcollect, kdump, kenv, ktrace, ldconfig, lsvfs, mount_devfs, nc, paste, patch, pax, pkill, printf, pw, pwd_mkdb, rcorder, realpath, relpath, restore, rtsold, savecore, sed, sort, stat, stty, tail, tar, tee, touch, tput, tr, traceroute, traceroute6, true, truss, uname, uniq, varsym, vi, vipw, vnconfig, wc, xz, yes
Highlights: awk, bzip2, chown, cpio, find, gzip, nc, pw, sed, tar, vi, xz
Now the total number of crunched rescue tools more than 230 (including aliases), but the total size remains almost the same :-)
* Improve the makefiles to be much cleaner.
show more ...
|
| #
7279052e |
| 02-Jul-2018 |
Aaron LI <aly@aaronly.me> |
initrd: Fix parallel build
Add explicit target orders to oinit/Makefile, because such orders are set in <bsd.subdir.mk> but not in <bsd.prog.mk>.
Since the make targets (e.g., depend, all, install,
initrd: Fix parallel build
Add explicit target orders to oinit/Makefile, because such orders are set in <bsd.subdir.mk> but not in <bsd.prog.mk>.
Since the make targets (e.g., depend, all, install, clean) are now ordered, so remove 'clean cleandepend' from the same command as 'depend all install'.
Also allow defining the 'NO_CLEAN" variable to not clean previous builds.
show more ...
|
| #
e79a303f |
| 02-Jun-2018 |
Aaron LI <aly@aaronly.me> |
initrd: Detach from the world and build on the fly
Why --- Currently, the files for initrd image creation are built and installed at /usr/share/initrd by "buildworld" and "installworld", respectivel
initrd: Detach from the world and build on the fly
Why --- Currently, the files for initrd image creation are built and installed at /usr/share/initrd by "buildworld" and "installworld", respectively, and then mkinitrd(8) simply packs them to create the initrd.img.gz.
For normal users, the shipped /usr/share/initrd and mkinitrd(8) don't make much sense, since they don't need to modify the initrd contents and create a modified initrd image.
From a developer's perspective, the required steps (buildworld, installworld and mkinitrd) to create and test a new initrd image can be annoying.
How --- Detach the build and installation of the initrd contents from the world. Build the (rescue/initrd) tools on-the-fly when creating the initrd image.
As per ftigeot's suggestion, these statically linked tools can be useful when dealing with a broken system, so install them under /rescue to be more intuitive and easier to use (similar to FreeBSD and maybe other BSDs).
What ---- * Move "share/initrd" to be top-level, and detach it from world.
+ Update the patch in bsd.crunchgen.mk accordingly. + Add Makefile.inc to simplify subdir's makefiles. + Rewrite the Makefile with targets: - rescue: build and install the rescue tools into /rescue. - initrd: further packs the etc and rescue staffs to create the initrd image.
* Move "sbin/mkinitrd/mkinitrd.sh" under the new "initrd" directory and adapt it to work with the "initrd" make target. Remove the other parts of mkinitrd(8).
* Export the above "rescue" and "initrd" targets to be top-level.
* Update nrelease framework to use the new "make initrd".
* Update build.7 man page accordingly.
* Print the message about updating the initrd image and 3rd-party packages after "make upgrade" instead of "make installworld".
* Document this change in UPDATING.
* Other small updates and style cleanups.
TODO ---- * Add initrd.7 man page * Crunch more useful tools * Crunch bin/sbin/etc. into a bundle to save space (??)
Reviewed-by: swildner Thanks-to: dillon, swildner, ftigeot
show more ...
|