Commit Graph

18 Commits

Author SHA1 Message Date
Marcus Schäfer
0985e21117
Support alternative EFI and grub modules paths
In SUSE products EFI binaries are historically located in
/usr/lib*/efi. In a recent move to package grub2 as noarch
fate#326960, a collision between x86_64 and aarch64 has been
identified, as both place platform-specific files in the same
spot. To rectify this, a new location was devised:
/usr/share/efi/$(uname -m). At the same time /usr/lib/grub2 will
move to /usr/share/grub2. This Fixes #924
2019-01-28 16:27:48 +01:00
Marcus Schäfer
0a6998dfc3
Include livenet module with dmsquash-live support
The upstream dracut dmsquash-live module supports network
mode with the livenet module. But that module must be
explicitly included and is not fetched automatically.
This Fixes #827
2018-10-07 20:52:39 +02:00
Marcus Schäfer
dc06f9a720
Prevent building custom efi image
If the distribution provides a prebuilt efi image kiwi
should use it instead of building its own image.
2018-06-19 13:21:30 +02:00
Marcus Schäfer
c948bb47d0 Seperate iso tool handling into its own namespace
The Iso class only provides generic helper methods around the
creation of ISO filesystems. For the creation of the filesystem
itself we encapsulate the tool parameter handling into its own
class. For the option compatible mkisofs/genisoimage tools the
IsoToolsCdrTools class exists. This allows to create e.g
IsoToolsXorrIso class as a future implementation
2018-03-16 21:23:26 +01:00
Marcus Schäfer
cbccb76294
Allow to choose dracut live module
There is the standard dracut dmsquash-live module based on
the device mapper technology and the kiwi-live module based
on the overlayfs technology. The setup of the live iso structure
in kiwi is compatible to both modules. Thus it makes sense
to allow to choose the technology via the flags attribute

    <type image="iso" ... flags="overlay|dmsquash"/>

Please note both modules supports a different set of live
features. This Fixes #568
2017-12-13 09:53:21 +01:00
Marcus Schäfer
ff764f7dd9
Fixup encoding handling for profile file
If an element like displayname or oem-boot-title contains
characters outside of the ascii table this causes trouble
when kiwi writes out the profile file and the code is called
through python2. The reason here is that the default encoding
on write() (and other methods) is set to ascii in python2
and when it receives unicode characters outside of the
ascii spec a UnicodeEncodeError is thrown. Now all of kiwi
is using Unicode which means this does not produce a problem
when calling the code through python3 because the default
encoding is utf-8 there. This patch introduces a method
which allows to change python's default encoding and calls
it at the code point where we write the profile because we
got unicode and we want to write unicode in any case.
This fixes at least one situation for python2-kiwi to
allow the use of non ascii characters in the XML setup.
If other places will be found the same approach should allow
to fix it for python2
2017-07-25 16:58:29 +02:00
Marcus Schäfer
a60ae7acc8 Revert "Refactor detection code for grub directory name"
The former detection of the grub directory name in boot was
correct whereas the new code introduced a problem.
This reverts commit b3e4b871d5.
This Fixes #371
2017-06-09 11:14:45 +02:00
Marcus Schäfer
b3e4b871d5
Refactor detection code for grub directory name
The method get_grub_boot_directory_name was based on checking
for the name of the grub2 install tool, but this is not always
reliable because the name of the grub2 install tool has no
direct connection to the grub2 path. The method changes in a
way that it checks for the presence of the grub2 installation
directory which is /usr/lib/grub or /usr/lib/grub2. Depending
on the result the location in boot is /boot/grub or /boot/grub2
which seems to be a more reliable check
2017-06-08 10:05:12 +02:00
Marcus Schäfer
d4674e30c5 Fixup detection of grub directory name
In order to put grub data to boot/grub2 or boot/grub a check for
the grub2-tool vs. grub-tool name is performed. This requires
access to the image root directory on a file basis which is not always
applicable. When setting up the grub bootloader for e.g EFI boot on
an iso image the rootfs can't be directly accessed because the iso
image contains the rootfs in a compressed format. This commit
refactors the check to be generic for all image types
2017-06-07 23:40:36 +02:00
Marcus Schäfer
c562a294ac Use glob pattern to match shim modules 2017-06-07 23:10:01 +02:00
Marcus Schäfer
2524d19729 Added fallback setup for grub secure boot
The current implementation is based on the presence of the
shim-install tool. This tool does not exist on all distributions.
In case shim-install is not present a kiwi fallback solution
applies. Fixes #337
2017-06-07 23:10:01 +02:00
Marcus Schäfer
6cc0b2085d Flake cleanup for unit tests 2017-03-07 13:03:10 +01:00
Marcus Schäfer
aa296716c8
Use docopt's default value feature for cache dir 2016-10-25 21:59:51 +02:00
Marcus Schäfer
5b755e7b92 Added global option --shared-cache-dir
The option allows to specify an alternative shared host_to_image
cache directory. The default location is /var/cache/kiwi.
Fixes #92
2016-10-25 17:51:57 +02:00
Marcus Schäfer
e6cc5bfa09 Move from nose to pytest
nose is no longer maintained, thus we have to move to another
testing system. This commit updates the tox setup and all tests
to use pytest instead of nose.
2016-03-14 12:23:14 +01:00
Marcus Schäfer
40e6308aa9 Port application from python 2.7 to 3.4
For new applications like this kiwi version and its use cases
it is better to base it on a more recent python version
2016-02-17 22:38:38 +01:00
Marcus Schäfer
8b056f9928
Started with LiveImageBuilder class
Added interface and required steps. tests and implementation
are missing and will follow
2016-01-10 19:12:58 +01:00
Marcus Schäfer
09daca60c0
KIWI - appliance builder next generation
a rewrite of the current kiwi from https://github.com/openSUSE/kiwi
2015-12-05 16:17:10 +01:00