From 0a3062c451449727488fa29236822c2715ceca81 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Thu, 18 Jun 2020 12:50:21 -0400 Subject: opkg: New multiarch support wrapper script --- diff --git a/build b/build index 40204ea..7b25cb7 100755 --- a/build +++ b/build @@ -24,7 +24,7 @@ build: install: build oh-autoinstall - mv dest/usr/bin/opkg-cl dest/usr/bin/opkg + install -m 0755 ../opkg dest/usr/bin/opkg install -m 0755 ../opkg-cert dest/usr/bin/opkg-cert install -m 0755 -d dest/usr/sbin/ ln -sf /usr/bin/opkg-cert dest/usr/sbin/opkg-key diff --git a/changelog b/changelog index 5b14df4..d14b168 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,11 @@ +opkg-lede (0+git20190131.d4ba162-7) trunk + + * opkg-lede: Add a multiarch support wrapper script as "/usr/bin/opkg" + and move the real opkg binary back to its default location at + "/usr/bin/opkg-cl". + + -- Patrick McDermott Thu, 18 Jun 2020 12:50:01 -0400 + opkg-lede (0+git20190131.d4ba162-6) trunk * opkg-lede: Replace opkg-key with opkg-cert, and provide a diff --git a/opkg b/opkg new file mode 100755 index 0000000..54e2886 --- /dev/null +++ b/opkg @@ -0,0 +1,90 @@ +#!/bin/sh +# +# opkg - Multiarch support wrapper for opkg +# +# Copyright (C) 2020 Patrick McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set -eu + +main() +{ + local first_arg= + local arch_arg= + local arg= + + first_arg=true + arch_arg='' + for arg in "${@}"; do + if ${first_arg}; then + set -- + if [ -e '/etc/opkg/opkg.conf' ]; then + set -- "${@}" --conf '/etc/opkg/opkg.conf' + fi + set -- "${@}" \ + --add-arch all:100 \ + --add-arch "$(cat /etc/proteanos_arch):50" \ + --add-arch src:100 + first_arg=false + elif [ -n "${arch_arg}" ]; then + case "${arg}" in -* | '') + printf '%s: Option "%s" requires an argument\n'\ + "${0}" "${arch_arg}" 1>&2 + return 1 + esac + set -- "${@}" --add-arch "${arg}:100" + arch_arg='' + continue + fi + case "${arg}" in + -a | --host-architecture) + arch_arg="${arg}" + continue + ;; + -a*) + arg="${arg#-a}" + set -- "${@}" --add-arch "${arg}:100" + continue + ;; + --host-architecture=*) + arch_arg="${arg%=*}" + arg="${arg#--host-architecture=}" + if [ -z "${arg}" ]; then + printf '%s: Option "%s" requires '$(: \ + )'an argument\n' \ + "${0}" "${arch_arg}" 1>&2 + return 1 + fi + set -- "${@}" --add-arch "${arg}:100" + arch_arg='' + continue + ;; + esac + set -- "${@}" "${arg}" + done + if [ -n "${arch_arg}" ]; then + printf '%s: Option "%s" requires an argument\n' \ + "${0}" "${arch_arg}" 1>&2 + return 1 + fi + + if /usr/bin/opkg-cl "${@}"; then + return 0 + else + return ${?} + fi +} + +main "${@}" diff --git a/opkg-lede.pkg/files b/opkg-lede.pkg/files index 7030e26..55e6832 100644 --- a/opkg-lede.pkg/files +++ b/opkg-lede.pkg/files @@ -1,4 +1,5 @@ /usr/bin/opkg /usr/bin/opkg-cert +/usr/bin/opkg-cl /usr/bin/update-alternatives /usr/sbin/opkg-key -- cgit v0.9.1