From 94bab21696ba7fdd75d36a152d7f2bc796c398c6 Mon Sep 17 00:00:00 2001 From: Cameron Thompson <50184035+iamromulan@users.noreply.github.com> Date: Thu, 3 Oct 2024 04:01:22 -0400 Subject: [PATCH] add sdxpinn-mount-fix ipk and source --- opkg-source/SDXPINN-mount-fix/CONTROL/control | 6 +- .../SDXPINN-mount-fix/CONTROL/postinst | 18 +++++ opkg-source/SDXPINN-mount-fix/CONTROL/preinst | 8 +- opkg-source/sdxpinn-mount-fix/build-ipk | 74 ++++++++++++++++++ .../root/tmp}/distfeeds.conf | 0 ...xpinn-mount-fix_1.0_aarch64_cortex-a53.ipk | Bin 0 -> 3810 bytes 6 files changed, 98 insertions(+), 8 deletions(-) create mode 100644 opkg-source/sdxpinn-mount-fix/build-ipk rename opkg-source/{SDXPINN-mount-fix/root/etc/opkg => sdxpinn-mount-fix/root/tmp}/distfeeds.conf (100%) create mode 100644 opkg-source/sdxpinn-mount-fix/sdxpinn-mount-fix_1.0_aarch64_cortex-a53.ipk diff --git a/opkg-source/SDXPINN-mount-fix/CONTROL/control b/opkg-source/SDXPINN-mount-fix/CONTROL/control index f43a042..418385b 100644 --- a/opkg-source/SDXPINN-mount-fix/CONTROL/control +++ b/opkg-source/SDXPINN-mount-fix/CONTROL/control @@ -1,6 +1,6 @@ -Package: SDXPINN-mount-fix +Package: sdxpinn-mount-fix Version: 1.0 -Architecture: arm64 +Architecture: aarch64_cortex-a53 Maintainer: Cameron Thompson iamromulan@github.com Description: Creates a usable mount space and overlay for SDXPINN modems -Depends: libc \ No newline at end of file +Depends: libc diff --git a/opkg-source/SDXPINN-mount-fix/CONTROL/postinst b/opkg-source/SDXPINN-mount-fix/CONTROL/postinst index 0106eea..01c90db 100644 --- a/opkg-source/SDXPINN-mount-fix/CONTROL/postinst +++ b/opkg-source/SDXPINN-mount-fix/CONTROL/postinst @@ -1,5 +1,23 @@ #!/bin/ash +# Replace distfeeds.conf with non-working sources commented out +# Check if the temporary distfeeds.conf file exists +if [ -f /tmp/distfeeds.conf ]; then + # Backup the existing /etc/opkg/distfeeds.conf if it exists + if [ -f /etc/opkg/distfeeds.conf ]; then + cp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.bak + echo "Backed up original /etc/opkg/distfeeds.conf to /etc/opkg/distfeeds.conf.bak" + fi + + # Move the new distfeeds.conf from /tmp to /etc/opkg + mv /tmp/distfeeds.conf /etc/opkg/distfeeds.conf + echo "Replaced /etc/opkg/distfeeds.conf with the custom version." +else + echo "Error: /tmp/distfeeds.conf not found. Cannot replace /etc/opkg/distfeeds.conf." + exit 1 +fi + + # Make the init script executable chmod +x /etc/init.d/mount-fix chmod +x /etc/init.d/init-overlay-watchdog diff --git a/opkg-source/SDXPINN-mount-fix/CONTROL/preinst b/opkg-source/SDXPINN-mount-fix/CONTROL/preinst index 0ae7f98..fe6f7d1 100644 --- a/opkg-source/SDXPINN-mount-fix/CONTROL/preinst +++ b/opkg-source/SDXPINN-mount-fix/CONTROL/preinst @@ -6,10 +6,8 @@ if grep -qs '/etc ' /proc/mounts; then umount -lf /etc fi -# Check if root filesystem is mounted as read-only -if grep -qs " / " /proc/mounts | grep "(ro,"; then - echo "Remounting root filesystem as read-write..." - mount -o remount,rw / -fi +# Remount original rootfs as read-write +echo "Mounting / as read-write" +mount -o remount,rw / exit 0 diff --git a/opkg-source/sdxpinn-mount-fix/build-ipk b/opkg-source/sdxpinn-mount-fix/build-ipk new file mode 100644 index 0000000..eb83cf6 --- /dev/null +++ b/opkg-source/sdxpinn-mount-fix/build-ipk @@ -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." + diff --git a/opkg-source/SDXPINN-mount-fix/root/etc/opkg/distfeeds.conf b/opkg-source/sdxpinn-mount-fix/root/tmp/distfeeds.conf similarity index 100% rename from opkg-source/SDXPINN-mount-fix/root/etc/opkg/distfeeds.conf rename to opkg-source/sdxpinn-mount-fix/root/tmp/distfeeds.conf diff --git a/opkg-source/sdxpinn-mount-fix/sdxpinn-mount-fix_1.0_aarch64_cortex-a53.ipk b/opkg-source/sdxpinn-mount-fix/sdxpinn-mount-fix_1.0_aarch64_cortex-a53.ipk new file mode 100644 index 0000000000000000000000000000000000000000..72e0fdd0c2da40ca2058cf32522b25e30fbef6e8 GIT binary patch literal 3810 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 YE?l^9;lhOr7cLO}1CfcXe*h=|0DA0kIsgCw literal 0 HcmV?d00001