mkosi: Introduce packaging sources as submodules

By always cloning the latest branch commit, we can't bisect properly
using mkosi as when bisecting wildly different packaging sources will
be used compared to when the commit was merged. By using submodules, we
track individual commits which means when bisecting the same packaging
sources will be used.

We use git submodules as dependabot has support for automatically making
PRs to update git submodules. This commit also includes the necessary
dependabot configuration to enable this.

We make ubuntu/debian use the same submodule instead of adding the debian
packaging sources twice by introducing a new $PKG_SUBDIR environment variable
and using it instead of $DISTRIBUTION.
This commit is contained in:
Daan De Meyer 2024-03-08 11:33:25 +01:00
parent d008a9cfad
commit 37bd860c22
13 changed files with 33 additions and 18 deletions

View File

@ -17,3 +17,8 @@ updates:
schedule:
interval: "monthly"
open-pull-requests-limit: 2
- package-ecosystem: "gitsubmodule"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 2

20
.gitmodules vendored Normal file
View File

@ -0,0 +1,20 @@
[submodule "pkg/fedora"]
path = pkg/fedora
url = https://src.fedoraproject.org/rpms/systemd
branch = rawhide
[submodule "pkg/opensuse"]
path = pkg/opensuse
url = https://code.opensuse.org/package/systemd
branch = master
[submodule "pkg/debian"]
path = pkg/debian
url = https://salsa.debian.org/systemd-team/systemd
branch = debian/master
[submodule "pkg/centos"]
path = pkg/centos
url = https://git.centos.org/rpms/systemd
branch = c9s-sig-hyperscale
[submodule "pkg/arch"]
path = pkg/arch
url = https://gitlab.archlinux.org/daandemeyer/systemd
branch = strip

View File

@ -10,8 +10,6 @@ InitrdInclude=initrd/
# https://gitlab.archlinux.org/archlinux/packaging/packages/systemd/-/merge_requests/8 is merged.
[Content]
Environment=
PKG_URL="https://gitlab.archlinux.org/daandemeyer/systemd"
PKG_BRANCH="strip"
PKG_SUBDIR="arch"
SYSTEMD_PACKAGES="systemd systemd-ukify systemd-sysvcompat systemd-resolvconf"

View File

@ -5,8 +5,6 @@ Distribution=centos
[Content]
Environment=
PKG_URL="https://git.centos.org/rpms/systemd"
PKG_BRANCH="c9s-sig-hyperscale"
PKG_SUBDIR="centos"
Packages=

View File

@ -9,8 +9,6 @@ InitrdInclude=initrd/
[Content]
Environment=
PKG_URL="https://salsa.debian.org/systemd-team/systemd"
PKG_BRANCH="debian/master"
PKG_SUBDIR="debian"
SYSTEMD_PACKAGES="systemd
systemd-userdbd

View File

@ -5,8 +5,6 @@ Distribution=fedora
[Content]
Environment=
PKG_URL="https://src.fedoraproject.org/rpms/systemd"
PKG_BRANCH="rawhide"
PKG_SUBDIR="fedora"
Packages=

View File

@ -8,8 +8,6 @@ InitrdInclude=initrd/
[Content]
Environment=
PKG_URL="https://code.opensuse.org/package/systemd"
PKG_BRANCH="master"
PKG_SUBDIR="opensuse"
SYSTEMD_PACKAGES="systemd
udev

View File

@ -2,12 +2,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
set -e
if ((CACHED)); then
exit 0
fi
if [ -z "$(ls --almost-all "pkg/$PKG_SUBDIR")" ]; then
git clone "$PKG_URL" --branch "$PKG_BRANCH" "pkg/$PKG_SUBDIR"
elif [ -d "pkg/$PKG_SUBDIR/.git" ] && [ "$(git -C "pkg/$PKG_SUBDIR" rev-parse --abbrev-ref HEAD)" = "$PKG_BRANCH" ]; then
git -C "pkg/$PKG_SUBDIR" pull
if [ -z "$(ls --almost-all "pkg/$PKG_SUBDIR")" ] || [ -f "pkg/$PKG_SUBDIR/.git" ]; then
git submodule sync "pkg/$PKG_SUBDIR"
git submodule update --init "pkg/$PKG_SUBDIR"
fi

1
pkg/arch Submodule

@ -0,0 +1 @@
Subproject commit 733045c8f6b0acf2f0cfaac207500483a678f4d2

1
pkg/centos Submodule

@ -0,0 +1 @@
Subproject commit 3cf45106c8bc5a050901851be6b2ac85b6f5c571

1
pkg/debian Submodule

@ -0,0 +1 @@
Subproject commit 49132a870dfe281e1973a8c44acffb87a1db5336

1
pkg/fedora Submodule

@ -0,0 +1 @@
Subproject commit 2822a03dded26b9453bddbba7c6a152de8204aec

1
pkg/opensuse Submodule

@ -0,0 +1 @@
Subproject commit 37aca188c2ef606319217b30ff8b0c66df6c60f1