From 2b062967fb5a6426bdcc53c52d060acb35386ae5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 29 Sep 2026 02:35:55 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=A4=20Sync=202026-09-29=2002:35:55?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- opkg/Makefile | 99 +++++++++++++++++++++++++++++++++++++ opkg/files/20_migrate-feeds | 9 ++++ opkg/files/customfeeds.conf | 3 ++ opkg/files/opkg-key | 58 ++++++++++++++++++++++ opkg/files/opkg-smime.conf | 6 +++ opkg/files/opkg.conf | 4 ++ 6 files changed, 179 insertions(+) create mode 100644 opkg/Makefile create mode 100644 opkg/files/20_migrate-feeds create mode 100644 opkg/files/customfeeds.conf create mode 100755 opkg/files/opkg-key create mode 100644 opkg/files/opkg-smime.conf create mode 100644 opkg/files/opkg.conf diff --git a/opkg/Makefile b/opkg/Makefile new file mode 100644 index 000000000..44dbaae0a --- /dev/null +++ b/opkg/Makefile @@ -0,0 +1,99 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# +# Copyright (C) 2006-2021 OpenWrt.org +# + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=opkg +PKG_RELEASE:=1 +PKG_FLAGS:=essential + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL=$(PROJECT_GIT)/project/opkg-lede.git +PKG_SOURCE_DATE:=2025-11-05 +PKG_SOURCE_VERSION:=80503d94e356476250adaf1f669ee955ec26de76 +PKG_MIRROR_HASH:=skip + +PKG_LICENSE:=GPL-2.0 +PKG_LICENSE_FILES:=COPYING + +PKG_MAINTAINER:=Jo-Philipp Wich + +# Extend depends from version.mk +PKG_CONFIG_DEPENDS += \ + CONFIG_SIGNATURE_CHECK \ + CONFIG_TARGET_INIT_PATH + +HOST_BUILD_DEPENDS:=libubox/host + +PKG_BUILD_FLAGS:=gc-sections + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/opkg + SECTION:=base + CATEGORY:=Base system + TITLE:=opkg package manager + DEPENDS:=+uclient-fetch +libpthread +libubox + DEFAULT:=y if !USE_APK + URL:=$(PKG_SOURCE_URL) + MENU:=1 +endef + +define Package/opkg/description + Lightweight package management system + opkg is the opkg Package Management System, for handling + installation and removal of packages on a system. It can + recursively follow dependencies and download all packages + necessary to install a particular package. + + opkg knows how to install both .ipk and .deb packages. +endef + +define Package/opkg/conffiles +/etc/opkg.conf +/etc/opkg/keys/ +/etc/opkg/customfeeds.conf +endef + +EXTRA_CFLAGS += $(TARGET_CPPFLAGS) + +CMAKE_OPTIONS += \ + -DBUILD_TESTS=OFF \ + -DHOST_CPU=$(PKGARCH) \ + -DPATH_SPEC="$(TARGET_INIT_PATH)" \ + -DVERSION="$(PKG_SOURCE_VERSION) ($(PKG_SOURCE_DATE))" + +CMAKE_HOST_OPTIONS += \ + -DSTATIC_UBOX=ON \ + -DBUILD_TESTS=OFF \ + -DHOST_CPU=$(PKGARCH) \ + -DLOCK_FILE=/tmp/opkg.lock \ + -DVERSION="$(PKG_SOURCE_VERSION) ($(PKG_SOURCE_DATE))" + +define Package/opkg/install + $(INSTALL_DIR) $(1)/usr/lib/opkg + $(INSTALL_DIR) $(1)/bin + $(INSTALL_DIR) $(1)/etc/opkg + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_DATA) ./files/customfeeds.conf $(1)/etc/opkg/customfeeds.conf + $(INSTALL_DATA) ./files/opkg$(2).conf $(1)/etc/opkg.conf + $(INSTALL_BIN) ./files/20_migrate-feeds $(1)/etc/uci-defaults/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg + ifneq ($(CONFIG_SIGNATURE_CHECK),) + echo "option check_signature" >> $(1)/etc/opkg.conf + endif + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) ./files/opkg-key $(1)/usr/sbin/ +endef + +define Host/Install + $(INSTALL_BIN) $(HOST_BUILD_DIR)/src/opkg-cl $(STAGING_DIR_HOST)/bin/opkg +endef + +$(eval $(call BuildPackage,opkg)) +$(eval $(call HostBuild)) diff --git a/opkg/files/20_migrate-feeds b/opkg/files/20_migrate-feeds new file mode 100644 index 000000000..a4bd72575 --- /dev/null +++ b/opkg/files/20_migrate-feeds @@ -0,0 +1,9 @@ +#!/bin/sh + +[ -f /etc/opkg.conf ] && grep -q "src/" /etc/opkg.conf || exit 0 + +echo -e "# Old feeds from previous image\n# Uncomment to reenable\n" >> /etc/opkg/customfeeds.conf +sed -n "s/.*\(src\/.*\)/# \1/p" /etc/opkg.conf >> /etc/opkg/customfeeds.conf +sed -i "/.*src\/.*/d" /etc/opkg.conf + +exit 0 diff --git a/opkg/files/customfeeds.conf b/opkg/files/customfeeds.conf new file mode 100644 index 000000000..f130113c4 --- /dev/null +++ b/opkg/files/customfeeds.conf @@ -0,0 +1,3 @@ +# add your custom package feeds here +# +# src/gz example_feed_name http://www.example.com/path/to/files diff --git a/opkg/files/opkg-key b/opkg/files/opkg-key new file mode 100755 index 000000000..51d1857ad --- /dev/null +++ b/opkg/files/opkg-key @@ -0,0 +1,58 @@ +#!/bin/sh + +OPKG_KEYS="${OPKG_KEYS:-/etc/opkg/keys}" + +usage() { + cat < +Commands: + add : Add keyfile to opkg trusted keys + remove : Remove keyfile matching from opkg trusted keys + verify : Check list file against signature file + +EOF + exit 1 +} + +opkg_key_verify() { + local sigfile="$1" + local msgfile="$2" + + ( + zcat "$msgfile" 2>/dev/null || + cat "$msgfile" 2>/dev/null + ) | usign -V -P "$OPKG_KEYS" -q -x "$sigfile" -m - +} + +opkg_key_add() { + local key="$1" + [ -n "$key" ] || usage + [ -f "$key" ] || echo "Cannot open file $1" + local fingerprint="$(usign -F -p "$key")" + mkdir -p "$OPKG_KEYS" + cp "$key" "$OPKG_KEYS/$fingerprint" +} + +opkg_key_remove() { + local key="$1" + [ -n "$key" ] || usage + [ -f "$key" ] || echo "Cannot open file $1" + local fingerprint="$(usign -F -p "$key")" + rm -f "$OPKG_KEYS/$fingerprint" +} + +case "$1" in + add) + shift + opkg_key_add "$@" + ;; + remove) + shift + opkg_key_remove "$@" + ;; + verify) + shift + opkg_key_verify "$@" + ;; + *) usage ;; +esac diff --git a/opkg/files/opkg-smime.conf b/opkg/files/opkg-smime.conf new file mode 100644 index 000000000..fd2cade1f --- /dev/null +++ b/opkg/files/opkg-smime.conf @@ -0,0 +1,6 @@ +dest root / +dest ram /tmp +lists_dir ext /var/opkg-lists +option overlay_root /overlay +option check_signature 1 +option signature_ca_file /etc/ssl/certs/opkg.pem diff --git a/opkg/files/opkg.conf b/opkg/files/opkg.conf new file mode 100644 index 000000000..d8d3a2d69 --- /dev/null +++ b/opkg/files/opkg.conf @@ -0,0 +1,4 @@ +dest root / +dest ram /tmp +lists_dir ext /var/opkg-lists +option overlay_root /overlay