Start work: porting cloudflare warp client to sdxpinn
This commit is contained in:
12
ipk-source/cloudflare-warp_aarch64_generic/CONTROL/control
Normal file
12
ipk-source/cloudflare-warp_aarch64_generic/CONTROL/control
Normal file
@@ -0,0 +1,12 @@
|
||||
Package: cloudflare-warp
|
||||
Version: 2024.12.554.0
|
||||
License: unknown
|
||||
Architecture: aarch64_generic
|
||||
Maintainer: Cloudflare <support@cloudflare.com>
|
||||
Installed-Size: 109659
|
||||
Depends: libdbus-1-3, libc6, iproute2, nftables, gnupg2, desktop-file-utils, libcap2-bin, libnss3-tools, ca-certificates, libpcap0.8
|
||||
Suggests: traceroute
|
||||
Section: net
|
||||
Priority: optional
|
||||
Homepage: https://1.1.1.1
|
||||
Description: Cloudflare Warp Client
|
||||
6
ipk-source/cloudflare-warp_aarch64_generic/CONTROL/postinst
Executable file
6
ipk-source/cloudflare-warp_aarch64_generic/CONTROL/postinst
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
service cloudflare-warp-service enable
|
||||
service cloudflare-warp-service start
|
||||
exit 0
|
||||
6
ipk-source/cloudflare-warp_aarch64_generic/CONTROL/preinst
Executable file
6
ipk-source/cloudflare-warp_aarch64_generic/CONTROL/preinst
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
service cloudflare-warp-service disable
|
||||
service cloudflare-warp-service stop
|
||||
exit 0
|
||||
74
ipk-source/cloudflare-warp_aarch64_generic/build-ipk
Executable file
74
ipk-source/cloudflare-warp_aarch64_generic/build-ipk
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Script for building OpenWRT .ipk packages using tar by iamromulan
|
||||
# Works with SDXPPINN OpenWRT - iamromulan
|
||||
# This script accepts an optional path to the directory containing the `CONTROL` and `root` directories.
|
||||
# Usage: ./build-ipk.sh [path]
|
||||
# If no path is provided, the script will look in the current directory for `CONTROL` and `root` directories.
|
||||
# This will spit out an ipk in the current directory
|
||||
|
||||
# Check if the script is run as root. If not, rerun with sudo.
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo "Script is not running as root. Re-executing with sudo..."
|
||||
exec sudo "$0" "$@"
|
||||
fi
|
||||
|
||||
# Set the default build path to the current directory
|
||||
build_path="."
|
||||
|
||||
# Check if a path is provided as the first argument
|
||||
if [ "$1" ]; then
|
||||
build_path="$1"
|
||||
fi
|
||||
|
||||
# Check if the required directories are present in the specified path
|
||||
if [ ! -d "${build_path}/CONTROL" ] || [ ! -d "${build_path}/root" ]; then
|
||||
echo "Error: CONTROL and root directories must be present in the specified path (${build_path})."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract values from the CONTROL/control file in the specified path
|
||||
pkgname=$(grep -i '^Package:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||
version=$(grep -i '^Version:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||
architecture=$(grep -i '^Architecture:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||
|
||||
# Check if values are extracted correctly
|
||||
if [ -z "$pkgname" ] || [ -z "$version" ] || [ -z "$architecture" ]; then
|
||||
echo "Error: Failed to extract Package, Version, or Architecture from ${build_path}/CONTROL/control."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set the final IPK name based on the extracted values
|
||||
ipkname="${pkgname}_${version}_${architecture}.ipk"
|
||||
|
||||
# Ensure all CONTROL scripts are executable
|
||||
echo "Setting permissions for CONTROL scripts..."
|
||||
chmod +x "${build_path}/CONTROL"/*
|
||||
|
||||
# Set ownership for CONTROL and root files
|
||||
echo "Setting ownership for all package files..."
|
||||
chown -R root:root "${build_path}/CONTROL"/*
|
||||
chown -R root:root "${build_path}/root"/*
|
||||
|
||||
# Create control.tar.gz from the CONTROL directory
|
||||
echo "Creating control.tar.gz..."
|
||||
tar -czvf control.tar.gz -C "${build_path}/CONTROL" .
|
||||
|
||||
# Create data.tar.gz from the root directory
|
||||
echo "Creating data.tar.gz..."
|
||||
tar -czvf data.tar.gz -C "${build_path}/root" .
|
||||
|
||||
# Create debian-binary file (must contain exactly "2.0" without a newline)
|
||||
echo -n "2.0" > debian-binary
|
||||
chown -R root:root debian-binary
|
||||
|
||||
# Combine the components into the final .ipk file using tar
|
||||
echo "Packaging ${ipkname}..."
|
||||
tar -czvf "$ipkname" debian-binary control.tar.gz data.tar.gz
|
||||
|
||||
# Clean up intermediate files
|
||||
echo "Cleaning up temporary files..."
|
||||
rm -f control.tar.gz data.tar.gz debian-binary
|
||||
|
||||
echo "IPK package ${ipkname} created successfully using tar."
|
||||
|
||||
BIN
ipk-source/cloudflare-warp_aarch64_generic/root/bin/warp-cli
Executable file
BIN
ipk-source/cloudflare-warp_aarch64_generic/root/bin/warp-cli
Executable file
Binary file not shown.
BIN
ipk-source/cloudflare-warp_aarch64_generic/root/bin/warp-dex
Executable file
BIN
ipk-source/cloudflare-warp_aarch64_generic/root/bin/warp-dex
Executable file
Binary file not shown.
BIN
ipk-source/cloudflare-warp_aarch64_generic/root/bin/warp-diag
Executable file
BIN
ipk-source/cloudflare-warp_aarch64_generic/root/bin/warp-diag
Executable file
Binary file not shown.
BIN
ipk-source/cloudflare-warp_aarch64_generic/root/bin/warp-svc
Executable file
BIN
ipk-source/cloudflare-warp_aarch64_generic/root/bin/warp-svc
Executable file
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
START=99
|
||||
STOP=10
|
||||
USE_PROCD=1
|
||||
|
||||
start_service() {
|
||||
|
||||
echo "Starting Cloudflare WARP service..."
|
||||
procd_open_instance
|
||||
procd_set_param command /bin/warp-svc
|
||||
procd_set_param stdout 1
|
||||
procd_set_param stderr 1
|
||||
procd_close_instance
|
||||
echo "Cloudflare WARP service started"
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
# procd will handle stopping all instances automatically
|
||||
echo "Stopping Cloudflare WARP service"
|
||||
}
|
||||
Reference in New Issue
Block a user