Skip to content

Commit 535bc4d

Browse files
committed
More changes
1 parent 578faa5 commit 535bc4d

File tree

12 files changed

+97
-56
lines changed

12 files changed

+97
-56
lines changed

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ client: $(addsuffix -client, $(CLIENT_BUILD_ARCHS))
100100
docker create --name=proxmox-backup-$(TAG)-$* $(REGISTRY):$(TAG)-$*
101101
docker cp proxmox-backup-$(TAG)-$*:/src/release/. release/$*
102102
-docker rm -f proxmox-backup-$(TAG)-$*
103+
tar zcvf release/proxmox-backup-server-project-${version}.tgz \
104+
--transform="s|^release/|proxmox-backup-server-$(VERSION)/|" \
105+
release/*/*.deb release/install
103106

104107
deb: $(addsuffix -deb, $(BUILD_ARCHS))
105108

@@ -135,7 +138,7 @@ github-create-draft:
135138
$(GITHUB_RELEASE_BIN) info -t $(TAG) || $(GITHUB_RELEASE_BIN) release -t $(TAG) --draft --description "$$(cat RELEASE.md)"
136139

137140
github-upload-all:
138-
@set -e; shopt -s nullglob; for file in release/*.tgz release/*/*.deb; do \
141+
@set -e; shopt -s nullglob; for file in release/*.tgz; do \
139142
echo "Uploading $$file..."; \
140143
$(GITHUB_RELEASE_BIN) upload -t $(TAG) -R -n $$(basename $$file) -f $$file; \
141144
done

dockerfiles/Dockerfile.build

Lines changed: 18 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUN apt-get -y update && \
1010
libacl1-dev libpam0g-dev libfuse3-dev \
1111
libsystemd-dev uuid-dev libssl-dev \
1212
libclang-dev libjson-perl libcurl4-openssl-dev \
13-
dh-exec dh-nodejs wget
13+
dh-exec dh-nodejs wget rsync
1414

1515
ENV RUSTUP_TOOLCHAIN=stable \
1616
CARGO_HOME=/cargo \
@@ -40,58 +40,31 @@ RUN ./scripts/repo.bash proxmox-biome make_dinstall
4040
RUN ./scripts/repo.bash proxmox-widget-toolkit make_dinstall
4141
RUN ./scripts/repo.bash perlmod "dpkg_build perlmod-bin" "dpkg_install"
4242
RUN ./scripts/repo.bash proxmox-perl-rs "make_deb common/pkg" "make_deb pve-rs" dpkg_install
43-
44-
RUN exit 1
45-
46-
# A pve-common required deps
47-
RUN apt-get -y build-dep $PWD/proxmox-perl-rs/pve-rs
48-
RUN make -C proxmox-perl-rs/common/pkg deb install
49-
RUN make -C proxmox-perl-rs/pve-rs deb
50-
RUN dpkg -i proxmox-perl-rs/common/pkg/*.deb proxmox-perl-rs/pve-rs/*.deb
51-
RUN apt-get -y build-dep $PWD/pve-common
52-
RUN make -C pve-common dinstall || apt-get -f -y install && make -C pve-common dinstall
53-
54-
# Install dev dependencies of widget toolkit
55-
RUN apt-get -y build-dep $PWD/proxmox-biome
56-
RUN cd proxmox-biome/ && make dinstall
57-
RUN apt-get -y build-dep $PWD/proxmox-widget-toolkit
58-
RUN cd proxmox-widget-toolkit/ && make dinstall
59-
60-
# Deps for all rest
61-
RUN apt-get -y build-dep $PWD/proxmox-acme
62-
RUN apt-get -y build-dep $PWD/proxmox-backup
63-
RUN apt-get -y build-dep $PWD/proxmox-mini-journalreader
64-
RUN apt-get -y build-dep $PWD/extjs
65-
RUN apt-get -y build-dep $PWD/proxmox-i18n
66-
RUN apt-get -y build-dep $PWD/pve-xtermjs/termproxy
67-
RUN apt-get -y build-dep $PWD/pve-xtermjs/xterm.js
68-
RUN apt-get -y build-dep $PWD/libjs-qrcodejs
69-
70-
# Compile ALL
71-
RUN make -C proxmox-backup deb
72-
RUN make -C extjs deb
73-
RUN make -C proxmox-i18n deb
74-
RUN make -C pve-xtermjs/termproxy deb
75-
RUN make -C pve-xtermjs/xterm.js deb
76-
RUN make -C proxmox-mini-journalreader deb
77-
RUN make -C libjs-qrcodejs deb
78-
RUN make -C proxmox-acme deb
79-
80-
# Copy all debian packages
81-
RUN mkdir -p /deb && \
82-
find /src/ -name '*.deb' -exec cp -av {} /deb/ \;
43+
RUN ./scripts/repo.bash pve-common make_dinstall
44+
RUN ./scripts/repo.bash extjs make_deb
45+
RUN ./scripts/repo.bash proxmox-i18n make_deb
46+
RUN ./scripts/repo.bash proxmox-mini-journalreader make_deb
47+
RUN ./scripts/repo.bash libjs-qrcodejs make_deb
48+
RUN ./scripts/repo.bash proxmox-acme make_deb
49+
RUN ./scripts/repo.bash pve-xtermjs "make_deb termproxy" "make_deb xterm.js"
50+
RUN ./scripts/repo.bash proxmox-backup make_deb
51+
52+
# Generate install script
53+
ADD /dockerfiles/scripts/install.bash /src/dockerfiles/scripts/install.bash
54+
RUN ./dockerfiles/scripts/install.bash --gen /src/release \
55+
proxmox-backup-server > /src/release/install && \
56+
chmod +x /src/release/install
8357

8458
#=================================
8559

8660
FROM ${ARCH}debian:bookworm
87-
COPY --from=builder /deb/ /deb/
88-
RUN mkdir -p /deb/static && \
89-
mv /deb/proxmox-backup-client-static*.deb /deb/static/
61+
COPY --from=builder /src/release/ /release/
9062

9163
# Install all packages
9264
RUN export DEBIAN_FRONTEND=noninteractive && \
9365
apt-get -y update && \
94-
apt install -y runit ssmtp cron /deb/*.deb
66+
apt install -y runit ssmtp cron && \
67+
/release/install
9568

9669
# Add default configs
9770
ADD /dockerfiles/pbs/ /etc/proxmox-backup-default/
File renamed without changes.
File renamed without changes.

dockerfiles/scripts/install.bash

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#!/bin/bash
2+
3+
if [[ "$1" == "--gen" ]]; then
4+
GEN=1
5+
shift
6+
fi
7+
8+
if [[ $# -lt 2 ]]; then
9+
echo "usage: $0 [--gen] <folder> [package names...]"
10+
exit 1
11+
fi
12+
13+
DIR=$(realpath "$1")
14+
shift
15+
16+
cd "$DIR"
17+
DIR=.
18+
19+
declare -A PKG_PATHS
20+
declare -A PKG_DEPS
21+
22+
# Index all .deb files by package name
23+
while read deb; do
24+
pkg=$(dpkg-deb -f "$deb" Package)
25+
deps=$(dpkg-deb -f "$deb" Depends | sed 's/([^)]*)//g' | tr ',' '\n' | awk '{print $1}' | xargs)
26+
PKG_PATHS["$pkg"]="$deb"
27+
PKG_DEPS["$pkg"]="$deps"
28+
done < <(find "$DIR" -name "*.deb")
29+
30+
debug() {
31+
[[ -z "$DEBUG" ]] || echo "$@" 1>&2
32+
}
33+
34+
declare -A VISITED
35+
resolve_deps() {
36+
local pkg="$1"
37+
38+
# Process once
39+
[[ -n "${VISITED[$pkg]}" ]] && debug "already visited $pkg" && return
40+
VISITED["$pkg"]=1
41+
42+
# Skip missing
43+
[[ -z "${PKG_PATHS[$pkg]}" ]] && debug "missing $pkg" && return
44+
45+
# Skip installed
46+
# dpkg -s "$pkg" &>/dev/null && debug "already installed $pkg" && return
47+
48+
# Resolve recursively
49+
echo "${PKG_PATHS[$pkg]}"
50+
for dep in ${PKG_DEPS[$pkg]}; do
51+
resolve_deps "$dep"
52+
done
53+
}
54+
55+
resolve_all_pkgs() {
56+
for pkg; do
57+
resolve_deps "$pkg"
58+
done
59+
}
60+
61+
if [[ -n "$GEN" ]]; then
62+
echo "#!/bin/sh"
63+
echo "cd \$(dirname \"\$0\")"
64+
echo apt install -y $(resolve_all_pkgs "$@")
65+
else
66+
set +x
67+
apt install -y $(resolve_all_pkgs "$@")
68+
fi

repos/patches/proxmox-backup/debian-cargo-config.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
diff --git a/debian/rules b/debian/rules
2-
index ab48cce1..0d26eab9 100755
2+
index aa4571ff..0fbb29e7 100755
33
--- a/debian/rules
44
+++ b/debian/rules
5-
@@ -37,9 +37,9 @@ endif
5+
@@ -38,9 +38,9 @@ endif
66
override_dh_auto_configure:
77
@perl -ne 'if (/^version\s*=\s*"(\d+(?:\.\d+)+)"/) { my $$v_cargo = $$1; my $$v_deb = "$(DEB_VERSION_UPSTREAM)"; \
88
die "ERROR: d/changelog <-> Cargo.toml version mismatch: $$v_cargo != $$v_deb\n" if $$v_cargo ne $$v_deb; exit(0); }' Cargo.toml

repos/patches/proxmox-backup/fix-cargo.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
diff --git a/debian/rules b/debian/rules
2-
index 506852eb..c22f1386 100755
2+
index ab48cce1..0a540d4f 100755
33
--- a/debian/rules
44
+++ b/debian/rules
55
@@ -18,7 +18,7 @@ STATIC_COMPILEDIR := $(STATIC_TARGET_DIR)/$(DEB_HOST_RUST_TYPE)/debug

repos/patches/proxmox-backup/multi-arch.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ index 40d8459f..466bd621
4040
usr/sbin/proxmox-backup-debug
4141
usr/sbin/proxmox-backup-manager
4242
diff --git a/debian/rules b/debian/rules
43-
index c22f1386..62089b38 100755
43+
index 0a540d4f..aa4571ff 100755
4444
--- a/debian/rules
4545
+++ b/debian/rules
4646
@@ -2,6 +2,7 @@

repos/pve-xtermjs.deps

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
pve-xtermjs c69379f49db91429eb01ea56b47f2a2832fec8e7 # Wed Jun 25 15:29:14 2025 +0200
2+
proxmox 933edddbf88a06f0bdf7b88d34124bac486f4128 # Tue Jun 24 09:30:42 2025 +0200

0 commit comments

Comments
 (0)