fixes
This commit is contained in:
1 parent
5ec14c6157
commit
d94bd7609a
11 files changed
+232
-9
No files matched your search
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SOURCE_DIR="${1:?usage: apply-patches.sh /path/to/RustProxy-source}"
|
||||
|
||||
[[ -f "$SOURCE_DIR/Cargo.toml" ]] || {
|
||||
echo "Missing Cargo.toml in RustProxy source: $SOURCE_DIR" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
command -v git >/dev/null 2>&1 || { echo "git is required to apply FreeBSD patches" >&2; exit 1; }
|
||||
command -v python3 >/dev/null 2>&1 || { echo "python3 is required to detect RustProxy version" >&2; exit 1; }
|
||||
|
||||
version="$(python3 - "$SOURCE_DIR/Cargo.toml" <<'PY'
|
||||
import sys
|
||||
import tomllib
|
||||
from pathlib import Path
|
||||
with Path(sys.argv[1]).open('rb') as f:
|
||||
data = tomllib.load(f)
|
||||
print(data['package']['version'])
|
||||
PY
|
||||
)"
|
||||
|
||||
PATCH_DIR="$ROOT/patches/$version"
|
||||
if [[ ! -d "$PATCH_DIR" ]]; then
|
||||
echo "No FreeBSD/OPNsense patch set for RustProxy $version; building upstream source unchanged."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
shopt -s nullglob
|
||||
patches=("$PATCH_DIR"/*.patch)
|
||||
if (( ${#patches[@]} == 0 )); then
|
||||
echo "FreeBSD patch directory is empty for RustProxy $version: $PATCH_DIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Applying FreeBSD/OPNsense patch set for RustProxy $version to isolated build source..."
|
||||
for patch_file in "${patches[@]}"; do
|
||||
patch_name="$(basename "$patch_file")"
|
||||
if git -C "$SOURCE_DIR" apply --check "$patch_file" 2>/dev/null; then
|
||||
git -C "$SOURCE_DIR" apply "$patch_file"
|
||||
echo " applied: $patch_name"
|
||||
elif git -C "$SOURCE_DIR" apply --reverse --check "$patch_file" 2>/dev/null; then
|
||||
echo " already present: $patch_name"
|
||||
else
|
||||
echo "Patch does not apply cleanly: $patch_name" >&2
|
||||
echo "RustProxy source version: $version" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
Reference in new issue
Block a user