1
0
mirror of https://github.com/systemd/systemd synced 2026-03-24 15:55:00 +01:00

Compare commits

..

8 Commits

Author SHA1 Message Date
Luca Boccassi
57777c9e61
Merge pull request #18567 from Werkov/mkosi-opensuse-v9+
CI for openSUSE Tumbleweed
2021-08-04 11:35:13 +01:00
Michal Koutný
3ec4fccb37 ci: Add openSUSE Tumbleweed among tested distros 2021-08-04 11:16:48 +02:00
Michal Koutný
7e5e604393 ci: Detect shell prompt with higher specificity
The current pattern '#' triggers on the openSUSE kernel version that is
printed early during boot when no actual prompt is ready
> [    0.000000] Linux version 5.12.10-1-default (geeko@buildhost) (gcc (SUSE Linux) 11.1.1 20210510 [revision 23855a176609fe8dda6abaf2b21846b4517966eb], GNU ld (GNU Binutils; openSUSE Tumbleweed) 2.36.1.20210326-4) #1 SMP Fri Jun 11 05:05:06 UTC 2021 (b92eaf7)

Instead wait for pattern that: a) should have fewer false positives, b)
still be with working on distro shells:

openSUSE (red color)
^[[1m^[[31mimage:~ #^[[m^O

arch
[root@image ~]#

debian
root@image:~#

ubuntu
root@image:~#

fedora
[root@image ~]#
2021-08-04 11:16:48 +02:00
Michal Koutný
2e9055ab6a ci: Do not require network in test images
The current boot test relies on terminal login, therefore network setup
inside image is unnecessary. This opens up possibility to test images
that don't support the network setup via veth devices.
2021-08-04 11:16:48 +02:00
Michal Koutný
7c87fb219e ci: Bump mkosi version to v10
Use mkosi GH action that includes fixes for openSUSE builds. This
enables testing openSUSE builds in CI.
2021-08-04 11:16:48 +02:00
Yu Watanabe
10e417b3ea network: use address_equal()/route_equal() to compare addresses or routes configured by NDisc
Fixes #20244.
2021-08-04 09:22:38 +01:00
Michal Koutný
ed802c44da mkosi: Fix openSUSE Jinja2 package name
Dare to be different ¯\_(ツ)_/¯
2021-07-09 10:49:30 +02:00
Michal Koutný
f2bb8857cd mkosi: openSUSE update --bootable=no dependencies
Since we can build --bootable=no images without dracut->systemd, we need
to add systemd runtime dependencies explicitely.
2021-07-09 10:49:30 +02:00
6 changed files with 14 additions and 9 deletions

View File

@ -21,10 +21,11 @@ jobs:
- debian
- ubuntu
- fedora
- opensuse
steps:
- uses: actions/checkout@v2
- uses: systemd/mkosi@v9
- uses: systemd/mkosi@v10
- name: Install
run: sudo apt-get update && sudo apt-get install --no-install-recommends python3-pexpect python3-jinja2
@ -46,13 +47,13 @@ jobs:
systemd-nspawn --version
- name: Build ${{ matrix.distro }}
run: sudo python3 -m mkosi --password= --qemu-headless build
run: sudo python3 -m mkosi --password= --network-veth=no --qemu-headless build
- name: Show ${{ matrix.distro }} image summary
run: sudo python3 -m mkosi --password= --qemu-headless summary
- name: Boot ${{ matrix.distro }} systemd-nspawn
run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --qemu-headless boot
run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --network-veth=no --qemu-headless boot
- name: Boot ${{ matrix.distro }} QEMU
run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --qemu-headless qemu
run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --network-veth=no --qemu-headless qemu

View File

@ -2,13 +2,15 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
import pexpect
import re
import sys
def run() -> None:
p = pexpect.spawnu(" ".join(sys.argv[1:]), logfile=sys.stdout, timeout=300)
p.expect("#")
# distro-independent root prompt
p.expect(re.compile("~[^#]{0,3}#"))
p.sendline("systemctl poweroff")
p.expect(pexpect.EOF)

View File

@ -36,7 +36,7 @@ BuildPackages=
pcre-devel
python3
python3-lxml
python3-jinja2
python3-Jinja2
qrencode-devel
system-user-nobody
systemd-sysvinit
@ -60,6 +60,7 @@ Packages=
libapparmor1
libcrypt1
libcryptsetup12
libgcrypt20
libkmod2
liblz4-1
libmount1

View File

@ -166,7 +166,7 @@ Address *address_free(Address *address) {
set_remove(address->link->dhcp6_pd_addresses, address);
set_remove(address->link->dhcp6_pd_addresses_old, address);
SET_FOREACH(n, address->link->ndisc_addresses)
if (n->address == address)
if (address_equal(n->address, address))
free(set_remove(address->link->ndisc_addresses, n));
if (address->family == AF_INET6 &&

View File

@ -276,7 +276,7 @@ Route *route_free(Route *route) {
set_remove(route->link->dhcp6_pd_routes, route);
set_remove(route->link->dhcp6_pd_routes_old, route);
SET_FOREACH(n, route->link->ndisc_routes)
if (n->route == route)
if (route_equal(n->route, route))
free(set_remove(route->link->ndisc_routes, n));
}
@ -432,7 +432,7 @@ DEFINE_HASH_OPS_WITH_KEY_DESTRUCTOR(
route_compare_func,
route_free);
static bool route_equal(const Route *r1, const Route *r2) {
bool route_equal(const Route *r1, const Route *r2) {
if (r1 == r2)
return true;

View File

@ -66,6 +66,7 @@ typedef struct Route {
void route_hash_func(const Route *route, struct siphash *state);
int route_compare_func(const Route *a, const Route *b);
bool route_equal(const Route *r1, const Route *r2);
extern const struct hash_ops route_hash_ops;
int route_new(Route **ret);