Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

383 Commits   1 Branch   1 Tag
Index: radix-1.9/app/fakeroot/1.31/Makefile
===================================================================
--- radix-1.9/app/fakeroot/1.31/Makefile	(nonexistent)
+++ radix-1.9/app/fakeroot/1.31/Makefile	(revision 19)
@@ -0,0 +1,249 @@
+
+COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
+COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
+COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
+COMPONENT_TARGETS += $(HARDWARE_CB1X)
+COMPONENT_TARGETS += $(HARDWARE_CB2X)
+COMPONENT_TARGETS += $(HARDWARE_CB3X)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
+COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
+COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
+COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
+COMPONENT_TARGETS += $(HARDWARE_POIN2)
+COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
+COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
+COMPONENT_TARGETS += $(HARDWARE_M201)
+COMPONENT_TARGETS += $(HARDWARE_MXV)
+COMPONENT_TARGETS += $(HARDWARE_P201)
+COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
+COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
+COMPONENT_TARGETS += $(HARDWARE_P212)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
+COMPONENT_TARGETS += $(HARDWARE_Q201)
+COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
+COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
+COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
+COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
+COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
+COMPONENT_TARGETS += $(HARDWARE_CI20)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
+COMPONENT_TARGETS += $(HARDWARE_S824L)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN)
+COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
+
+
+NEED_ABS_PATH      = true
+COMPONENT_IS_3PP   = true
+
+
+include ../../../build-system/constants.mk
+
+
+SOURCE_REQUIRES    = sources/packages/a/fakeroot
+
+ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
+REQUIRES           = dev/gcc/12.2.0
+else
+REQUIRES           = libs/glibc/2.36
+endif
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version            = 1.31
+tar_xz_archive     = $(SRC_PACKAGE_PATH)/packages/a/fakeroot/fakeroot-$(version).tar.xz
+SRC_ARCHIVE        = $(tar_xz_archive)
+SRC_DIR            = $(TARGET_BUILD_DIR)/fakeroot-$(version)
+src_dir_name       = fakeroot-$(version)
+src_done           = $(TARGET_BUILD_DIR)/.source_done
+
+PATCHES = PATCHES
+
+build_dir          = $(TARGET_BUILD_DIR)/build
+build_target       = $(TARGET_BUILD_DIR)/.build_done
+install_target     = $(TARGET_BUILD_DIR)/.install_done
+
+
+script          = $(CURDIR)/scripts/fakeroot.in
+
+
+####### Targets
+
+PKG_GROUP = app
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+FAKEROOT_PKG_NAME                = fakeroot
+FAKEROOT_PKG_VERSION             = 1.31
+FAKEROOT_PKG_ARCH                = $(PKGARCH)
+FAKEROOT_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+FAKEROOT_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+FAKEROOT_PKG_GROUP               = $(PKG_GROUP)
+###                               |---handy-ruler-------------------------------|
+FAKEROOT_PKG_SHORT_DESCRIPTION   = Gives a fake root environment
+FAKEROOT_PKG_URL                 = $(BUG_URL)
+FAKEROOT_PKG_LICENSE             = GPLv3
+FAKEROOT_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(FAKEROOT_PKG_NAME)-pkg-description
+FAKEROOT_PKG_DESCRIPTION_FILE_IN = $(FAKEROOT_PKG_NAME)-pkg-description.in
+FAKEROOT_PKG_INSTALL_SCRIPT      = $(FAKEROOT_PKG_NAME)-pkg-install.sh
+
+FAKEROOT_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(FAKEROOT_PKG_NAME)-package
+
+pkg_basename     = $(FAKEROOT_PKG_NAME)-$(FAKEROOT_PKG_VERSION)-$(FAKEROOT_PKG_ARCH)-$(FAKEROOT_PKG_DISTRO_NAME)-$(FAKEROOT_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_certificate  = $(call cert-name,$(pkg_archive))
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(build_target)
+BUILD_TARGETS   += $(install_target)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../build-system/core.mk
+
+
+env_sysroot = DESTDIR=$(FAKEROOT_PKG)
+
+extra_configure_switches  = --libdir=/usr/lib$(LIBSUFFIX)
+extra_configure_switches += --docdir=/usr/share/doc/$(src_dir_name)
+extra_configure_switches += --infodir=/usr/share/info
+extra_configure_switches += --mandir=/usr/share/man
+extra_configure_switches += --sysconfdir=/etc
+
+extra_configure_switches += --program-suffix=-sysv
+extra_configure_switches += --disable-static
+extra_configure_switches += --with-ipc=sysv
+
+
+TARGET_LIB_RPATH = /lib$(LIBSUFFIX):/usr/lib$(LIBSUFFIX):/usr/lib/../lib$(LIBSUFFIX)
+
+
+####### Dependencies
+
+$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
+	$(UNPACK_SRC_ARCHIVE)
+	$(APPLY_PATCHES)
+	@( cd $(SRC_DIR) ; ./bootstrap )
+	@( cd $(SRC_DIR)/doc ; \
+	   $(BUILDSYSTEM)/usr/bin/po4a -k 0 --rm-backups --variable 'srcdir=../doc/' po4a/po4a.cfg ; \
+	 )
+	@touch $@
+
+$(build_target): $(src_done)
+	@mkdir -p $(build_dir)
+	@cd $(build_dir) && \
+	  $(BUILD_ENVIRONMENT) $(environment) ../$(src_dir_name)/configure \
+	  --prefix=/usr               \
+	  --build=$(BUILD)            \
+	  --host=$(TARGET)            \
+	  $(extra_configure_switches)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(environment) $(MAKE)
+	@touch $@
+
+$(install_target): $(build_target)
+	@mkdir -p $(FAKEROOT_PKG)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(environment) $(MAKE) install $(env_sysroot)
+	@mkdir -p $(FAKEROOT_PKG)/usr/bin
+	@cat $(script) | sed 's,@LIBDIRSUFFIX@,$(LIBSUFFIX),g' > $(FAKEROOT_PKG)/usr/bin/fakeroot
+	@chmod 755 $(FAKEROOT_PKG)/usr/bin/fakeroot
+	# ======= Install Documentation =======
+	@if [ -d $(FAKEROOT_PKG)/usr/share/man ]; then \
+	  ( cd $(FAKEROOT_PKG)/usr/share/man ; \
+	    for manpagedir in `find . -type d -name "man*"` ; do \
+	      ( cd $$manpagedir ; \
+	        for eachpage in `find . -type l -maxdepth 1` ; do \
+	          ln -s `readlink $$eachpage`.gz $$eachpage.gz ; \
+	          rm $$eachpage ; \
+	        done ; \
+	        gzip -9 *.* ; \
+	      ) \
+	    done \
+	  ) \
+	 fi
+	@mkdir -p $(FAKEROOT_PKG)/usr/doc/$(src_dir_name)
+	@cp -a $(SRC_DIR)/AUTHORS $(SRC_DIR)/COPYING \
+	       $(FAKEROOT_PKG)/usr/doc/$(src_dir_name)
+	@mkdir -p $(FAKEROOT_PKG)/usr/share/doc/$(src_dir_name)
+	@( cd $(SRC_DIR) ; \
+	   cp -a AUTHORS COPYING INSTALL README \
+	         $(FAKEROOT_PKG)/usr/share/doc/$(src_dir_name) \
+	 )
+	@( cd $(SRC_DIR) ; \
+	   if [ -r ChangeLog -a -s ChangeLog ]; then \
+	     DOCSDIR=`echo $(FAKEROOT_PKG)/usr/share/doc/$(src_dir_name)` ; \
+	     cat ChangeLog | head -n 1000 > $$DOCSDIR/ChangeLog ; \
+	     touch -r ChangeLog $$DOCSDIR/ChangeLog ; \
+	   fi \
+	 )
+	# ======= remove target path from target libtool *.la files =======
+	@( cd $(FAKEROOT_PKG)/usr/lib$(LIBSUFFIX) ; \
+	   sed -i "s,$(TARGET_DEST_DIR),,g" libfakeroot.la ; \
+	 )
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(FAKEROOT_PKG))
+	# ======= tune libtool *.la search path to the target destination for development =======
+	@( cd $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX) ; \
+	   sed -i "s,/usr,$(TARGET_DEST_DIR)/usr,g"   libfakeroot.la ; \
+	   sed -i "s,L/lib,L$(TARGET_DEST_DIR)/lib,g" libfakeroot.la ; \
+	 )
+	# ======= Strip binaries =======
+	@( cd $(FAKEROOT_PKG) ; \
+	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
+	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
+	 )
+ifneq ($(PATCHELF),)
+	# ======= Set RPATH/RUNPATH for target shared objects =======
+	@( cd $(FAKEROOT_PKG)/usr/lib$(LIBSUFFIX) ; \
+	   for file in `find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs echo` ; do \
+	     rpath=`$(PATCHELF) --print-rpath $$file 2> /dev/null` ; \
+	     if echo "$$rpath" | grep -q "$(TARGET_DEST_DIR)" ; then \
+	       $(PATCHELF) --set-rpath $(TARGET_LIB_RPATH) $$file 1> /dev/null 2> /dev/null ; \
+	     fi ; \
+	   done ; \
+	 )
+endif
+	@touch $@
+
+$(FAKEROOT_PKG_DESCRIPTION_FILE): $(FAKEROOT_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(install_target) $(FAKEROOT_PKG_DESCRIPTION_FILE) $(FAKEROOT_PKG_INSTALL_SCRIPT)
+	@cp $(FAKEROOT_PKG_DESCRIPTION_FILE) $(FAKEROOT_PKG)/.DESCRIPTION
+	@cp $(FAKEROOT_PKG_INSTALL_SCRIPT) $(FAKEROOT_PKG)/.INSTALL
+	@$(BUILD_PKG_REQUIRES) $(FAKEROOT_PKG)/.REQUIRES
+	@echo "pkgname=$(FAKEROOT_PKG_NAME)"                            >  $(FAKEROOT_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(FAKEROOT_PKG_VERSION)"                          >> $(FAKEROOT_PKG)/.PKGINFO ; \
+	 echo "arch=$(FAKEROOT_PKG_ARCH)"                               >> $(FAKEROOT_PKG)/.PKGINFO ; \
+	 echo "distroname=$(FAKEROOT_PKG_DISTRO_NAME)"                  >> $(FAKEROOT_PKG)/.PKGINFO ; \
+	 echo "distrover=$(FAKEROOT_PKG_DISTRO_VERSION)"                >> $(FAKEROOT_PKG)/.PKGINFO ; \
+	 echo "group=$(FAKEROOT_PKG_GROUP)"                             >> $(FAKEROOT_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(FAKEROOT_PKG_SHORT_DESCRIPTION)\"" >> $(FAKEROOT_PKG)/.PKGINFO ; \
+	 echo "url=$(FAKEROOT_PKG_URL)"                                 >> $(FAKEROOT_PKG)/.PKGINFO ; \
+	 echo "license=$(FAKEROOT_PKG_LICENSE)"                         >> $(FAKEROOT_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(FAKEROOT_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: radix-1.9/app/fakeroot/1.31/PATCHES
===================================================================
--- radix-1.9/app/fakeroot/1.31/PATCHES	(nonexistent)
+++ radix-1.9/app/fakeroot/1.31/PATCHES	(revision 19)
@@ -0,0 +1,2 @@
+
+../../../sources/packages/a/fakeroot/patches/fakeroot-1.31-host-os.patch -p0
Index: radix-1.9/app/fakeroot/1.31/fakeroot-pkg-description.in
===================================================================
--- radix-1.9/app/fakeroot/1.31/fakeroot-pkg-description.in	(nonexistent)
+++ radix-1.9/app/fakeroot/1.31/fakeroot-pkg-description.in	(revision 19)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+        |-----handy-ruler------------------------------------------------------|
+fakeroot: fakeroot @VERSION@ (Gives a fake root environment)
+fakeroot:
+fakeroot: Fakeroot makes it possible to run commands in an environment
+fakeroot: faking root privileges.  This is done by setting LD_PRELOAD
+fakeroot: to libfakeroot.so, which provides wrappers around getuid,
+fakeroot: chown, chmod, mknod, stat, and so on, thereby creating
+fakeroot: a fake root environment.
+fakeroot:
+fakeroot:
+fakeroot:
+fakeroot:
Index: radix-1.9/app/fakeroot/1.31/fakeroot-pkg-install.sh
===================================================================
--- radix-1.9/app/fakeroot/1.31/fakeroot-pkg-install.sh	(nonexistent)
+++ radix-1.9/app/fakeroot/1.31/fakeroot-pkg-install.sh	(revision 19)
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Preserve new files
+install_file() {
+  NEW="$1"
+  OLD="`dirname $NEW`/`basename $NEW .new`"
+  # If there's no file by that name, mv it over:
+  if [ ! -r $OLD ]; then
+    mv $NEW $OLD
+  elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+    rm $NEW
+  fi
+  # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: radix-1.9/app/fakeroot/1.31/fakeroot-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: radix-1.9/app/fakeroot/1.31/scripts/fakeroot.in
===================================================================
--- radix-1.9/app/fakeroot/1.31/scripts/fakeroot.in	(nonexistent)
+++ radix-1.9/app/fakeroot/1.31/scripts/fakeroot.in	(revision 19)
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+program=$0
+fakeroot_prefix=$(cd $(dirname $program)/.. ; pwd -P)/usr
+
+shell=$1 ; shift ; option=$1 ; shift
+
+#
+# remove extra spaces:
+#
+args=`echo "${@}" | sed 's/ \{1,\}/ /g'`
+
+${fakeroot_prefix}/bin/fakeroot-sysv --lib ${fakeroot_prefix}/lib@LIBDIRSUFFIX@/libfakeroot-0.so \
+                                     --faked ${fakeroot_prefix}/bin/faked-sysv -- $shell $option "$args"
Index: radix-1.9/app/fakeroot/1.31
===================================================================
--- radix-1.9/app/fakeroot/1.31	(nonexistent)
+++ radix-1.9/app/fakeroot/1.31	(revision 19)

Property changes on: radix-1.9/app/fakeroot/1.31
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: radix-1.9/app/patchelf/0.18.0/Makefile
===================================================================
--- radix-1.9/app/patchelf/0.18.0/Makefile	(nonexistent)
+++ radix-1.9/app/patchelf/0.18.0/Makefile	(revision 19)
@@ -0,0 +1,211 @@
+
+COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
+COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
+COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
+COMPONENT_TARGETS += $(HARDWARE_CB1X)
+COMPONENT_TARGETS += $(HARDWARE_CB2X)
+COMPONENT_TARGETS += $(HARDWARE_CB3X)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
+COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
+COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
+COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
+COMPONENT_TARGETS += $(HARDWARE_POIN2)
+COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
+COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
+COMPONENT_TARGETS += $(HARDWARE_M201)
+COMPONENT_TARGETS += $(HARDWARE_MXV)
+COMPONENT_TARGETS += $(HARDWARE_P201)
+COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
+COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
+COMPONENT_TARGETS += $(HARDWARE_P212)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
+COMPONENT_TARGETS += $(HARDWARE_Q201)
+COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
+COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
+COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
+COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
+COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
+COMPONENT_TARGETS += $(HARDWARE_CI20)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
+COMPONENT_TARGETS += $(HARDWARE_S824L)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN)
+COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
+
+
+NEED_ABS_PATH      = true
+COMPONENT_IS_3PP   = true
+
+
+include ../../../build-system/constants.mk
+
+
+SOURCE_REQUIRES    = sources/packages/a/patchelf
+
+ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
+REQUIRES           = dev/gcc/12.2.0
+else
+REQUIRES           = libs/glibc/2.36
+endif
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version            = 0.18.0
+tar_xz_archive     = $(SRC_PACKAGE_PATH)/packages/a/patchelf/patchelf-$(version).tar.xz
+SRC_ARCHIVE        = $(tar_xz_archive)
+SRC_DIR            = $(TARGET_BUILD_DIR)/patchelf-$(version)
+src_dir_name       = patchelf-$(version)
+src_done           = $(TARGET_BUILD_DIR)/.source_done
+
+PATCHES = PATCHES
+
+build_dir          = $(TARGET_BUILD_DIR)/build
+build_target       = $(TARGET_BUILD_DIR)/.build_done
+install_target     = $(TARGET_BUILD_DIR)/.install_done
+
+
+####### Targets
+
+PKG_GROUP = app
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+PATCHELF_PKG_NAME                = patchelf
+PATCHELF_PKG_VERSION             = 0.18.0
+PATCHELF_PKG_ARCH                = $(PKGARCH)
+PATCHELF_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+PATCHELF_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+PATCHELF_PKG_GROUP               = $(PKG_GROUP)
+###                               |---handy-ruler-------------------------------|
+PATCHELF_PKG_SHORT_DESCRIPTION   = tool to modify ELF binaries
+PATCHELF_PKG_URL                 = $(BUG_URL)
+PATCHELF_PKG_LICENSE             = GPLv3
+PATCHELF_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(PATCHELF_PKG_NAME)-pkg-description
+PATCHELF_PKG_DESCRIPTION_FILE_IN = $(PATCHELF_PKG_NAME)-pkg-description.in
+PATCHELF_PKG_INSTALL_SCRIPT      = $(PATCHELF_PKG_NAME)-pkg-install.sh
+
+PATCHELF_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(PATCHELF_PKG_NAME)-package
+
+pkg_basename     = $(PATCHELF_PKG_NAME)-$(PATCHELF_PKG_VERSION)-$(PATCHELF_PKG_ARCH)-$(PATCHELF_PKG_DISTRO_NAME)-$(PATCHELF_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_certificate  = $(call cert-name,$(pkg_archive))
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(build_target)
+BUILD_TARGETS   += $(install_target)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../build-system/core.mk
+
+
+env_sysroot = DESTDIR=$(PATCHELF_PKG)
+
+extra_configure_switches  = --libdir=/usr/lib$(LIBSUFFIX)
+extra_configure_switches += --docdir=/usr/share/doc/$(src_dir_name)
+extra_configure_switches += --infodir=/usr/share/info
+extra_configure_switches += --mandir=/usr/share/man
+extra_configure_switches += --sysconfdir=/etc
+
+
+####### Dependencies
+
+$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
+	$(UNPACK_SRC_ARCHIVE)
+	$(APPLY_PATCHES)
+	@touch $@
+
+$(build_target): $(src_done)
+	@mkdir -p $(build_dir)
+	@cd $(build_dir) && \
+	  $(BUILD_ENVIRONMENT) $(environment) ../$(src_dir_name)/configure \
+	  --prefix=/usr               \
+	  --build=$(BUILD)            \
+	  --host=$(TARGET)            \
+	  $(extra_configure_switches)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(environment) $(MAKE)
+	@touch $@
+
+$(install_target): $(build_target)
+	@mkdir -p $(PATCHELF_PKG)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(environment) $(MAKE) install $(env_sysroot)
+	# ======= Install Documentation =======
+	@if [ -d $(PATCHELF_PKG)/usr/share/man ]; then \
+	  ( cd $(PATCHELF_PKG)/usr/share/man ; \
+	    for manpagedir in `find . -type d -name "man*"` ; do \
+	      ( cd $$manpagedir ; \
+	        for eachpage in `find . -type l -maxdepth 1` ; do \
+	          ln -s `readlink $$eachpage`.gz $$eachpage.gz ; \
+	          rm $$eachpage ; \
+	        done ; \
+	        gzip -9 *.* ; \
+	      ) \
+	    done \
+	  ) \
+	 fi
+	@mkdir -p $(PATCHELF_PKG)/usr/doc/$(src_dir_name)
+	@cp -a $(SRC_DIR)/COPYING \
+	       $(PATCHELF_PKG)/usr/doc/$(src_dir_name)
+	@mkdir -p $(PATCHELF_PKG)/usr/share/doc/$(src_dir_name)
+	@( cd $(SRC_DIR) ; \
+	   cp -a COPYING BUGS README.md \
+	         $(PATCHELF_PKG)/usr/share/doc/$(src_dir_name) \
+	 )
+	@( cd $(SRC_DIR) ; \
+	   if [ -r ChangeLog -a -s ChangeLog ]; then \
+	     DOCSDIR=`echo $(PATCHELF_PKG)/usr/share/doc/$(src_dir_name)` ; \
+	     cat ChangeLog | head -n 1000 > $$DOCSDIR/ChangeLog ; \
+	     touch -r ChangeLog $$DOCSDIR/ChangeLog ; \
+	   fi \
+	 )
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(PATCHELF_PKG))
+	# ======= Strip binaries =======
+	@( cd $(PATCHELF_PKG) ; \
+	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
+	 )
+	@touch $@
+
+$(PATCHELF_PKG_DESCRIPTION_FILE): $(PATCHELF_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(install_target) $(PATCHELF_PKG_DESCRIPTION_FILE) $(PATCHELF_PKG_INSTALL_SCRIPT)
+	@cp $(PATCHELF_PKG_DESCRIPTION_FILE) $(PATCHELF_PKG)/.DESCRIPTION
+	@cp $(PATCHELF_PKG_INSTALL_SCRIPT) $(PATCHELF_PKG)/.INSTALL
+	@$(BUILD_PKG_REQUIRES) $(PATCHELF_PKG)/.REQUIRES
+	@echo "pkgname=$(PATCHELF_PKG_NAME)"                            >  $(PATCHELF_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(PATCHELF_PKG_VERSION)"                          >> $(PATCHELF_PKG)/.PKGINFO ; \
+	 echo "arch=$(PATCHELF_PKG_ARCH)"                               >> $(PATCHELF_PKG)/.PKGINFO ; \
+	 echo "distroname=$(PATCHELF_PKG_DISTRO_NAME)"                  >> $(PATCHELF_PKG)/.PKGINFO ; \
+	 echo "distrover=$(PATCHELF_PKG_DISTRO_VERSION)"                >> $(PATCHELF_PKG)/.PKGINFO ; \
+	 echo "group=$(PATCHELF_PKG_GROUP)"                             >> $(PATCHELF_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(PATCHELF_PKG_SHORT_DESCRIPTION)\"" >> $(PATCHELF_PKG)/.PKGINFO ; \
+	 echo "url=$(PATCHELF_PKG_URL)"                                 >> $(PATCHELF_PKG)/.PKGINFO ; \
+	 echo "license=$(PATCHELF_PKG_LICENSE)"                         >> $(PATCHELF_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(PATCHELF_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: radix-1.9/app/patchelf/0.18.0/PATCHES
===================================================================
Index: radix-1.9/app/patchelf/0.18.0/patchelf-pkg-description.in
===================================================================
--- radix-1.9/app/patchelf/0.18.0/patchelf-pkg-description.in	(nonexistent)
+++ radix-1.9/app/patchelf/0.18.0/patchelf-pkg-description.in	(revision 19)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+        |-----handy-ruler------------------------------------------------------|
+patchelf: patchelf @VERSION@ (tool to modify ELF binaries)
+patchelf:
+patchelf: PatchELF is a utility for modifying an existing ELF executable or
+patchelf: library. It can change the dynamic loader ("ELF interpreter") of an
+patchelf: executable, modify the RPATH, and add/change/remove declared
+patchelf: dependencies on dynamic libraries. PatchELF was written by
+patchelf: Eelco Dolstra.
+patchelf:
+patchelf: Homepage: https://nixos.org/patchelf.html
+patchelf:
+patchelf:
Index: radix-1.9/app/patchelf/0.18.0/patchelf-pkg-install.sh
===================================================================
--- radix-1.9/app/patchelf/0.18.0/patchelf-pkg-install.sh	(nonexistent)
+++ radix-1.9/app/patchelf/0.18.0/patchelf-pkg-install.sh	(revision 19)
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Preserve new files
+install_file() {
+  NEW="$1"
+  OLD="`dirname $NEW`/`basename $NEW .new`"
+  # If there's no file by that name, mv it over:
+  if [ ! -r $OLD ]; then
+    mv $NEW $OLD
+  elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+    rm $NEW
+  fi
+  # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: radix-1.9/app/patchelf/0.18.0/patchelf-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: radix-1.9/app/patchelf/0.18.0
===================================================================
--- radix-1.9/app/patchelf/0.18.0	(nonexistent)
+++ radix-1.9/app/patchelf/0.18.0	(revision 19)

Property changes on: radix-1.9/app/patchelf/0.18.0
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: radix-1.9/products/base/Makefile
===================================================================
--- radix-1.9/products/base/Makefile	(revision 18)
+++ radix-1.9/products/base/Makefile	(revision 19)
@@ -606,6 +606,8 @@
 REQUIRES += app/gptfdisk/1.0.7
 
 REQUIRES += app/efibootmgr/18
+REQUIRES += app/fakeroot/1.31
+REQUIRES += app/patchelf/0.18.0
 
 REQUIRES += app/file/5.39
 ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC)),)
Index: radix-1.9/sources/packages/a/fakeroot/Makefile
===================================================================
--- radix-1.9/sources/packages/a/fakeroot/Makefile	(nonexistent)
+++ radix-1.9/sources/packages/a/fakeroot/Makefile	(revision 19)
@@ -0,0 +1,56 @@
+
+COMPONENT_TARGETS = $(HARDWARE_NOARCH)
+
+
+include ../../../../build-system/constants.mk
+
+
+url         = $(DOWNLOAD_SERVER)/sources/packages/a/fakeroot
+
+versions    = 1.31
+pkgname     = fakeroot
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+patches     = $(CURDIR)/patches/fakeroot-1.31-host-os.patch
+
+.NOTPARALLEL: $(patches)
+
+
+BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
+
+
+include ../../../../build-system/core.mk
+
+
+.PHONY: download_clean
+
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======" ; \
+	 for tarball in $(tarballs) ; do \
+	   echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
+	 done ; wait
+
+$(sha1s): $(tarballs)
+	@for sha in $@ ; do \
+	   echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
+	   echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
+	   touch $$sha ; \
+	   echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
+	   sha1sum --check $$sha ; ret="$$?" ; \
+	   if [ "$$ret" == "1" ]; then \
+	     echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
+	     exit 1 ; \
+	   fi ; \
+	 done
+
+$(patches): $(sha1s)
+	@echo -e "\n======= Create Patches =======\n" ; \
+	 ( cd create-1.31-host-os-patch ; ./create.patch.sh ) ; \
+	 echo -e "\n"
+
+download_clean:
+	@rm -f $(tarballs) $(sha1s) $(patches)
Index: radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/create.patch.sh
===================================================================
--- radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/create.patch.sh	(nonexistent)
+++ radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/create.patch.sh	(revision 19)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+VERSION=1.31
+
+tar --files-from=file.list -xJvf ../fakeroot-$VERSION.tar.xz
+mv fakeroot-$VERSION fakeroot-$VERSION-orig
+
+cp -rf ./fakeroot-$VERSION-new ./fakeroot-$VERSION
+
+diff --unified -Nr  fakeroot-$VERSION-orig  fakeroot-$VERSION > fakeroot-$VERSION-host-os.patch
+
+mv fakeroot-$VERSION-host-os.patch ../patches
+
+rm -rf ./fakeroot-$VERSION
+rm -rf ./fakeroot-$VERSION-orig

Property changes on: radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/fakeroot-1.31-new/configure.ac
===================================================================
--- radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/fakeroot-1.31-new/configure.ac	(nonexistent)
+++ radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/fakeroot-1.31-new/configure.ac	(revision 19)
@@ -0,0 +1,705 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT([fakeroot],[1.31],[clint@debian.org],[fakeroot])
+AC_PREREQ([2.71])
+AC_CONFIG_MACRO_DIR([build-aux])
+LT_PREREQ(2.1a)
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE
+AM_MAINTAINER_MODE
+AC_CONFIG_HEADERS([config.h])
+AC_PROG_CPP
+AC_PROG_MAKE_SET
+LT_INIT
+LT_LANG(C)
+
+AH_BOTTOM([#if ! HAVE_BUILTIN_EXPECT
+#define __builtin_expect(x, expected_value) (x)
+#endif])
+
+AC_ARG_WITH([ipc],
+	    AS_HELP_STRING([--with-ipc@<:@=IPCTYPE@:>@],
+			   [method of IPC to use: either sysv (default) or tcp]),
+	    [ac_cv_use_ipc=$withval],
+	    [ac_cv_use_ipc=sysv])
+
+AC_CACHE_CHECK([which IPC method to use],
+	       [ac_cv_use_ipc],
+	       [ac_cv_use_ipc=sysv])
+
+if test $ac_cv_use_ipc = "sysv"; then
+  AC_MSG_CHECKING([whether SysV IPC message queues are actually working on the host])
+
+  AC_LANG_PUSH(C)
+  AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+#include <time.h>
+#include <unistd.h>
+
+int main() {
+
+  srandom(time(NULL)+getpid()*33151);
+  key_t msg_key = random();
+  int msg_get = msgget(msg_key, IPC_CREAT|0600);
+
+  if (msg_get==-1) {
+    return 1;
+  } else {
+    msgctl(msg_get, IPC_RMID, NULL);
+    return 0;
+  }
+
+}]])],[ac_cv_use_ipc=sysv],[ac_cv_use_ipc=tcp],[ac_cv_use_ipc=cross])
+
+  if test $ac_cv_use_ipc = cross; then
+    approved=
+    case $host_os in
+      linux-gnu*)
+        approved=yes
+        ;;
+      *)
+        approved=no
+        ;;
+    esac
+    if test "$approved" = "yes"; then
+      ac_cv_use_ipc=sysv
+      AC_MSG_RESULT([cross, guessing yes])
+    else
+      (set -o posix; set)
+      AC_MSG_ERROR([cross compiling, unknown result for $host_os])
+    fi
+  elif test $ac_cv_use_ipc = "tcp"; then
+    AC_MSG_RESULT([No, using TCP])
+  else
+    AC_MSG_RESULT([Yes])
+  fi
+
+  AC_LANG_POP(C)
+fi
+
+AC_ARG_WITH([dbformat],
+	    AS_HELP_STRING([--with-dbformat@<:@=DBFORMAT@:>@],
+			   [database format to use: either inode (default) or path]),
+	    [ac_cv_dbformat=$withval],
+	    [ac_cv_dbformat=inode])
+
+AC_CACHE_CHECK([which database format to use],
+	       [ac_cv_dbformat],
+	       [ac_cv_dbformat=inode])
+
+AH_TEMPLATE([FAKEROOT_DB_PATH], [store path in the database instead of inode and device])
+if test $ac_cv_dbformat = "path"; then
+AC_DEFINE_UNQUOTED(FAKEROOT_DB_PATH, [1])
+fi
+
+dnl Checks for programs.
+
+dnl Checks for libraries.
+dnl Replace `main' with a function in -ldl:
+AC_CHECK_LIB(dl, dlopen)
+AH_TEMPLATE([FAKEROOT_FAKENET], [use TCP instead of SysV IPC])
+if test $ac_cv_use_ipc = "tcp"; then
+AC_DEFINE_UNQUOTED(FAKEROOT_FAKENET, [TCP])
+AC_CHECK_LIB(pthread, pthread_self)
+AC_CHECK_LIB(socket, connect)
+signal=HUP
+else
+signal=TERM
+fi
+
+AC_SUBST(signal)
+
+dnl Checks for header files.
+AC_HEADER_DIRENT
+AC_CHECK_HEADERS(fcntl.h unistd.h features.h sys/feature_tests.h pthread.h stdint.h inttypes.h grp.h endian.h sys/sysmacros.h sys/socket.h sys/acl.h sys/capability.h sys/xattr.h fts.h)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_CHECK_TYPE(mode_t, int)
+AC_CHECK_TYPE(off_t, long)
+AC_CHECK_TYPE(size_t, unsigned)
+
+AH_TEMPLATE([FAKEROOT_ATTR], [for packed])
+if test -n "$GCC";
+then
+AC_DEFINE_UNQUOTED(FAKEROOT_ATTR(x), [__attribute__ ((x))])
+else
+AC_DEFINE_UNQUOTED(FAKEROOT_ATTR(x), [])
+fi
+
+dnl The parameters to the wrapped functions have to match
+dnl those in the system header files. I don't know how to
+dnl really get the names of the paramters, but this seems to work.
+AC_MSG_CHECKING([for return value and second and third argument of readlink])
+readlink_buf_arg=unknown
+readlink_bufsize_arg=unknown
+for zeroth in ssize_t int; do
+  for second in void char; do
+    for third in size_t int; do
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>
+#include <stdio.h>
+        $zeroth readlink(const char *path, $second *buf, $third bufsiz);]], [[puts("hello, world");]])],
+	[readlink_retval=$zeroth
+	 readlink_buf_arg=$second
+	 readlink_bufsize_arg=$third
+        ],[])
+    done
+  done
+done
+AC_MSG_RESULT([$readlink_retval, $readlink_buf_arg, $readlink_bufsize_arg])
+AH_TEMPLATE([READLINK_RETVAL_TYPE], [type of readlink return value])
+AH_TEMPLATE([READLINK_BUF_TYPE], [type of readlink buf])
+AH_TEMPLATE([READLINK_BUFSIZE_TYPE], [type of readlink bufsize])
+AC_DEFINE_UNQUOTED(READLINK_RETVAL_TYPE, $readlink_retval)
+AC_DEFINE_UNQUOTED(READLINK_BUF_TYPE, $readlink_buf_arg)
+AC_DEFINE_UNQUOTED(READLINK_BUFSIZE_TYPE, $readlink_bufsize_arg)
+
+AC_MSG_CHECKING([for first argument of setgroups])
+setgroups_size_arg=unknown
+for first in size_t int; do
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _BSD_SOURCE
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#include <unistd.h>
+#include <stdio.h>
+#ifdef HAVE_GRP_H
+#include <grp.h>
+#endif
+  int setgroups($first size, const gid_t *list);]], [[puts("hello, world");]])],[setgroups_size_arg=$first],[])
+done
+AC_MSG_RESULT([$setgroups_size_arg])
+AH_TEMPLATE([SETGROUPS_SIZE_TYPE], [type of setgroups size])
+AC_DEFINE_UNQUOTED(SETGROUPS_SIZE_TYPE, $setgroups_size_arg)
+
+
+AH_TEMPLATE([HAVE_SEMUN_DEF], [have the semun union])
+AC_MSG_CHECKING([for union semun])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       # include <sys/types.h>
+       # include <sys/ipc.h>
+       # include <sys/sem.h>
+  ]], [[
+       union semun s;
+  ]])],[AC_DEFINE(HAVE_SEMUN_DEF)
+   AC_MSG_RESULT([yes])
+  ],[ AC_MSG_RESULT([no])
+  ])
+
+AH_TEMPLATE([XMKNOD_FRTH_ARG], [fourth argument of __xmknod])
+dnl glibc uses `* dev' as fourth argument of __xmknod.
+dnl Although the test below should probably be more general
+dnl (not just __xmknod, but also mknod etc), at the moment this
+dnl seems enough, as probably glibc is the only that does this.
+AC_MSG_CHECKING([for type of arg of __xmknod])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <sys/stat.h>
+       #include <fcntl.h>
+       #include <unistd.h>
+  ]], [[
+#ifndef __GLIBC__
+#error no extra *
+#endif
+       int __xmknod  ( int ver,
+                       const char *pathname ,
+                       mode_t  mode ,  dev_t *dev);
+  ]])],[
+   AC_DEFINE(XMKNOD_FRTH_ARG,[*])
+   AC_MSG_RESULT([needs *])
+  ],[
+   AC_DEFINE(XMKNOD_FRTH_ARG,)
+   AC_MSG_RESULT([no extra *])
+
+  ])
+
+dnl Possibly this should only be done if we actually have mknodat
+dnl on the system.  Nothing  breaks by running the test itself though.
+AH_TEMPLATE([XMKNODAT_FIFTH_ARG], [fifth argument of __xmknodat])
+dnl glibc uses `* dev' as fifth argument of __xmknodat.
+dnl Although the test below should probably be more general
+dnl (not just __xmknodat, but also mknod etc), at the moment this
+dnl seems enough, as probably glibc is the only that does this.
+AC_MSG_CHECKING([for type of arg of __xmknodat])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <sys/stat.h>
+       #include <fcntl.h>
+       #include <unistd.h>
+  ]], [[
+#ifndef __GLIBC__
+#error no extra *
+#endif
+       int __xmknodat  ( int ver,
+                         int dirfd,
+                         const char *pathname ,
+                         mode_t  mode ,  dev_t *dev);
+  ]])],[
+   AC_DEFINE(XMKNODAT_FIFTH_ARG,[*])
+   AC_MSG_RESULT([needs *])
+  ],[
+   AC_DEFINE(XMKNODAT_FIFTH_ARG,)
+   AC_MSG_RESULT([no extra *])
+
+  ])
+
+AH_TEMPLATE([INITGROUPS_SECOND_ARG], [second argument of initgroups])
+dnl FreeBSD 4.7 uses int instead of gid_t
+AC_MSG_CHECKING([for type of arg of initgroups])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int initgroups ( const char *user, gid_t group );
+  ]])],[
+   AC_DEFINE(INITGROUPS_SECOND_ARG, gid_t)
+   AC_MSG_RESULT([gid_t])
+  ],[
+   AC_DEFINE(INITGROUPS_SECOND_ARG, int)
+   AC_MSG_RESULT([not gid_t; will assume int])
+  ])
+
+AH_TEMPLATE([SETREUID_ARG], [argument of setreuid])
+dnl OpenBSD 2.8 uses int instead of uid_t
+AC_MSG_CHECKING([for type of arg of setreuid])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int setreuid ( uid_t ruid, uid_t euid );
+  ]])],[
+   AC_DEFINE(SETREUID_ARG, gid_t)
+   AC_MSG_RESULT([gid_t])
+  ],[
+   AC_DEFINE(SETREUID_ARG, int)
+   AC_MSG_RESULT([not uid_t; will assume int])
+  ])
+
+AH_TEMPLATE([SETREGID_ARG], [argument of setregid])
+dnl OpenBSD 2.8 uses int instead of gid_t
+AC_MSG_CHECKING([for type of arg of setregid])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int setreuid ( gid_t rgid, gid_t egid );
+  ]])],[
+   AC_DEFINE(SETREGID_ARG, gid_t)
+   AC_MSG_RESULT([gid_t])
+  ],[
+   AC_DEFINE(SETREGID_ARG, int)
+   AC_MSG_RESULT([not gid_t; will assume int])
+  ])
+
+AH_TEMPLATE([STAT_SECOND_ARG], [second argument of stat])
+dnl Tru64 or something uses stat * instead of struct stat *
+AC_MSG_CHECKING([for type of second arg to stat])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/stat.h>
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int stat ( const char *file_name, struct stat *buf);
+  ]])],[
+   AC_DEFINE(STAT_SECOND_ARG, struct stat *)
+   AC_MSG_RESULT([struct stat *])
+  ],[
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/stat.h>
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int stat ( const char *file_name, stat *buf);
+  ]])],[
+   AC_DEFINE(STAT_SECOND_ARG, stat *)
+   AC_MSG_RESULT([stat *])
+  ],[
+  AC_MSG_ERROR(cannot determine second stat argument)
+  ])
+])
+
+for field in d_off d_type; do
+AC_MSG_CHECKING([for ${field} in struct dirent])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <dirent.h>
+  ]], [[
+
+       struct dirent d;
+       d.${field}=0
+  ]])],[AC_DEFINE_UNQUOTED(STAT_HAS_${field},1)
+   AC_MSG_RESULT([yes])
+  ],[ AC_MSG_RESULT([no])
+  ])
+done
+
+AH_TEMPLATE([HAVE_ACL_T], [acl_t data type and associated functions are provided by OS])
+AC_MSG_CHECKING([for acl_t struct])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <sys/acl.h>
+  ]], [[
+       acl_t t;
+  ]])],[AC_DEFINE_UNQUOTED(HAVE_ACL_T,1)
+   AC_MSG_RESULT([yes])
+  ],[ AC_MSG_RESULT([no])
+  ])
+
+AC_CHECK_FUNCS(fchmodat fchownat fstatat mkdirat mknodat openat renameat unlinkat lchmod fgetattrlist fchown32)
+
+save_LIBS="$LIBS"
+# Linux
+AC_SEARCH_LIBS(acl_get_fd, acl)
+AC_CHECK_FUNCS(acl_get_fd)
+
+# Illumos
+AC_SEARCH_LIBS(acl_trivial, sec)
+AC_CHECK_FUNCS(acl_trivial)
+LIBS="$save_LIBS"
+
+AC_CHECK_FUNCS(capset listxattr llistxattr flistxattr getxattr lgetxattr fgetxattr setxattr lsetxattr fsetxattr removexattr lremovexattr fremovexattr)
+
+AC_CHECK_FUNCS(statx)
+
+dnl find out how stat() etc are called. On linux systems, we really
+dnl need to wrap (IIRC):
+dnl  Linux       : __xstat
+dnl  Solaris <=9 : _stat
+dnl  Solaris 10  : _xstat
+dnl  Digital Unix: stat
+
+time64_hack=no
+AH_TEMPLATE([TIME64_HACK], [time64 shuffle])
+AC_MSG_CHECKING([if we need to cope with time64])
+AC_EGREP_CPP([time64],[
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+#define __USE_TIME_BITS64 1
+#include <sys/stat.h>
+stat
+#else
+NO
+#endif
+],
+       [AC_MSG_RESULT([yes]); AC_DEFINE(TIME64_HACK)
+time64_hack=yes
+],
+       [AC_MSG_RESULT([no]);])
+
+:>fakerootconfig.h.tmp
+
+for SEARCH in %stat f%stat l%stat f%statat %stat64 f%stat64 l%stat64 f%statat64 %mknod %mknodat; do
+  FUNC=`echo $SEARCH|sed -e 's/.*%//'`
+  PRE=`echo $SEARCH|sed -e 's/%.*//'`
+  FOUND=
+  for WRAPPED in __${PRE}x${FUNC} _${PRE}x${FUNC} __${PRE}${FUNC}13 ${PRE}${FUNC} __${PRE}${FUNC}; do
+    AC_CHECK_FUNCS($WRAPPED,FOUND=$WRAPPED)
+dnl
+dnl to unconditionally define only the _* functions, comment out the 2 lines above,
+dnl and uncomment the 2 lines below.
+dnl
+dnl  for WRAPPED in _${PRE}${FUNC}; do
+dnl    FOUND=$WRAPPED
+    if test -n "$FOUND"; then
+      PF=[`echo ${PRE}${FUNC}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_WRAP=[`echo wrap_${PRE}${FUNC}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_NEXT=[`echo wrap_${FOUND}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_ARG=[`echo wrap_${FOUND}| tr '[a-z]' '[A-Z]'`]
+      AC_DEFINE_UNQUOTED(WRAP_${PF}, $FOUND)
+      AC_DEFINE_UNQUOTED(WRAP_${PF}_RAW, $FOUND)
+      AC_DEFINE_UNQUOTED(WRAP_${PF}_QUOTE, "$FOUND")
+      AC_DEFINE_UNQUOTED(TMP_${PF}, tmp_$FOUND)
+      AC_DEFINE_UNQUOTED(NEXT_${PF}_NOARG, next_$FOUND)
+      if test __"${PRE}x${FUNC}" != "${WRAPPED}" && test _"${PRE}x${FUNC}" != "${WRAPPED}" ; then
+        DEF_BEGIN=""
+      else
+        DEF_BEGIN="a,"
+      fi
+      if test "${FUNC}" = "mknod"; then
+        DEF_END=",d"
+      elif test "${FUNC}" = "mknodat"; then
+        DEF_END=",d,e"
+      elif test "${FUNC}" = "statat"; then
+        DEF_END=",d,e"
+      elif test "${FUNC}" = "statat64"; then
+        DEF_END=",d,e"
+      else
+        DEF_END=""
+      fi
+      dnl no matter what I do, the resulting define looks like
+      dnl #define macro (a,b,c) (a,b,c)
+      dnl with a space in between "macro" and "(". To prevent this,
+      dnl I leave the space here, and remove it later with sed
+      dnl at (end of configure.in)
+      dnl AC_DEFINE_UNQUOTED(NEXT_${PF}(a,b,c${DEF_END}),
+      dnl		     next_$FOUND(${DEF_BEGIN}b,c${DEF_END}))
+      dnl AC_DEFINE_UNQUOTED(${PF}[_ARG(a,b,c${DEF_END})],
+      dnl		     (${DEF_BEGIN}b,c${DEF_END}))
+
+      dnl Anyway the trickery above also leads to automake problems
+      dnl (tries to remake config.h.in, but fails). So, as a way
+      dnl out, Yann DIRSON wrote this:
+      {
+       echo "#define NEXT_${PF}(a,b,c${DEF_END}) next_$FOUND(${DEF_BEGIN}b,c${DEF_END})"
+       echo "#define ${PF}_ARG(a,b,c${DEF_END}) (${DEF_BEGIN}b,c${DEF_END})"
+      } >>fakerootconfig.h.tmp
+
+      break
+    fi
+  done
+done
+
+if test "x$time64_hack" = "xyes"; then
+for SEARCH in stat64_time64 fstat64_time64 lstat64_time64 fstatat64_time64; do
+  FOUND=
+  for WRAPPED in __${SEARCH} ${SEARCH}; do
+    AC_CHECK_FUNCS($WRAPPED,FOUND=$WRAPPED)
+    if test -n "$FOUND"; then
+      PF=[`echo ${SEARCH}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_WRAP=[`echo wrap_${SEARCH}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_NEXT=[`echo wrap_${FOUND}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_ARG=[`echo wrap_${FOUND}| tr '[a-z]' '[A-Z]'`]
+      AC_DEFINE_UNQUOTED(WRAP_${PF}, $FOUND)
+      AC_DEFINE_UNQUOTED(WRAP_${PF}_RAW, $FOUND)
+      AC_DEFINE_UNQUOTED(WRAP_${PF}_QUOTE, "$FOUND")
+      AC_DEFINE_UNQUOTED(TMP_${PF}, tmp_$FOUND)
+      AC_DEFINE_UNQUOTED(NEXT_${PF}_NOARG, next_$FOUND)
+      DEF_BEGIN=""
+      case "$SEARCH" in
+	     (*statat64_time64)
+	     DEF_END=",d,e"
+	     ;;
+	     (*)
+	     DEF_END=""
+	     ;;
+      esac
+      {
+       echo "#define NEXT_${PF}(a,b,c${DEF_END}) next_$FOUND(${DEF_BEGIN}b,c${DEF_END})"
+       echo "#define ${PF}_ARG(a,b,c${DEF_END}) (${DEF_BEGIN}b,c${DEF_END})"
+      } >>fakerootconfig.h.tmp
+
+      break
+    fi
+  done
+done
+fi
+
+if test -r fakerootconfig.h
+then
+       if test "`diff fakerootconfig.h fakerootconfig.h.tmp`" = ""
+       then
+               AC_MSG_RESULT([fakerootconfig.h not changed])
+               rm fakerootconfig.h.tmp
+       else
+               AC_MSG_RESULT([recreated fakerootconfig.h])
+               rm fakerootconfig.h ; mv fakerootconfig.h.tmp fakerootconfig.h
+       fi
+else
+       AC_MSG_RESULT([created fakerootconfig.h])
+       mv fakerootconfig.h.tmp fakerootconfig.h
+fi
+
+dnl This should really be done intelligently.
+DLSUFFIX=".so"
+LDLIBPATHVAR="LD_LIBRARY_PATH"
+LDPRELOADVAR="LD_PRELOAD"
+LDPRELOADABS=0
+LDEXTRAVAR=""
+case $target_cpu:$target_os in
+	(alpha*:linux*|ia64*:linux*)
+		libcpath="/lib/libc.so.6.1"
+		;;
+	(*:linux*)
+	        libcpath="/lib/libc.so.6"
+		;;
+	(*:k*bsd*-gnu)
+	        libcpath="/lib/libc.so.0.1"
+		;;
+	(*:freebsd*)
+		libcpath="/usr/lib/libc.so.4"
+		;;
+	(*:netbsd*)
+		libcpath="/usr/lib/libc.so.12"
+		;;
+	(*:openbsd*|*:mirbsd*)
+		libcpath=$(/bin/ls -1 /usr/lib/libc.so.* | \
+		    sort -nt. -k3 | tail -1)
+		;;
+	(*:midnightbsd*)
+		libcpath=$(/bin/ls -1 /lib/libc.so.* | \
+		    sort -nt. -k3 | tail -1)
+		;;
+	(*:hpux*)
+		libcpath="/usr/lib/hpux32/libc.so.1"
+		;;
+	(*:osf*)
+		libcpath="/shlib/libc.so"
+		;;
+	(*:solaris*)
+		libcpath="/lib/libc.so.1"
+		;;
+	(*:darwin*)
+		libcpath="/usr/lib/libSystem.dylib"
+		DLSUFFIX=".dylib"
+		LDLIBPATHVAR="DYLD_LIBRARY_PATH"
+		LDPRELOADVAR="DYLD_INSERT_LIBRARIES"
+		LDPRELOADABS=1
+		;;
+	(*)
+		AC_MSG_WARN([don't know where libc is for $target_os on
+			     $target_cpu, setting to /lib/libc.so])
+		libcpath="/lib/libc.so"
+		;;
+esac
+
+AC_DEFINE_UNQUOTED([LIBCPATH], "$libcpath", [path to libc shared object])
+AC_SUBST(DLSUFFIX)
+AC_SUBST(LDLIBPATHVAR)
+AC_SUBST(LDPRELOADVAR)
+AC_SUBST(LDPRELOADABS)
+AC_SUBST(LDEXTRAVAR)
+
+dnl Checks for library functions.
+AC_CHECK_FUNCS(strdup strstr getresuid setresuid getresgid setresgid setfsuid setfsgid fts_read fts_children)
+
+AC_CHECK_DECLS([setenv, unsetenv])
+AC_REPLACE_FUNCS([setenv])
+
+dnl Checks for __builtin_expect
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]],
+     [[]])],[AC_DEFINE([HAVE_BUILTIN_EXPECT], 1,
+     [Define to 1 if the compiler understands __builtin_expect.])],[])
+
+dnl kludge
+AH_VERBATIM([WRAP_STAT],
+[/* Stuff.  */
+#define WRAP_STAT  __astat
+#define WRAP_STAT_QUOTE  __astat
+#define WRAP_STAT_RAW  __astat
+#define TMP_STAT  __astat
+#define NEXT_STAT_NOARG  next___astat
+
+#define WRAP_LSTAT_QUOTE  __astat
+#define WRAP_LSTAT  __astat
+#define WRAP_LSTAT_RAW  __astat
+#define TMP_LSTAT  __astat
+#define NEXT_LSTAT_NOARG  next___astat
+
+#define WRAP_FSTAT_QUOTE  __astat
+#define WRAP_FSTAT  __astat
+#define WRAP_FSTAT_RAW  __astat
+#define TMP_FSTAT  __astat
+#define NEXT_FSTAT_NOARG  next___astat
+
+#define WRAP_FSTATAT_QUOTE  __astatat
+#define WRAP_FSTATAT  __astatat
+#define WRAP_FSTATAT_RAW  __astatat
+#define TMP_FSTATAT  __astatat
+#define NEXT_FSTATAT_NOARG  next___astatat
+
+#define WRAP_STAT64_QUOTE  __astat64
+#define WRAP_STAT64  __astat64
+#define WRAP_STAT64_RAW  __astat64
+#define TMP_STAT64  __astat64
+#define NEXT_STAT64_NOARG  next___astat64
+
+#define WRAP_LSTAT64_QUOTE  __astat64
+#define WRAP_LSTAT64  __astat64
+#define WRAP_LSTAT64_RAW  __astat64
+#define TMP_LSTAT64  __astat64
+#define NEXT_LSTAT64_NOARG  next___astat64
+
+#define WRAP_FSTAT64_QUOTE  __astat64
+#define WRAP_FSTAT64  __astat64
+#define WRAP_FSTAT64_RAW  __astat64
+#define TMP_FSTAT64  __astat64
+#define NEXT_FSTAT64_NOARG  next___astat64
+
+#define WRAP_FSTATAT64_QUOTE  __astatat64
+#define WRAP_FSTATAT64  __astatat64
+#define WRAP_FSTATAT64_RAW  __astatat64
+#define TMP_FSTATAT64  __astatat64
+#define NEXT_FSTATAT64_NOARG  next___astatat64
+
+#define WRAP_MKNOD_QUOTE  __amknod
+#define WRAP_MKNOD  __amknod
+#define WRAP_MKNOD_RAW  __amknod
+#define TMP_MKNOD  __amknod
+#define NEXT_MKNOD_NOARG  next___amknod
+
+#define WRAP_MKNODAT_QUOTE  __amknodat
+#define WRAP_MKNODAT  __amknodat
+#define WRAP_MKNODAT_RAW  __amknodat
+#define TMP_MKNODAT  __amknodat
+#define NEXT_MKNODAT_NOARG  next___amknodat
+
+#define WRAP_STAT64_TIME64_QUOTE  __astat64_time64
+#define WRAP_STAT64_TIME64  __astat64_time64
+#define WRAP_STAT64_TIME64_RAW  __astat64_time64
+#define TMP_STAT64_TIME64  __astat64_time64
+#define NEXT_STAT64_TIME64_NOARG  next___astat64_time64
+
+#define WRAP_LSTAT64_TIME64_QUOTE  __astat64_time64
+#define WRAP_LSTAT64_TIME64  __astat64_time64
+#define WRAP_LSTAT64_TIME64_RAW  __astat64_time64
+#define TMP_LSTAT64_TIME64  __astat64_time64
+#define NEXT_LSTAT64_TIME64_NOARG  next___astat64_time64
+
+#define WRAP_FSTAT64_TIME64_QUOTE  __astat64_time64
+#define WRAP_FSTAT64_TIME64  __astat64_time64
+#define WRAP_FSTAT64_TIME64_RAW  __astat64_time64
+#define TMP_FSTAT64_TIME64  __astat64_time64
+#define NEXT_FSTAT64_TIME64_NOARG  next___astat64_time64
+
+#define WRAP_FSTATAT64_TIME64_QUOTE  __astatat64_time64
+#define WRAP_FSTATAT64_TIME64  __astat64_time64
+#define WRAP_FSTATAT64_TIME64_RAW  __astat64_time64
+#define TMP_FSTATAT64_TIME64  __astat64_time64
+#define NEXT_FSTATAT64_TIME64_NOARG  next___astat64_time64
+
+])
+dnl kludge end
+
+case "$target_cpu:$target_os" in
+	(alpha*:linux*)
+	AH_TEMPLATE([STUPID_ALPHA_HACK], [stat-struct conversion hackery])
+	AC_MSG_CHECKING([if we need to do stat-struct conversion hackery])
+	AC_EGREP_CPP([3:3],[
+#include <sys/stat.h>
+_STAT_VER:_STAT_VER_GLIBC2_3_4
+],
+       [AC_MSG_RESULT([yes]); AC_DEFINE(STUPID_ALPHA_HACK)
+CPPFLAGS="$CPPFLAGS -I\$(srcdir)/statconv/glibc/linux/alpha"
+],
+       [AC_MSG_RESULT([no]);])
+        ;;
+esac
+
+dnl AH_TEMPLATE([MACOSX], [is __APPLE__ defined by the compiler])
+AC_MSG_CHECKING([for macOS/Darwin])
+  AC_PREPROC_IFELSE(
+    [AC_LANG_PROGRAM([[
+       #ifndef __APPLE__
+       #error Not Apple
+       #endif
+  ]])],
+    [macosx=true
+     AC_MSG_RESULT([yes])],
+    [AC_MSG_RESULT([no])
+     macosx=false]
+  )
+AM_CONDITIONAL([MACOSX], [test x$macosx = xtrue])
+
+AC_CONFIG_FILES([
+   Makefile
+   scripts/Makefile
+   doc/Makefile
+   doc/de/Makefile doc/es/Makefile doc/fr/Makefile doc/nl/Makefile doc/pt/Makefile doc/sv/Makefile
+   test/Makefile test/defs])
+AC_OUTPUT
+
+dnl Local variables:
+dnl mode: m4
+dnl End:
Index: radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/file.list
===================================================================
--- radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/file.list	(nonexistent)
+++ radix-1.9/sources/packages/a/fakeroot/create-1.31-host-os-patch/file.list	(revision 19)
@@ -0,0 +1 @@
+fakeroot-1.31/configure.ac
Index: radix-1.9/sources/packages/a/fakeroot/patches/README
===================================================================
--- radix-1.9/sources/packages/a/fakeroot/patches/README	(nonexistent)
+++ radix-1.9/sources/packages/a/fakeroot/patches/README	(revision 19)
@@ -0,0 +1,6 @@
+
+/* begin *
+
+   TODO: Leave some comment here.
+
+ * end */
Index: radix-1.9/sources/packages/a/fakeroot/patches
===================================================================
--- radix-1.9/sources/packages/a/fakeroot/patches	(nonexistent)
+++ radix-1.9/sources/packages/a/fakeroot/patches	(revision 19)

Property changes on: radix-1.9/sources/packages/a/fakeroot/patches
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: radix-1.9/sources/packages/a/fakeroot
===================================================================
--- radix-1.9/sources/packages/a/fakeroot	(nonexistent)
+++ radix-1.9/sources/packages/a/fakeroot	(revision 19)

Property changes on: radix-1.9/sources/packages/a/fakeroot
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: radix-1.9/sources/packages/a/patchelf/Makefile
===================================================================
--- radix-1.9/sources/packages/a/patchelf/Makefile	(nonexistent)
+++ radix-1.9/sources/packages/a/patchelf/Makefile	(revision 19)
@@ -0,0 +1,48 @@
+
+COMPONENT_TARGETS = $(HARDWARE_NOARCH)
+
+
+include ../../../../build-system/constants.mk
+
+
+url         = $(DOWNLOAD_SERVER)/sources/packages/a/patchelf
+
+
+versions    = 0.18.0
+pkgname     = patchelf
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+
+BUILD_TARGETS = $(tarballs) $(sha1s)
+
+
+include ../../../../build-system/core.mk
+
+
+.PHONY: download_clean
+
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======\n" ; \
+	 for tarball in $(tarballs) ; do \
+	   echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
+	 done ; wait
+
+$(sha1s): $(tarballs)
+	@for sha in $@ ; do \
+	   echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
+	   echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
+	   touch $$sha ; \
+	   echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
+	   sha1sum --check $$sha ; ret="$$?" ; \
+	   if [ "$$ret" == "1" ]; then \
+	     echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
+	     exit 1 ; \
+	   fi ; \
+	 done
+
+download_clean:
+	@rm -f $(tarballs) $(sha1s)
Index: radix-1.9/sources/packages/a/patchelf
===================================================================
--- radix-1.9/sources/packages/a/patchelf	(nonexistent)
+++ radix-1.9/sources/packages/a/patchelf	(revision 19)

Property changes on: radix-1.9/sources/packages/a/patchelf
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~