mirror of
https://github.com/wofferl/proxmox-backup-arm64
synced 2025-12-06 00:13:41 +00:00
Compare commits
214 Commits
2.3.3
...
f372cf0d76
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f372cf0d76 | ||
|
|
514e19f15e | ||
|
|
da9eaf4a5b | ||
|
|
3e6525f604 | ||
|
|
081846002d | ||
|
|
4073e38b47 | ||
|
|
f4462568a2 | ||
|
|
d6684e5afc | ||
|
|
b4f29bae45 | ||
|
|
e13e20f0b9 | ||
|
|
3925cbdf64 | ||
|
|
352dccb36d | ||
|
|
bbcd43b1dd | ||
|
|
8ea4801cd3 | ||
|
|
0fd91d2cfe | ||
|
|
9de48a1b11 | ||
|
|
cecd77c2aa | ||
|
|
4937670238 | ||
|
|
8fd409e64e | ||
|
|
bac1e03de8 | ||
|
|
4665209838 | ||
|
|
dd38110940 | ||
|
|
36b0ae8a4c | ||
|
|
43ef5044c0 | ||
|
|
4ae0c091e0 | ||
|
|
738f3c7283 | ||
|
|
839f3b7b76 | ||
|
|
33782a1f24 | ||
|
|
2d3f28ce51 | ||
|
|
d50f7fe86d | ||
|
|
7d580c1be9 | ||
|
|
3a52c36f53 | ||
|
|
4c0562367c | ||
|
|
ff38abbf8d | ||
|
|
88f3008eef | ||
|
|
8448491729 | ||
|
|
0433e07439 | ||
|
|
5c8e2f69f0 | ||
|
|
175b39c7c8 | ||
|
|
311105a27b | ||
|
|
bbe3a3692f | ||
|
|
23adb35317 | ||
|
|
6715e0396a | ||
|
|
d102faa586 | ||
|
|
6af6a72a10 | ||
|
|
bf30a2413c | ||
|
|
6ef2abd989 | ||
|
|
660c795524 | ||
|
|
d27356d2b9 | ||
|
|
9f581dfb08 | ||
|
|
ef5f796882 | ||
|
|
f2fb3676f8 | ||
|
|
ad77c964cb | ||
|
|
168a6b429a | ||
|
|
8e1ac174e7 | ||
|
|
c0aca61ebe | ||
|
|
fae8e1f64b | ||
|
|
23d00e7cc1 | ||
|
|
32ab05f429 | ||
|
|
ab3e451ed7 | ||
|
|
3362b1b96f | ||
|
|
1b9c823956 | ||
|
|
48fd0a1319 | ||
|
|
7b6ad9d99a | ||
|
|
cd0fd7e873 | ||
|
|
faa282d822 | ||
|
|
bc3c476d5e | ||
|
|
5ddd4852f8 | ||
|
|
020a9d2f1c | ||
|
|
97d6c06c88 | ||
|
|
1947c9560a | ||
|
|
8317a5e0d1 | ||
|
|
25e7c98522 | ||
|
|
cec6c6dfa5 | ||
|
|
cf9ef874e4 | ||
|
|
9d86752f68 | ||
|
|
6a2c719f8c | ||
|
|
ab281d9374 | ||
|
|
4a63a0338d | ||
|
|
63a21b014d | ||
|
|
042413e1b8 | ||
|
|
b4ca3389e4 | ||
|
|
5105c83405 | ||
|
|
a60d1c7bba | ||
|
|
7cd10f96dc | ||
|
|
b70700e8c1 | ||
|
|
21fa6326a0 | ||
|
|
3030389cf4 | ||
|
|
6795922c7c | ||
|
|
2941711a15 | ||
|
|
9620ca4f8d | ||
|
|
265280a452 | ||
|
|
1bbb782977 | ||
|
|
7b1988d076 | ||
|
|
2d593e7d29 | ||
|
|
7e72b143ea | ||
|
|
e6995b619d | ||
|
|
17c534a8a0 | ||
|
|
cb2d149fdd | ||
|
|
8d11281433 | ||
|
|
da98dea0d2 | ||
|
|
5d8218b5b5 | ||
|
|
97f58bce2a | ||
|
|
23452312c4 | ||
|
|
a59c0477c3 | ||
|
|
29f1ba5d4b | ||
|
|
cf50616c33 | ||
|
|
d6b9a095f9 | ||
|
|
67697b65a0 | ||
|
|
ef3da4be87 | ||
|
|
fa37028210 | ||
|
|
9c7af09258 | ||
|
|
b89812a950 | ||
|
|
ff08172815 | ||
|
|
99f7efc3f1 | ||
|
|
4c70693260 | ||
|
|
3f62ca3136 | ||
|
|
3e830636f1 | ||
|
|
fe4740df49 | ||
|
|
257ddc5221 | ||
|
|
fd65a05528 | ||
|
|
d33d8c992c | ||
|
|
f3846cd23f | ||
|
|
5af2971829 | ||
|
|
c75168cdfa | ||
|
|
a77f306483 | ||
|
|
3a9bcc72ee | ||
|
|
01a97f82da | ||
|
|
da26ee63da | ||
|
|
865b0fde03 | ||
|
|
1391a970be | ||
|
|
01dcca2028 | ||
|
|
d63d66bbea | ||
|
|
f022ddfc7d | ||
|
|
aab8e23215 | ||
|
|
0684ab7acb | ||
|
|
51ef83992d | ||
|
|
47af74ec15 | ||
|
|
72b49d84c8 | ||
|
|
31fb94d1f3 | ||
|
|
f70a8954c1 | ||
|
|
392ef5cab7 | ||
|
|
687af006c9 | ||
|
|
170b9375c5 | ||
|
|
ac81d4c789 | ||
|
|
aa3c54bfd0 | ||
|
|
2aab7c0eb2 | ||
|
|
5ba0200514 | ||
|
|
ac3f44b525 | ||
|
|
ae4b79b6d5 | ||
|
|
f49755f002 | ||
|
|
79314720e5 | ||
|
|
30142f3fca | ||
|
|
23ab98e988 | ||
|
|
630ce02d4c | ||
|
|
fa4bcac6ce | ||
|
|
b972a9dee2 | ||
|
|
9a97e5d3ac | ||
|
|
58c1d68c90 | ||
|
|
41e0d953ca | ||
|
|
de9e6431c4 | ||
|
|
876d3e2fdc | ||
|
|
d9d851d854 | ||
|
|
a8f4127b36 | ||
|
|
bbd5d4fbe1 | ||
|
|
e9f3a872de | ||
|
|
3693f68d8c | ||
|
|
6c535fc16a | ||
|
|
ef45df26e6 | ||
|
|
1da424c3ae | ||
|
|
d844d35fd8 | ||
|
|
47d12191c2 | ||
|
|
3a2f335ac0 | ||
|
|
caabe50fe5 | ||
|
|
0c42bfa351 | ||
|
|
a0efb35d1f | ||
|
|
83736f0ec4 | ||
|
|
27e2fcf6fd | ||
|
|
46a37bd206 | ||
|
|
beed92f894 | ||
|
|
f5b49ef152 | ||
|
|
d42895c968 | ||
|
|
b37912b4b4 | ||
|
|
059983ed54 | ||
|
|
1ece2e1901 | ||
|
|
48b6195538 | ||
|
|
0c19e596f5 | ||
|
|
369ff8cbf2 | ||
|
|
4d3d7d3e7f | ||
|
|
02000f1c42 | ||
|
|
8b31eee927 | ||
|
|
9e00eb1023 | ||
|
|
e320f6276a | ||
|
|
7945d1f590 | ||
|
|
0f7896a71b | ||
|
|
9cb8b7fa76 | ||
|
|
4748b26174 | ||
|
|
4dd0c5f764 | ||
|
|
75b9fddaf2 | ||
|
|
56aa265033 | ||
|
|
77b39b6acb | ||
|
|
47ccf75633 | ||
|
|
9be53cbd96 | ||
|
|
a7ef29bd5b | ||
|
|
f154c2937a | ||
|
|
cbefbad736 | ||
|
|
cf6bc24994 | ||
|
|
630fe3c4e2 | ||
|
|
1a5b5c5c16 | ||
|
|
ecfa6723be | ||
|
|
0abc0227d7 | ||
|
|
a609f11ca2 | ||
|
|
4f5b8d58df | ||
|
|
77174fd2ba |
27
.github/Dockerfile.crosscompile-arm64
vendored
Normal file
27
.github/Dockerfile.crosscompile-arm64
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
ARG baseimage=debian:bullseye-slim
|
||||
FROM ${baseimage} as builder-stage
|
||||
ARG buildoptions
|
||||
# workaround for memory bug https://github.com/rust-lang/cargo/issues/10583
|
||||
ENV CARGO_NET_GIT_FETCH_WITH_CLI=true
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
RUN dpkg --add-architecture arm64
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
build-essential crossbuild-essential-arm64 curl ca-certificates sudo git lintian \
|
||||
pkg-config libudev-dev:arm64 libssl-dev:arm64 libapt-pkg-dev:arm64 apt:amd64 \
|
||||
libclang-dev libpam0g-dev:arm64 pkgconf:arm64 zlib1g-dev:arm64 \
|
||||
qemu-user-binfmt
|
||||
RUN grep -qi bookworm /etc/os-release && apt-get install -y pkg-config:arm64 || true
|
||||
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
RUN source ~/.cargo/env && rustup target add aarch64-unknown-linux-gnu
|
||||
|
||||
COPY . /build/
|
||||
WORKDIR /build
|
||||
|
||||
RUN df -h
|
||||
RUN source ~/.cargo/env && ./build.sh ${buildoptions}
|
||||
|
||||
FROM scratch
|
||||
COPY --from=builder-stage /build/*.log /build/packages/* /
|
||||
9
.github/Dockerfile.installtest
vendored
Normal file
9
.github/Dockerfile.installtest
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
ARG baseimage=debian:bullseye-slim
|
||||
FROM ${baseimage} as builder-stage
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
COPY . /build/
|
||||
WORKDIR /build/packages
|
||||
|
||||
RUN ls -l
|
||||
RUN apt update && apt-get -y install $(find /build/packages/ -name '*.deb' ! -name '*static*.deb')
|
||||
7
.github/PREBUILD.md
vendored
Normal file
7
.github/PREBUILD.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
_These are unofficial binary packages of Proxmox Backup Server 4.x for debian/trixie._
|
||||
|
||||
The proxmox-backup*,promox-mini-journalreader and pve-xtermjs packages are build using the source from https://git.proxmox.com/ with the build.sh script and the github action docker buildx workflow. The other arch independent packages were downloaded from http://download.proxmox.com/debian/pbs/dists/trixie/pbs-no-subscription/binary-amd64/.
|
||||
|
||||
Use at your own risk.
|
||||
|
||||
**Official Changelog**
|
||||
15
.github/dependabot.yml
vendored
Normal file
15
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "actions update"
|
||||
|
||||
136
.github/workflows/buildtest.yml
vendored
Normal file
136
.github/workflows/buildtest.yml
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
name: Buildtest
|
||||
run-name: Buildtest ${{ github.event.inputs.package }} ${{ github.event.inputs.version }} ${{ github.event.inputs.baseimage }} (${{ github.event.inputs.arch }})
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
package:
|
||||
type: choice
|
||||
description: Package
|
||||
options:
|
||||
- server
|
||||
- client
|
||||
version:
|
||||
type: choice
|
||||
description: Version
|
||||
options:
|
||||
- 4.x
|
||||
arch:
|
||||
type: choice
|
||||
description: Target Arch
|
||||
options:
|
||||
- arm64-native
|
||||
- arm64-cross
|
||||
- amd64
|
||||
- all
|
||||
baseimage:
|
||||
type: choice
|
||||
description: Base Image
|
||||
options:
|
||||
- debian:trixie-slim
|
||||
- debian:bookworm-slim
|
||||
- ubuntu:noble
|
||||
- ubuntu:jammy
|
||||
|
||||
jobs:
|
||||
build-arm64-native:
|
||||
if: ${{ github.event.inputs.arch == 'arm64-native' || github.event.inputs.arch == 'all' }}
|
||||
runs-on: ubuntu-24.04-arm
|
||||
|
||||
steps:
|
||||
- name: Free up disk space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/.ghcup
|
||||
sudo rm -rf /usr/local/lib/android
|
||||
sudo rm -rf /usr/local/lib/node_modules
|
||||
sudo rm -rf /usr/share/dotnet
|
||||
sudo rm -rf /usr/share/swift
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build packages
|
||||
run: |
|
||||
options=""
|
||||
[ "${{ github.event.inputs.package }}" = "client" ] && options="client"
|
||||
[ "${RUNNER_DEBUG}" = "1" ] && options=$options" debug"
|
||||
docker buildx build -o packages --build-arg buildoptions="github ${options}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/arm64 .
|
||||
echo "DEB_VERSION=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: //p')" >> $GITHUB_ENV
|
||||
echo "DEB_VERSION_UPSTREAM=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: \([0-9.]\+\)-[0-9]/\1/p')" >> $GITHUB_ENV
|
||||
- name: Test packages
|
||||
run: |
|
||||
docker buildx build --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/arm64 -f .github/Dockerfile.installtest .
|
||||
|
||||
build-arm64-cross:
|
||||
if: ${{ github.event.inputs.arch == 'arm64-cross' || github.event.inputs.arch == 'all' }}
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- name: Free up disk space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/.ghcup
|
||||
sudo rm -rf /usr/local/lib/android
|
||||
sudo rm -rf /usr/local/lib/node_modules
|
||||
sudo rm -rf /usr/share/dotnet
|
||||
sudo rm -rf /usr/share/swift
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build packages
|
||||
run: |
|
||||
options=""
|
||||
[ "${{ github.event.inputs.package }}" = "client" ] && options="client"
|
||||
[ "${RUNNER_DEBUG}" = "1" ] && options=$options" debug"
|
||||
docker buildx build -o packages --build-arg buildoptions="cross github ${options}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 -f .github/Dockerfile.crosscompile-arm64 .
|
||||
echo "DEB_VERSION=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: //p')" >> $GITHUB_ENV
|
||||
echo "DEB_VERSION_UPSTREAM=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: \([0-9.]\+\)-[0-9]/\1/p')" >> $GITHUB_ENV
|
||||
- name: Test packages
|
||||
run: |
|
||||
docker buildx build --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/arm64 -f .github/Dockerfile.installtest .
|
||||
|
||||
build-amd64:
|
||||
if: ${{ github.event.inputs.arch == 'amd64' || github.event.inputs.arch == 'all' }}
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- name: Free up disk space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/.ghcup
|
||||
sudo rm -rf /usr/local/lib/android
|
||||
sudo rm -rf /usr/local/lib/node_modules
|
||||
sudo rm -rf /usr/share/dotnet
|
||||
sudo rm -rf /usr/share/swift
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build packages
|
||||
run: |
|
||||
options=""
|
||||
[ "${{ github.event.inputs.package }}" = "client" ] && options="client"
|
||||
[ "${RUNNER_DEBUG}" = "1" ] && options=$options" debug"
|
||||
docker buildx build -o packages --build-arg buildoptions="github ${options}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 .
|
||||
echo "DEB_VERSION=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: //p')" >> $GITHUB_ENV
|
||||
echo "DEB_VERSION_UPSTREAM=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: \([0-9.]\+\)-[0-9]/\1/p')" >> $GITHUB_ENV
|
||||
- name: Test packages
|
||||
run: |
|
||||
docker buildx build --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 -f .github/Dockerfile.installtest .
|
||||
66
.github/workflows/release.yml
vendored
Normal file
66
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
name: Release
|
||||
run-name: Release ${{ github.ref_name }} ${{ github.event.inputs.version }} Debian/Trixie (arm64)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
type: choice
|
||||
description: Version
|
||||
options:
|
||||
- 4.x
|
||||
push:
|
||||
tags:
|
||||
- 4.**
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- name: Free up disk space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/.ghcup
|
||||
sudo rm -rf /usr/local/lib/android
|
||||
sudo rm -rf /usr/local/lib/node_modules
|
||||
sudo rm -rf /usr/share/dotnet
|
||||
sudo rm -rf /usr/share/swift
|
||||
df -h
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build packages
|
||||
run: |
|
||||
baseimage="debian:trixie-slim"
|
||||
echo "DEB_DIST=Debian/Trixie" >> $GITHUB_ENV
|
||||
if [ "${RUNNER_DEBUG}" = "1" ]; then
|
||||
docker buildx build -o packages --build-arg buildoptions="github debug" --build-arg baseimage=${baseimage} --platform linux/arm64 -f Dockerfile .
|
||||
else
|
||||
docker buildx build -o packages --build-arg buildoptions="github" --build-arg baseimage=${baseimage} --platform linux/arm64 -f Dockerfile .
|
||||
fi
|
||||
sudo apt -y install apt-listchanges
|
||||
apt-listchanges --latest=1 -f text packages/proxmox-backup-server_*.deb | sed -e '/^\(apt-listchanges.*\|[-]\+\)$/d' >> .github/PREBUILD.md
|
||||
echo "DEB_VERSION=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: //p')" >> $GITHUB_ENV
|
||||
echo "DEB_VERSION_UPSTREAM=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: \([0-9.]\+\)-[0-9]/\1/p')" >> $GITHUB_ENV
|
||||
- name: Test packages
|
||||
run: |
|
||||
df -h
|
||||
baseimage="debian:trixie-slim"
|
||||
docker buildx build --build-arg baseimage=${baseimage} --platform linux/arm64 -f .github/Dockerfile.installtest .
|
||||
- name: Release packages
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
artifacts: "packages/*.deb"
|
||||
bodyFile: ".github/PREBUILD.md"
|
||||
tag: ${{ env.DEB_VERSION }}
|
||||
name: Version ${{ env.DEB_VERSION }} (${{ env.DEB_DIST }})
|
||||
draft: true
|
||||
makeLatest: false
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
/packages
|
||||
/packages_build
|
||||
/sources
|
||||
rust-toolchain.toml
|
||||
|
||||
22
Dockerfile
Normal file
22
Dockerfile
Normal file
@@ -0,0 +1,22 @@
|
||||
ARG baseimage=debian:bookworm-slim
|
||||
FROM ${baseimage} as builder-stage
|
||||
ARG buildoptions
|
||||
# workaround for memory bug https://github.com/rust-lang/cargo/issues/10583
|
||||
ENV CARGO_NET_GIT_FETCH_WITH_CLI=true
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
build-essential curl ca-certificates sudo git lintian \
|
||||
pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \
|
||||
libpam0g-dev zlib1g-dev
|
||||
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
|
||||
COPY . /build/
|
||||
WORKDIR /build
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
RUN source ~/.cargo/env && ./build.sh ${buildoptions}
|
||||
|
||||
FROM scratch
|
||||
COPY --from=builder-stage /build/*.log /build/packages/* /
|
||||
120
README.md
120
README.md
@@ -1,28 +1,91 @@
|
||||
# proxmox-backup-arm64
|
||||
Script for building Proxmox Backup Server 2.x for Armbian64 based on Bullseye<br />
|
||||
Script for building Proxmox Backup Server **4.x** for **Debian/Trixie**<br />
|
||||
To build Proxmox Backup Server **3.x** for **Debian/Bookworm** use the stable-3 branch.
|
||||
|
||||
At least 4 GB are required for compiling. On devices with low memory, SWAP must be used (see help section).
|
||||
|
||||
## Install build essentials and dependencies
|
||||
## Download pre-built packages
|
||||
You can find unoffical debian packages for **Bookworm** or **Trixie** that are created with the build.sh script and github actions at https://github.com/wofferl/proxmox-backup-arm64/releases.
|
||||
|
||||
With the script you can also download all files of the latest **Debian/Trixie** release at once
|
||||
|
||||
**Download and install**
|
||||
|
||||
```./build.sh install``` or a specific version ```./build.sh install=4.0.20-1```
|
||||
|
||||
**Download only**
|
||||
|
||||
```./build.sh download``` or a specific verision ```./build.sh download=4.0.20-1```
|
||||
|
||||
## Build manually
|
||||
### Install build essentials and dependencies
|
||||
```
|
||||
apt-get install -y --no-install-recommends \
|
||||
build-essential curl ca-certificates sudo git lintian \
|
||||
build-essential curl ca-certificates sudo git lintian fakeroot \
|
||||
pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \
|
||||
libpam0g-dev
|
||||
libpam0g-dev zlib1g-dev
|
||||
```
|
||||
## Install ``rustup``
|
||||
### Install ``rustup``
|
||||
```
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
|
||||
source ~/.cargo/env
|
||||
```
|
||||
|
||||
## Start build script
|
||||
### Start build script
|
||||
```
|
||||
./build.sh
|
||||
./build.sh
|
||||
```
|
||||
or
|
||||
```
|
||||
./build.sh client (build only proxmox-backup-client package)
|
||||
```
|
||||
|
||||
The compilation can take several hours.<br />
|
||||
After that you can find the finished packages in the folder packages/
|
||||
|
||||
## Build using docker
|
||||
|
||||
You can build arm64 .deb packages using the provided Dockerfile and docker buildx:
|
||||
```
|
||||
docker buildx build -o packages --platform linux/arm64 .
|
||||
```
|
||||
|
||||
You can also set build arguments for base image and build.sh options:
|
||||
|
||||
```
|
||||
docker buildx build -o packages --build-arg buildoptions="client debug" --build-arg baseimage=ubuntu:jammy --platform linux/arm64 .
|
||||
```
|
||||
|
||||
Once the docker build is completed, packages will be copied from the docker build image to a folder named `packages` in the root folder.
|
||||
|
||||
## Build using cross compiler
|
||||
### Enable multi arch and install build essentials and dependencies
|
||||
For cross compiling you need to enable multiarch and install the needed build dependencies for the target architecture. For the tests to work qemu-user-binfmt is needed.
|
||||
|
||||
```
|
||||
dpkg --add-architecture arm64
|
||||
```
|
||||
```
|
||||
apt update && apt-get install -y --no-install-recommends \
|
||||
build-essential crossbuild-essential-arm64 curl ca-certificates sudo git lintian \
|
||||
pkg-config libudev-dev:arm64 libssl-dev:arm64 libapt-pkg-dev:arm64 apt:amd64 \
|
||||
libclang-dev libpam0g-dev:arm64 pkgconf:arm64 zlib1g-dev:arm64 \
|
||||
qemu-user-binfmt
|
||||
```
|
||||
(apt:amd64 is necessary because libapt-pkg-dev:arm64 would break the dependencies without it)
|
||||
|
||||
### Install ``rustup`` and add target arch
|
||||
```
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
|
||||
source ~/.cargo/env
|
||||
rustup target add aarch64-unknown-linux-gnu
|
||||
```
|
||||
|
||||
### Start build script
|
||||
```
|
||||
./build.sh cross
|
||||
```
|
||||
|
||||
## Install all needed packages
|
||||
### Server
|
||||
```
|
||||
@@ -35,7 +98,8 @@ sudo apt install \
|
||||
./proxmox-backup-server_*_arm64.deb \
|
||||
./proxmox-mini-journalreader_*_arm64.deb \
|
||||
./proxmox-widget-toolkit_*_all.deb \
|
||||
./pve-xtermjs_*_arm64.deb
|
||||
./proxmox-termproxy_*_arm64.deb \
|
||||
./pve-xtermjs_*_all.deb
|
||||
```
|
||||
|
||||
### Client
|
||||
@@ -46,6 +110,12 @@ sudo apt install \
|
||||
```
|
||||
|
||||
## Help section
|
||||
### Debugging
|
||||
you can add the debug option to redirect the complete build process output also to a file (build.log)
|
||||
|
||||
```
|
||||
./build.sh debug
|
||||
```
|
||||
### Console commands
|
||||
|
||||
to see PBS users:
|
||||
@@ -71,10 +141,42 @@ Check swap memory:
|
||||
swapon --show or free -h
|
||||
```
|
||||
|
||||
Create and enable 4G swap file:
|
||||
Change swapsize on systems with fstab enabled swap:
|
||||
|
||||
```
|
||||
sudo swapoff /var/swap
|
||||
sudo fallocate -l 4G /var/swap
|
||||
sudo mkswap /var/swap
|
||||
sudo swapon /var/swap
|
||||
```
|
||||
|
||||
Change swapsize on systems with dphys-swapfile service:
|
||||
|
||||
```
|
||||
sudo sed -i "s#.*CONF_\(SWAPSIZE\|MAXSWAP\)=.*#CONF_\1=4096#" /etc/dphys-swapfile
|
||||
sudo service dphys-swapfile restart
|
||||
```
|
||||
|
||||
|
||||
### 400 Bad Request on Raspberry Pi 5 (https://github.com/wofferl/proxmox-backup-arm64/issues/40)
|
||||
|
||||
The Raspberry Pi 5 uses a kernel with 16k page-size, which is incompatible with Proxmox Backup Server (jemalloc/Rust).
|
||||
So you need to a 4k kernel on the RPi5 for Proxmox Backup Server to work.
|
||||
|
||||
### Raspberry Pi OS `apt update && apt upgrade` failing (https://github.com/wofferl/proxmox-backup-arm64/issues/60)
|
||||
|
||||
As Proxmox source repository does not work for ARM architecture anyway in order to keep underlying Raspberry Pi OS
|
||||
up to date by running `apt update && apt upgrade` it is required to comment it out from apt sources.
|
||||
|
||||
```
|
||||
sudo sed -i 's#^Enabled:.*#Enabled: false#g' /etc/apt/sources.list.d/pbs-enterprise.sources
|
||||
```
|
||||
/etc/apt/sources.list.d/pbs-enterprise.sources
|
||||
```
|
||||
Types: deb
|
||||
URIs: https://enterprise.proxmox.com/debian/pbs
|
||||
Suites: trixie
|
||||
Components: pbs-enterprise
|
||||
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
|
||||
Enabled: false
|
||||
```
|
||||
|
||||
370
build.sh
370
build.sh
@@ -19,7 +19,7 @@ function download_package() {
|
||||
url=$(select_package "${repo}" "${package}" "${version_test[@]}")
|
||||
|
||||
if [ -z "${url}" ]; then
|
||||
echo "Error package ${package} in version " "${version_test[@]}" " not found"
|
||||
echo "Error package ${package} in version " "${version_test[@]}" " not found" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -30,15 +30,15 @@ function download_package() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "${package} downloading..." >&2
|
||||
echo "${package} downloading...${url}" >&2
|
||||
curl -sSfL "${url}" -o "${file}"
|
||||
echo "${file}"
|
||||
}
|
||||
|
||||
function git_clone_or_fetch() {
|
||||
url=${1} # url/name.git
|
||||
name_git=${url##*/} # name.git
|
||||
name=${name_git%.git} # name
|
||||
url=${1} # url/name.git
|
||||
name_git=${url##*/} # name.git
|
||||
name=${name_git%.git} # name
|
||||
|
||||
if [ ! -d "${name}" ]; then
|
||||
git clone "${url}"
|
||||
@@ -50,9 +50,9 @@ function git_clone_or_fetch() {
|
||||
function git_clean_and_checkout() {
|
||||
commit_id=${1}
|
||||
path=${2}
|
||||
path_args=( )
|
||||
path_args=()
|
||||
if [[ "${path}" != "" ]]; then
|
||||
path_args=( "-C" "${path}" )
|
||||
path_args=("-C" "${path}")
|
||||
fi
|
||||
|
||||
git "${path_args[@]}" clean -ffdx
|
||||
@@ -62,9 +62,26 @@ function git_clean_and_checkout() {
|
||||
|
||||
function load_packages() {
|
||||
url=${1}
|
||||
curl -sSf "${url}" \
|
||||
| gzip -d - \
|
||||
| sed '/./{H;$!d} ; x ; s/^.*Package: \([^\n]*\).*Version: \([^\n]*\).*Filename: \([^\n]*\).*$/\1 \2 \3/p'
|
||||
curl -sSf -H 'Cache-Control: no-cache' "${url}" |
|
||||
gzip -d - |
|
||||
awk -F": " '/^(Package|Version|Depends|Filename)/ {
|
||||
if($1 == "Package") {
|
||||
version="";
|
||||
depends="";
|
||||
filename="";
|
||||
package=$2;
|
||||
}
|
||||
else if($1 == "Version") {
|
||||
version=$2;
|
||||
}
|
||||
else if($1 == "Depends") {
|
||||
depends=$2;
|
||||
}
|
||||
else if($1 == "Filename") {
|
||||
filename=$2;
|
||||
print package";"version";"filename";"depends;
|
||||
}
|
||||
}'
|
||||
}
|
||||
|
||||
function select_package() {
|
||||
@@ -85,24 +102,65 @@ function select_package() {
|
||||
file_target=
|
||||
|
||||
while IFS= read -r line; do
|
||||
name=${line%% *}
|
||||
name=${line%%;*}
|
||||
line=${line##*${name};}
|
||||
|
||||
if [[ "${name}" == "${package_name}" ]]; then
|
||||
version=${line#* }
|
||||
version=${version% *}
|
||||
file=${line##* }
|
||||
if dpkg --compare-versions "${version}" "${version_test[@]}" \
|
||||
&& dpkg --compare-versions "${version}" '>>' "${version_target}"; then
|
||||
version=${line%%;*}
|
||||
line=${line##*${version};}
|
||||
file=${line%%;*}
|
||||
line=${line##*${file};}
|
||||
depends=${line}
|
||||
if dpkg --compare-versions "${version}" "${version_test[@]}" &&
|
||||
dpkg --compare-versions "${version}" '>>' "${version_target}"; then
|
||||
if [ -n "$depends" ]; then
|
||||
sudo apt satisfy -s "${depends}" >/dev/null 2>&1 || continue
|
||||
fi
|
||||
version_target=${version}
|
||||
file_target=${file}
|
||||
fi
|
||||
fi
|
||||
done <<<"${packages_target}"
|
||||
|
||||
if [ -z "${file_target}" ]; then
|
||||
return 1
|
||||
if [ -n "${file_target}" ]; then
|
||||
url=${url_base}/${file_target}
|
||||
echo "${url}"
|
||||
fi
|
||||
}
|
||||
|
||||
function set_package_info() {
|
||||
if [ "$GITHUB_ACTION" ]; then
|
||||
sed -i "s#^Maintainer:.*#Maintainer: Github Action <github@linux-dude.de>#" debian/control
|
||||
sed -i "s#^Homepage:.*#Homepage: https://github.com/wofferl/proxmox-backup-arm64#" debian/control
|
||||
else
|
||||
sed -i "s#^\(Maintainer.*\)\$#\1\nOrigin: https://github.com/wofferl/proxmox-backup-arm64#" debian/control
|
||||
fi
|
||||
}
|
||||
|
||||
file_list=()
|
||||
function download_release() {
|
||||
version=${1:-latest}
|
||||
release_url="https://api.github.com/repos/wofferl/proxmox-backup-arm64/releases/${version}"
|
||||
echo "Downloading ${version} released files to "${PACKAGES}
|
||||
for download_url in $(curl -sSf ${release_url} | sed -n '/browser_download_url/ {/static\|dbgsym/!s/.*\(https[^"]*\)"/\1/p}'); do
|
||||
file=$(basename ${download_url})
|
||||
if [ -e ${PACKAGES}/${file} ]; then
|
||||
echo "${file} already exist"
|
||||
else
|
||||
echo "Downloading ${file}"
|
||||
curl -sSfLO ${download_url} --output-dir ${PACKAGES}
|
||||
fi
|
||||
file_list+=("${PACKAGES}/${file}")
|
||||
done
|
||||
}
|
||||
|
||||
function install_server() {
|
||||
if [ "${#file_list[@]}" -gt 0 ]; then
|
||||
sudo apt-get install -y \
|
||||
"${file_list[@]}"
|
||||
else
|
||||
echo "No files found!"
|
||||
fi
|
||||
url=${url_base}/${file_target}
|
||||
echo "${url}"
|
||||
}
|
||||
|
||||
SUDO="${SUDO:-sudo -E}"
|
||||
@@ -113,112 +171,262 @@ PACKAGES="${BASE}/packages"
|
||||
PACKAGES_BUILD="${BASE}/packages_build"
|
||||
PATCHES="${BASE}/patches"
|
||||
SOURCES="${BASE}/sources"
|
||||
LOGFILE="build.log"
|
||||
PACKAGE_ARCH=$(dpkg-architecture -q DEB_BUILD_ARCH)
|
||||
HOST_ARCH=$(dpkg-architecture -q DEB_HOST_ARCH)
|
||||
HOST_CPU=$(dpkg-architecture -q DEB_HOST_GNU_CPU)
|
||||
HOST_SYSTEM=$(dpkg-architecture -q DEB_HOST_GNU_SYSTEM)
|
||||
BUILD_PACKAGE="server"
|
||||
BUILD_PROFILES=""
|
||||
GITHUB_ACTION=""
|
||||
|
||||
|
||||
export DEB_HOST_RUST_TYPE=${HOST_CPU}-unknown-${HOST_SYSTEM}
|
||||
|
||||
. /etc/os-release
|
||||
|
||||
[ ! -d "${PACKAGES}" ] && mkdir -p "${PACKAGES}"
|
||||
|
||||
while [ "$#" -ge 1 ]; do
|
||||
case "$1" in
|
||||
client)
|
||||
BUILD_PACKAGE="client"
|
||||
BUILD_PROFILES=${BUILD_PROFILES}",nodoc"
|
||||
[[ ${BUILD_PROFILES} =~ nocheck ]] || BUILD_PROFILES=${BUILD_PROFILES}",nocheck"
|
||||
export DEB_BUILD_OPTIONS="nocheck"
|
||||
;;
|
||||
cross)
|
||||
PACKAGE_ARCH=arm64
|
||||
BUILD_PROFILES=${BUILD_PROFILES}",cross"
|
||||
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=/usr/bin/aarch64-linux-gnu-gcc
|
||||
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER=qemu-aarch64
|
||||
export CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu
|
||||
export TARGET=aarch64-unknown-linux-gnu
|
||||
export PKG_CONFIG=/usr/bin/aarch64-linux-gnu-pkg-config
|
||||
export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/
|
||||
export CC=/usr/bin/aarch64-linux-gnu-gcc
|
||||
export DEB_HOST_MULTIARCH=aarch64-linux-gnu
|
||||
export DEB_HOST_RUST_TYPE=aarch64-unknown-linux-gnu
|
||||
;;
|
||||
|
||||
install*)
|
||||
if [[ "$1" =~ install=[0-9.-]+ ]]; then
|
||||
download_release tags/${1/*=/}
|
||||
else
|
||||
download_release
|
||||
fi
|
||||
install_server
|
||||
exit 0
|
||||
;;
|
||||
|
||||
download*)
|
||||
if [[ "$1" =~ download=[0-9.-]+ ]]; then
|
||||
download_release tags/${1/*=/}
|
||||
else
|
||||
download_release
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
github)
|
||||
GITHUB_ACTION="true"
|
||||
;;
|
||||
nocheck)
|
||||
[[ ${BUILD_PROFILES} =~ nocheck ]] || BUILD_PROFILES=${BUILD_PROFILES}",nocheck"
|
||||
export DEB_BUILD_OPTIONS="nocheck"
|
||||
;;
|
||||
debug)
|
||||
exec &> >(tee "${LOGFILE}")
|
||||
echo "$@"
|
||||
cat /etc/os-release
|
||||
rustc -V
|
||||
cargo -V
|
||||
set -x
|
||||
;;
|
||||
*)
|
||||
echo "usage $0 [client] [nocheck] [debug] [download]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
[ -n "${BUILD_PROFILES}" ] && BUILD_PROFILES="--build-profiles=${BUILD_PROFILES#,}"
|
||||
|
||||
if [ ! -d "${PATCHES}" ]; then
|
||||
echo "Directory ${PATCHES} is missing! Have you cloned the repository?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ ! -d "${PACKAGES}" ] && mkdir -p "${PACKAGES}"
|
||||
[ ! -d "${PACKAGES_BUILD}" ] && mkdir -p "${PACKAGES_BUILD}"
|
||||
[ ! -d "${SOURCES}" ] && mkdir -p "${SOURCES}"
|
||||
|
||||
echo "Download packages list from proxmox devel repository"
|
||||
PACKAGES_DEVEL=$(load_packages http://download.proxmox.com/debian/devel/dists/trixie/main/binary-amd64/Packages.gz)
|
||||
echo "Download packages list from pbs-test repository"
|
||||
PACKAGES_PBS=$(load_packages http://download.proxmox.com/debian/pbs/dists/trixie/pbs-test/binary-amd64/Packages.gz)
|
||||
|
||||
PACKAGES_DEVEL=$(load_packages http://download.proxmox.com/debian/devel/dists/bullseye/main/binary-amd64/Packages.gz)
|
||||
PACKAGES_PBS=$(load_packages http://download.proxmox.com/debian/pbs/dists/bullseye/pbs-no-subscription/binary-amd64/Packages.gz)
|
||||
|
||||
|
||||
echo "Download dependencies"
|
||||
EXTJS_VER=(">=" "7~")
|
||||
PBS_I18N_VER=(">=" "0")
|
||||
PROXMOX_ACME_VER=(">=" "0")
|
||||
PROXMOX_WIDGETTOOLKIT_VER=(">=" "3.5.2")
|
||||
PVE_ESLINT_VER=(">=" "7.18.0-1")
|
||||
QRCODEJS_VER=(">=" "1.20201119")
|
||||
download_package pbs pbs-i18n "${PBS_I18N_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
download_package pbs libjs-extjs "${EXTJS_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
download_package pbs libjs-qrcodejs "${QRCODEJS_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
download_package pbs libproxmox-acme-plugins "${PROXMOX_ACME_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
download_package pbs proxmox-widget-toolkit "${PROXMOX_WIDGETTOOLKIT_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
packages_install=(
|
||||
"$(download_package devel proxmox-widget-toolkit-dev "${PROXMOX_WIDGETTOOLKIT_VER[@]}" "${PACKAGES_BUILD}")"
|
||||
"$(download_package devel pve-eslint "${PVE_ESLINT_VER[@]}" "${PACKAGES_BUILD}")"
|
||||
)
|
||||
PBS_I18N_VER=(">=" "3.5.0")
|
||||
PROXMOX_ACME_VER=(">=" "1.7.0")
|
||||
PROXMOX_WIDGETTOOLKIT_VER=(">=" "5.0.2")
|
||||
QRCODEJS_VER=(">=" "1.20230525")
|
||||
if [ "${BUILD_PACKAGE}" = "server" ]; then
|
||||
download_package pbs pbs-i18n "${PBS_I18N_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
download_package pbs libjs-extjs "${EXTJS_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
download_package pbs libjs-qrcodejs "${QRCODEJS_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
download_package pbs libproxmox-acme-plugins "${PROXMOX_ACME_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
download_package pbs proxmox-widget-toolkit "${PROXMOX_WIDGETTOOLKIT_VER[@]}" "${PACKAGES}" >/dev/null
|
||||
fi
|
||||
if [ "${BUILD_PACKAGE}" = "server" ]; then
|
||||
packages_install=(
|
||||
"$(download_package devel proxmox-widget-toolkit-dev "${PROXMOX_WIDGETTOOLKIT_VER[@]}" "${PACKAGES_BUILD}")"
|
||||
)
|
||||
fi
|
||||
|
||||
echo "Install build dependencies"
|
||||
${SUDO} apt install -y "${packages_install[@]}"
|
||||
|
||||
cat <<EOF >rust-toolchain.toml
|
||||
[toolchain]
|
||||
channel="1.88.0"
|
||||
targets = [ "${CARGO_BUILD_TARGET:-$(rustc -vV 2>/dev/null | awk '/^host/ { print $2 }')}" ]
|
||||
EOF
|
||||
|
||||
cd "${SOURCES}"
|
||||
if [ "${BUILD_PACKAGE}" != "client" ]; then
|
||||
PROXMOX_BIOME_VER="2.0.6-2"
|
||||
PROXMOX_BIOME_GIT="3c6f4292f32800a1e5d73d8940e5ae6f36af0c40" # 2.0.6-2
|
||||
PROXMOX_BIOME_DOWNLOAD_VER=("=" "$PROXMOX_BIOME_VER")
|
||||
if [ "${HOST_ARCH}" = "amd64" ]; then
|
||||
set +e
|
||||
download_package devel proxmox-biome "${PROXMOX_BIOME_DOWNLOAD_VER[@]}" "${PACKAGES_BUILD}"
|
||||
set -e
|
||||
fi
|
||||
if [ ! -e "${PACKAGES_BUILD}/proxmox-biome_${PROXMOX_BIOME_VER}_${HOST_ARCH}.deb" ]; then
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox-biome.git
|
||||
git_clean_and_checkout ${PROXMOX_BIOME_GIT} proxmox-biome
|
||||
patch -p1 -d proxmox-biome/ <"${PATCHES}/proxmox-biome-build.patch"
|
||||
if [ "${HOST_ARCH}" = "arm64" ]; then
|
||||
patch -p1 -d proxmox-biome/ <"${PATCHES}/proxmox-biome-arm.patch"
|
||||
fi
|
||||
cd proxmox-biome
|
||||
set_package_info
|
||||
${SUDO} apt -y build-dep .
|
||||
env -i HOME=${HOME} TERM=${TERM} bash -c 'source /etc/profile; source ~/.cargo/env; env; make deb'
|
||||
mv -f proxmox-biome_${PROXMOX_BIOME_VER}_${HOST_ARCH}.deb "${PACKAGES_BUILD}"
|
||||
cd ..
|
||||
else
|
||||
echo "proxmox-biome up-to-date"
|
||||
fi
|
||||
if [ -e "${PACKAGES_BUILD}/proxmox-biome_${PROXMOX_BIOME_VER}_${HOST_ARCH}.deb" ]; then
|
||||
${SUDO} apt install -y "${PACKAGES_BUILD}/proxmox-biome_${PROXMOX_BIOME_VER}_${HOST_ARCH}.deb"
|
||||
else
|
||||
echo "proxmox-biome dependency missing"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
PROXMOX_BACKUP_VER="2.3.3-1"
|
||||
PROXMOX_BACKUP_GIT="bde9e3d74c86d1600409f81e2a72de91e717cd62"
|
||||
PATHPATTERNS_GIT="916e41c50e75a718ab7b1b95dc770eed9cd7a403" # 0.1.2-1
|
||||
PROXMOX_ACME_RS_GIT="abc0bdd09d5c3501534510d49da0ae8fa5c05c05" # 0.4.0
|
||||
PROXMOX_APT_GIT="8a7a719aec23ad98a00bb452f0ced4cbf88ba591" # 0.9.3-1
|
||||
PROMXOX_FUSE_GIT="8d57fb64f044ea3dcfdef77ed5f1888efdab0708" # 0.1.4
|
||||
PROXMOX_GIT="9c44e9b410a7eab21160d9588dcb8f5d88f1f979"
|
||||
PROXMOX_OPENID_GIT="ecf59cbb74278ea0e9710466508158ed6a6828c4" # 0.9.9-1
|
||||
PXAR_GIT="29cbeed3e1b52f5eef455cdfa8b5e93f4e3e88f5" # 0.10.2-1
|
||||
if [ ! -e "${PACKAGES}/proxmox-backup-server_${PROXMOX_BACKUP_VER}_arm64.deb" ]; then
|
||||
PROXMOX_BACKUP_VER="4.0.20-1"
|
||||
PROXMOX_BACKUP_GIT="a17276fea051861dcbefd64cb149a067788f4774"
|
||||
PROXMOX_GIT="1ca670858e0494f932c38e34caaca9acfdff4e31"
|
||||
PATHPATTERNS_GIT="42e5e96e30297da878a4d4b3a7fa52b65c1be0ab" # 1.0.0-1
|
||||
PXAR_GIT="993c66fcb8819770f279cb9fb4d13f58f367606c" # 1.0.0-1
|
||||
PROXMOX_FUSE_GIT="87dbf9bfef9169286263bccffaae3206635ca108" # 1.0.0-1
|
||||
if [ ! -e "${PACKAGES}/proxmox-backup-${BUILD_PACKAGE}_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.deb" ]; then
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox.git
|
||||
git_clean_and_checkout ${PROXMOX_GIT} proxmox
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox-fuse.git
|
||||
git_clean_and_checkout ${PROMXOX_FUSE_GIT} proxmox-fuse
|
||||
git_clean_and_checkout ${PROXMOX_FUSE_GIT} proxmox-fuse
|
||||
git_clone_or_fetch https://git.proxmox.com/git/pxar.git
|
||||
git_clean_and_checkout ${PXAR_GIT} pxar
|
||||
git_clone_or_fetch https://git.proxmox.com/git/pathpatterns.git
|
||||
git_clean_and_checkout ${PATHPATTERNS_GIT} pathpatterns
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox-acme-rs.git
|
||||
git_clean_and_checkout ${PROXMOX_ACME_RS_GIT} proxmox-acme-rs
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox-apt.git
|
||||
git_clean_and_checkout ${PROXMOX_APT_GIT} proxmox-apt
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox-openid-rs.git
|
||||
git_clean_and_checkout ${PROXMOX_OPENID_GIT} proxmox-openid-rs
|
||||
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox-backup.git
|
||||
git_clean_and_checkout ${PROXMOX_BACKUP_GIT} proxmox-backup
|
||||
patch -p1 -d proxmox/ < "${PATCHES}/proxmox-no-ksm.patch"
|
||||
patch -p1 -d proxmox-backup/ < "${PATCHES}/proxmox-backup-arm.patch"
|
||||
sed -i '/dh-cargo\|cargo:native\|rustc:native\|librust-/d' proxmox-backup/debian/control
|
||||
sed -i 's/\(latexmk\|proxmox-widget-toolkit-dev\|python3-sphinx\)/\1:all/' proxmox-backup/debian/control
|
||||
sed -i '/patch.crates-io/,/pxar/s/^#//' proxmox-backup/Cargo.toml
|
||||
patch -p1 -d proxmox-backup/ <"${PATCHES}/proxmox-backup-build.patch"
|
||||
if [ "${BUILD_PACKAGE}" = "client" ]; then
|
||||
sed -i '/proxmox-biome/d' proxmox-backup/debian/control
|
||||
patch -p1 -d proxmox-backup/ <"${PATCHES}/proxmox-backup-client.patch"
|
||||
fi
|
||||
if [ "${PACKAGE_ARCH}" = "arm64" ]; then
|
||||
sed -i "s/x86_64-linux-gnu/aarch64-linux-gnu/" proxmox-backup/debian/proxmox-backup-file-restore.install
|
||||
sed -i "s/x86_64-linux-gnu/aarch64-linux-gnu/" proxmox-backup/debian/proxmox-backup-file-restore.postinst
|
||||
sed -i "s/x86_64-linux-gnu/aarch64-linux-gnu/" proxmox-backup/debian/proxmox-backup-server.install
|
||||
fi
|
||||
if [[ "${BUILD_PROFILES}" =~ cross ]]; then
|
||||
patch -p1 -d proxmox-backup/ <"${PATCHES}/proxmox-backup-cross.patch"
|
||||
sed -i 's/\(xindy\|proxmox-biome\)\b/\1:native/' proxmox-backup/debian/control
|
||||
fi
|
||||
# fix compile error with pxar
|
||||
patch -p1 -R -d proxmox-backup/ < "${PATCHES}/proxmox-backup-compile-fix.patch"
|
||||
cd proxmox-backup/
|
||||
set_package_info
|
||||
cargo vendor
|
||||
${SUDO} apt -y build-dep .
|
||||
dpkg-buildpackage -b -us -uc
|
||||
${SUDO} apt -y build-dep -a${PACKAGE_ARCH} ${BUILD_PROFILES} .
|
||||
export DEB_VERSION=$(dpkg-parsechangelog -SVersion)
|
||||
export DEB_VERSION_UPSTREAM=$(dpkg-parsechangelog -SVersion | cut -d- -f1)
|
||||
dpkg-buildpackage -a${PACKAGE_ARCH} -b -us -uc ${BUILD_PROFILES}
|
||||
cd ..
|
||||
cp -a proxmox-backup-client{,-dbgsym}_${PROXMOX_BACKUP_VER}_arm64.deb \
|
||||
proxmox-backup-docs_${PROXMOX_BACKUP_VER}_all.deb \
|
||||
proxmox-backup-file-restore{,-dbgsym}_${PROXMOX_BACKUP_VER}_arm64.deb \
|
||||
proxmox-backup-server{,-dbgsym}_${PROXMOX_BACKUP_VER}_arm64.deb \
|
||||
"${PACKAGES}"
|
||||
if [ "${BUILD_PACKAGE}" = "client" ]; then
|
||||
mv -f proxmox-backup-client_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.deb \
|
||||
"${PACKAGES}"
|
||||
else
|
||||
mv -f proxmox-backup-client{,-static}{,-dbgsym}_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.* \
|
||||
proxmox-backup-docs_${PROXMOX_BACKUP_VER}_all.deb \
|
||||
proxmox-backup-file-restore{,-dbgsym}_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.* \
|
||||
proxmox-backup-server{,-dbgsym}_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.* \
|
||||
"${PACKAGES}"
|
||||
fi
|
||||
else
|
||||
echo "proxmox-backup up-to-date"
|
||||
fi
|
||||
|
||||
PVE_XTERMJS_VER="4.16.0-1"
|
||||
PVE_XTERMJS_GIT="8dcff86a32c3ba8754b84e8aabb01369ef3de407"
|
||||
PROXMOX_XTERMJS_GIT="41862eeb95b70201c47dfd27fca37879e23be3ff"
|
||||
if [ ! -e "${PACKAGES}/pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb" ]; then
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox.git
|
||||
git_clean_and_checkout ${PROXMOX_XTERMJS_GIT} proxmox
|
||||
[ "${BUILD_PACKAGE}" = "client" ] && exit 0
|
||||
|
||||
PVE_XTERMJS_VER="5.5.0-3"
|
||||
PVE_XTERMJS_GIT="1c92330cccb21fb65abcff6e35848b712592dccb"
|
||||
PROXMOX_XTERMJS_GIT="deb32a6c4a21bea0d72059de0835fde504296bf0"
|
||||
PROXMOX_TERMPROXY_VER="2.0.3"
|
||||
if [ ! -e "${PACKAGES}/proxmox-termproxy_${PROXMOX_TERMPROXY_VER}_${PACKAGE_ARCH}.deb" ]; then
|
||||
git_clone_or_fetch https://git.proxmox.com/git/pve-xtermjs.git
|
||||
git_clean_and_checkout ${PVE_XTERMJS_GIT} pve-xtermjs
|
||||
patch -p1 -d pve-xtermjs/ < "${PATCHES}/pve-xtermjs-arm.patch"
|
||||
patch -p1 -d pve-xtermjs/ <"${PATCHES}/pve-xtermjs-arm.patch"
|
||||
[[ "${BUILD_PROFILES}" =~ cross ]] &&
|
||||
patch -p1 -d pve-xtermjs/ <"${PATCHES}/pve-xtermjs-cross.patch"
|
||||
cd pve-xtermjs/
|
||||
${SUDO} apt -y build-dep .
|
||||
make deb
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox.git
|
||||
git_clean_and_checkout ${PROXMOX_XTERMJS_GIT} proxmox
|
||||
cd termproxy
|
||||
set_package_info
|
||||
${SUDO} apt -y -a${PACKAGE_ARCH} build-dep .
|
||||
BUILD_MODE=release make deb
|
||||
cd ..
|
||||
cp -a pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb "${PACKAGES}"
|
||||
cd xterm.js
|
||||
make deb
|
||||
mv -f pve-xtermjs_${PVE_XTERMJS_VER}_all.deb "${PACKAGES}"
|
||||
cd ..
|
||||
mv -f proxmox-termproxy_${PROXMOX_TERMPROXY_VER}_${PACKAGE_ARCH}.deb "${PACKAGES}"
|
||||
else
|
||||
echo "pve-xtermjs up-to-date"
|
||||
fi
|
||||
|
||||
PROXMOX_JOURNALREADER_VER="1.3-1"
|
||||
PROXMOX_JOURNALREADER_GIT="09cd4c8e692c5d357fa360e600a34dc3036cda59"
|
||||
if [ ! -e "${PACKAGES}/proxmox-mini-journalreader_${PROXMOX_JOURNALREADER_VER}_arm64.deb" ]; then
|
||||
PROXMOX_JOURNALREADER_VER="1.6-1"
|
||||
PROXMOX_JOURNALREADER_GIT="b09ee543344fb7082a27346ecb0008f38af6367d"
|
||||
if [ ! -e "${PACKAGES}/proxmox-mini-journalreader_${PROXMOX_JOURNALREADER_VER}_${PACKAGE_ARCH}.deb" ]; then
|
||||
git_clone_or_fetch https://git.proxmox.com/git/proxmox-mini-journalreader.git
|
||||
git_clean_and_checkout ${PROXMOX_JOURNALREADER_GIT} proxmox-mini-journalreader
|
||||
patch -p1 -d proxmox-mini-journalreader/ < ${PATCHES}/proxmox-mini-journalreader.patch
|
||||
patch -p1 -d proxmox-mini-journalreader/ <${PATCHES}/proxmox-mini-journalreader.patch
|
||||
[[ "${BUILD_PROFILES}" =~ cross ]] &&
|
||||
patch -p1 -d proxmox-mini-journalreader/ <"${PATCHES}/proxmox-mini-journalreader-cross.patch"
|
||||
cd proxmox-mini-journalreader/
|
||||
${SUDO} apt -y build-dep .
|
||||
set_package_info
|
||||
${SUDO} apt -y -a${PACKAGE_ARCH} build-dep .
|
||||
make deb
|
||||
cp -a proxmox-mini-journalreader{,-dbgsym}_${PROXMOX_JOURNALREADER_VER}_arm64.deb "${PACKAGES}"
|
||||
mv -f proxmox-mini-journalreader{,-dbgsym}_${PROXMOX_JOURNALREADER_VER}_${PACKAGE_ARCH}.deb "${PACKAGES}"
|
||||
cd ..
|
||||
else
|
||||
echo "proxmox-mini-journalreader up-to-date"
|
||||
|
||||
@@ -1,279 +0,0 @@
|
||||
diff --git a/.cargo/config b/.cargo/config
|
||||
index 3b5b6e48..50908c05 100644
|
||||
--- a/.cargo/config
|
||||
+++ b/.cargo/config
|
||||
@@ -1,5 +1,17 @@
|
||||
-[source]
|
||||
-[source.debian-packages]
|
||||
-directory = "/usr/share/cargo/registry"
|
||||
[source.crates-io]
|
||||
-replace-with = "debian-packages"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git://git.proxmox.com/git/pathpatterns.git"]
|
||||
+git = "git://git.proxmox.com/git/pathpatterns.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git://git.proxmox.com/git/proxmox-fuse.git"]
|
||||
+git = "git://git.proxmox.com/git/proxmox-fuse.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git://git.proxmox.com/git/pxar.git"]
|
||||
+git = "git://git.proxmox.com/git/pxar.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source.vendored-sources]
|
||||
+directory = "vendor"
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 2bf9ae48..588de82f 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -238,27 +238,29 @@ proxmox-rrd.workspace = true
|
||||
# Local path overrides
|
||||
# NOTE: You must run `cargo update` after changing this for it to take effect!
|
||||
[patch.crates-io]
|
||||
-#proxmox-acme-rs = { path = "../proxmox-acme-rs" }
|
||||
-#proxmox-apt = { path = "../proxmox-apt" }
|
||||
-#proxmox-async = { path = "../proxmox/proxmox-async" }
|
||||
-#proxmox-compression = { path = "../proxmox/proxmox-compression" }
|
||||
-#proxmox-borrow = { path = "../proxmox/proxmox-borrow" }
|
||||
-#proxmox-fuse = { path = "../proxmox-fuse" }
|
||||
-#proxmox-http = { path = "../proxmox/proxmox-http" }
|
||||
-#proxmox-io = { path = "../proxmox/proxmox-io" }
|
||||
-#proxmox-lang = { path = "../proxmox/proxmox-lang" }
|
||||
-#proxmox-openid = { path = "../proxmox-openid-rs" }
|
||||
-#proxmox-router = { path = "../proxmox/proxmox-rest-server" }
|
||||
-#proxmox-router = { path = "../proxmox/proxmox-router" }
|
||||
-#proxmox-schema = { path = "../proxmox/proxmox-schema" }
|
||||
-#proxmox-section-config = { path = "../proxmox/proxmox-section-config" }
|
||||
-#proxmox-shared-memory = { path = "../proxmox/proxmox-shared-memory" }
|
||||
-#proxmox-sys = { path = "../proxmox/proxmox-sys" }
|
||||
-#proxmox-serde = { path = "../proxmox/proxmox-serde" }
|
||||
-#proxmox-tfa = { path = "../proxmox/proxmox-tfa" }
|
||||
-#proxmox-time = { path = "../proxmox/proxmox-time" }
|
||||
-#proxmox-uuid = { path = "../proxmox/proxmox-uuid" }
|
||||
-#pxar = { path = "../pxar" }
|
||||
+proxmox-acme-rs = { path = "../proxmox-acme-rs" }
|
||||
+proxmox-apt = { path = "../proxmox-apt" }
|
||||
+proxmox-async = { path = "../proxmox/proxmox-async" }
|
||||
+proxmox-compression = { path = "../proxmox/proxmox-compression" }
|
||||
+proxmox-borrow = { path = "../proxmox/proxmox-borrow" }
|
||||
+proxmox-fuse = { path = "../proxmox-fuse" }
|
||||
+proxmox-http = { path = "../proxmox/proxmox-http" }
|
||||
+proxmox-io = { path = "../proxmox/proxmox-io" }
|
||||
+proxmox-lang = { path = "../proxmox/proxmox-lang" }
|
||||
+proxmox-metrics = { path = "../proxmox/proxmox-metrics" }
|
||||
+proxmox-openid = { path = "../proxmox-openid-rs" }
|
||||
+proxmox-rest-server = { path = "../proxmox/proxmox-rest-server" }
|
||||
+proxmox-router = { path = "../proxmox/proxmox-router" }
|
||||
+proxmox-schema = { path = "../proxmox/proxmox-schema" }
|
||||
+proxmox-section-config = { path = "../proxmox/proxmox-section-config" }
|
||||
+proxmox-shared-memory = { path = "../proxmox/proxmox-shared-memory" }
|
||||
+proxmox-subscription = { path = "../proxmox/proxmox-subscription" }
|
||||
+proxmox-sys = { path = "../proxmox/proxmox-sys" }
|
||||
+proxmox-serde = { path = "../proxmox/proxmox-serde" }
|
||||
+proxmox-tfa = { path = "../proxmox/proxmox-tfa" }
|
||||
+proxmox-time = { path = "../proxmox/proxmox-time" }
|
||||
+proxmox-uuid = { path = "../proxmox/proxmox-uuid" }
|
||||
+pxar = { path = "../pxar" }
|
||||
|
||||
[features]
|
||||
default = []
|
||||
diff --git a/debian/control b/debian/control
|
||||
index 02f32ef8..13d713ff 100644
|
||||
--- a/debian/control
|
||||
+++ b/debian/control
|
||||
@@ -2,124 +2,7 @@ Source: rust-proxmox-backup
|
||||
Section: admin
|
||||
Priority: optional
|
||||
Build-Depends: debhelper (>= 12),
|
||||
- dh-cargo (>= 24),
|
||||
- cargo:native (>= 0.65.0-1),
|
||||
- rustc:native,
|
||||
libstd-rust-dev,
|
||||
- librust-anyhow-1+default-dev,
|
||||
- librust-apt-pkg-native-0.3+default-dev (>= 0.3.2-~~),
|
||||
- librust-base64-0.13+default-dev,
|
||||
- librust-bitflags-1+default-dev (>= 1.2.1-~~),
|
||||
- librust-bytes-1+default-dev,
|
||||
- librust-cidr-0.2+default-dev (>= 0.2.1-~~),
|
||||
- librust-crc32fast-1+default-dev,
|
||||
- librust-crossbeam-channel-0.5+default-dev,
|
||||
- librust-endian-trait-0.6+arrays-dev,
|
||||
- librust-endian-trait-0.6+default-dev,
|
||||
- librust-env-logger-0.9+default-dev,
|
||||
- librust-flate2-1+default-dev,
|
||||
- librust-foreign-types-0.3+default-dev,
|
||||
- librust-futures-0.3+default-dev,
|
||||
- librust-h2-0.3+default-dev,
|
||||
- librust-h2-0.3+stream-dev,
|
||||
- librust-handlebars-3+default-dev,
|
||||
- librust-hex-0.4+default-dev (>= 0.4.3-~~),
|
||||
- librust-hex-0.4+serde-dev (>= 0.4.3-~~),
|
||||
- librust-http-0.2+default-dev,
|
||||
- librust-hyper-0.14+default-dev,
|
||||
- librust-hyper-0.14+full-dev,
|
||||
- librust-lazy-static-1+default-dev (>= 1.4-~~),
|
||||
- librust-libc-0.2+default-dev,
|
||||
- librust-log-0.4+default-dev (>= 0.4.17-~~),
|
||||
- librust-nix-0.26+default-dev (>= 0.26.1-~~),
|
||||
- librust-nom-7+default-dev,
|
||||
- librust-num-traits-0.2+default-dev,
|
||||
- librust-once-cell-1+default-dev (>= 1.3.1-~~),
|
||||
- librust-openssl-0.10+default-dev (>= 0.10.40-~~),
|
||||
- librust-pam-0.7+default-dev,
|
||||
- librust-pam-sys-0.5+default-dev,
|
||||
- librust-pathpatterns-0.1+default-dev (>= 0.1.2-~~),
|
||||
- librust-percent-encoding-2+default-dev (>= 2.1-~~),
|
||||
- librust-pin-project-lite-0.2+default-dev,
|
||||
- librust-proxmox-acme-rs-0.4+default-dev,
|
||||
- librust-proxmox-apt-0.9+default-dev,
|
||||
- librust-proxmox-async-0.4+default-dev,
|
||||
- librust-proxmox-borrow-1+default-dev,
|
||||
- librust-proxmox-compression-0.1+default-dev (>= 0.1.1-~~),
|
||||
- librust-proxmox-fuse-0.1+default-dev (>= 0.1.3-~~),
|
||||
- librust-proxmox-http-0.7+client-dev,
|
||||
- librust-proxmox-http-0.7+client-trait-dev,
|
||||
- librust-proxmox-http-0.7+default-dev,
|
||||
- librust-proxmox-http-0.7+http-helpers-dev,
|
||||
- librust-proxmox-http-0.7+proxmox-async-dev,
|
||||
- librust-proxmox-http-0.7+websocket-dev,
|
||||
- librust-proxmox-io-1+default-dev (>= 1.0.1-~~),
|
||||
- librust-proxmox-io-1+tokio-dev (>= 1.0.1-~~),
|
||||
- librust-proxmox-lang-1+default-dev (>= 1.1-~~),
|
||||
- librust-proxmox-metrics-0.2+default-dev,
|
||||
- librust-proxmox-openid-0.9+default-dev (>= 0.9.9-~~),
|
||||
- librust-proxmox-rest-server-0.2+default-dev (>= 0.2.1-~~),
|
||||
- librust-proxmox-router-1+cli-dev (>= 1.3.1-~~),
|
||||
- librust-proxmox-router-1+default-dev (>= 1.3.1-~~),
|
||||
- librust-proxmox-router-1+server-dev (>= 1.3.1-~~),
|
||||
- librust-proxmox-schema-1+api-macro-dev (>= 1.3.6-~~),
|
||||
- librust-proxmox-schema-1+default-dev (>= 1.3.6-~~),
|
||||
- librust-proxmox-section-config-1+default-dev,
|
||||
- librust-proxmox-serde-0.1+default-dev (>= 0.1.1-~~),
|
||||
- librust-proxmox-serde-0.1+serde-json-dev (>= 0.1.1-~~),
|
||||
- librust-proxmox-shared-memory-0.2+default-dev (>= 0.2.3-~~),
|
||||
- librust-proxmox-subscription-0.3+api-types-dev,
|
||||
- librust-proxmox-subscription-0.3+default-dev,
|
||||
- librust-proxmox-sys-0.4+acl-dev (>= 0.4.2-~~),
|
||||
- librust-proxmox-sys-0.4+crypt-dev (>= 0.4.2-~~),
|
||||
- librust-proxmox-sys-0.4+default-dev (>= 0.4.2-~~),
|
||||
- librust-proxmox-sys-0.4+logrotate-dev (>= 0.4.2-~~),
|
||||
- librust-proxmox-sys-0.4+sortable-macro-dev (>= 0.4.2-~~),
|
||||
- librust-proxmox-sys-0.4+timer-dev (>= 0.4.2-~~),
|
||||
- librust-proxmox-tfa-2+api-dev (>= 2.1-~~),
|
||||
- librust-proxmox-tfa-2+api-types-dev (>= 2.1-~~),
|
||||
- librust-proxmox-tfa-2+default-dev (>= 2.1-~~),
|
||||
- librust-proxmox-time-1+default-dev (>= 1.1.2-~~),
|
||||
- librust-proxmox-uuid-1+default-dev,
|
||||
- librust-proxmox-uuid-1+serde-dev,
|
||||
- librust-pxar-0.10+default-dev (>= 0.10.2-~~),
|
||||
- librust-regex-1+default-dev (>= 1.5.5-~~),
|
||||
- librust-rustyline-9+default-dev,
|
||||
- librust-serde-1+default-dev,
|
||||
- librust-serde-1+derive-dev,
|
||||
- librust-serde-cbor-0.11+default-dev (>= 0.11.1-~~),
|
||||
- librust-serde-json-1+default-dev,
|
||||
- librust-serde-plain-1+default-dev,
|
||||
- librust-siphasher-0.3+default-dev,
|
||||
- librust-syslog-4+default-dev,
|
||||
- librust-tar-0.4+default-dev,
|
||||
- librust-termcolor-1+default-dev (>= 1.1.2-~~),
|
||||
- librust-thiserror-1+default-dev,
|
||||
- librust-tokio-1+default-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+fs-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+io-std-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+io-util-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+macros-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+net-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+parking-lot-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+process-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+rt-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+rt-multi-thread-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+signal-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+sync-dev (>= 1.6-~~),
|
||||
- librust-tokio-1+time-dev (>= 1.6-~~),
|
||||
- librust-tokio-openssl-0.6+default-dev (>= 0.6.1-~~),
|
||||
- librust-tokio-stream-0.1+default-dev,
|
||||
- librust-tokio-util-0.7+codec-dev,
|
||||
- librust-tokio-util-0.7+default-dev,
|
||||
- librust-tokio-util-0.7+io-dev,
|
||||
- librust-tower-service-0.3+default-dev,
|
||||
- librust-udev-0.4+default-dev,
|
||||
- librust-url-2+default-dev (>= 2.1-~~),
|
||||
- librust-walkdir-2+default-dev,
|
||||
- librust-xdg-2+default-dev (>= 2.2-~~),
|
||||
- librust-zstd-0.6+bindgen-dev,
|
||||
- librust-zstd-0.6+default-dev,
|
||||
libacl1-dev,
|
||||
libfuse3-dev,
|
||||
libsystemd-dev (>= 246-~~),
|
||||
diff --git a/debian/proxmox-backup-file-restore.install b/debian/proxmox-backup-file-restore.install
|
||||
index d952836e..7e1bf2dd 100644
|
||||
--- a/debian/proxmox-backup-file-restore.install
|
||||
+++ b/debian/proxmox-backup-file-restore.install
|
||||
@@ -1,4 +1,4 @@
|
||||
usr/bin/proxmox-file-restore
|
||||
usr/share/man/man1/proxmox-file-restore.1
|
||||
usr/share/zsh/vendor-completions/_proxmox-file-restore
|
||||
-usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
|
||||
+usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
|
||||
diff --git a/debian/proxmox-backup-file-restore.postinst b/debian/proxmox-backup-file-restore.postinst
|
||||
index feb0557b..9501d29b 100755
|
||||
--- a/debian/proxmox-backup-file-restore.postinst
|
||||
+++ b/debian/proxmox-backup-file-restore.postinst
|
||||
@@ -4,7 +4,7 @@ set -e
|
||||
|
||||
update_initramfs() {
|
||||
# regenerate initramfs for single file restore VM
|
||||
- INST_PATH="/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore"
|
||||
+ INST_PATH="/usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore"
|
||||
CACHE_PATH="/var/cache/proxmox-backup/file-restore-initramfs.img"
|
||||
CACHE_PATH_DBG="/var/cache/proxmox-backup/file-restore-initramfs-debug.img"
|
||||
|
||||
diff --git a/debian/proxmox-backup-server.install b/debian/proxmox-backup-server.install
|
||||
index 6e2219b4..82954cdd 100644
|
||||
--- a/debian/proxmox-backup-server.install
|
||||
+++ b/debian/proxmox-backup-server.install
|
||||
@@ -4,11 +4,11 @@ etc/proxmox-backup-banner.service /lib/systemd/system/
|
||||
etc/proxmox-backup-daily-update.service /lib/systemd/system/
|
||||
etc/proxmox-backup-daily-update.timer /lib/systemd/system/
|
||||
etc/pbs-enterprise.list /etc/apt/sources.list.d/
|
||||
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api
|
||||
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy
|
||||
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-banner
|
||||
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-daily-update
|
||||
-usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd
|
||||
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-api
|
||||
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-proxy
|
||||
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-banner
|
||||
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-daily-update
|
||||
+usr/lib/aarch64-linux-gnu/proxmox-backup/sg-tape-cmd
|
||||
usr/sbin/proxmox-backup-debug
|
||||
usr/sbin/proxmox-backup-manager
|
||||
usr/bin/pmtx
|
||||
diff --git a/debian/rules b/debian/rules
|
||||
index b13ba334..323da5ed 100755
|
||||
--- a/debian/rules
|
||||
+++ b/debian/rules
|
||||
@@ -4,12 +4,9 @@
|
||||
DH_VERBOSE = 1
|
||||
|
||||
include /usr/share/dpkg/pkg-info.mk
|
||||
-include /usr/share/rustc/architecture.mk
|
||||
|
||||
export BUILD_MODE=release
|
||||
|
||||
-CARGO=/usr/share/cargo/bin/cargo
|
||||
-
|
||||
export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
|
||||
export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
|
||||
export CARGO_HOME = $(CURDIR)/debian/cargo_home
|
||||
@@ -21,7 +18,6 @@ export DEB_CARGO_PACKAGE=proxmox-backup
|
||||
dh $@ --with=bash-completion
|
||||
|
||||
override_dh_auto_configure:
|
||||
- $(CARGO) prepare-debian $(CURDIR)/debian/cargo_registry --link-from-system
|
||||
dh_auto_configure
|
||||
|
||||
override_dh_auto_build:
|
||||
95
patches/proxmox-backup-build.patch
Normal file
95
patches/proxmox-backup-build.patch
Normal file
@@ -0,0 +1,95 @@
|
||||
diff --git a/.cargo/config.toml b/.cargo/config.toml
|
||||
index a439c97b..a95ae483 100644
|
||||
--- a/.cargo/config.toml
|
||||
+++ b/.cargo/config.toml
|
||||
@@ -1,8 +1,20 @@
|
||||
-[source]
|
||||
-[source.debian-packages]
|
||||
-directory = "/usr/share/cargo/registry"
|
||||
[source.crates-io]
|
||||
-replace-with = "debian-packages"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git://git.proxmox.com/git/pathpatterns.git"]
|
||||
+git = "git://git.proxmox.com/git/pathpatterns.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git://git.proxmox.com/git/proxmox-fuse.git"]
|
||||
+git = "git://git.proxmox.com/git/proxmox-fuse.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git://git.proxmox.com/git/pxar.git"]
|
||||
+git = "git://git.proxmox.com/git/pxar.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source.vendored-sources]
|
||||
+directory = "vendor"
|
||||
|
||||
[profile.release]
|
||||
debug=true
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 2012ae5d..51fbd408 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,5 +1,4 @@
|
||||
include /usr/share/dpkg/default.mk
|
||||
-include /usr/share/rustc/architecture.mk
|
||||
include defines.mk
|
||||
|
||||
PACKAGE := proxmox-backup
|
||||
@@ -42,7 +41,7 @@ SUBCRATES != cargo metadata --no-deps --format-version=1 \
|
||||
STATIC_TARGET_DIR := target/static-build
|
||||
ifeq ($(BUILD_MODE), release)
|
||||
CARGO_BUILD_ARGS += --release --target $(DEB_HOST_RUST_TYPE)
|
||||
-CARGO_STATIC_CONFIG ?= --config debian/cargo_home/config.static.toml
|
||||
+CARGO_STATIC_CONFIG ?= --config .cargo/config.static.toml
|
||||
CARGO_STATIC_BUILD_ARGS += $(CARGO_STATIC_CONFIG) --release --target $(DEB_HOST_RUST_TYPE) --target-dir $(STATIC_TARGET_DIR)
|
||||
COMPILEDIR := target/$(DEB_HOST_RUST_TYPE)/release
|
||||
STATIC_COMPILEDIR := $(STATIC_TARGET_DIR)/$(DEB_HOST_RUST_TYPE)/release
|
||||
diff --git a/debian/rules b/debian/rules
|
||||
index ab48cce1..723b714f 100755
|
||||
--- a/debian/rules
|
||||
+++ b/debian/rules
|
||||
@@ -4,10 +4,9 @@
|
||||
DH_VERBOSE = 1
|
||||
|
||||
include /usr/share/dpkg/pkg-info.mk
|
||||
-include /usr/share/rustc/architecture.mk
|
||||
|
||||
export BUILD_MODE=release
|
||||
-export CARGO_STATIC_CONFIG=--config debian/cargo_home/config.static.toml
|
||||
+export CARGO_STATIC_CONFIG=--config .cargo/config.static.toml
|
||||
|
||||
# sync with Makefile!
|
||||
STATIC_TARGET_DIR := target/static-build
|
||||
@@ -18,11 +17,9 @@ STATIC_COMPILEDIR := $(STATIC_TARGET_DIR)/$(DEB_HOST_RUST_TYPE)/debug
|
||||
endif
|
||||
# end sync with Makefile!
|
||||
|
||||
-export CARGO=/usr/share/cargo/bin/cargo
|
||||
-
|
||||
export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
|
||||
export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
|
||||
-export CARGO_HOME = $(CURDIR)/debian/cargo_home
|
||||
+export CARGO_HOME = $(CURDIR)/.cargo
|
||||
|
||||
export DEB_CARGO_CRATE=proxmox-backup_$(DEB_VERSION_UPSTREAM)
|
||||
export DEB_CARGO_PACKAGE=proxmox-backup
|
||||
@@ -37,15 +34,9 @@ endif
|
||||
override_dh_auto_configure:
|
||||
@perl -ne 'if (/^version\s*=\s*"(\d+(?:\.\d+)+)"/) { my $$v_cargo = $$1; my $$v_deb = "$(DEB_VERSION_UPSTREAM)"; \
|
||||
die "ERROR: d/changelog <-> Cargo.toml version mismatch: $$v_cargo != $$v_deb\n" if $$v_cargo ne $$v_deb; exit(0); }' Cargo.toml
|
||||
- $(CARGO) prepare-debian $(CURDIR)/debian/cargo_registry --link-from-system
|
||||
# add a new config for static building, sync with Makefile!
|
||||
- cp debian/cargo_home/config.toml debian/cargo_home/config.static.toml
|
||||
- sed -ri -e 's!^(rustflags = .*)\]$$!\1, "-C", "target-feature=+crt-static", "-L", "$(STATIC_COMPILEDIR)/deps-stubs/"\]!' debian/cargo_home/config.static.toml
|
||||
- # `cargo build` and `cargo install` have different config precedence, symlink
|
||||
- # the wrapper config into a place where `build` picks it up as well..
|
||||
- # https://doc.rust-lang.org/cargo/commands/cargo-install.html#configuration-discovery
|
||||
- mkdir -p .cargo
|
||||
- ln -s $(CARGO_HOME)/config.toml $(CURDIR)/.cargo/config.toml
|
||||
+ cp $(CARGO_HOME)/config.toml $(CARGO_HOME)/config.static.toml
|
||||
+ echo '[build]\nrustflags = ["-C", "target-feature=+crt-static"]' >> $(CARGO_HOME)/config.static.toml
|
||||
dh_auto_configure
|
||||
|
||||
override_dh_auto_build:
|
||||
259
patches/proxmox-backup-client.patch
Normal file
259
patches/proxmox-backup-client.patch
Normal file
@@ -0,0 +1,259 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 51fbd408..d1546dd4 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -5,32 +5,21 @@ PACKAGE := proxmox-backup
|
||||
ARCH := $(DEB_BUILD_ARCH)
|
||||
export DEB_HOST_RUST_TYPE
|
||||
|
||||
-SUBDIRS := etc www docs templates
|
||||
+SUBDIRS := docs
|
||||
|
||||
# Binaries usable by users
|
||||
USR_BIN := \
|
||||
proxmox-backup-client \
|
||||
- proxmox-file-restore \
|
||||
- pxar \
|
||||
- proxmox-tape \
|
||||
- pmtx \
|
||||
- pmt
|
||||
+ pxar
|
||||
|
||||
# Binaries usable by admins
|
||||
-USR_SBIN := \
|
||||
- proxmox-backup-manager \
|
||||
- proxmox-backup-debug
|
||||
+USR_SBIN :=
|
||||
|
||||
# Binaries for services:
|
||||
-SERVICE_BIN := \
|
||||
- proxmox-backup-api \
|
||||
- proxmox-backup-banner \
|
||||
- proxmox-backup-proxy \
|
||||
- proxmox-daily-update
|
||||
+SERVICE_BIN :=
|
||||
|
||||
# Single file restore daemon
|
||||
-RESTORE_BIN := \
|
||||
- proxmox-restore-daemon
|
||||
+RESTORE_BIN :=
|
||||
|
||||
SUBCRATES != cargo metadata --no-deps --format-version=1 \
|
||||
| jq -r .workspace_members'[]' \
|
||||
@@ -79,8 +68,7 @@ STATIC_CLIENT_DEB=$(PACKAGE)-client-static_$(DEB_VERSION)_$(ARCH).deb
|
||||
STATIC_CLIENT_DBG_DEB=$(PACKAGE)-client-static-dbgsym_$(DEB_VERSION)_$(ARCH).deb
|
||||
DOC_DEB=$(PACKAGE)-docs_$(DEB_VERSION)_all.deb
|
||||
|
||||
-DEBS=$(SERVER_DEB) $(SERVER_DBG_DEB) $(CLIENT_DEB) $(CLIENT_DBG_DEB) \
|
||||
- $(RESTORE_DEB) $(RESTORE_DBG_DEB) $(STATIC_CLIENT_DEB) $(STATIC_CLIENT_DBG_DEB)
|
||||
+DEBS=${CLIENT_DEB} ${CLIENT_DBG_DEB}
|
||||
|
||||
DSC = rust-$(PACKAGE)_$(DEB_VERSION).dsc
|
||||
|
||||
@@ -177,31 +165,11 @@ cargo-build:
|
||||
|
||||
$(COMPILED_BINS) $(COMPILEDIR)/dump-catalog-shell-cli $(COMPILEDIR)/docgen &:
|
||||
$(CARGO) build $(CARGO_BUILD_ARGS) \
|
||||
- --package proxmox-backup-banner \
|
||||
- --bin proxmox-backup-banner \
|
||||
--package proxmox-backup-client \
|
||||
--bin proxmox-backup-client \
|
||||
--bin dump-catalog-shell-cli \
|
||||
- --bin proxmox-backup-debug \
|
||||
- --package proxmox-file-restore \
|
||||
- --bin proxmox-file-restore \
|
||||
--package pxar-bin \
|
||||
- --bin pxar \
|
||||
- --package pbs-tape \
|
||||
- --bin pmt \
|
||||
- --bin pmtx \
|
||||
- --package proxmox-restore-daemon \
|
||||
- --bin proxmox-restore-daemon \
|
||||
- --package proxmox-backup \
|
||||
- --bin docgen \
|
||||
- --bin pbs3to4 \
|
||||
- --bin proxmox-backup-api \
|
||||
- --bin proxmox-backup-manager \
|
||||
- --bin proxmox-backup-proxy \
|
||||
- --bin proxmox-daily-update \
|
||||
- --bin proxmox-file-restore \
|
||||
- --bin proxmox-tape \
|
||||
- --bin sg-tape-cmd
|
||||
+ --bin pxar
|
||||
touch "$@"
|
||||
|
||||
.PHONY: proxmox-backup-client-static
|
||||
@@ -232,20 +200,9 @@ install: $(COMPILED_BINS) $(STATIC_BINS)
|
||||
$(foreach i,$(USR_SBIN), \
|
||||
install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(SBINDIR)/ ; \
|
||||
install -m644 zsh-completions/_$(i) $(DESTDIR)$(ZSH_COMPL_DEST)/ ;)
|
||||
- install -m755 $(COMPILEDIR)/pbs3to4 $(DESTDIR)$(SBINDIR)/
|
||||
- install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup
|
||||
- install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/file-restore
|
||||
- $(foreach i,$(RESTORE_BIN), \
|
||||
- install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/file-restore/ ;)
|
||||
- # install sg-tape-cmd as setuid binary
|
||||
- install -m4755 -o root -g root $(COMPILEDIR)/sg-tape-cmd $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/sg-tape-cmd
|
||||
- $(foreach i,$(SERVICE_BIN), \
|
||||
- install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/ ;)
|
||||
install -m755 $(STATIC_COMPILEDIR)/proxmox-backup-client $(DESTDIR)$(BINDIR)/proxmox-backup-client-static
|
||||
install -m755 $(STATIC_COMPILEDIR)/pxar $(DESTDIR)$(BINDIR)/pxar-static
|
||||
- $(MAKE) -C www install
|
||||
$(MAKE) -C docs install
|
||||
- $(MAKE) -C templates install
|
||||
|
||||
.PHONY: upload
|
||||
upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
|
||||
diff --git a/debian/control b/debian/control
|
||||
index e9c6cbd7..f57ac84c 100644
|
||||
--- a/debian/control
|
||||
+++ b/debian/control
|
||||
@@ -19,7 +19,7 @@ Build-Depends: debhelper (>= 12~),
|
||||
proxmox-widget-toolkit-dev:all <!nodoc>,
|
||||
python3-docutils,
|
||||
python3-pygments,
|
||||
- python3-sphinx:all <!nodoc>,
|
||||
+ python3-sphinx:all,
|
||||
rsync,
|
||||
texlive-fonts-extra <!nodoc>,
|
||||
texlive-fonts-recommended <!nodoc>,
|
||||
@@ -33,37 +33,6 @@ Vcs-Browser: https://git.proxmox.com/?p=proxmox-backup.git;a=summary
|
||||
Homepage: https://www.proxmox.com
|
||||
Rules-Requires-Root: binary-targets
|
||||
|
||||
-Package: proxmox-backup-server
|
||||
-Architecture: any
|
||||
-Depends: fonts-font-awesome,
|
||||
- gdisk,
|
||||
- libjs-extjs (>= 7~),
|
||||
- libjs-qrcodejs (>= 1.20201119),
|
||||
- libproxmox-acme-plugins,
|
||||
- libsgutils2-1.48,
|
||||
- libzstd1 (>= 1.3.8),
|
||||
- lvm2,
|
||||
- openssh-server,
|
||||
- pbs-i18n,
|
||||
- postfix | mail-transport-agent,
|
||||
- proxmox-backup-docs,
|
||||
- proxmox-mini-journalreader,
|
||||
- proxmox-termproxy (>= 2.0.3),
|
||||
- proxmox-widget-toolkit (>= 4.3.3),
|
||||
- pve-xtermjs (>= 4.7.0-1),
|
||||
- sg3-utils,
|
||||
- smartmontools,
|
||||
- ${misc:Depends},
|
||||
- ${shlibs:Depends},
|
||||
-Recommends: ifupdown2,
|
||||
- proxmox-mail-forward,
|
||||
- proxmox-network-interface-pinning,
|
||||
- proxmox-offline-mirror-helper,
|
||||
- zfsutils-linux,
|
||||
-Description: Proxmox Backup Server daemon with tools and GUI
|
||||
- This package contains the Proxmox Backup Server daemons and related
|
||||
- tools. This includes a web-based graphical user interface.
|
||||
-
|
||||
Package: proxmox-backup-client
|
||||
Architecture: any
|
||||
Depends: qrencode, ${misc:Depends}, ${shlibs:Depends},
|
||||
@@ -78,21 +47,3 @@ Conflicts: proxmox-backup-client,
|
||||
Description: Proxmox Backup Client tools (statically linked)
|
||||
This package contains the Proxmox Backup client, which provides a
|
||||
simple command line tool to create and restore backups.
|
||||
-
|
||||
-Package: proxmox-backup-docs
|
||||
-Build-Profiles: <!nodoc>
|
||||
-Section: doc
|
||||
-Depends: fonts-font-awesome, libjs-extjs, libjs-mathjax, ${misc:Depends},
|
||||
-Architecture: all
|
||||
-Description: Proxmox Backup Documentation
|
||||
- This package contains the Proxmox Backup Documentation files.
|
||||
-
|
||||
-Package: proxmox-backup-file-restore
|
||||
-Architecture: any
|
||||
-Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
-Recommends: proxmox-backup-restore-image, pve-qemu-kvm (>= 5.0.0-9),
|
||||
-Breaks: proxmox-backup-restore-image (<< 0.3.1),
|
||||
-Description: Proxmox Backup single file restore tools for pxar and block device backups
|
||||
- This package contains the Proxmox Backup single file restore client for
|
||||
- restoring individual files and folders from both host/container and VM/block
|
||||
- device backups. It includes a block device restore driver using QEMU.
|
||||
diff --git a/debian/rules b/debian/rules
|
||||
index 723b714f..07299c88 100755
|
||||
--- a/debian/rules
|
||||
+++ b/debian/rules
|
||||
@@ -55,11 +55,6 @@ override_dh_auto_install:
|
||||
mv debian/tmp/usr/bin/proxmox-backup-client-static debian/proxmox-backup-client-static/usr/bin/proxmox-backup-client
|
||||
mv debian/tmp/usr/bin/pxar-static debian/proxmox-backup-client-static/usr/bin/pxar
|
||||
|
||||
-override_dh_installsystemd:
|
||||
- dh_installsystemd -pproxmox-backup-server proxmox-backup-daily-update.timer
|
||||
- # note: we start/try-reload-restart services manually in postinst
|
||||
- dh_installsystemd --no-start --no-restart-after-upgrade --no-stop-on-upgrade
|
||||
-
|
||||
override_dh_fixperms:
|
||||
dh_fixperms --exclude sg-tape-cmd
|
||||
|
||||
diff --git a/docs/Makefile b/docs/Makefile
|
||||
index 5cf5fc17..9aac52e8 100644
|
||||
--- a/docs/Makefile
|
||||
+++ b/docs/Makefile
|
||||
@@ -1,59 +1,17 @@
|
||||
include ../defines.mk
|
||||
|
||||
GENERATED_SYNOPSIS := \
|
||||
- config/acl/roles.rst \
|
||||
- config/datastore/config.rst \
|
||||
- config/domains/config.rst \
|
||||
- config/media-pool/config.rst \
|
||||
- config/notifications-priv/config.rst \
|
||||
- config/notifications/config.rst \
|
||||
- config/remote/config.rst \
|
||||
- config/sync/config.rst \
|
||||
- config/tape-job/config.rst \
|
||||
- config/tape/config.rst \
|
||||
- config/user/config.rst \
|
||||
- config/verification/config.rst \
|
||||
- config/prune/config.rst \
|
||||
- pmt/synopsis.rst \
|
||||
- pmtx/synopsis.rst \
|
||||
proxmox-backup-client/catalog-shell-synopsis.rst \
|
||||
- proxmox-backup-client/synopsis.rst \
|
||||
- proxmox-backup-debug/synopsis.rst \
|
||||
- proxmox-backup-manager/synopsis.rst \
|
||||
- proxmox-file-restore/synopsis.rst \
|
||||
- proxmox-tape/synopsis.rst \
|
||||
pxar/synopsis.rst \
|
||||
|
||||
MAN1_PAGES := \
|
||||
- pbs3to4.1 \
|
||||
- pmt.1 \
|
||||
- pmtx.1 \
|
||||
proxmox-backup-client.1 \
|
||||
- proxmox-backup-debug.1 \
|
||||
- proxmox-backup-manager.1 \
|
||||
- proxmox-backup-proxy.1 \
|
||||
- proxmox-file-restore.1 \
|
||||
- proxmox-tape.1 \
|
||||
pxar.1 \
|
||||
|
||||
# FIXME: prefix all man pages that are not directly relating to an existing executable with
|
||||
# `proxmox-backup.`, like the newer added proxmox-backup.node.cfg but add backwards compatible
|
||||
# symlinks, e.g. with a "5pbs" man page "suffix section".
|
||||
MAN5_PAGES := \
|
||||
- acl.cfg.5 \
|
||||
- datastore.cfg.5 \
|
||||
- domains.cfg.5 \
|
||||
- media-pool.cfg.5 \
|
||||
- proxmox-backup.node.cfg.5 \
|
||||
- notifications-priv.cfg.5 \
|
||||
- notifications.cfg.5 \
|
||||
- remote.cfg.5 \
|
||||
- sync.cfg.5 \
|
||||
- tape-job.cfg.5 \
|
||||
- tape.cfg.5 \
|
||||
- user.cfg.5 \
|
||||
- verification.cfg.5 \
|
||||
- prune.cfg.5 \
|
||||
|
||||
PRUNE_SIMULATOR_FILES := \
|
||||
prune-simulator/index.html \
|
||||
32
patches/proxmox-backup-compile-fix.patch
Normal file
32
patches/proxmox-backup-compile-fix.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
commit 6174f9b3c7d1cf366de230798d4bf9e271235dbe
|
||||
Author: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
Date: Fri Nov 7 12:33:15 2025 +0100
|
||||
|
||||
pxar extract: code style improvement for error logging
|
||||
|
||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
|
||||
diff --git a/pbs-client/src/pxar/extract.rs b/pbs-client/src/pxar/extract.rs
|
||||
index 61f29349..0257201d 100644
|
||||
--- a/pbs-client/src/pxar/extract.rs
|
||||
+++ b/pbs-client/src/pxar/extract.rs
|
||||
@@ -1333,15 +1333,12 @@ where
|
||||
}
|
||||
.await
|
||||
{
|
||||
- let display_string = entry.path().display().to_string();
|
||||
error!(
|
||||
- "error extracting {}: {}",
|
||||
- if matches!(entry.kind(), EntryKind::GoodbyeTable) {
|
||||
- "<directory>"
|
||||
- } else {
|
||||
- &display_string
|
||||
+ "error extracting {}: {err}",
|
||||
+ match entry.kind() {
|
||||
+ EntryKind::GoodbyeTable => "<directory>",
|
||||
+ _ => &entry.path().display().to_string(),
|
||||
},
|
||||
- err
|
||||
);
|
||||
}
|
||||
|
||||
88
patches/proxmox-backup-cross.patch
Normal file
88
patches/proxmox-backup-cross.patch
Normal file
@@ -0,0 +1,88 @@
|
||||
diff --git a/docs/Makefile b/docs/Makefile
|
||||
index 9aac52e8..24282e83 100644
|
||||
--- a/docs/Makefile
|
||||
+++ b/docs/Makefile
|
||||
@@ -67,16 +67,16 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(SPHINXOPTS) .
|
||||
all: ${MAN1_PAGES} ${MAN5_PAGES}
|
||||
|
||||
config/%/config.rst: ${COMPILEDIR}/docgen
|
||||
- ${COMPILEDIR}/docgen $*.cfg >$@
|
||||
+ qemu-aarch64 ${COMPILEDIR}/docgen $*.cfg >$@
|
||||
|
||||
config/acl/roles.rst: ${COMPILEDIR}/docgen
|
||||
- ${COMPILEDIR}/docgen "config::acl::Role" >$@
|
||||
+ qemu-aarch64 ${COMPILEDIR}/docgen "config::acl::Role" >$@
|
||||
|
||||
%/synopsis.rst: ${COMPILEDIR}/%
|
||||
- $< printdoc > $@
|
||||
+ qemu-aarch64 $< printdoc > $@
|
||||
|
||||
proxmox-backup-client/catalog-shell-synopsis.rst: ${COMPILEDIR}/dump-catalog-shell-cli
|
||||
- ${COMPILEDIR}/dump-catalog-shell-cli > proxmox-backup-client/catalog-shell-synopsis.rst
|
||||
+ qemu-aarch64 ${COMPILEDIR}/dump-catalog-shell-cli > proxmox-backup-client/catalog-shell-synopsis.rst
|
||||
|
||||
${MAN1_PAGES} ${MAN5_PAGES}: man-pages
|
||||
|
||||
@@ -91,7 +91,7 @@ onlinehelpinfo:
|
||||
@echo "Build finished. OnlineHelpInfo.js is in $(BUILDDIR)/scanrefs."
|
||||
|
||||
api-viewer/apidata.js: ${COMPILEDIR}/docgen
|
||||
- ${COMPILEDIR}/docgen apidata.js >$@
|
||||
+ qemu-aarch64 ${COMPILEDIR}/docgen apidata.js >$@
|
||||
|
||||
api-viewer/apidoc.js: ${API_VIEWER_FILES}
|
||||
cat ${API_VIEWER_FILES} >$@.tmp
|
||||
diff --git a/pxar-bin/tests/pxar.rs b/pxar-bin/tests/pxar.rs
|
||||
index 2da5884a..29851db8 100644
|
||||
--- a/pxar-bin/tests/pxar.rs
|
||||
+++ b/pxar-bin/tests/pxar.rs
|
||||
@@ -17,7 +17,8 @@ fn pxar_create_and_extract() {
|
||||
|
||||
println!("run '{exec_path} create archive.pxar {src_dir}'");
|
||||
|
||||
- Command::new(&exec_path)
|
||||
+ Command::new("qemu-aarch64")
|
||||
+ .arg(&exec_path)
|
||||
.arg("create")
|
||||
.arg("./tests/archive.pxar")
|
||||
.arg(src_dir)
|
||||
@@ -26,7 +27,8 @@ fn pxar_create_and_extract() {
|
||||
|
||||
println!("run '{exec_path} extract archive.pxar {dest_dir}'");
|
||||
|
||||
- Command::new(&exec_path)
|
||||
+ Command::new("qemu-aarch64")
|
||||
+ .arg(&exec_path)
|
||||
.arg("extract")
|
||||
.arg("./tests/archive.pxar")
|
||||
.arg("--target")
|
||||
@@ -93,7 +95,8 @@ fn pxar_split_archive_test() {
|
||||
|
||||
println!("run '{exec_path} create archive.mpxar {src_dir} --payload-output archive.ppxar'");
|
||||
|
||||
- Command::new(&exec_path)
|
||||
+ Command::new("qemu-aarch64")
|
||||
+ .arg(&exec_path)
|
||||
.arg("create")
|
||||
.arg("./tests/archive.mpxar")
|
||||
.arg(src_dir)
|
||||
@@ -101,7 +104,8 @@ fn pxar_split_archive_test() {
|
||||
.status()
|
||||
.unwrap_or_else(|err| panic!("Failed to invoke '{exec_path}': {err}"));
|
||||
|
||||
- let output = Command::new(&exec_path)
|
||||
+ let output = Command::new("qemu-aarch64")
|
||||
+ .arg(&exec_path)
|
||||
.arg("list")
|
||||
.arg("./tests/archive.mpxar")
|
||||
.arg("--payload-input=./tests/archive.ppxar")
|
||||
@@ -122,7 +126,8 @@ fn pxar_split_archive_test() {
|
||||
|
||||
println!("run '{exec_path} extract archive.mpxar {dest_dir} --payload-input archive.ppxar'");
|
||||
|
||||
- Command::new(&exec_path)
|
||||
+ Command::new("qemu-aarch64")
|
||||
+ .arg(&exec_path)
|
||||
.arg("extract")
|
||||
.arg("./tests/archive.mpxar")
|
||||
.arg("--payload-input=./tests/archive.ppxar")
|
||||
47
patches/proxmox-biome-arm.patch
Normal file
47
patches/proxmox-biome-arm.patch
Normal file
@@ -0,0 +1,47 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 18e5ce27..65cf9e8d 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -2,8 +2,8 @@ include /usr/share/dpkg/pkg-info.mk
|
||||
|
||||
PACKAGE=proxmox-biome
|
||||
|
||||
-DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_amd64.deb
|
||||
-DEB_DBG=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_amd64.deb
|
||||
+DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_arm64.deb
|
||||
+DEB_DBG=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_arm64.deb
|
||||
|
||||
BUILDDIR=$(PACKAGE)-$(DEB_VERSION_UPSTREAM)
|
||||
|
||||
@@ -45,7 +45,7 @@ $(BUILDDIR):
|
||||
|
||||
deb: $(DEB)
|
||||
$(DEB) $(DEB_DBG) &: $(BUILDDIR)
|
||||
- cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
|
||||
+ cd $(BUILDDIR); dpkg-buildpackage -aarm64 -b -us -uc
|
||||
lintian $(DEB)
|
||||
|
||||
.PHONY: upload
|
||||
diff --git a/biome/rust-toolchain.toml b/biome/rust-toolchain.toml
|
||||
index fbae3fa6..7c761706 100644
|
||||
--- a/biome/rust-toolchain.toml
|
||||
+++ b/biome/rust-toolchain.toml
|
||||
@@ -2,4 +2,4 @@
|
||||
# The default profile includes rustc, rust-std, cargo, rust-docs, rustfmt and clippy.
|
||||
# https://rust-lang.github.io/rustup/concepts/profiles.html
|
||||
profile = "default"
|
||||
-channel = "1.87.0"
|
||||
+channel = "stable"
|
||||
diff --git a/debian/control b/debian/control
|
||||
index 7109d042..80bcb58b 100644
|
||||
--- a/debian/control
|
||||
+++ b/debian/control
|
||||
@@ -8,7 +8,7 @@ Homepage: https://biomejs.dev/
|
||||
Standards-Version: 4.7.0.0
|
||||
|
||||
Package: proxmox-biome
|
||||
-Architecture: amd64
|
||||
+Architecture: arm64
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
Description: Biome offers JS formatter and linter, usable via CLI and LSP.
|
||||
Biome is a performant toolchain for web projects, it aims to provide developer
|
||||
13
patches/proxmox-biome-build.patch
Normal file
13
patches/proxmox-biome-build.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/debian/control b/debian/control
|
||||
index bcfa86d0..ec90b4df 100644
|
||||
--- a/debian/control
|
||||
+++ b/debian/control
|
||||
@@ -2,7 +2,7 @@ Source: proxmox-biome
|
||||
Section: admin
|
||||
Priority: optional
|
||||
Maintainer: Proxmox Support Team <support@proxmox.com>
|
||||
-Build-Depends: cargo, debhelper-compat (= 12), shellcheck,
|
||||
+Build-Depends: debhelper-compat (= 12), shellcheck,
|
||||
Homepage: https://biomejs.dev/
|
||||
Standards-Version: 4.7.0.0
|
||||
|
||||
44
patches/proxmox-mini-journalreader-cross.patch
Normal file
44
patches/proxmox-mini-journalreader-cross.patch
Normal file
@@ -0,0 +1,44 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 615c077..50a72ac 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -7,8 +7,8 @@ GITVERSION:=$(shell git rev-parse HEAD)
|
||||
|
||||
BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
|
||||
|
||||
-DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
|
||||
-DBGDEB=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
|
||||
+DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_HOST_ARCH).deb
|
||||
+DBGDEB=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_HOST_ARCH).deb
|
||||
DEBS=$(DEB) $(DBGDEB)
|
||||
|
||||
DSC=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
|
||||
@@ -24,13 +24,13 @@ $(BUILDDIR): src debian
|
||||
deb: $(DEB)
|
||||
$(DBGDEB): $(DEB)
|
||||
$(DEB): $(BUILDDIR)
|
||||
- cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
|
||||
+ cd $(BUILDDIR); dpkg-buildpackage -aarm64 -b -us -uc
|
||||
lintian $(DEBS)
|
||||
|
||||
.PHONY: dsc
|
||||
dsc: $(DSC)
|
||||
$(DSC): $(BUILDDIR)
|
||||
- cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
|
||||
+ cd $(BUILDDIR); dpkg-buildpackage -aarm64 -S -us -uc -d
|
||||
lintian $(DSC)
|
||||
|
||||
sbuild: $(DSC)
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index 6807b67..3f31c07 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -14,7 +14,7 @@ LDFLAGS += $(shell pkg-config --libs $(LIBS))
|
||||
all: $(PROGRAM)
|
||||
|
||||
$(PROGRAM): $(SOURCES)
|
||||
- gcc $< -o $@ $(CFLAGS) $(LDFLAGS)
|
||||
+ ${CC} $< -o $@ $(CFLAGS) $(LDFLAGS)
|
||||
|
||||
.PHONY: install
|
||||
install: $(PROGRAM) $(MANPAGE)
|
||||
@@ -1,17 +1,26 @@
|
||||
diff --git a/src/mini-journalreader.c b/src/mini-journalreader.c
|
||||
index 7ce7857..520fb1e 100644
|
||||
index 0489d4a..8fccb99 100644
|
||||
--- a/src/mini-journalreader.c
|
||||
+++ b/src/mini-journalreader.c
|
||||
@@ -174,7 +174,7 @@ static bool print_field(sd_journal *j, const char *field) {
|
||||
@@ -64,7 +64,7 @@ static void print_error_and_exit(const char *fmt, ...) {
|
||||
fprintf(stdout, "], \"error\":\"");
|
||||
for (int i = 0; i < message_len; i++) {
|
||||
char c = message[i];
|
||||
- if (c == '"' || c == '\\' || (c >= 0 && c <= 0x1F)) {
|
||||
+ if (c == '"' || c == '\\' || c <= 0x1F) {
|
||||
fprintf(stdout, "\\u%04X", c);
|
||||
} else {
|
||||
fprintf(stdout, "%c", c);
|
||||
@@ -216,7 +216,7 @@ static bool print_field(sd_journal *j, const char *field) {
|
||||
if (json) {
|
||||
char tmp[7];
|
||||
for (size_t i = 0; i < l;i++) {
|
||||
- if (d[i] == '"' || d[i] == '\\' || (d[i] >= 0 && d[i] <= 0x1F)) {
|
||||
+ if (d[i] == '"' || d[i] == '\\' || d[i] <= 0x1F) {
|
||||
sprintf(tmp, "\\u%04X", d[i]);
|
||||
print_to_buf(tmp, 6);
|
||||
} else {
|
||||
@@ -263,10 +263,12 @@ int main(int argc, char *argv[]) {
|
||||
char tmp[7];
|
||||
for (size_t i = 0; i < l; i++) {
|
||||
- if (d[i] == '"' || d[i] == '\\' || (d[i] >= 0 && d[i] <= 0x1F)) {
|
||||
+ if (d[i] == '"' || d[i] == '\\' || d[i] <= 0x1F) {
|
||||
sprintf(tmp, "\\u%04X", d[i]);
|
||||
print_to_buf(tmp, 6);
|
||||
} else {
|
||||
@@ -305,10 +305,12 @@ int main(int argc, char *argv[]) {
|
||||
uint64_t begin = 0;
|
||||
uint64_t end = 0;
|
||||
char c;
|
||||
@@ -19,9 +28,23 @@ index 7ce7857..520fb1e 100644
|
||||
|
||||
progname = argv[0];
|
||||
|
||||
- while ((c = (char)getopt (argc, argv, "b:e:d:n:f:t:jh")) != -1) {
|
||||
+ while ((opt = getopt (argc, argv, "b:e:d:n:f:t:jh")) != -1) {
|
||||
- while ((c = (char)getopt(argc, argv, "b:e:d:n:f:t:jh")) != -1) {
|
||||
+ while ((opt = getopt(argc, argv, "b:e:d:n:f:t:jh")) != -1) {
|
||||
+ c = (char) opt;
|
||||
switch (c) {
|
||||
case 'b':
|
||||
begin = arg_to_uint64(optarg);
|
||||
case 'b':
|
||||
begin = arg_to_uint64(optarg);
|
||||
diff --git a/debian/changelog b/debian/changelog
|
||||
index 9cb9914..3575f4f 100644
|
||||
--- a/debian/changelog
|
||||
+++ b/debian/changelog
|
||||
@@ -1,3 +1,9 @@
|
||||
+proxmox-mini-journalreader (1.6-1) trixie; urgency=medium
|
||||
+
|
||||
+ * fix ERROR: invalid option or missing argument
|
||||
+
|
||||
+ -- Wolfgang <github@linux-dude.de> Sat, 23 Aug 2025 08:46:01 +0200
|
||||
+
|
||||
proxmox-mini-journalreader (1.6) trixie; urgency=medium
|
||||
|
||||
* rebuild for Debian 13 "Trixie" based Proxmox releases.
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
diff --git a/proxmox-sys/src/linux/procfs/mod.rs b/proxmox-sys/src/linux/procfs/mod.rs
|
||||
index 30b9978..ccb14aa 100644
|
||||
--- a/proxmox-sys/src/linux/procfs/mod.rs
|
||||
+++ b/proxmox-sys/src/linux/procfs/mod.rs
|
||||
@@ -4,6 +4,7 @@ use std::fmt;
|
||||
use std::fs::OpenOptions;
|
||||
use std::io::{BufRead, BufReader};
|
||||
use std::net::{Ipv4Addr, Ipv6Addr};
|
||||
+use std::path::Path;
|
||||
use std::str::FromStr;
|
||||
use std::sync::RwLock;
|
||||
use std::time::Instant;
|
||||
@@ -455,8 +456,12 @@ pub fn read_meminfo() -> Result<ProcFsMemInfo, Error> {
|
||||
|
||||
meminfo.swapused = meminfo.swaptotal - meminfo.swapfree;
|
||||
|
||||
- let spages_line = file_read_firstline("/sys/kernel/mm/ksm/pages_sharing")?;
|
||||
- meminfo.memshared = spages_line.trim_end().parse::<u64>()? * 4096;
|
||||
+ if Path::new("/sys/kernel/mm/ksm/pages_sharing").exists() {
|
||||
+ let spages_line = file_read_firstline("/sys/kernel/mm/ksm/pages_sharing")?;
|
||||
+ meminfo.memshared = spages_line.trim_end().parse::<u64>()? * 4096;
|
||||
+ } else {
|
||||
+ meminfo.memshared = 0;
|
||||
+ }
|
||||
|
||||
Ok(meminfo)
|
||||
}
|
||||
@@ -1,36 +1,38 @@
|
||||
diff --git a/.cargo/config b/.cargo/config
|
||||
index 3b5b6e4..b08ce29 100644
|
||||
--- a/.cargo/config
|
||||
+++ b/.cargo/config
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/.cargo/config.toml b/.cargo/config.toml
|
||||
index 7b442dc..6a5ba20 100644
|
||||
--- a/.cargo/config.toml
|
||||
+++ b/.cargo/config.toml
|
||||
@@ -1,8 +1,8 @@
|
||||
[source]
|
||||
-[source.debian-packages]
|
||||
-directory = "/usr/share/cargo/registry"
|
||||
+[source.vendor]
|
||||
+directory = "vendor"
|
||||
+directory = "termproxy/vendor"
|
||||
[source.crates-io]
|
||||
-replace-with = "debian-packages"
|
||||
+replace-with = "vendor"
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 60c3ae0..8464181 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -16,3 +16,8 @@ curl = "0.4"
|
||||
clap = "2.33"
|
||||
|
||||
[profile.release]
|
||||
debug = true
|
||||
diff --git a/termproxy/Cargo.toml b/termproxy/Cargo.toml
|
||||
index d0325f4..6721965 100644
|
||||
--- a/termproxy/Cargo.toml
|
||||
+++ b/termproxy/Cargo.toml
|
||||
@@ -22,3 +22,7 @@ nix = { version = "0.29", features = ["fs", "ioctl", "process", "term"] }
|
||||
pico-args = "0.5"
|
||||
proxmox-io = "1"
|
||||
proxmox-sys = "0.2"
|
||||
+zstd-sys = { features = [ "pkg-config" ] }
|
||||
form_urlencoded = "1.2"
|
||||
+
|
||||
+[patch.crates-io]
|
||||
+proxmox-io = { path = "../proxmox/proxmox-io" }
|
||||
+proxmox-sys = { path = "../proxmox/proxmox-sys" }
|
||||
diff --git a/Makefile b/Makefile
|
||||
index cd583fb..42d62fe 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -35,6 +35,14 @@ $(SUBDIRS):
|
||||
cargo-build:
|
||||
cargo build $(CARGO_BUILD_ARGS)
|
||||
+proxmox-lang = { path = "../proxmox/proxmox-lang" }
|
||||
diff --git a/termproxy/Makefile b/termproxy/Makefile
|
||||
index 5622380..6209365 100644
|
||||
--- a/termproxy/Makefile
|
||||
+++ b/termproxy/Makefile
|
||||
@@ -35,6 +35,13 @@ $(TERMPROXY_BIN): .do-cargo-build
|
||||
$(CARGO) build $(CARGO_BUILD_ARGS)
|
||||
touch .do-cargo-build
|
||||
|
||||
+.PHONY: cargo-vendor
|
||||
+cargo-vendor:
|
||||
@@ -39,92 +41,89 @@ index cd583fb..42d62fe 100644
|
||||
+ rm -f vendor/endian_trait_derive/rust-toolchain
|
||||
+ sed -i "s#\"rust-toolchain[^,]\+,##" vendor/endian_trait/.cargo-checksum.json
|
||||
+ sed -i "s#\"rust-toolchain[^,]\+,##" vendor/endian_trait_derive/.cargo-checksum.json
|
||||
+
|
||||
.PHONY: build
|
||||
build:
|
||||
rm -rf build
|
||||
@@ -53,9 +61,10 @@ build:
|
||||
|
||||
.PHONY: cargo-build
|
||||
cargo-build: .do-cargo-build
|
||||
@@ -53,10 +60,10 @@ $(ORIG_SRC_TAR): $(BUILDDIR)
|
||||
|
||||
.PHONY: deb
|
||||
deb: ${DEB}
|
||||
-$(DEB): build
|
||||
- cd build; dpkg-buildpackage -b -uc -us --no-pre-clean
|
||||
- lintian ${DEB}
|
||||
+$(DEB): cargo-vendor
|
||||
deb: $(DEB)
|
||||
-$(DEB) $(DBG_DEB) &: $(BUILDDIR)
|
||||
- cd $(BUILDDIR); dpkg-buildpackage -b -uc -us
|
||||
- lintian $(DEB)
|
||||
- @echo $(DEB)
|
||||
+$(DEB) $(DBG_DEB) &: cargo-vendor
|
||||
+ echo "git clone git://git.proxmox.com/git/pve-xtermjs.git\\ngit checkout ${GITVERSION}" > debian/SOURCE
|
||||
+ DEB_CARGO_PACKAGE=$(PACKAGE) dpkg-buildpackage -b -uc -us --no-pre-clean
|
||||
+ lintian ../${DEB}
|
||||
@echo ${DEB}
|
||||
+ lintian ../$(DEB)
|
||||
|
||||
.PHONY: dsc
|
||||
diff --git a/debian/cargo-checksum.json b/debian/cargo-checksum.json
|
||||
new file mode 100644
|
||||
index 0000000..e69de29
|
||||
diff --git a/debian/compat b/debian/compat
|
||||
new file mode 100644
|
||||
index 0000000..f599e28
|
||||
--- /dev/null
|
||||
+++ b/debian/compat
|
||||
@@ -0,0 +1 @@
|
||||
+10
|
||||
diff --git a/debian/control b/debian/control
|
||||
new file mode 100644
|
||||
index 0000000..d59a66c
|
||||
--- /dev/null
|
||||
+++ b/debian/control
|
||||
@@ -0,0 +1,30 @@
|
||||
+Source: rust-termproxy
|
||||
+Section: admin
|
||||
+Priority: optional
|
||||
+Build-Depends: debhelper (>= 12),
|
||||
+ libzstd-dev
|
||||
+Maintainer: Proxmox Support Team <support@proxmox.com>
|
||||
+Standards-Version: 4.5.1
|
||||
+Vcs-Git: git://git.proxmox.com/git/pve-xtermjs.git
|
||||
+Vcs-Browser: https://git.proxmox.com/?p=pve-xtermjs.git;a=summary
|
||||
+Homepage: https://www.proxmox.com
|
||||
+Rules-Requires-Root: no
|
||||
+
|
||||
+Package: pve-xtermjs
|
||||
+Architecture: any
|
||||
+Multi-Arch: allowed
|
||||
+Depends:
|
||||
+ ${misc:Depends},
|
||||
+ ${shlibs:Depends},
|
||||
+ ${cargo:Depends}
|
||||
+Recommends:
|
||||
+ ${cargo:Recommends}
|
||||
+Suggests:
|
||||
+ ${cargo:Suggests}
|
||||
+Provides:
|
||||
+ ${cargo:Provides}
|
||||
+Built-Using: ${cargo:Built-Using}
|
||||
+XB-X-Cargo-Built-Using: ${cargo:X-Cargo-Built-Using}
|
||||
+Description: HTML/JS Shell client for Proxmox projects
|
||||
+ This package provides an xterm.js client/proxy for Proxmoxprojects' Hosts,
|
||||
+ Proxmox VE containers or Proxmox VE VM's serial-terminals.
|
||||
diff --git a/debian/rules b/debian/rules
|
||||
index 2b62edd..436684e 100755
|
||||
--- a/debian/rules
|
||||
+++ b/debian/rules
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/make -f
|
||||
dsc:
|
||||
diff --git a/termproxy/debian/control b/termproxy/debian/control
|
||||
index 1a26f1c..583a584 100644
|
||||
--- a/termproxy/debian/control
|
||||
+++ b/termproxy/debian/control
|
||||
@@ -1,20 +1,8 @@
|
||||
Source: proxmox-termproxy
|
||||
Section: admin
|
||||
Priority: optional
|
||||
-Build-Depends: cargo:native,
|
||||
- debhelper-compat (= 13),
|
||||
- dh-cargo (>= 25),
|
||||
- librust-anyhow-1+default-dev,
|
||||
- librust-form-urlencoded-dev,
|
||||
- librust-libc-0.2+default-dev (>= 0.2.107-~~),
|
||||
- librust-mio-1+default-dev,
|
||||
- librust-mio-1+net-dev,
|
||||
- librust-mio-1+os-ext-dev,
|
||||
- librust-nix-0.29+default-dev (>= 0.26.1-~~),
|
||||
- librust-pico-args-0.5+default-dev,
|
||||
- librust-proxmox-io-1+default-dev,
|
||||
+Build-Depends: debhelper-compat (= 13),
|
||||
libstd-rust-dev,
|
||||
- rustc:native,
|
||||
Maintainer: Proxmox Support Team <support@proxmox.com>
|
||||
Standards-Version: 4.6.1
|
||||
Vcs-Git: git://git.proxmox.com/git/pve-xtermjs.git
|
||||
@@ -26,7 +14,7 @@ Package: proxmox-termproxy
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
-Recommends: pve-xtermjs
|
||||
+Recommends: pve-xtermjs:all
|
||||
Breaks: pve-xtermjs (<< 5.3.0~)
|
||||
Replaces: pve-xtermjs (<< 5.3.0~)
|
||||
Description: Wrapper proxy for executing programs in the system terminal
|
||||
diff --git a/termproxy/debian/rules b/termproxy/debian/rules
|
||||
index add090b..7d25614 100755
|
||||
--- a/termproxy/debian/rules
|
||||
+++ b/termproxy/debian/rules
|
||||
@@ -4,7 +4,6 @@
|
||||
DH_VERBOSE = 1
|
||||
|
||||
%:
|
||||
- dh $@ --buildsystem cargo
|
||||
+ dh $@
|
||||
include /usr/share/dpkg/pkg-info.mk
|
||||
-include /usr/share/rustc/architecture.mk
|
||||
|
||||
override_dh_auto_build:
|
||||
dh_auto_build
|
||||
diff --git a/debian/rules.debcargo.hint b/debian/rules.debcargo.hint
|
||||
index 92c239b..4aaf62a 100755
|
||||
--- a/debian/rules.debcargo.hint
|
||||
+++ b/debian/rules.debcargo.hint
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/make -f
|
||||
%:
|
||||
- dh $@ --buildsystem cargo
|
||||
+ dh $@
|
||||
export BUILD_MODE=release
|
||||
|
||||
override_dh_auto_test:
|
||||
dh_auto_test -- test --all
|
||||
@@ -23,7 +22,6 @@ export DEB_CARGO_PACKAGE=proxmox-termproxy
|
||||
override_dh_auto_configure:
|
||||
@perl -ne 'if (/^version\s*=\s*"(\d+(?:\.\d+)+)"/) { my $$v_cargo = $$1; my $$v_deb = "$(DEB_VERSION_UPSTREAM)"; \
|
||||
die "ERROR: d/changelog <-> Cargo.toml version mismatch: $$v_cargo != $$v_deb\n" if $$v_cargo ne $$v_deb; exit(0); }' Cargo.toml
|
||||
- $(CARGO) prepare-debian $(CURDIR)/debian/cargo_registry --link-from-system
|
||||
dh_auto_configure
|
||||
|
||||
override_dh_missing:
|
||||
diff --git a/xterm.js/debian/control b/xterm.js/debian/control
|
||||
index 71cf01f..9c98b84 100644
|
||||
--- a/xterm.js/debian/control
|
||||
+++ b/xterm.js/debian/control
|
||||
@@ -11,7 +11,7 @@ Rules-Requires-Root: no
|
||||
|
||||
Package: pve-xtermjs
|
||||
Architecture: all
|
||||
-Depends: ${misc:Depends}, proxmox-termproxy
|
||||
+Depends: ${misc:Depends}, proxmox-termproxy:any
|
||||
Description: HTML/TypeScript based fully-featured terminal for Proxmox projects
|
||||
Provides the xterm.js frontend for the terminal feature in Proxmox projects'
|
||||
web UI's, like for host administration or Proxmox VE containers shells.
|
||||
|
||||
16
patches/pve-xtermjs-cross.patch
Normal file
16
patches/pve-xtermjs-cross.patch
Normal file
@@ -0,0 +1,16 @@
|
||||
diff --git a/termproxy/Makefile b/termproxy/Makefile
|
||||
index d7655b9..dd84a23 100644
|
||||
--- a/termproxy/Makefile
|
||||
+++ b/termproxy/Makefile
|
||||
@@ -13,9 +13,9 @@ DSC=$(PACKAGE)_$(DEB_VERSION).dsc
|
||||
CARGO ?= cargo
|
||||
ifeq ($(BUILD_MODE), release)
|
||||
CARGO_BUILD_ARGS += --release
|
||||
-COMPILEDIR := target/release
|
||||
+COMPILEDIR := target/aarch64-unknown-linux-gnu/release
|
||||
else
|
||||
-COMPILEDIR := target/debug
|
||||
+COMPILEDIR := target/aarch64-unknown-linux-gnu/debug
|
||||
endif
|
||||
|
||||
PREFIX = /usr
|
||||
Reference in New Issue
Block a user