Removed un-needed files and updated to correcte regex

This commit is contained in:
2024-07-08 14:47:09 -04:00
parent 708c5e43db
commit b915ecd09a
20 changed files with 3 additions and 1451 deletions

View File

@@ -1,6 +0,0 @@
{
"build_from": {
"aarch64": "debian:bookworm-slim",
"amd64": "debian:bookworm-slim"
}
}

View File

@@ -1,6 +1,6 @@
{ {
"name": "PBS-Client", "name": "PBS-Client",
"version": "20240708.13", "version": "20240708.14",
"slug": "pbs-client", "slug": "pbs-client",
"description": "Proxmox Backup Client", "description": "Proxmox Backup Client",
"url": "https://git.johnhgaunt.com/jgaunt/hassio-addons/src/branch/master/PBS-Client", "url": "https://git.johnhgaunt.com/jgaunt/hassio-addons/src/branch/master/PBS-Client",
@@ -15,7 +15,7 @@
"pbs_fingerprint": "", "pbs_fingerprint": "",
"username": "", "username": "",
"password": "", "password": "",
"auth": "pam or pbs", "auth": "",
"datastore": "", "datastore": "",
"namespace": "", "namespace": "",
"days_to_keep": "14", "days_to_keep": "14",
@@ -37,6 +37,6 @@
"auth": ["match(pam|pbs)"], "auth": ["match(pam|pbs)"],
"namespace": "str", "namespace": "str",
"days_to_keep": "int", "days_to_keep": "int",
"include": ["match(^//)"] "include": ["match(^\/)"]
} }
} }

View File

