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:
		 Andy Walsh
					Andy Walsh
				
			
				
					committed by
					
						 Jo-Philipp Wich
						Jo-Philipp Wich
					
				
			
			
				
	
			
			
			 Jo-Philipp Wich
						Jo-Philipp Wich
					
				
			
						parent
						
							093b75e106
						
					
				
				
					commit
					20d63ebc94
				
			| @@ -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 \ | ||||||
		Reference in New Issue
	
	Block a user