sys-libs/libaal: Fix build against glibc-2.6
authorThomas Deutschmann <whissi@gentoo.org>
Mon, 27 Nov 2017 23:07:20 +0000 (00:07 +0100)
committerThomas Deutschmann <whissi@gentoo.org>
Mon, 27 Nov 2017 23:07:42 +0000 (00:07 +0100)
Closes: https://bugs.gentoo.org/637610
Package-Manager: Portage-2.3.16, Repoman-2.3.6

sys-libs/libaal/Manifest
sys-libs/libaal/files/libaal-1.0.6-glibc26.patch [new file with mode: 0644]
sys-libs/libaal/libaal-1.0.6.ebuild
sys-libs/libaal/libaal-1.0.7-r1.ebuild [new file with mode: 0644]

index 994f6fffe8d20fcb35ac8ecc6929bf63bd6a5efe..034f7e1aa3fa7e2e52e938aacf697c42b78505b9 100644 (file)
@@ -1,2 +1,2 @@
-DIST libaal-1.0.6.tar.gz 345894 SHA256 b1a1547746438b156156f82332557b05442e6d6c39fa9fe0d8dd47a3ad16ce9c SHA512 9b13096abcb90e75fff607ffd7b11ed8b100f349800b726acb01aca12f54abe784adb9912916fe8ed0751ebf367ecced04ab058e1e8b947f4209a5e6c390f123 WHIRLPOOL 7d93c3dc6eb62712a460f37bc933588c0b71d17472c64104a5cba939324af801ca0ba37063cd020caf8aa0d352a21b5222f838b427fbba0c03144b89d64e98c6
+DIST libaal-1.0.6.tar.gz 345894 BLAKE2B 726eb26d80ce5cb198a059e74ded76d7ce97aabd2bd38209194462be9c6ffd5aafbfff3a35fddcae8b6b1c88ad8a378a6328217aed490f156bbb806d4ec687b9 SHA512 9b13096abcb90e75fff607ffd7b11ed8b100f349800b726acb01aca12f54abe784adb9912916fe8ed0751ebf367ecced04ab058e1e8b947f4209a5e6c390f123
 DIST libaal-1.0.7.tar.gz 376068 BLAKE2B 2fb7802401721a64b17c0409f3ff668524399efc03b4bda4b4523af2cce204fdb5cf41bb2b2a6af5cbda34ee88cbb4703eec9bb76774d705b1759c91a33b1e34 SHA512 9b39a8cd3f49257ea912bb0e463c0c63ad06914e8a310deb4d4dce544d3ee34f492203c7321f971af71dddc1eb85f207082a4791b19bd4fad3f7dab516513b3d
