Commit Graph

114 Commits

Author SHA1 Message Date
Marcus Schäfer
4361f7de22
Fixed kiwi-systemdeps-filesystems requires
The filesystems requires list also contains low level
tools to manage partitions, loops and subsystems. The tools
to manage LUKS(cryptsetup) are missing and imho belongs there
along with the LVM tools which are listed
2021-02-15 16:44:47 +01:00
David Cassany
851a4f3388
Include missing qemu-tools dependency for iso images
This commit includes a missing qemu-tools dependency for iso
image type.
2021-01-20 13:02:33 +01:00
Marcus Schäfer
12bad3c304
Fixed missing systemdisk provides
kiwi-systemdeps-filesystems did not provide kiwi-filesystem:ext2
2021-01-15 15:02:21 +01:00
Marcus Schäfer
a54a16247f
Update kiwi-systemdeps-image-validation
Make python anymarkup to be only recommended. The package
does not exist on all distributions, e.g suse does not
provide it and for kiwi it's an optional plugin
2020-12-18 14:31:57 +01:00
Marcus Schäfer
cc5e0f4fdb
Fixed missing provides tag
When building WSL images the image type is set to appx.
Therefore obs is looking for what provides kiwi-image:appx
This provides tag was missing
2020-12-18 13:13:20 +01:00
Marcus Schäfer
531ab36d4d
Update spec file
Complete and cleanup spec for drop in replacement of new
systemdeps sub-packages
2020-12-17 18:09:11 +01:00
Marcus Schäfer
1ebc4c9177
Set min version python requirement
The use of new features like type hinting and annotations
requires a python version >= 3.6
2020-12-17 16:49:09 +01:00
bd77efd7eb Refactor packaging to split out system dependencies into subpackages
The eventual goal is to eliminate the requirement to use magic in
build systems (e.g, OBS) to compose the necessary dependencies for
image builds, while making it easier for local users to discover
what they need to build appliances.

Fixes #1503
2020-12-17 10:20:12 -05:00
40167a8360 Drop useless chkconfig dependency
We originally had chkconfig as a dependency because alternatives(8)
is part of chkconfig in RH/Fedora systems. Since we don't use that
anymore, we don't need this dependency.
2020-12-17 10:20:12 -05:00
0c995704be Require gnupg on Debian/Ubuntu
Without this, it's not possible to do GPG verification of Debian/Ubuntu
repositories.
2020-12-17 10:20:12 -05:00
5572dee3c9 Add DNF as a proper dependency for openSUSE
This is required so that OBS can build openSUSE containers and appliances
using DNF as the package manager.
2020-11-24 12:09:41 -05:00
Marcus Schäfer
995ee4b631
Fixed spec file microdnf requirement
SUSE/SLES doesn't provide microdnf within the official channels yet
2020-11-24 18:05:29 +01:00
Marcus Schäfer
02d955ec6e
Merge pull request #1619 from OSInside/microdnf-package-manager
Add support for the Micro DNF package manager
2020-11-13 15:28:04 +01:00
388eeef349 Add support for the Micro DNF package manager
Micro DNF is a minimal C implementation of DNF that is usable for
minimal appliances and containers. While it is not at parity with
DNF, it implements enough functionality that it is mostly usable
for building appliance images.
2020-11-12 10:09:23 -05:00
Frank Schreiner
02a3ae4069
use BuildRequires for distros which use fdupes 2020-11-11 11:51:35 +01:00
Marcus Schäfer
750261a056
Fixed install of bash completion
The kiwi completion was installed as kiwi-ng.sh below
/usr/share/bash-completion/completions. This is wrong
because the completion does not pick up files with
a suffix like .sh. This commit changes the completion
file to be installed as kiwi-ng without the suffix
and Fixes #1603
2020-11-03 18:04:22 +01:00
Marcus Schäfer
89f85e4504
Use custom tmpfs for managing overlays
Provide a method to manage the base mount point for overlay and
iso mount points and set the base directory to it because /run
has a RAM space limitation which is unfortunate to handle live
systems. This Fixes #1558
2020-10-08 15:04:13 +02:00
David Cassany
26b0269593
Make dependencies to dracut-kiwi-lib release specific
This commit adds a dracut-kiwi-lib dependency to dracut-kiwi-oem-dump and
darcut-kiwi-oem-repart to match up to the release level. This way the
dependency ensures the pulled binaries they are all part of the same build.
2020-10-05 14:56:48 +02:00
David Cassany
866cb6e0de
Align dracut-kiwi-lib version with packages requiring it
This commit enforces dracut-kiwi-oem-repart and
dracut-kiwi-oem-dump to require dracut-kiwi-lib of the same exact
version. This prevents dracut-kiwi-lib and the packages
dependent on it being installed on a image with inconsistent versions.