@@ -1,27 +0,0 @@
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 \
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/* /

View File

@@ -1,9 +0,0 @@
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 /build/packages/*deb

View File

@@ -1,7 +0,0 @@
_These are unofficial binary packages of Proxmox Backup Server 3.x for debian/bookworm._
The proxmox-backup*,promox-mini-journalreader and pve-xtermjs packages are cross 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/bookworm/pbs-no-subscription/binary-amd64/.
Use at your own risk.
**Official Changelog**

View File

@@ -1,74 +0,0 @@
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:
- 3.x
arch:
type: choice
description: Arch
options:
- arm64
- amd64
baseimage:
type: choice
description: Base Image
options:
- debian:bookworm-slim
- ubuntu:jammy
jobs:
build:
runs-on: ubuntu-22.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
df -h
- name: Checkout
uses: actions/checkout@v4
- 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: |
[ "${{ github.event.inputs.package }}" = "client" ] && package="client"
if [ "${{ github.event.inputs.arch }}" = "arm64" ]; then
if [ "${RUNNER_DEBUG}" = "1" ]; then
docker buildx build -o packages --build-arg buildoptions="cross github debug ${package}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 -f .github/Dockerfile.crosscompile-arm64 .
else
docker buildx build -o packages --build-arg buildoptions="cross github ${package}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 -f .github/Dockerfile.crosscompile-arm64 .
fi
else
if [ "${RUNNER_DEBUG}" = "1" ]; then
docker buildx build -o packages --build-arg buildoptions="github debug ${package}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 .
else
docker buildx build -o packages --build-arg buildoptions="github ${package}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 .
fi
fi
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
docker buildx build --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/${{ github.event.inputs.arch }} -f .github/Dockerfile.installtest .

View File

@@ -1,66 +0,0 @@
name: Release
run-name: Release ${{ github.ref_name }} ${{ github.event.inputs.version }} Debian (crossbuild/arm64)
on:
workflow_dispatch:
inputs:
version:
type: choice
description: Version
options:
- 3.x
push:
tags:
- 3.**
jobs:
build:
permissions:
contents: write
runs-on: ubuntu-22.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
df -h
- name: Checkout
uses: actions/checkout@v4
- 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:bookworm-slim"
echo "DEB_DIST=Debian/Bookworm" >> $GITHUB_ENV
if [ "${RUNNER_DEBUG}" = "1" ]; then
docker buildx build -o packages --build-arg buildoptions="cross github debug" --build-arg baseimage=${baseimage} --platform linux/amd64 -f .github/Dockerfile.crosscompile-arm64 .
else
docker buildx build -o packages --build-arg buildoptions="cross github" --build-arg baseimage=${baseimage} --platform linux/amd64 -f .github/Dockerfile.crosscompile-arm64 .
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:bookworm-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

View File

@@ -1,4 +0,0 @@
/packages
/packages_build
/sources
rust-toolchain.toml

View File

@@ -1,22 +0,0 @@
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
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/* /

View File

@@ -1,162 +0,0 @@
# proxmox-backup-arm64
Script for building Proxmox Backup Server 3.x for Debian/Bookworm<br />
At least 4 GB are required for compiling. On devices with low memory, SWAP must be used (see help section).
## Download pre-built packages
You can find unoffical debian packages for bookworm 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 release at once
```
./build.sh download
```
or of a specific version
```
./build.sh download=3.2.6-1
```
## Build manually
### Install build essentials and dependencies
```
apt-get install -y --no-install-recommends \
build-essential curl ca-certificates sudo git lintian fakeroot \
pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \
libpam0g-dev
```
### Install ``rustup``
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
source ~/.cargo/env
```
### Start build script
```
./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 \
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
```
sudo apt install \
./libjs-extjs_*_all.deb \
./libjs-qrcodejs_*_all.deb \
./libproxmox-acme-plugins_*_all.deb \
./pbs-i18n_*_all.deb \
./proxmox-backup-docs_*_all.deb \
./proxmox-backup-server_*_arm64.deb \
./proxmox-mini-journalreader_*_arm64.deb \
./proxmox-widget-toolkit_*_all.deb \
./proxmox-termproxy_*_arm64.deb \
./pve-xtermjs_*_all.deb
```
### Client
```
sudo apt install \
./proxmox-backup-client_*_arm64.deb \
# Optional: ./proxmox-backup-file-restore_*_arm64.deb
```
## 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:
```
proxmox-backup-manager user list
```
to update root user pwd:
```
proxmox-backup-manager user update root@pam --password {pwd}
```
more info: https://pbs.proxmox.com/docs/user-management.html
### Create SWAP (at least 4G on low memory systems like Raspberry PI)
from https://askubuntu.com/questions/178712/how-to-increase-swap-space/1263160#1263160
Check swap memory:
```
swapon --show or free -h
```
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.

View File

@@ -1,379 +0,0 @@
#!/bin/bash
#
# build script for proxmox backup server on arm64
# https://github.com/wofferl/proxmox-backup-arm64
set -eu
function download_package() {
repo=${1}
package=${2}
if [ -n "${5}" ]; then
version_test=("${3}" "${4}")
dest=${5}
else
version_test=('=' "${3}")
dest=${4}
fi
url=$(select_package "${repo}" "${package}" "${version_test[@]}")
if [ -z "${url}" ]; then
echo "Error package ${package} in version " "${version_test[@]}" " not found" >&2
return 1
fi
file="${dest}/${url##*/}"
if [ -e "${file}" ]; then
echo "${package} up-to-date" >&2
echo "${file}"
return 0
fi
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
if [ ! -d "${name}" ]; then
git clone "${url}"
else
git -C "${name}" fetch
fi
}
function git_clean_and_checkout() {
commit_id=${1}
path=${2}
path_args=( )
if [[ "${path}" != "" ]]; then
path_args=( "-C" "${path}" )
fi
git "${path_args[@]}" clean -ffdx
git "${path_args[@]}" reset --hard
git "${path_args[@]}" checkout "${commit_id}"
}
function load_packages() {
url=${1}
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() {
repo=${1}
package_name=${2}
version_test=("${3}" "${4}")
url_base=http://download.proxmox.com/debian/${repo}
if [[ "${repo}" == "pbs" ]]; then
packages_target=${PACKAGES_PBS}
elif [[ "${repo}" == "devel" ]]; then
packages_target=${PACKAGES_DEVEL}
else
echo "Unknown repo ${repo}" >&2
return 1
fi
version_target=0.0
file_target=
while IFS= read -r line; do
name=${line%%;*}
line=${line##*${name};}
if [[ "${name}" == "${package_name}" ]]; 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 [ -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
}
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/ 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
done
}
SUDO="${SUDO:-sudo -E}"
SCRIPT=$(realpath "${0}")
BASE=$(dirname "${SCRIPT}")
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)
BUILD_PACKAGE="server"
BUILD_PROFILES=""
GITHUB_ACTION=""
. /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
;;
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_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/bookworm/main/binary-amd64/Packages.gz)
echo "Download packages list from pbs-no-subscription repository"
PACKAGES_PBS=$(load_packages http://download.proxmox.com/debian/pbs/dists/bookworm/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")
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}")"
"$(download_package devel pve-eslint "${PVE_ESLINT_VER[@]}" "${PACKAGES_BUILD}")"
)
else
packages_install=(
"$(download_package devel pve-eslint "${PVE_ESLINT_VER[@]}" "${PACKAGES_BUILD}")"
)
fi
echo "Install build dependencies"
${SUDO} apt install -y "${packages_install[@]}"
cat <<EOF >rust-toolchain.toml
[toolchain]
channel="stable"
targets = [ "${CARGO_BUILD_TARGET:-$(rustc -vV 2>/dev/null | awk '/^host/ { print $2 }')}" ]
EOF
cd "${SOURCES}"
PROXMOX_BACKUP_VER="3.2.7-1"
PROXMOX_BACKUP_GIT="cb3d41e838dec0e1002aaf5ee4c0e6cd28284c74"
PROXMOX_GIT="0652d81977a3a35a6f1b046faf0768246a71a8bf"
PATHPATTERNS_GIT="281894a5b66099e919d167cd5f0644fff6aca234" # 0.3.0-1
PXAR_GIT="ebe402c01c736eb6b822d984cda48538c0b7bf87" # 0.12.0-1
PROMXOX_FUSE_GIT="8d57fb64f044ea3dcfdef77ed5f1888efdab0708" # 0.1.4
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
if [ "${PACKAGE_ARCH}" = "arm64" ]; then
patch -p1 -d proxmox/ < "${PATCHES}/proxmox-arm64.patch"
fi
git_clone_or_fetch https://git.proxmox.com/git/proxmox-fuse.git
git_clean_and_checkout ${PROMXOX_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-backup.git
git_clean_and_checkout ${PROXMOX_BACKUP_GIT} proxmox-backup
sed -i '/dh-cargo\|cargo:native\|rustc:native\|librust-/d' proxmox-backup/debian/control
sed -i 's/\(patchelf\|xindy\)\b/\1:native/' proxmox-backup/debian/control
sed -i 's/\(latexmk\|proxmox-widget-toolkit-dev\|pve-eslint\|python3-sphinx\)/\1:all/' proxmox-backup/debian/control
patch -p1 -d proxmox-backup/ < "${PATCHES}/proxmox-backup-build.patch"
if [ "${BUILD_PACKAGE}" = "client" ]; then
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
[[ "${BUILD_PROFILES}" =~ cross ]] && \
patch -p1 -d proxmox-backup/ < "${PATCHES}/proxmox-backup-cross.patch"
cd proxmox-backup/
set_package_info
cargo vendor
${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 ..
if [ "${BUILD_PACKAGE}" = "client" ]; then
mv -f proxmox-backup-client_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.deb \
"${PACKAGES}"
else
mv -f proxmox-backup-client{,-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
[ "${BUILD_PACKAGE}" = "client" ] && exit 0
PVE_XTERMJS_VER="5.3.0-3"
PVE_XTERMJS_GIT="3301e28678e6a26187e8731d920b2b7686c35cad"
PROXMOX_XTERMJS_GIT="04e2d0e5c329b59c4ece59d77079443e39029883"
PROXMOX_TERMPROXY_VER="1.0.1"
if [ ! -e "${PACKAGES}/pve-xtermjs_${PVE_XTERMJS_VER}_"*".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"
[[ "${BUILD_PROFILES}" =~ cross ]] && \
patch -p1 -d pve-xtermjs/ < "${PATCHES}/pve-xtermjs-cross.patch"
cd pve-xtermjs/
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 ..
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.4.0"
PROXMOX_JOURNALREADER_GIT="66c4d47b853fbeddf1ddb725ac8e3908452554cb"
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
[[ "${BUILD_PROFILES}" =~ cross ]] && \
patch -p1 -d proxmox-mini-journalreader/ < "${PATCHES}/proxmox-mini-journalreader-cross.patch"
cd proxmox-mini-journalreader/
set_package_info
${SUDO} apt -y -a${PACKAGE_ARCH} build-dep .
make deb
mv -f proxmox-mini-journalreader{,-dbgsym}_${PROXMOX_JOURNALREADER_VER}_${PACKAGE_ARCH}.* "${PACKAGES}"
cd ..
else
echo "proxmox-mini-journalreader up-to-date"
fi

View File

@@ -1,22 +0,0 @@
diff --git a/proxmox-sys/src/crypt.rs b/proxmox-sys/src/crypt.rs
index 3313f668..c254e761 100644
--- a/proxmox-sys/src/crypt.rs
+++ b/proxmox-sys/src/crypt.rs
@@ -71,7 +71,7 @@ pub fn crypt(password: &[u8], salt: &[u8]) -> Result<String, Error> {
// > output field of their data argument, and crypt writes an invalid hash to its static
// > storage area. This string will be shorter than 13 characters, will begin with a *,
// > and will not compare equal to setting.
- if data.output.first().is_none() || Some(&('*' as i8)) == data.output.first() {
+ if data.output.first().is_none() || Some(&('*' as u8)) == data.output.first() {
bail!("internal error: crypt_r returned invalid hash");
}
CStr::from_ptr(&data.output as *const _)
@@ -133,7 +133,7 @@ pub fn crypt_gensalt(prefix: &str, count: u64, rbytes: &[u8]) -> Result<String,
// while it states that this is "in addition" to returning a null pointer, this isn't how
// `crypt_r` seems to behave (sometimes only setting an invalid hash) so add this here too just
// in case.
- if output.first().is_none() || Some(&('*' as i8)) == output.first() {
+ if output.first().is_none() || Some(&('*' as u8)) == output.first() {
bail!("internal error: crypt_gensalt_rn could not create a valid salt");
}

View File

@@ -1,126 +0,0 @@
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/Cargo.toml b/Cargo.toml
index 7013a468..632f3b80 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -247,37 +247,37 @@ proxmox-rrd.workspace = true
# NOTE: You must run `cargo update` after changing this for it to take effect!
[patch.crates-io]
-#proxmox-apt = { path = "../proxmox/proxmox-apt" }
-#proxmox-async = { path = "../proxmox/proxmox-async" }
-#proxmox-auth-api = { path = "../proxmox/proxmox-auth-api" }
-#proxmox-borrow = { path = "../proxmox/proxmox-borrow" }
-#proxmox-compression = { path = "../proxmox/proxmox-compression" }
-#proxmox-fuse = { path = "../proxmox-fuse" }
-#proxmox-http = { path = "../proxmox/proxmox-http" }
-#proxmox-human-byte = { path = "../proxmox/proxmox-human-byte" }
-#proxmox-io = { path = "../proxmox/proxmox-io" }
-#proxmox-lang = { path = "../proxmox/proxmox-lang" }
-#proxmox-ldap = { path = "../proxmox/proxmox-ldap" }
-#proxmox-metrics = { path = "../proxmox/proxmox-metrics" }
-#proxmox-notify = { path = "../proxmox/proxmox-notify" }
-#proxmox-openid = { path = "../proxmox/proxmox-openid" }
-#proxmox-rest-server = { path = "../proxmox/proxmox-rest-server" }
-#proxmox-router = { path = "../proxmox/proxmox-router" }
-#proxmox-rrd = { path = "../proxmox/proxmox-rrd" }
-#proxmox-schema = { path = "../proxmox/proxmox-schema" }
-#proxmox-section-config = { path = "../proxmox/proxmox-section-config" }
-#proxmox-serde = { path = "../proxmox/proxmox-serde" }
-#proxmox-shared-memory = { path = "../proxmox/proxmox-shared-memory" }
-#proxmox-sortable-macro = { path = "../proxmox/proxmox-sortable-macro" }
-#proxmox-subscription = { path = "../proxmox/proxmox-subscription" }
-#proxmox-sys = { path = "../proxmox/proxmox-sys" }
-#proxmox-tfa = { path = "../proxmox/proxmox-tfa" }
-#proxmox-time = { path = "../proxmox/proxmox-time" }
-#proxmox-uuid = { path = "../proxmox/proxmox-uuid" }
+proxmox-apt = { path = "../proxmox/proxmox-apt" }
+proxmox-async = { path = "../proxmox/proxmox-async" }
+proxmox-auth-api = { path = "../proxmox/proxmox-auth-api" }
+proxmox-borrow = { path = "../proxmox/proxmox-borrow" }
+proxmox-compression = { path = "../proxmox/proxmox-compression" }
+proxmox-fuse = { path = "../proxmox-fuse" }
+proxmox-http = { path = "../proxmox/proxmox-http" }
+proxmox-human-byte = { path = "../proxmox/proxmox-human-byte" }
+proxmox-io = { path = "../proxmox/proxmox-io" }
+proxmox-lang = { path = "../proxmox/proxmox-lang" }
+proxmox-ldap = { path = "../proxmox/proxmox-ldap" }
+proxmox-metrics = { path = "../proxmox/proxmox-metrics" }
+proxmox-notify = { path = "../proxmox/proxmox-notify" }
+proxmox-openid = { path = "../proxmox/proxmox-openid" }
+proxmox-rest-server = { path = "../proxmox/proxmox-rest-server" }
+proxmox-router = { path = "../proxmox/proxmox-router" }
+proxmox-rrd = { path = "../proxmox/proxmox-rrd" }
+proxmox-schema = { path = "../proxmox/proxmox-schema" }
+proxmox-section-config = { path = "../proxmox/proxmox-section-config" }
+proxmox-serde = { path = "../proxmox/proxmox-serde" }
+proxmox-shared-memory = { path = "../proxmox/proxmox-shared-memory" }
+proxmox-sortable-macro = { path = "../proxmox/proxmox-sortable-macro" }
+proxmox-subscription = { path = "../proxmox/proxmox-subscription" }
+proxmox-sys = { path = "../proxmox/proxmox-sys" }
+proxmox-tfa = { path = "../proxmox/proxmox-tfa" }
+proxmox-time = { path = "../proxmox/proxmox-time" }
+proxmox-uuid = { path = "../proxmox/proxmox-uuid" }
-#proxmox-acme = { path = "../proxmox/proxmox-acme" }
-#pathpatterns = {path = "../pathpatterns" }
-#pxar = { path = "../pxar" }
+proxmox-acme = { path = "../proxmox/proxmox-acme" }
+pathpatterns = {path = "../pathpatterns" }
+pxar = { path = "../pxar" }
[features]
default = []
diff --git a/debian/rules b/debian/rules
index a82c3e12..79c1ad76 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
-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
@@ -27,7 +24,6 @@ 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
dh_auto_configure
override_dh_auto_build:

View File

@@ -1,273 +0,0 @@
diff --git a/Makefile b/Makefile
index dfbaacab..dc21b0b0 100644
--- a/Makefile
+++ b/Makefile
@@ -4,32 +4,21 @@ include defines.mk
PACKAGE := proxmox-backup
ARCH := $(DEB_BUILD_ARCH)
-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'[]' \
@@ -62,8 +51,7 @@ RESTORE_DEB=proxmox-backup-file-restore_$(DEB_VERSION)_$(ARCH).deb
RESTORE_DBG_DEB=proxmox-backup-file-restore-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)
+DEBS=${CLIENT_DEB} ${CLIENT_DBG_DEB}
DSC = rust-$(PACKAGE)_$(DEB_VERSION).dsc
@@ -163,31 +151,11 @@ cargo-build:
$(COMPILED_BINS) $(COMPILEDIR)/dump-catalog-shell-cli $(COMPILEDIR)/docgen: .do-cargo-build
.do-cargo-build:
$(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 pbs2to3 \
- --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 "$@"
@@ -196,27 +164,28 @@ lint:
cargo clippy -- -A clippy::all -D clippy::correctness
install: $(COMPILED_BINS)
+ @echo "$(DESTDIR)"
install -dm755 $(DESTDIR)$(BINDIR)
install -dm755 $(DESTDIR)$(ZSH_COMPL_DEST)
$(foreach i,$(USR_BIN), \
- install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(BINDIR)/ ; \
+ install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)/$(BINDIR)/ ; \
install -m644 zsh-completions/_$(i) $(DESTDIR)$(ZSH_COMPL_DEST)/ ;)
install -dm755 $(DESTDIR)$(SBINDIR)
$(foreach i,$(USR_SBIN), \
install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(SBINDIR)/ ; \
install -m644 zsh-completions/_$(i) $(DESTDIR)$(ZSH_COMPL_DEST)/ ;)
- install -m755 $(COMPILEDIR)/pbs2to3 $(DESTDIR)$(SBINDIR)/
+ #install -m755 $(COMPILEDIR)/pbs2to3 $(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
+ #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/ ;)
- $(MAKE) -C www install
+ #$(MAKE) -C www install
$(MAKE) -C docs install
- $(MAKE) -C templates install
+ #$(MAKE) -C templates install
.PHONY: upload
upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
diff --git a/debian/control b/debian/control
index c38d55bc..57cf3c25 100644
--- a/debian/control
+++ b/debian/control
@@ -20,7 +20,7 @@ Build-Depends: bash-completion,
pve-eslint:all (>= 7.18.0~),
python3-docutils,
python3-pygments,
- python3-sphinx:all <!nodoc>,
+ python3-sphinx:all,
rsync,
texlive-fonts-extra <!nodoc>,
texlive-fonts-recommended <!nodoc>,
@@ -34,56 +34,9 @@ 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.46-2,
- libzstd1 (>= 1.3.8),
- lvm2,
- openssh-server,
- pbs-i18n,
- postfix | mail-transport-agent,
- proxmox-backup-docs,
- proxmox-mini-journalreader,
- proxmox-widget-toolkit (>= 4.1.4),
- pve-xtermjs (>= 4.7.0-1),
- sg3-utils,
- smartmontools,
- ${misc:Depends},
- ${shlibs:Depends},
-Recommends: ifupdown2,
- proxmox-mail-forward,
- 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},
Description: Proxmox Backup Client tools
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 79c1ad76..95b1b1bf 100755
--- a/debian/rules
+++ b/debian/rules
@@ -37,12 +37,13 @@ override_dh_missing:
override_dh_auto_install:
dh_auto_install -- \
PROXY_USER=backup \
- LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)
+ LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) \
+ DESTDIR=$(PWD)/debian/tmp
-override_dh_installsystemd:
- dh_installsystemd -pproxmox-backup-server proxmox-backup-daily-update.timer
+#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
+# 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 d23796b7..950cd644 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -1,53 +1,15 @@
include ../defines.mk
GENERATED_SYNOPSIS := \
- proxmox-tape/synopsis.rst \
proxmox-backup-client/synopsis.rst \
proxmox-backup-client/catalog-shell-synopsis.rst \
- proxmox-backup-manager/synopsis.rst \
- proxmox-backup-debug/synopsis.rst \
- proxmox-file-restore/synopsis.rst \
- pxar/synopsis.rst \
- pmtx/synopsis.rst \
- pmt/synopsis.rst \
- config/media-pool/config.rst \
- config/notifications/config.rst \
- config/notifications-priv/config.rst \
- config/tape/config.rst \
- config/tape-job/config.rst \
- config/user/config.rst \
- config/remote/config.rst \
- config/sync/config.rst \
- config/verification/config.rst \
- config/acl/roles.rst \
- config/datastore/config.rst \
- config/domains/config.rst
+ pxar/synopsis.rst
MAN1_PAGES := \
pxar.1 \
- pmtx.1 \
- pmt.1 \
- proxmox-tape.1 \
- proxmox-backup-proxy.1 \
- proxmox-backup-client.1 \
- proxmox-backup-manager.1 \
- proxmox-file-restore.1 \
- proxmox-backup-debug.1 \
- pbs2to3.1 \
-
-MAN5_PAGES := \
- media-pool.cfg.5 \
- tape.cfg.5 \
- tape-job.cfg.5 \
- acl.cfg.5 \
- user.cfg.5 \
- remote.cfg.5 \
- sync.cfg.5 \
- verification.cfg.5 \
- datastore.cfg.5 \
- domains.cfg.5 \
- notifications.cfg.5 \
- notifications-priv.cfg.5 \
+ proxmox-backup-client.1
+
+MAN5_PAGES :=
PRUNE_SIMULATOR_FILES := \
prune-simulator/index.html \

View File

@@ -1,68 +0,0 @@
diff --git a/docs/Makefile b/docs/Makefile
index 950cd644..1ba51c00 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -65,16 +65,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
@@ -89,7 +89,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 23559bad..2b6f9a4a 100644
--- a/pxar-bin/tests/pxar.rs
+++ b/pxar-bin/tests/pxar.rs
@@ -17,7 +17,8 @@ fn pxar_create_and_extract() {
println!("run '{} create archive.pxar {}'", exec_path, 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 '{} extract archive.pxar {}'", exec_path, dest_dir);
- Command::new(&exec_path)
+ Command::new("qemu-aarch64")
+ .arg(&exec_path)
.arg("extract")
.arg("./tests/archive.pxar")
.arg("--target")
@@ -91,7 +93,8 @@ fn pxar_list_with_payload_input() {
format!("../target/{target_subdir}/release/pxar")
};
- let output = Command::new(exec_path)
+ let output = Command::new("qemu-aarch64")
+ .arg(&exec_path)
.args([
"list",
"../tests/pxar/backup-client-pxar-expected.mpxar",

View File

@@ -1,35 +0,0 @@
diff --git a/Makefile b/Makefile
index 1a32c86..b1a4e0a 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ GITVERSION:=$(shell git rev-parse HEAD)
BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
-DEB=$(PACKAGE)_$(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_BUILD_ARCH).deb
DEBS=$(DEB) $(DBGDEB)
@@ -24,7 +24,7 @@ $(BUILDDIR): src debian
deb: $(DEBS)
$(DEBS): $(DEB)
$(DEB): $(BUILDDIR)
- cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
+ cd $(BUILDDIR); dpkg-buildpackage -aarm64 -b -us -uc
lintian $(DEB)
.PHONY: dsc
diff --git a/src/Makefile b/src/Makefile
index 449004f..f437733 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,7 +13,7 @@ LDFLAGS += $(shell pkg-config --libs $(LIBS))
all: $(PROGRAM)
$(PROGRAM): $(SOURCES)
- gcc $< -o $@ $(CFLAGS) $(LDFLAGS)
+ ${CC} $< -o $@ $(CFLAGS) $(LDFLAGS)
.PHONY: install
install: $(PROGRAM) mini-journalreader.1

View File

@@ -1,27 +0,0 @@
diff --git a/src/mini-journalreader.c b/src/mini-journalreader.c
index 98bcaac..4fc5415 100644
--- a/src/mini-journalreader.c
+++ b/src/mini-journalreader.c
@@ -169,7 +169,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 {
@@ -257,10 +257,12 @@ int main(int argc, char *argv[]) {
uint64_t begin = 0;
uint64_t end = 0;
char c;
+ int opt = 0;
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) {
+ c = (char) opt;
switch (c) {
case 'b':
begin = arg_to_uint64(optarg);

View File

@@ -1,125 +0,0 @@
diff --git a/.cargo/config b/.cargo/config
index 3b5b6e4..4df5be2 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -1,5 +1,5 @@
[source]
-[source.debian-packages]
-directory = "/usr/share/cargo/registry"
+[source.vendor]
+directory = "termproxy/vendor"
[source.crates-io]
-replace-with = "debian-packages"
+replace-with = "vendor"
diff --git a/termproxy/Cargo.toml b/termproxy/Cargo.toml
index a49d6b0..6f02e0a 100644
--- a/termproxy/Cargo.toml
+++ b/termproxy/Cargo.toml
@@ -23,3 +23,7 @@ pico-args = "0.4"
proxmox-io = "1"
proxmox-lang = "1.1"
ureq = { version = "2.4", default-features = false, features = [ "gzip" ] }
+
+[patch.crates-io]
+proxmox-io = { path = "../proxmox/proxmox-io" }
+proxmox-lang = { path = "../proxmox/proxmox-lang" }
diff --git a/termproxy/Makefile b/termproxy/Makefile
index d7655b9..b351396 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:
+ cargo vendor
+ rm -f vendor/endian_trait/rust-toolchain
+ 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: cargo-build
cargo-build: .do-cargo-build
@@ -54,9 +61,10 @@ $(ORIG_SRC_TAR): $(BUILDDIR)
.PHONY: deb
deb: $(DEB)
$(DBG_DEB): $(DEB)
-$(DEB): $(BUILDDIR)
- cd $(BUILDDIR); dpkg-buildpackage -b -uc -us
- lintian $(DEB)
+$(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)
.PHONY: dsc
diff --git a/termproxy/debian/control b/termproxy/debian/control
index 383bdbe..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-clap-4+default-dev,
- librust-mio-0.8+default-dev,
- librust-mio-0.8+net-dev,
- librust-mio-0.8+os-ext-dev,
- librust-proxmox-io-1+default-dev,
- librust-proxmox-lang-1+default-dev (>= 1.1-~~),
- librust-proxmox-sys-0.5+default-dev,
- librust-ureq-2+gzip-dev (>= 2.4-~~),
+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
include /usr/share/dpkg/pkg-info.mk
-include /usr/share/rustc/architecture.mk
export BUILD_MODE=release
@@ -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.

View File

@@ -1,16 +0,0 @@
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