Removed un-needed files and updated to correcte regex
This commit is contained in:
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"build_from": {
|
|
||||||
"aarch64": "debian:bookworm-slim",
|
|
||||||
"amd64": "debian:bookworm-slim"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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(^\/)"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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/* /
|
|
||||||
@@ -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
|
|
||||||
@@ -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**
|
|
||||||
@@ -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 .
|
|
||||||
@@ -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
|
|
||||||
4
PBS-Client/proxmox-backup-arm64/.gitignore
vendored
4
PBS-Client/proxmox-backup-arm64/.gitignore
vendored
@@ -1,4 +0,0 @@
|
|||||||
/packages
|
|
||||||
/packages_build
|
|
||||||
/sources
|
|
||||||
rust-toolchain.toml
|
|
||||||
@@ -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/* /
|
|
||||||
@@ -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.
|
|
||||||
@@ -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
|
|
||||||
@@ -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");
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -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:
|
|
||||||
@@ -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 \
|
|
||||||
@@ -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",
|
|
||||||
@@ -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
|
|
||||||
@@ -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);
|
|
||||||
@@ -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.
|
|
||||||
@@ -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
|
|
||||||
Binary file not shown.
Reference in New Issue
Block a user