Fixes #1529
2020-10-02 12:06:31 +02:00
Marcus Schäfer
cc19266600
Cleanup setup.py
The way kiwi uses setup.py assumes that pip runs this script
like a spec file in rpm is processed. However this is not the
case given that pip implicitly creates a static zip file called
wheel which looses all the code logic done in setup.py. Therefore
setup.py should not contain code that needs to run at install
time. Of course this change comes with an effect which is that
the following files will not be available when installing kiwi
from pip:

* man pages: /usr/share/man/man8/...
* command completion: /etc/bash_completion.d/kiwi-ng.sh
* kiwi default config file: /etc/kiwi.yml
* package docs: /usr/share/doc/packages/kiwi-ng/...
  (kiwi.pdf, LICENSE, README)

kiwi stays fully functional without this information. It is
expected that the installation of kiwi as a service will
be done by a package and its package manager. When using kiwi
from pip it is designed to provide a python module but not
a complete user application. The way pip and wheels interact
with each other seems to demonstrate that pip is not a
package manager but more a python module manager.

This Fixes #1415
2020-07-03 10:27:57 +02:00
Marcus Schäfer
72dafb799f
Fixed spec file on bare word comparison
on e.g Fedora Rawhide rpm complains about bare word comparison
error: bare words are no longer supported, please use "..."
This patch fixes the spec template to respect this
2020-05-26 10:30:44 +02:00
David Cassany
10896ad2fe
Remmove any Recommends for CentOS7
This commit fixes the package spec for CentOS 7. In CentOS 7 there is no
support for weak dependencies. In 9792cea1 a recommended dependency on
gpg tools was included for all builds and this caused a failure for
CentOS 7. With this commit, the recommended dependency, is omitted for
any pre CentOS 8 distro.
2020-05-22 11:08:46 +02:00
David Cassany Viladomat
354fdee5a8
Merge pull request #1446 from OSInside/fix_apt_signing_keys_management
Fix signing keys management for APT
2020-05-18 14:29:42 +02:00
David Cassany
9792cea153
Include recommend for gpg tool 2020-05-18 12:18:05 +02:00
Marcus Schäfer
aba2505524
Fixed spec file
This patch is two fold. First the py2 version of kiwi was
dropped since py2 is EOL. To indicate that correctly on the
package level python3-kiwi has to obsolete python2-kiwi.
The other part of the change is a file conflict of the
files:

    etc/bash_completion.d/kiwi-ng.sh
    /usr/share/doc/packages/python-kiwi/README

which were provided by the kiwi-man-pages sub-package but
were moved to be provided by the main python3-kiwi package
now. On update of the package with an older version of
kiwi that maintains this files to belong to kiwi-man-pages
a file conflict at install time appears. To solve this
python3-kiwi now conflicts with kiwi-man-pages < %{version}
This Fixes #1413 and Fixes bsc#1168973 and bsc#1156677
2020-05-14 17:06:05 +02:00
Marcus Schäfer
feaf6b0863
Refactor setup of bootloader parameters
The bootloader settings are handled through attributes in the
type element. Over the years some attributes were added and
there are requests for more settings. Therefore the bootloader
setup deservers its own section. With this commit the schema
changes from v7.1 to v7.2 and moves bootloader, bootloader_console
boottimeout and zipl_targettype into a new bootloader subsection
below type. The commit also adds an auto transformation template
such that customers don't have to change their image descriptions.
This is related to Issue #1401
2020-05-08 13:30:43 +02:00
Marcus Schäfer
9cc39a8f4b
Fixed spec file header information
Fixed copyright date/company and url path to project
2020-04-28 14:30:40 +02:00
David Cassany
4aef8543f3
Add kpartx dependency on dracut-kiwi-oem-dump package
This commit adds a missing dependency on dracut-kiwi-oem-dump
package. In images where The `kpartx` tool is missing the
dracut-kiwi-oem-dump was not applied for the initrd.

