* [pve-devel] [PATCH dab/dab-pve-appliances] add pmg 9.0 template
@ 2025-09-30 14:51 Stoiko Ivanov
2025-09-30 14:51 ` [pve-devel] [PATCH dab 1/1] add support for repositories, used only for template generation Stoiko Ivanov
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Stoiko Ivanov @ 2025-09-30 14:51 UTC (permalink / raw)
To: pve-devel
While preparing a template for the upcoming trixie based pmg 9.0,
one small issue was that we install with the pmg-no-subscription
repository but remove the sources.list entry before packaging the
container-template via sed.
With deb822 sources the sed-command would become unwieldy, so instead
add 'Install-Sources' to the dab.conf configuration parser, for
sources entries, which are present for template creation, but not added
to the resulting template.
The patches for dab-pve-appliances are split in 3 for easier review, to
see which changes were actually needed - they could/should be squashed
together when applying.
one remaining issue - is that `dhcp` as network-configuration does not
work. while this is currently a general issue, for the pmg template,
our use of ifupdown2 is specific - as ifupdown2 only uses the deprecated
and unavailable isc-dhcp-client for obtaining leases.
dab:
Stoiko Ivanov (1):
add support for repositories, used only for template generation
PVE/DAB.pm | 31 ++++++++++++++++++++++++++++---
dab | 6 ++++++
2 files changed, 34 insertions(+), 3 deletions(-)
dab-pve-appliances:
Stoiko Ivanov (3):
add template for trixie based pmg 9.0
pmg: trixie: purge ifupdown before installing ifupdown2
pmg: trixie: use pmg-repository only during installation
debian-13-trixie-pmg-9-64/Makefile | 49 +++++++++++++++++++++++
debian-13-trixie-pmg-9-64/dab.conf | 15 +++++++
debian-13-trixie-pmg-9-64/systemd-presets | 5 +++
3 files changed, 69 insertions(+)
create mode 100644 debian-13-trixie-pmg-9-64/Makefile
create mode 100644 debian-13-trixie-pmg-9-64/dab.conf
create mode 100644 debian-13-trixie-pmg-9-64/systemd-presets
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pve-devel] [PATCH dab 1/1] add support for repositories, used only for template generation
2025-09-30 14:51 [pve-devel] [PATCH dab/dab-pve-appliances] add pmg 9.0 template Stoiko Ivanov
@ 2025-09-30 14:51 ` Stoiko Ivanov
2025-09-30 15:20 ` [pve-devel] applied: " Thomas Lamprecht
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 1/3] add template for trixie based pmg 9.0 Stoiko Ivanov
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Stoiko Ivanov @ 2025-09-30 14:51 UTC (permalink / raw)
To: pve-devel
One use-case are the proxmox-mail-gateway container templates, which
ship the correct enterprise-repsitory entry.
Currently the used entry is removed via `sed` during container
creation. With deb822 sources the `sed` command would become a bit
unwieldy, so just add the option to define sources which are only
used for the container preparation
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
PVE/DAB.pm | 31 ++++++++++++++++++++++++++++---
dab | 6 ++++++
2 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/PVE/DAB.pm b/PVE/DAB.pm
index f74d363..59397f2 100644
--- a/PVE/DAB.pm
+++ b/PVE/DAB.pm
@@ -222,7 +222,7 @@ sub read_config {
chomp $res->{description};
} elsif ($rec =~ s/^([^:]+):\s*(.*\S)\s*\n//) {
my ($key, $value) = (lc ($1), $2);
- if ($key eq 'source' || $key eq 'mirror') {
+ if ($key eq 'source' || $key eq 'mirror' || $key eq 'install-source') {
push @{$res->{$key}}, $value;
} else {
die "duplicate key '$key'\n" if defined ($res->{$key});
@@ -507,9 +507,33 @@ sub new {
source => $url,
comp => $ca,
suite => $su,
+ keep => 1,
};
} else {
- die "syntax error in source spezification '$s'\n";
+ die "syntax error in source specification '$s'\n";
+ }
+ }
+
+ foreach my $is (@{$config->{'install-source'}}) {
+ if ($is =~ m@^\s*((https?|ftp)://\S+)\s+(\S+)((\s+(\S+))+)$@) {
+ my ($url, $su, $components) = ($1, $3, $4);
+ $su =~ s/SUITE/$suite/;
+ $components =~ s/^\s+//;
+ $components =~ s/\s+$//;
+ my $ca;
+ foreach my $co (split (/\s+/, $components)) {
+ push @$ca, $co;
+ }
+ $ca = ['main'] if !$ca;
+
+ push @$sources, {
+ source => $url,
+ comp => $ca,
+ suite => $su,
+ keep => 0,
+ };
+ } else {
+ die "syntax error in install-source specification '$is'\n";
}
}
@@ -1380,7 +1404,8 @@ sub bootstrap {
mkdir "$rootdir/etc/apt/sources.list.d";
my $origin = lc($suiteinfo->{origin});
my $keyring = $suiteinfo->{keyring} or die "missing keyring for origin '$origin'";
- my $uris = { map { $_->{source} => 1 } $self->{sources}->@* };
+ my @keep_sources = grep { $_->{keep} } $self->{sources}->@*;
+ my $uris = { map { $_->{source} => 1 } @keep_sources };
for my $uri (keys $uris->%*) {
my $sources = [ grep { $_->{source} eq $uri } $self->{sources}->@* ];
diff --git a/dab b/dab
index d79afe6..c01c513 100755
--- a/dab
+++ b/dab
@@ -451,6 +451,12 @@ Note: SUITE is a variable and will be substituted.
There are also reasonable defaults for Ubuntu. If you do not specify any source
the defaults are used.
+=item B<Install-Source:> I<URL [components]>
+
+Defines a source location used only during appliance creation. It is
+not added to the sources.list entries in the resulting templates. Else behaves
+like a B<Source:> entry.
+
=item B<Depends:> I<dependencies>
Debian like package dependencies. This can be used to make sure that speific
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pve-devel] [PATCH dab-pve-appliances 1/3] add template for trixie based pmg 9.0
2025-09-30 14:51 [pve-devel] [PATCH dab/dab-pve-appliances] add pmg 9.0 template Stoiko Ivanov
2025-09-30 14:51 ` [pve-devel] [PATCH dab 1/1] add support for repositories, used only for template generation Stoiko Ivanov
@ 2025-09-30 14:51 ` Stoiko Ivanov
2025-10-01 14:12 ` [pve-devel] applied: " Thomas Lamprecht
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 2/3] pmg: trixie: purge ifupdown before installing ifupdown2 Stoiko Ivanov
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 3/3] pmg: trixie: use pmg-repository only during installation Stoiko Ivanov
3 siblings, 1 reply; 9+ messages in thread
From: Stoiko Ivanov @ 2025-09-30 14:51 UTC (permalink / raw)
To: pve-devel
copied from debian-12-bookworm-pmg-8-64, with the version number and
codename adapted.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
debian-13-trixie-pmg-9-64/Makefile | 49 +++++++++++++++++++++++
debian-13-trixie-pmg-9-64/dab.conf | 15 +++++++
debian-13-trixie-pmg-9-64/systemd-presets | 5 +++
3 files changed, 69 insertions(+)
create mode 100644 debian-13-trixie-pmg-9-64/Makefile
create mode 100644 debian-13-trixie-pmg-9-64/dab.conf
create mode 100644 debian-13-trixie-pmg-9-64/systemd-presets
diff --git a/debian-13-trixie-pmg-9-64/Makefile b/debian-13-trixie-pmg-9-64/Makefile
new file mode 100644
index 0000000..9330588
--- /dev/null
+++ b/debian-13-trixie-pmg-9-64/Makefile
@@ -0,0 +1,49 @@
+BASEDIR:=$(shell dab basedir)
+
+CVD_FILES:=main.cvd bytecode.cvd daily.cvd safebrowsing.cvd
+
+all: info/init_ok ${CVD_FILES}
+ dab bootstrap --minimal
+ sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' ${BASEDIR}/etc/ssh/sshd_config
+ mkdir -p ${BASEDIR}/etc/systemd/system-preset
+ cp systemd-presets ${BASEDIR}/etc/systemd/system-preset/00-pve-template.preset
+ touch ${BASEDIR}/proxmox_install_mode
+ dab install \
+ antiword \
+ dbus \
+ docx2txt \
+ gpg \
+ ifupdown2 \
+ libcgi-pm-perl \
+ libdbi-perl \
+ libsasl2-modules \
+ odt2txt \
+ perl-openssl-defaults \
+ poppler-utils \
+ proxmox-mailgateway-container \
+ tesseract-ocr \
+ unrtf \
+ ;
+ rm ${BASEDIR}/proxmox_install_mode
+ sed -i '/^deb.*\.proxmox\.com\/.*$$/d;$${/^$$/d;}' ${BASEDIR}/etc/apt/sources.list
+ cp ${CVD_FILES} ${BASEDIR}/var/lib/clamav/
+ dab finalize --compressor zstd-max
+
+info/init_ok: dab.conf
+ dab init
+ touch $@
+
+.PHONY: clean
+clean:
+ dab clean
+ rm -f *~
+
+.PHONY: dist-clean
+dist-clean: clean
+ dab dist-clean
+ rm -f ${CVD_FILES}
+
+${CVD_FILES}:
+ curl -L --silent --show-error --fail --time-cond $@ --user-agent "CVDUPDATE/0.3.0 (9d591f58-b430-4d0c-99b2-febb1cee0872)" -o $@.tmp https://database.clamav.net/$@
+ [ -f $@.tmp ] && mv $@.tmp $@ || true
+ if command -v sigtool > /dev/null ; then sigtool -i $@; else echo "skipping verification of $@"; fi
diff --git a/debian-13-trixie-pmg-9-64/dab.conf b/debian-13-trixie-pmg-9-64/dab.conf
new file mode 100644
index 0000000..a17a1f7
--- /dev/null
+++ b/debian-13-trixie-pmg-9-64/dab.conf
@@ -0,0 +1,15 @@
+Suite: trixie
+CacheDir: ../cache
+Source: http://ftp.debian.org/debian SUITE main contrib
+Source: http://ftp.debian.org/debian SUITE-updates main contrib
+Source: http://security.debian.org/debian-security SUITE-security main contrib
+Source: http://download.proxmox.com/debian/pmg/ SUITE pmg-no-subscription
+Architecture: amd64
+Name: proxmox-mail-gateway-9.0-standard
+Version: 9.0-beta1
+Section: mail
+Maintainer: Proxmox Support Team <support@proxmox.com>
+Infopage: https://www.proxmox.com/en/proxmox-mail-gateway/overview
+Description: Proxmox Mail Gateway 9.0
+ A full featured mail proxy for spam and virus filtering, optimized for
+ container environment.
diff --git a/debian-13-trixie-pmg-9-64/systemd-presets b/debian-13-trixie-pmg-9-64/systemd-presets
new file mode 100644
index 0000000..2711b48
--- /dev/null
+++ b/debian-13-trixie-pmg-9-64/systemd-presets
@@ -0,0 +1,5 @@
+disable clamav-clamonacc.service
+disable pg_basebackup@.timer
+disable pg_basebackup@.timer
+disable pg_dump@.timer
+disable pg_receivewal@.service
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pve-devel] [PATCH dab-pve-appliances 2/3] pmg: trixie: purge ifupdown before installing ifupdown2
2025-09-30 14:51 [pve-devel] [PATCH dab/dab-pve-appliances] add pmg 9.0 template Stoiko Ivanov
2025-09-30 14:51 ` [pve-devel] [PATCH dab 1/1] add support for repositories, used only for template generation Stoiko Ivanov
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 1/3] add template for trixie based pmg 9.0 Stoiko Ivanov
@ 2025-09-30 14:51 ` Stoiko Ivanov
2025-10-01 14:12 ` [pve-devel] applied: " Thomas Lamprecht
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 3/3] pmg: trixie: use pmg-repository only during installation Stoiko Ivanov
3 siblings, 1 reply; 9+ messages in thread
From: Stoiko Ivanov @ 2025-09-30 14:51 UTC (permalink / raw)
To: pve-devel
without this there is not working networking in the resulting
container:
* ifupdown is in state 'ic'
* `ifup` and `ifdown` do not exist on the system.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
debian-13-trixie-pmg-9-64/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/debian-13-trixie-pmg-9-64/Makefile b/debian-13-trixie-pmg-9-64/Makefile
index 9330588..35dc127 100644
--- a/debian-13-trixie-pmg-9-64/Makefile
+++ b/debian-13-trixie-pmg-9-64/Makefile
@@ -8,6 +8,7 @@ all: info/init_ok ${CVD_FILES}
mkdir -p ${BASEDIR}/etc/systemd/system-preset
cp systemd-presets ${BASEDIR}/etc/systemd/system-preset/00-pve-template.preset
touch ${BASEDIR}/proxmox_install_mode
+ dab exec apt purge -y ifupdown
dab install \
antiword \
dbus \
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pve-devel] [PATCH dab-pve-appliances 3/3] pmg: trixie: use pmg-repository only during installation
2025-09-30 14:51 [pve-devel] [PATCH dab/dab-pve-appliances] add pmg 9.0 template Stoiko Ivanov
` (2 preceding siblings ...)
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 2/3] pmg: trixie: purge ifupdown before installing ifupdown2 Stoiko Ivanov
@ 2025-09-30 14:51 ` Stoiko Ivanov
2025-10-01 14:12 ` [pve-devel] applied: " Thomas Lamprecht
3 siblings, 1 reply; 9+ messages in thread
From: Stoiko Ivanov @ 2025-09-30 14:51 UTC (permalink / raw)
To: pve-devel
This patch depends on the changes for dab, which enable providing a
debian repository only for installation, without it being added to the
resulting container.
this seemed a bit more elegant, than the sed-script for removing
one deb822 entry in a file with multiple entries.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
debian-13-trixie-pmg-9-64/Makefile | 1 -
debian-13-trixie-pmg-9-64/dab.conf | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/debian-13-trixie-pmg-9-64/Makefile b/debian-13-trixie-pmg-9-64/Makefile
index 35dc127..ab0bc6a 100644
--- a/debian-13-trixie-pmg-9-64/Makefile
+++ b/debian-13-trixie-pmg-9-64/Makefile
@@ -26,7 +26,6 @@ all: info/init_ok ${CVD_FILES}
unrtf \
;
rm ${BASEDIR}/proxmox_install_mode
- sed -i '/^deb.*\.proxmox\.com\/.*$$/d;$${/^$$/d;}' ${BASEDIR}/etc/apt/sources.list
cp ${CVD_FILES} ${BASEDIR}/var/lib/clamav/
dab finalize --compressor zstd-max
diff --git a/debian-13-trixie-pmg-9-64/dab.conf b/debian-13-trixie-pmg-9-64/dab.conf
index a17a1f7..019933e 100644
--- a/debian-13-trixie-pmg-9-64/dab.conf
+++ b/debian-13-trixie-pmg-9-64/dab.conf
@@ -3,7 +3,7 @@ CacheDir: ../cache
Source: http://ftp.debian.org/debian SUITE main contrib
Source: http://ftp.debian.org/debian SUITE-updates main contrib
Source: http://security.debian.org/debian-security SUITE-security main contrib
-Source: http://download.proxmox.com/debian/pmg/ SUITE pmg-no-subscription
+Install-Source: http://download.proxmox.com/debian/pmg/ SUITE pmg-no-subscription
Architecture: amd64
Name: proxmox-mail-gateway-9.0-standard
Version: 9.0-beta1
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pve-devel] applied: [PATCH dab 1/1] add support for repositories, used only for template generation
2025-09-30 14:51 ` [pve-devel] [PATCH dab 1/1] add support for repositories, used only for template generation Stoiko Ivanov
@ 2025-09-30 15:20 ` Thomas Lamprecht
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Lamprecht @ 2025-09-30 15:20 UTC (permalink / raw)
To: pve-devel, Stoiko Ivanov
On Tue, 30 Sep 2025 16:51:27 +0200, Stoiko Ivanov wrote:
> One use-case are the proxmox-mail-gateway container templates, which
> ship the correct enterprise-repsitory entry.
>
> Currently the used entry is removed via `sed` during container
> creation. With deb822 sources the `sed` command would become a bit
> unwieldy, so just add the option to define sources which are only
> used for the container preparation
>
> [...]
Applied, thanks!
[1/1] add support for repositories, used only for template generation
commit: 4af804657404dce64f526d242583ea812c3daa3d
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pve-devel] applied: [PATCH dab-pve-appliances 1/3] add template for trixie based pmg 9.0
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 1/3] add template for trixie based pmg 9.0 Stoiko Ivanov
@ 2025-10-01 14:12 ` Thomas Lamprecht
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Lamprecht @ 2025-10-01 14:12 UTC (permalink / raw)
To: pve-devel, Stoiko Ivanov
On Tue, 30 Sep 2025 16:51:28 +0200, Stoiko Ivanov wrote:
> copied from debian-12-bookworm-pmg-8-64, with the version number and
> codename adapted.
>
>
Applied, thanks!
[1/3] add template for trixie based pmg 9.0
commit: cf1b19b03a81819b0a9f1576ff6b51b9a674fe90
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pve-devel] applied: [PATCH dab-pve-appliances 2/3] pmg: trixie: purge ifupdown before installing ifupdown2
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 2/3] pmg: trixie: purge ifupdown before installing ifupdown2 Stoiko Ivanov
@ 2025-10-01 14:12 ` Thomas Lamprecht
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Lamprecht @ 2025-10-01 14:12 UTC (permalink / raw)
To: pve-devel, Stoiko Ivanov
On Tue, 30 Sep 2025 16:51:29 +0200, Stoiko Ivanov wrote:
> without this there is not working networking in the resulting
> container:
> * ifupdown is in state 'ic'
> * `ifup` and `ifdown` do not exist on the system.
>
>
Applied, thanks!
[2/3] pmg: trixie: purge ifupdown before installing ifupdown2
commit: 21019c5bc636cdd140ea16f2c2ee0bf1d0383b55
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pve-devel] applied: [PATCH dab-pve-appliances 3/3] pmg: trixie: use pmg-repository only during installation
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 3/3] pmg: trixie: use pmg-repository only during installation Stoiko Ivanov
@ 2025-10-01 14:12 ` Thomas Lamprecht
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Lamprecht @ 2025-10-01 14:12 UTC (permalink / raw)
To: pve-devel, Stoiko Ivanov
On Tue, 30 Sep 2025 16:51:30 +0200, Stoiko Ivanov wrote:
> This patch depends on the changes for dab, which enable providing a
> debian repository only for installation, without it being added to the
> resulting container.
>
> this seemed a bit more elegant, than the sed-script for removing
> one deb822 entry in a file with multiple entries.
>
> [...]
Applied, thanks!
[3/3] pmg: trixie: use pmg-repository only during installation
commit: 0da8df9c809290f23b96eff7f7cb8ad4fab43a82
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-10-01 14:13 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-09-30 14:51 [pve-devel] [PATCH dab/dab-pve-appliances] add pmg 9.0 template Stoiko Ivanov
2025-09-30 14:51 ` [pve-devel] [PATCH dab 1/1] add support for repositories, used only for template generation Stoiko Ivanov
2025-09-30 15:20 ` [pve-devel] applied: " Thomas Lamprecht
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 1/3] add template for trixie based pmg 9.0 Stoiko Ivanov
2025-10-01 14:12 ` [pve-devel] applied: " Thomas Lamprecht
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 2/3] pmg: trixie: purge ifupdown before installing ifupdown2 Stoiko Ivanov
2025-10-01 14:12 ` [pve-devel] applied: " Thomas Lamprecht
2025-09-30 14:51 ` [pve-devel] [PATCH dab-pve-appliances 3/3] pmg: trixie: use pmg-repository only during installation Stoiko Ivanov
2025-10-01 14:12 ` [pve-devel] applied: " Thomas Lamprecht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox