diff options
author | Patrick McDermott <patrick.mcdermott@libiquity.com> | 2020-06-18 12:50:21 (EDT) |
---|---|---|
committer | Patrick McDermott <patrick.mcdermott@libiquity.com> | 2020-06-18 12:50:21 (EDT) |
commit | 0a3062c451449727488fa29236822c2715ceca81 (patch) | |
tree | 5f940c2a6f3720d1a4aa9896ec5a53871e1b6a81 | |
parent | 5a5f22b0ea6833ca8c9b84cdfec06f8b94787ace (diff) |
opkg: New multiarch support wrapper script
-rwxr-xr-x | build | 2 | ||||
-rw-r--r-- | changelog | 8 | ||||
-rwxr-xr-x | opkg | 90 | ||||
-rw-r--r-- | opkg-lede.pkg/files | 1 |
4 files changed, 100 insertions, 1 deletions
@@ -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 @@ -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 <patrick.mcdermott@libiquity.com> 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 @@ -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 <http://www.gnu.org/licenses/>. + +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 |