Fixes #1364
2020-03-13 16:26:41 +01:00
Marcus Schäfer
b0eeff6067
Turn btrfs requirement into a recommend
Only on suse systems btrfs is eligable to be a required package
because it's the default filesystem of that distribution. In any
other case it should be a recommended package. As a side effect
of this change we will be able to activate the CentOS-8 build
target
2020-02-18 10:22:06 +01:00
Al
ad33c037dc Split kiwi-dump into 2 modules to allow inserting a module after the image dump and before system reboot 2020-02-11 10:04:19 -08:00
10d7e51bef
Merge pull request #1310 from OSInside/use_tftp_system_user_package
Start using tftp system user package
2020-01-20 07:53:17 -05:00
David Cassany
2ef9f6d04f
Start using tftp system user package
With this commit we start requiring tftp system user package. This
user was created and managed by multiple packages before, with the
risk of having inconsistent criteria on its defaults. Now there there
a system user package so whatever package that requries this user should
just require this package and do not create or modify the tftp user.

Related with bsc#1143454
2020-01-15 15:19:04 +01:00
Marcus Schäfer
550cccdbea
Refactor kernel version lookup
For the lookup of the kernel version kiwi provided a small
C program that reads the first bytes of the kernel binary
and extracts the version information. Given the various
compression formats and also the problem of kernel files
that contains the decompressor code which could be anything
it has turned out to be difficult to provide a stable tool
to read the version from the binary. Therefore the code in
kiwi was refactored to read the version via regexp match
from the filename which also makes kversion an obsolete
tool. This Fixes #1308
2020-01-11 22:31:02 +01:00
4af6507201 Exclude 'Recommends: kiwi-man-pages' for EL7 and older in the spec 2019-12-06 11:13:27 -05:00
Marcus Schäfer
2532202a7a
Fixed scope of kiwi-man-pages sub package
The kiwi-man-pages package provided data that belongs to
the main package, e.g the completion as well as the
license information. In addition kiwi-man-pages should
not be a requirement.
2019-12-06 16:28:32 +01:00
Marcus Schäfer
50511367a2
Add default /etc/kiwi.yml file
Provide a comment only etc/kiwi.yml file that contains all
parameters we support so far including a short description
This Fixes #1232
2019-10-28 16:44:27 +01:00
David Cassany
129e86c3c6
Use kiwi-ng and kiwicompat as console_scripts
This commit instead of installing kiwi-ng-3 and kiwicompat-3 as
console_scripts it makes use of kiwi-ng and kiwicompat. Then all others
are created as symlinks at rpm level in spec.

Fixes #1226
2019-10-15 15:08:07 +02:00
Marcus Schäfer
1843b9d0d0
Flexible use of linuxefi module
Not all distributions provides the grub linuxefi module anymore.
This means a static list for building an efi grub image if needed
is no longer appropriate. This patch changes the module handling
at the following places

1. Use linuxefi for building custom efi modules only if present
   on the host system

2. Use linuxefi related grub2-mkconfig variables only if the
   host grub2-mkconfig implementation supports it

3. Prevent building custom efi image on Fedora by extending
   the search path for the distro provided efi image and also
   adapt the spec file accordingly
2019-10-09 17:04:23 +02:00
Marcus Schäfer
641514c7d1
Do not require multipath in dracut-kiwi-oem-dump
Installation of multipath tools triggers storage devices
to be handled as multipath maps in dracut. If the deployment
happens in a non multipath system those devices do not exist
and the system later hangs in the dracut initqueue waiting
for mapper devices that never appears
2019-09-12 15:32:50 +02:00
629f5b4803 Fix the pyxattr dependency to allow kiwi to function
Most Linux distributions offer the pyxattr module, including
openSUSE Tumbleweed. Going forward, we will use the pyxattr
module by default as a dependency and only switch back to the
other xattr module when on older SUSE Linux distributions that
lack the pyxattr module.

