In addition to fstab append and patch features we also allow
an fstab.script file that is called chrooted. The change is
needed to support overlay mounting of filesystems as part
of the initrd. If system filesystems needs to be changed in
a way that they can be used in an overlay mount, the standard
mount entry has to take the x-initrd.mount capability which
requires a modification of the fstab which is cumbersome to
handle as a patch file. This concept is currently used as
part of the MicroOS project in SUSE and is applied in the
integration test build maintained for this target. This
Fixes bsc#1129566
rsync's "compress" option just does not make any sense when rsync is
used to copy files locally, it only increases CPU usage and slows down
the process ;-)
For pre-Leap 15 openSUSE versions KIWI >= 9.12.0 was not completely
setting locale, as it was missingto set the RC_LANG variable from
`/etc/sysconfig/language` file. Current commit enforces to update
locale in `/etc/sysconfig/language` (if the file exists) at the
same time it applies systemd-firstboot configurations.
Fixes#1081
There are rpm versions that require access to /dev and fail
with the error message 'Failed to initialize NSS library'
For details see: https://bugs.centos.org/view.php?id=14767
Due to the rpm location checkup fix from Issue #1037 this
change impacts builds for distributions that uses an rpm
version with the above behavior (e.g CentOS) and fails as
consequence of the rpm call error. This commit fixes this
in a way that we make sure the host /dev is available at
the time of the call.
At the end of a build process the metadata information files .packages
and .verified are created. On rpm based systems, rpm is invoked as
chrooted operation inside the new root tree. For images that gets
installed exclusively from the bootstrap phase there is no rpm inside
of the image and the call fails. The result are empty metadata files.
This patch prevents calling rpm inside of the image root tree if it's
not installed and also uses the RpmDataBase interface instead of
directly calling rpm. This Fixes#1037
Currently we call scripts directly through bash, which has the unfortunate
disadvantage, that the shebang line is completely ignored.
Now we instead check whether the owner of the script is allowed to execute it
and if yes, we let the OS execute it (which takes the shebang into account) or
otherwise call it through bash.
In addition to the support for fstab.append, users can now also
provide a patch file to change the contents of the fstab file
as it got written by kiwi. The feature is probably rarely used
but needed in the area of suse's transactional update mechanism.
This Fixes bsc#1129566 and Fixes#945
For rpm based builds the License field from the rpm metadata
is extracted into the .packages file. For Debian based build
the license information is in an extra file and not taken
into account for the moment.
Call chkstat in system mode which reads /etc/sysconfig/security
to determine the configured security level and applies the
appropriate permission definitions from the /etc/permissions*
files. It's possible to provide those files as overlay files
in the image description to apply a certain permission setup
when needed. Otherwise the default setup as provided on the
package level applies. It's required that the image root system
has chkstat installed. If not present KIWI skips this step
and continuous with a warning. This Fixes#895
In case of a dracut booted image we empty out the systemd
machine-id configuration file to trigger the rebuild of that
information by the dracut boot code at boot time. This allows
for unique systemd identifiers if the same image gets deployed
on different machines. This also makes the script implementations
people put in in config.sh or images.sh to solve this problem
obsolete. This Fixes#843
During the prepare step the image description and mandatory
files needed in the create step are copied into the image
root system below the image/ directory. In case of the
optional config-cdroot archive this copy action was missing
which lead to the problem that the archive was not present
if the kiwi system create command is sequence is used.
This Fixes#756
The image description now allows an optional file named:
config-cdroot.tar[.compression_postfix]. The file gets
unpacked as user data for live and install ISO images.
This allows users to add e.g license files or reference
documentation to the ISO image. This Fixes#737
At the time kiwi creates the fstab with all required fields
to boot the system it now also looks for an optional fstab.append
file and appends its contents to the fstab file. This allows
to setup custom fstab entries for filesystem mounts which are
established outside of the kiwi image building process by
e.g a service at first boot
This commit checks the %_dbpath value of the image rpm tool. This is
needed since recent rpm versions switched the default database path,
thus running rpm queries to different roots might lead to errors.
Fixes#605
This in this commit:
- the contents of the suseConfig method from kiwi/config/functions.sh
are replaced by a deprecated message.
- the setup_hardware_clock method from SystemSetup is removed as it is
not used anywere in the code.
* Use systemd-firstboot in order config basic settings
This commit updates locale and keyboard settings in order to make
use of the systemd tools, as this will be the only valid method starting
from SLE15.
Fixes#577
* Added CommandCapabilities utils class
Now the locale pattern in the schema also supports POSIX. Note
that POSIX will be only accepted if listed in the first place of the comma
separated list.
This commit fixes#570
In addition make sure the field layout is consistent across
the .packages files no matter which package manager was used
to create the information. This Fixes#501
This commit renames export_rpm_packages_list method to
export_packages_list and it includes support for listing
debian packages if apt-get package manager is used.
Fixes#457
In reference to _download_repository_link.html.erb from
https://github.com/openSUSE/open-build-service, we use the
same mechanism to create the download link from an obs://
project definition
This commit fixes#395, with it, using --ignore-repos, does not
delete imageonly repositories from the description file. This way
imageonly is prepared to be used in the buildservice even when using
the 'obsrepositories:/' reference style.
The schema generated get_bootsplash_theme() method returns a list
because it's section content. The return value of the method was
used as a string which caused a runtime error
In case the plymouth-set-default-theme tool can be found in the
image root system and a bootsplash theme is configured in the
XML description, the tool is used to setup the theme configuration
This Fixes#366
This commit adds repository_gpgcheck and package_gpgcheck attributes
to the repository tag in schema. With this change each repository
can be configured individualy to enable repository signatures check
and/or enable signature package check. The configuration is done at
repository level, thus it is not conflicting with the wide package
manager configuration flag <rpm-signatures-check>.
Fixes#358
editbootconfig and editbootinstall scripts needs to be
called from within the correct directory to allow access
to the written bootloader config files. For live images
the working directory was set to the wrong place. This
Fixes#353
There are no good reasons to be purging the repo directories, especially
when it is common for some distributions (Red Hat/CentOS/Fedora, for example)
to ship repository configuration as packages. Deleting them puts the package
manager in the system into a weird state, so we want to avoid this.
The package and solver repository classes did not provide an
interface to deal with repository credentials. This commit
add support for the zypper package manager and the generic
urlopen based download method of the solver class. This
Fixes#246
Instead of creating the fstab at boot time, those entries which
are generic and not depending on an unknown device name can be
created as part of the image building process.
Now each user item may or may not have a groups attribute. The
groups attribute is a comma separated list of group names. If
present the first group name will be the login or primary group,
if not present, the underlying toolchain will assign the default
login group for that user.
If a script or archive is specified with an absolute path
in the image description, kiwi should not assume this path
to exist below the image description directory but just take
the absolute path as it is. Fixes#70
Systems using SELinux require the filesystem data to be labeled
according to a security context configuration. kiwi now checks
for the presence of /etc/selinux/targeted/contexts/files/file_contexts
and labels accordingly if it exists. This Fixes#52
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.