e2fsprogs: break out libcomerr/libss, FS#1310
libext2fs breaks krb5 by always installing its own copies of libcom_err.so and libss.so. Move the libraries into separate libcomerr and libss packages respectively and add a host build recipe to stage the required compile_et and mk_cmds utilities for use by other packages. This allows the krb5 package to be fixed to use the system wide libcomerr and libss libraries. Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com> [rename libcom_err to libcomerr, make compile_et and mk_cmds relocatable, cleanup makefile, add dependency on host build, reword commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
093b75e106
commit
20d63ebc94
2 changed files with 117 additions and 17 deletions
|
@ -10,30 +10,27 @@ include $(TOPDIR)/rules.mk
|
||||||
PKG_NAME:=e2fsprogs
|
PKG_NAME:=e2fsprogs
|
||||||
PKG_VERSION:=1.43.7
|
PKG_VERSION:=1.43.7
|
||||||
PKG_HASH:=2a6367289047d68d9ba6a46cf89ab9a1efd0556cde02a51ebaf414ff51edded9
|
PKG_HASH:=2a6367289047d68d9ba6a46cf89ab9a1efd0556cde02a51ebaf414ff51edded9
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/
|
PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
PKG_CPE_ID:=cpe:/a:e2fsprogs_project:e2fsprogs
|
PKG_CPE_ID:=cpe:/a:e2fsprogs_project:e2fsprogs
|
||||||
|
|
||||||
PKG_BUILD_DEPENDS:=util-linux
|
PKG_BUILD_DEPENDS:=util-linux e2fsprogs/host
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
|
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
define Package/e2fsprogs/Default
|
|
||||||
URL:=http://e2fsprogs.sourceforge.net/
|
|
||||||
SUBMENU:=Filesystem
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/e2fsprogs
|
define Package/e2fsprogs
|
||||||
$(call Package/e2fsprogs/Default)
|
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
|
SUBMENU:=Filesystem
|
||||||
TITLE:=Ext2/3/4 filesystem utilities
|
TITLE:=Ext2/3/4 filesystem utilities
|
||||||
|
URL:=http://e2fsprogs.sourceforge.net/
|
||||||
DEPENDS:=+libuuid +libext2fs
|
DEPENDS:=+libuuid +libext2fs
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -43,17 +40,43 @@ define Package/e2fsprogs/description
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libext2fs
|
define Package/libext2fs
|
||||||
$(call Package/e2fsprogs/Default)
|
|
||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
DEPENDS:=+libuuid +libblkid
|
|
||||||
TITLE:=ext2/3/4 filesystem library
|
TITLE:=ext2/3/4 filesystem library
|
||||||
|
URL:=http://e2fsprogs.sourceforge.net/
|
||||||
|
DEPENDS:=+libuuid +libblkid +libss +libcomerr
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libext2fs/description
|
define Package/libext2fs/description
|
||||||
libext2fs is a library which can access ext2, ext3 and ext4 filesystems.
|
libext2fs is a library which can access ext2, ext3 and ext4 filesystems.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/libss
|
||||||
|
SECTION:=libs
|
||||||
|
CATEGORY:=Libraries
|
||||||
|
TITLE:=command-line interface parsing library
|
||||||
|
URL:=http://e2fsprogs.sourceforge.net/
|
||||||
|
DEPENDS:=+libcomerr
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libss/description
|
||||||
|
This pacakge contains libss, a command-line interface parsing library
|
||||||
|
bundled with e2fsprogs.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libcomerr
|
||||||
|
SECTION:=libs
|
||||||
|
CATEGORY:=Libraries
|
||||||
|
TITLE:=common error description library
|
||||||
|
URL:=http://e2fsprogs.sourceforge.net/
|
||||||
|
DEPENDS:=+libuuid
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libcomerr/description
|
||||||
|
This package contains libcom_err, the common error description library
|
||||||
|
bundled with e2fsprogs.
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/tune2fs
|
define Package/tune2fs
|
||||||
$(call Package/e2fsprogs)
|
$(call Package/e2fsprogs)
|
||||||
TITLE:=Ext2 Filesystem tune utility
|
TITLE:=Ext2 Filesystem tune utility
|
||||||
|
@ -153,11 +176,36 @@ define Build/InstallDev
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
$(CP) $(PKG_BUILD_DIR)/lib/libext2fs.{so,a}* $(1)/usr/lib
|
$(CP) $(PKG_BUILD_DIR)/lib/libext2fs.{so,a}* $(1)/usr/lib
|
||||||
$(CP) $(PKG_BUILD_DIR)/lib/libcom_err.{so,a}* $(1)/usr/lib
|
$(CP) $(PKG_BUILD_DIR)/lib/libcom_err.{so,a}* $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_BUILD_DIR)/lib/libss.{so,a}* $(1)/usr/lib
|
||||||
|
|
||||||
$(INSTALL_DIR) $(1)/usr/include/ext2fs
|
$(INSTALL_DIR) $(1)/usr/include/ext2fs
|
||||||
$(CP) $(PKG_BUILD_DIR)/lib/ext2fs/*.h $(1)/usr/include/ext2fs
|
$(CP) $(PKG_BUILD_DIR)/lib/ext2fs/*.h $(1)/usr/include/ext2fs
|
||||||
$(INSTALL_DIR) $(1)/usr/include/et
|
$(INSTALL_DIR) $(1)/usr/include/et
|
||||||
$(CP) $(PKG_BUILD_DIR)/lib/et/*.h $(1)/usr/include/et
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/et/*.h $(1)/usr/include/et
|
||||||
|
# Apparently there is some confusion
|
||||||
|
echo "#include <et/com_err.h>" > $(1)/usr/include/com_err.h
|
||||||
|
$(INSTALL_DIR) $(1)/usr/include/ss
|
||||||
|
$(CP) \
|
||||||
|
$(PKG_BUILD_DIR)/lib/ss/ss.h \
|
||||||
|
$(PKG_BUILD_DIR)/lib/ss/ss_err.h \
|
||||||
|
$(1)/usr/include/ss/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Compile
|
||||||
|
$(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR)/lib/ss mk_cmds
|
||||||
|
$(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR)/lib/et compile_et
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Install
|
||||||
|
$(INSTALL_DIR) $(1)/share/et
|
||||||
|
$(CP) $(HOST_BUILD_DIR)/lib/et/et_[ch].awk $(1)/share/et/
|
||||||
|
$(INSTALL_DIR) $(1)/share/ss
|
||||||
|
$(CP) $(HOST_BUILD_DIR)/lib/ss/ct_c.{sed,awk} $(1)/share/ss/
|
||||||
|
$(INSTALL_DIR) $(STAGING_DIR_HOST)/bin
|
||||||
|
$(CP) \
|
||||||
|
$(HOST_BUILD_DIR)/lib/et/compile_et \
|
||||||
|
$(HOST_BUILD_DIR)/lib/ss/mk_cmds \
|
||||||
|
$(1)/bin/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/e2fsprogs/conffiles
|
define Package/e2fsprogs/conffiles
|
||||||
|
@ -182,15 +230,19 @@ define Package/e2fsprogs/install
|
||||||
$(INSTALL_DATA) ./files/e2fsck.conf $(1)/etc/e2fsck.conf
|
$(INSTALL_DATA) ./files/e2fsck.conf $(1)/etc/e2fsck.conf
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libcom_err/install
|
define Package/libcomerr/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libcom_err.so* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libss/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libss.so* $(1)/usr/lib/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libext2fs/install
|
define Package/libext2fs/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
$(CP) \
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libext2fs.so.* $(1)/usr/lib/
|
||||||
$(PKG_INSTALL_DIR)/usr/lib/libext2fs.so.* \
|
|
||||||
$(PKG_INSTALL_DIR)/usr/lib/libcom_err.so.* \
|
|
||||||
$(1)/usr/lib/
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libext2fs/install_lib
|
define Package/libext2fs/install_lib
|
||||||
|
@ -233,7 +285,6 @@ define Package/debugfs/install
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/debugfs $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/debugfs $(1)/usr/sbin/
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libss.so.* $(1)/usr/lib/
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/chattr/install
|
define Package/chattr/install
|
||||||
|
@ -247,6 +298,8 @@ define Package/lsattr/install
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,e2fsprogs))
|
$(eval $(call BuildPackage,e2fsprogs))
|
||||||
|
$(eval $(call BuildPackage,libcomerr))
|
||||||
|
$(eval $(call BuildPackage,libss))
|
||||||
$(eval $(call BuildPackage,libext2fs))
|
$(eval $(call BuildPackage,libext2fs))
|
||||||
$(eval $(call BuildPackage,tune2fs))
|
$(eval $(call BuildPackage,tune2fs))
|
||||||
$(eval $(call BuildPackage,resize2fs))
|
$(eval $(call BuildPackage,resize2fs))
|
||||||
|
@ -257,3 +310,4 @@ $(eval $(call BuildPackage,filefrag))
|
||||||
$(eval $(call BuildPackage,debugfs))
|
$(eval $(call BuildPackage,debugfs))
|
||||||
$(eval $(call BuildPackage,chattr))
|
$(eval $(call BuildPackage,chattr))
|
||||||
$(eval $(call BuildPackage,lsattr))
|
$(eval $(call BuildPackage,lsattr))
|
||||||
|
$(eval $(call HostBuild))
|
||||||
|
|
46
package/utils/e2fsprogs/patches/000-relocatable.patch
Normal file
46
package/utils/e2fsprogs/patches/000-relocatable.patch
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
--- a/lib/et/compile_et.sh.in
|
||||||
|
+++ b/lib/et/compile_et.sh.in
|
||||||
|
@@ -2,9 +2,15 @@
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
-datarootdir=@datarootdir@
|
||||||
|
-AWK=@AWK@
|
||||||
|
-DIR=@datadir@/et
|
||||||
|
+if test "x$STAGING_DIR" = x ; then
|
||||||
|
+ datarootdir=@datarootdir@
|
||||||
|
+ AWK=@AWK@
|
||||||
|
+ DIR=@datadir@/et
|
||||||
|
+else
|
||||||
|
+ datarootdir="$STAGING_DIR/../hostpkg/share"
|
||||||
|
+ AWK=awk
|
||||||
|
+ DIR="$datarootdir/et"
|
||||||
|
+fi
|
||||||
|
|
||||||
|
if test "$1" = "--build-tree" ; then
|
||||||
|
shift;
|
||||||
|
--- a/lib/ss/mk_cmds.sh.in
|
||||||
|
+++ b/lib/ss/mk_cmds.sh.in
|
||||||
|
@@ -1,11 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
#
|
||||||
|
-
|
||||||
|
-datarootdir=@datarootdir@
|
||||||
|
-DIR=@datadir@/ss
|
||||||
|
-AWK=@AWK@
|
||||||
|
-SED=@SED@
|
||||||
|
+if test "x$STAGING_DIR" = x ; then
|
||||||
|
+ datarootdir=@datarootdir@
|
||||||
|
+ DIR=@datadir@/ss
|
||||||
|
+ AWK=@AWK@
|
||||||
|
+ SED=@SED@
|
||||||
|
+else
|
||||||
|
+ datarootdir="$STAGING_DIR/../hostpkg/share"
|
||||||
|
+ DIR="$datarootdir/ss"
|
||||||
|
+ AWK=awk
|
||||||
|
+ SED=sed
|
||||||
|
+fi
|
||||||
|
|
||||||
|
for as_var in \
|
||||||
|
LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
|
Loading…
Reference in a new issue