mirror of
https://github.com/openwrt/packages.git
synced 2026-05-31 15:02:01 +08:00
1bf4bd3856
A previous commit attempted to introduce proper SONAME symlinks for
packages utilizing ABI_VERSION. However, it incorrectly copied only
the symlink without the underlying physical library file, resulting
in broken packages with dangling symlinks.
Before:
```
tar -Oxzf bin/packages/arm_cortex-a9_vfpv3-d16/packages/oniguruma_6.9.9-r1_arm_cortex-a9_vfpv3-d16.ipk ./data.tar.gz | tar -tzvf -
drwxr-xr-x 0 0 0 0 Feb 5 2024 ./
drwxr-xr-x 0 0 0 0 Feb 5 2024 ./usr/
drwxr-xr-x 0 0 0 0 Feb 5 2024 ./usr/lib/
lrwxrwxrwx 0 0 0 0 Feb 5 2024 ./usr/lib/libonig.so.5 -> libonig.so.5.4.0
```
After:
```
tar -Oxzf bin/packages/arm_cortex-a9_vfpv3-d16/packages/oniguruma_6.9.9-r1_arm_cortex-a9_vfpv3-d16.ipk ./data.tar.gz | tar -tzvf -
drwxr-xr-x 0 0 0 0 Feb 5 2024 ./
drwxr-xr-x 0 0 0 0 Feb 5 2024 ./usr/
drwxr-xr-x 0 0 0 0 Feb 5 2024 ./usr/lib/
lrwxrwxrwx 0 0 0 0 Feb 5 2024 ./usr/lib/libonig.so.5 -> libonig.so.5.4.0
-rwxr-xr-x 0 0 0 526493 Feb 5 2024 ./usr/lib/libonig.so.5.4.0
```
This properly standardizes shared library packaging, prevents shipping
duplicate full-sized files (as seen previously in packages like libre2),
and aligns the packages feed with core OpenWrt practices.
As you could see in the previous commit (see it in the ``Fixes`` tag):
Before:
```
tar -Oxzf bin/packages/arm_cortex-a9_vfpv3-d16/packages/re2_2023.02.01\~b025c6a3-r1_arm_cortex-a9_vfpv3-d16.ipk ./data.tar.gz | tar -tzvf -
drwxr-xr-x 0 0 0 0 Aug 18 2024 ./
drwxr-xr-x 0 0 0 0 Aug 18 2024 ./usr/
drwxr-xr-x 0 0 0 0 Aug 18 2024 ./usr/lib/
-rw-r--r-- 0 0 0 331875 Aug 18 2024 ./usr/lib/libre2.so
-rw-r--r-- 0 0 0 331875 Aug 18 2024 ./usr/lib/libre2.so.10
-rw-r--r-- 0 0 0 331875 Aug 18 2024 ./usr/lib/libre2.so.10.0.0
```
After:
```
tar -Oxzf bin/packages/arm_cortex-a9_vfpv3-d16/packages/re2_2023.02.01\~b025c6a3-r1_arm_cortex-a9_vfpv3-d16.ipk ./data.tar.gz | tar -tzvf -
drwxr-xr-x 0 0 0 0 Aug 18 2024 ./
drwxr-xr-x 0 0 0 0 Aug 18 2024 ./usr/
drwxr-xr-x 0 0 0 0 Aug 18 2024 ./usr/lib/
lrwxrwxrwx 0 0 0 0 Aug 18 2024 ./usr/lib/libre2.so -> libre2.so.10
lrwxrwxrwx 0 0 0 0 Aug 18 2024 ./usr/lib/libre2.so.10 -> libre2.so.10.0.0
-rwxr-xr-x 0 0 0 331875 Aug 18 2024 ./usr/lib/libre2.so.10.0.0
```
Fixes: 537c2a631d ("treewide: avoid deref symlinks when installing .so")
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
64 lines
1.5 KiB
Makefile
64 lines
1.5 KiB
Makefile
#
|
||
# Copyright (C) 2014 OpenWrt.org
|
||
#
|
||
# This is free software, licensed under the GNU General Public License v2.
|
||
# See /LICENSE for more information.
|
||
#
|
||
|
||
include $(TOPDIR)/rules.mk
|
||
|
||
PKG_NAME:=tinycdb
|
||
PKG_RELEASE:=4
|
||
PKG_SOURCE_URL:=https://www.corpit.ru/mjt/tinycdb/
|
||
PKG_VERSION:=0.78
|
||
PKG_HASH:=50678f432d8ada8d69f728ec11c3140e151813a7847cf30a62d86f3a720ed63c
|
||
PKG_MAINTAINER:=Denis Shulyaka <Shulyaka@gmail.com>
|
||
PKG_LICENSE:=NLPL
|
||
|
||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||
|
||
PKG_INSTALL:=1
|
||
|
||
include $(INCLUDE_DIR)/package.mk
|
||
|
||
# Pass CPPFLAGS in the CFLAGS as otherwise the build system will
|
||
# ignore them.
|
||
TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
|
||
|
||
MAKE_FLAGS+= \
|
||
CFLAGS="$(TARGET_CFLAGS)" \
|
||
LDFLAGS="$(TARGET_LDFLAGS)"
|
||
|
||
CDB_INST_STRING:=prefix=/usr install install-sharedlib install-piclib
|
||
|
||
define Package/tinycdb
|
||
SECTION:=libs
|
||
CATEGORY:=Libraries
|
||
TITLE:=a Constant DataBase
|
||
URL:=https://www.corpit.ru/mjt/tinycdb.html
|
||
ABI_VERSION=1
|
||
endef
|
||
|
||
define Package/tinycdb/description
|
||
TinyCDB is a very fast and simple package for creating and reading constant data bases
|
||
endef
|
||
|
||
define Package/tinycdb/install
|
||
$(INSTALL_DIR) $(1)/usr/lib
|
||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libcdb.so.$(ABI_VERSION)* $(1)/usr/lib
|
||
endef
|
||
|
||
define Build/Compile
|
||
$(call Build/Compile/Default,shared staticlib piclib)
|
||
endef
|
||
|
||
define Build/Install
|
||
$(call Build/Install/Default,$(CDB_INST_STRING))
|
||
endef
|
||
|
||
define Build/InstallDev
|
||
cd $(PKG_BUILD_DIR); $(MAKE) DESTDIR=$(1) $(CDB_INST_STRING)
|
||
endef
|
||
|
||
$(eval $(call BuildPackage,tinycdb))
|