Note that because kiwi uses setuptools to create the CLI entry
points, kiwi checks the Python dependencies before executing,
so we change the dependency in the setup.py accordingly so that
it will not fail to start.
2019-07-20 10:43:08 -04:00
Marcus Schäfer
527e8f4ce9
Update spec file requirements for xattr
On suse systems the python-xattr module is used. On any other
distribution the python-pyxattr module is used. This commit
modifies the spec file to reflect the Requires tag appropriately.
On CentOS there is currently no pyxattr build available. Thus we
provide that package for this target in the KIWI Staging area
at Virtualization:Appliances:Staging. There is an ongoing effort
to bring pyxattr to EPEL which would make it available on CentOS
and would obsolete the custom build we did.
2019-07-19 16:42:47 +02:00
Marcus Schäfer
583b2313f6
Fixed spec for use with Recommends
The Recommends tag is not known by CentOS/RHEL < v8
2019-07-12 08:40:09 +02:00
ec57224522 Simplify packaging and re-add support for building for CentOS 7 2019-07-10 06:26:37 -04:00
Marcus Schäfer
1566750242
Drop support for python2
Python2 is announced to be unmaintained from Jan 2020.
KIWI supports Python 2.7 and it should not support any python version that
is not maintained upstream. This Fixes #1036
2019-07-10 11:58:57 +02:00
Marcus Schäfer
de2813de38
Fixed spec file requirement list for arm on Fedora
The package u-boot-tools is named uboot-tools on Fedora and RHEL
2019-07-02 11:56:02 +02:00
Dan Čermák
0936db8fc1
Extend the GitLab-CI pipeline
- build the documentation in the build_doc stage
- run tests for all supported Python versions in tox_check
- build an RPM for Fedora 29 & OpenSUSE Tumbleweed in RPM stage
2019-03-12 12:29:56 +01:00
f0392f4b16 Ensure DNF is installed for kiwi itself and the test CentOS 7 appliance
In e33f53aa45, we switched to DNF when requesting YUM.
This now means we need to ensure DNF is installed for images where
we previously used YUM for that.
2019-03-01 08:48:44 -05:00
e33f53aa45 Rework package manager selection to use DNF when YUM is requested
YUM v3 is no longer developed, having been superseded by DNF for
several years. With DNF now available as a usable package manager
in Red Hat Enterprise Linux 7 through the Extras channel and
SUSE Linux Enterprise 15 through PackageHub, there is no reason for
keeping support for YUM v3 around.

We are keeping support for requesting YUM because in Red Hat Enterprise
Linux 7, DNF is referred to as "YUM v4", and it is simply referred to
as "YUM" in Red Hat Enterprise Linux 8. To avoid confusion from people,
we're just going to leave it in place as an alias to the DNF package
manager.

As for why this is happening now, Fedora is retiring YUM v3 in
Fedora 31, so we might as well get it over with and cut over now.

Reference: https://fedoraproject.org/wiki/Changes/Retire_YUM_3
2019-02-28 15:09:21 -05:00
Marcus Schäfer
9c0855753a
Fix package conflict for completion file
The completion can only be provided by one package if not
python version specific completion files are provided. Due
to the fix in #920 the completion file must be provided by
another sub-package. This commit moves it to the
kiwi-man-pages package. Actually kiwi man pages provides
more than just the man pages, but also the PDF documentation
and I think the completion information serves the purpose of
documentation to some degree too.
2019-01-24 11:27:48 +01:00
Marcus Schäfer
eb4076bdaf
Fixed file name of completion file
The bash completion file must match one of the alternatives links.
Otherwise the bash completion mechanism will not match. kiwi-ng is
the unique alternative link name compared to the still present
legacy kiwi version and should be used preferably
2019-01-24 09:32:44 +01:00