diff --git a/sys-libs/libaal/files/libaal-1.0.6-glibc26.patch b/sys-libs/libaal/files/libaal-1.0.6-glibc26.patch
new file mode 100644 (file)
index 0000000..298d75a
--- /dev/null
@@ -0,0 +1,89 @@
+Stop redefining libc definitions that cause build failures under glibc-2.26.
+
+[   46s] In file included from /usr/include/sys/types.h:156:0,
+[   46s]  from /usr/include/stdlib.h:279,
+[   46s]  from malloc.c:15:
+[   46s] /usr/include/bits/stdint-intn.h:27:19: error: conflicting types for 
+'int64_t'
+[   46s]  typedef __int64_t int64_t;
+[   46s]^~~
+[   46s] In file included from ../include/aal/libaal.h:17:0,
+[   46s]  from malloc.c:6:
+[   46s] ../include/aal/types.h:35:33: note: previous declaration of 'int64_t' 
+was here
+[   46s]  typedef long long int   int64_t;
+
+Author: Jan Engelhardt
+
+---
+ include/aal/types.h |   48 ++----------------------------------------------
+ 1 file changed, 2 insertions(+), 46 deletions(-)
+
+Index: libaal-1.0.6/include/aal/types.h
+===================================================================
+--- libaal-1.0.6.orig/include/aal/types.h
++++ libaal-1.0.6/include/aal/types.h
+@@ -26,24 +26,7 @@
+ #undef ESTRUCT
+ #define ESTRUCT                 50
+-#ifndef __int8_t_defined
+-#define __int8_t_defined
+-typedef signed char             int8_t;
+-typedef short int               int16_t;
+-typedef int                     int32_t;
+-__extension__
+-typedef long long int           int64_t;
+-#endif
+- 
+-typedef unsigned char           uint8_t;
+-typedef unsigned short int      uint16_t;
+-#ifndef __uint32_t_defined
+-#define __uint32_t_defined
+-typedef unsigned int            uint32_t;
+-__extension__
+-typedef unsigned long long int  uint64_t;
+-#endif
+-
++#include <stdint.h>
+ #define MAX_UINT8  ((uint8_t)~0)
+ #define MAX_UINT16 ((uint16_t)~0)
+ #define MAX_UINT32 ((uint32_t)~0)
+@@ -53,36 +36,9 @@ typedef unsigned long long int  uint64_t
+    because we don't want use gcc builtins in minimal mode for achive as small
+    binary size as possible. */
+-#ifndef ENABLE_MINIMAL
+ #  include <stdarg.h>
+-#else
+-#ifndef _VA_LIST_
+-#define _VA_LIST_
+-typedef char *va_list;
+-#endif
+-#undef va_arg
+-#undef va_end
+-#undef va_start
+-
+-#define va_end(ap)       \
+-        do {} while(0);
+-
+-#define va_start(ap, p)  \
+-        (ap = (char *)(&(p)+1))
+-
+-#define va_arg(ap, type) \
+-        ((type *)(ap += sizeof(type)))[-1]
+-#endif
+-
+-/* As libaal may be used without any standard headers, we need to declare NULL
+-   macro here in order to avoid compilation errors. */
+-#undef NULL
+-#if defined(__cplusplus)
+-#  define NULL 0
+-#else
+-#  define NULL ((void *)0)
+-#endif
++#include <stdio.h>
+ /* Simple type for direction denoting */
+ enum aal_dir {
index 91f3ab182e1ec61208901dd71709f80b4e3ec68b..21061c06745e56fff8e6bc9067a582c3b851c0a4 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="4"
 
-inherit toolchain-funcs
+inherit toolchain-funcs eutils
 
 DESCRIPTION="library required by reiser4progs"
 HOMEPAGE="https://sourceforge.net/projects/reiser4/"
@@ -23,6 +23,7 @@ src_prepare() {
                -e "/^CFLAGS=/s:\"\":\"${CFLAGS}\":" \
                configure || die "sed"
        printf '#!/bin/sh\n:\n' > run-ldconfig
+       epatch "${FILESDIR}"/${PN}-1.0.6-glibc26.patch
 }
 
 src_configure() {
diff --git a/sys-libs/libaal/libaal-1.0.7-r1.ebuild b/sys-libs/libaal/libaal-1.0.7-r1.ebuild
new file mode 100644 (file)
index 0000000..bd15352
--- /dev/null
@@ -0,0 +1,42 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit toolchain-funcs
+
+DESCRIPTION="library required by reiser4progs"
+HOMEPAGE="https://sourceforge.net/projects/reiser4/"
+SRC_URI="mirror://sourceforge/reiser4/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/7"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 -sparc ~x86"
+IUSE="static-libs"
+
+DEPEND="virtual/os-headers"
+
+src_prepare() {
+       default
+
+       # remove stupid CFLAG hardcodes
+       sed -i \
+               -e "/GENERIC_CFLAGS/s:-O3::" \
+               -e "/^CFLAGS=/s:\"\":\"${CFLAGS}\":" \
+               configure || die
+       printf '#!/bin/sh\n:\n' > run-ldconfig || die
+}
+
+src_configure() {
+       local myeconfargs=(
+               --enable-libminimal
+               --enable-memory-manager
+               $(use_enable static-libs static)
+       )
+       econf "${myeconfargs[@]}"
+}
+
+src_install() {
+       default
+       gen_usr_ldscript -a aal{,-minimal}
+}