Files
Josef Schlehofer 1bf4bd3856 treewide: fix dangling SONAME symlinks when using ABI_VERSION
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>
2026-05-24 09:01:13 +02:00

64 lines
1.5 KiB
Makefile
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#
# 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))