Age | Commit message (Collapse) | Author | Files | Lines |
|
This add proper support for a $BASEDIR, wherein as much as possible is
taken from the user specified root, instead of mixing and matching
binaries and modules. This avoids conflicts, particularly with binaries
like udev or module-init-tools which may have newer functionality that
the root in the $BASEDIR requires.
This is somewhat of a large patch, which involves a few key changes:
1) Add a new class of "private" functions: _add_*, which act as a "back
end" for the equivalent non-underscore-prefixed functions.
2) Refactor the add_* family of functions to use these new back end
functions. This generally simplifies the logic as we have a clear
division of labor.
3) Instead of using ldd, which is a glorified wrapper around the RTLD,
create a wrapper around the RTLD and invoke it ourselves. This is
basically just a small performance improvement -- the bulk of the
parsing done by this function's output is done in pure bash.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
It would be better to catch errors in build as well, but this isn't
entirely feasible due to the expectation of some builtins to return
non-zero during normal operations (e.g., read returns 1 on EOF).
Addresses FS#20661
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Display an actual error message for the user when they enter an
incorrect option, or neglect to provide $OPTARG when needed.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
alphabetize the usage while we're at it
|
|
This requires some refactoring of how we handle TMPDIR declaration and
creation, as well as protecting the way we do cleanup so that we don't
error out when cleanup is called prior to TMPDIR being declared.
We also add a shortcut to the build root based on the TMPDIR for
convenience.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
mostly consists of syntax changes in the hook parsing loop.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Always use bash's [[ ]], and apply (( )) where arithmetic calculations
are made. We also take a few other bash shortcuts to simplify code where
possible.
We also touch the Makefile here to adjust the sed'ing for directory
names.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Output style and coloring is borrowed from makepkg with minor
adjustments. Most instances where we encounter fatal errors are replaced
with a 'die' function to wrap this up neatly. In addition, we introduce
the -n flag, for no-color.
As a side effect, we need to source the functions file earlier so we
have the output functions available earlier.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
We shouldn't guess at what the user does and doesn't want, but rather
verify after parsing that what we have is sane. Also, remove the
default case label, as this will never be met.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
This addresses a few issues with creation of images with a $BASEDIR, the
most alarming that images would always be created on the real root
filesystem, with no regard for any supplied base directory. This also
cleans up some repetitive path declaration wrt BASEDIR and MODULEDIR.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
We also consolidate our empty variable declarations in mkinitcpio with a
simple declare.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
This also adds a /bin/bash shebang to functions. While not technically
necessary, this ensures that vim gives us the correct syntax highlight
file.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
This mainly consists of removing all traces of eval and building the
options into an array instead a simple variable. We also make sure that
the SCRIPT var is unset, as it may be populated during hook processing.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
update the example.preset to show this syntax as an alternative
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
This is a departure from using gen_init_cpio, which proved to be a huge
bottleneck in performance. Tests for existance change from being a call
to grep, to a simple shell test.
In the process, we have to modify the behavior of the -s option, and we
lose the -a option.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Simplify and fix a few bugs in the process. We rely solely on modinfo
for obtaining information about module location, dependencies and
firmware. Add a small wrapper function for modinfo that will always
specify our $BASEDIR and $KERNELVERSION for us.
Also, kill off HAS_MODULES. Since we have ADDED_MODULES, which contains
all currently added modules, we can count the elements in this when it
comes time to decide to create depmod files.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
This is an unfortunate name clash with a common utility and should be
avoided. Rename the install function to 'build' and warn the user when
we discover a hook using an 'install' function.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
|
|
We can condense this logic into a loop as well, which cuts back on
repetative code.
Signed-off-by: Dave Reisner <d@falconindy.com>
|
|
Doing the `echo -n` call causes the shell to line-buffer the output
anyway, meaning one doesn't see the first part until 'SUCCESS' or
'FAILURE' is printed. This means the last message on the screen is
'Generating module dependencies' when in fact we are actually generating
the image, which can take a lot of time when XZ, etc. are used.
Print the status on two lines, ensuring buffering is not causing
problems with out output.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
- Remove default -9 compression (FS#20954)
- Make compressor options configurable
- Add xz support and make sure xz uses crc32 checks
|
|
This fixes FS#22821.
|
|
This addresses FS#20638, where gen_init_cpio fails, but the pipeline
still reports no error because gzip exits successfully. Setting pipefail
insures that if anything goes wrong with gen_init_cpio, the operation is
deemed a failure and the user isn't unknowingly left with a faulty
initcpio.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Saves a process invocation per kernel module. Based on work presented in
FS#18347, and fixed to ensure we are using the install utility rather than
our defined function.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Replace all of the repeated calls to dirname and basename with our new
replacments. Also replace the 'grep ... /dev/null' idiom with calls to
'grep -q', which does exactly what we want.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Also remove comment about "modload" in conf.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Signed-off-by: Thomas Bächler <thomas@archlinux.org>
|
|
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
|
|
The comment said it was appending a trailing /, but it was actually removed
Recent fixes adjusted the code to do what the comment says, which is wrong here.
This fixes the code and the comment.
|
|
984cbd4eb023001668eea530e2b5ed2e57ba3693 and depend on bash
There was no proper upgrade path for these changes. This can be reconsidered once a clean upgrade path is provided.
Compatibility with non-bash shells is not as important as backwards-compatibility of existing configurations.
|
|
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
PRESETS should be defined as a string in all mkinitcpio preset files
for compatibility with dash.
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
See `man dash`
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
$UID isn't set by default in dash.
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
|
|
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
|
|
|
|
|
|
to the image twice
|
|
|
|
|
|
separate configuration file
|