diff options
Diffstat (limited to 'poky/meta/recipes-extended/tar')
-rw-r--r-- | poky/meta/recipes-extended/tar/tar.inc | 52 | ||||
-rw-r--r-- | poky/meta/recipes-extended/tar/tar/musl_dirent.patch | 19 | ||||
-rw-r--r-- | poky/meta/recipes-extended/tar/tar/remove-gets.patch | 29 | ||||
-rw-r--r-- | poky/meta/recipes-extended/tar/tar_1.30.bb | 18 |
4 files changed, 118 insertions, 0 deletions
diff --git a/poky/meta/recipes-extended/tar/tar.inc b/poky/meta/recipes-extended/tar/tar.inc new file mode 100644 index 000000000..93e4da114 --- /dev/null +++ b/poky/meta/recipes-extended/tar/tar.inc @@ -0,0 +1,52 @@ +SUMMARY = "GNU file archiving program" +DESCRIPTION = "GNU tar saves many files together into a single tape \ +or disk archive, and can restore individual files from the archive." +HOMEPAGE = "http://www.gnu.org/software/tar/" +SECTION = "base" + +SRC_URI = "${GNU_MIRROR}/tar/tar-${PV}.tar.bz2" + +inherit autotools gettext texinfo + +EXTRA_OECONF += "DEFAULT_RMT_DIR=${base_sbindir}" + +# Let aclocal use the relative path for the m4 file rather than the +# absolute since tar has a lot of m4 files, otherwise there might +# be an "Argument list too long" error when it is built in a long/deep +# directory. +acpaths = "-I ./m4" + +do_install () { + autotools_do_install + ln -s tar ${D}${bindir}/gtar +} + +do_install_append_class-target() { + if [ "${base_bindir}" != "${bindir}" ]; then + install -d ${D}${base_bindir} + mv ${D}${bindir}/tar ${D}${base_bindir}/tar + mv ${D}${bindir}/gtar ${D}${base_bindir}/gtar + rmdir ${D}${bindir}/ + fi +} + +PACKAGES =+ "${PN}-rmt" + +FILES_${PN}-rmt = "${base_sbindir}/rmt*" + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN} = "tar" +ALTERNATIVE_${PN}-rmt = "rmt" +ALTERNATIVE_${PN}_class-nativesdk = "" +ALTERNATIVE_${PN}-rmt_class-nativesdk = "" + +ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar" +ALTERNATIVE_LINK_NAME[rmt] = "${base_sbindir}/rmt" + +PROVIDES_append_class-native = " tar-replacement-native" +NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/tar/tar/musl_dirent.patch b/poky/meta/recipes-extended/tar/tar/musl_dirent.patch new file mode 100644 index 000000000..2d98ed131 --- /dev/null +++ b/poky/meta/recipes-extended/tar/tar/musl_dirent.patch @@ -0,0 +1,19 @@ +musl has valid d_ino implementation + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending + +Index: tar-1.28/m4/d-ino.m4 +=================================================================== +--- tar-1.28.orig/m4/d-ino.m4 ++++ tar-1.28/m4/d-ino.m4 +@@ -40,7 +40,8 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_ + [gl_cv_struct_dirent_d_ino=no], + [case "$host_os" in + # Guess yes on glibc systems with Linux kernel. +- linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;; ++ linux*-gnu*|linux*-musl*) ++ gl_cv_struct_dirent_d_ino="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_struct_dirent_d_ino="guessing no" ;; + # If we don't know, assume the worst. diff --git a/poky/meta/recipes-extended/tar/tar/remove-gets.patch b/poky/meta/recipes-extended/tar/tar/remove-gets.patch new file mode 100644 index 000000000..f24de926a --- /dev/null +++ b/poky/meta/recipes-extended/tar/tar/remove-gets.patch @@ -0,0 +1,29 @@ +ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + gnu/stdio.in.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gnu/stdio.in.h b/gnu/stdio.in.h +index ec43874..502e3ae 100644 +--- a/gnu/stdio.in.h ++++ b/gnu/stdio.in.h +@@ -722,10 +722,12 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " + /* It is very rare that the developer ever has full control of stdin, + so any use of gets warrants an unconditional warning; besides, C11 + removed it. */ ++#if defined gets + #undef gets + #if HAVE_RAW_DECL_GETS && !defined __cplusplus + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + #endif ++#endif + + #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ + struct obstack; +-- +2.8.3 + diff --git a/poky/meta/recipes-extended/tar/tar_1.30.bb b/poky/meta/recipes-extended/tar/tar_1.30.bb new file mode 100644 index 000000000..e743a6d0d --- /dev/null +++ b/poky/meta/recipes-extended/tar/tar_1.30.bb @@ -0,0 +1,18 @@ +require tar.inc + +PACKAGECONFIG ??= "" +PACKAGECONFIG[acl] = "--with-posix-acls, --without-posix-acls, acl," + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI += "file://remove-gets.patch \ + file://musl_dirent.patch \ + " +SRC_URI[md5sum] = "8404e4c1fc5a3000228ab2b8ad674a65" +SRC_URI[sha256sum] = "87592b86cb037c554375f5868bdd3cc57748aef38d6cb741c81065f0beac63b7" + +do_install_append_libc-musl() { + rm -f ${D}${libdir}/charset.alias + rmdir ${D}${libdir} +} |