commit:     e26072b07efb4a0acaa0a322cb4c239a95b6ab22
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sun Apr 18 15:14:09 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Sun Apr 18 15:14:39 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e26072b0

sys-libs/safeclib: now it work

TODO: fix the manpage issue
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sys-libs/safeclib/files/gh96.patch                | 11 +++++
 sys-libs/safeclib/safeclib-3.6.0_p20210407.ebuild | 57 +++++++++++++----------
 2 files changed, 43 insertions(+), 25 deletions(-)

diff --git a/sys-libs/safeclib/files/gh96.patch 
b/sys-libs/safeclib/files/gh96.patch
new file mode 100644
index 000000000..83ac48f9c
--- /dev/null
+++ b/sys-libs/safeclib/files/gh96.patch
@@ -0,0 +1,11 @@
+--- a/src/safeclib_private.h
++++ b/src/safeclib_private.h
+@@ -52,6 +52,8 @@
+ /* Needed since the switch to time64_t */
+ #if defined CONFIG_COMPAT_32BIT_TIME && defined _LINUX_TIME64_H && defined 
__VDSO_TIME32_H
+ #define time_t old_time32_t
++#elif defined _LINUX_TIME64_H && !defined __VDSO_TIME32_H
++#define time_t time64_t
+ #endif
+ 
+ #define RCNEGATE(x) (-(x))

diff --git a/sys-libs/safeclib/safeclib-3.6.0_p20210407.ebuild 
b/sys-libs/safeclib/safeclib-3.6.0_p20210407.ebuild
index fd2ff8584..a1f95c690 100644
--- a/sys-libs/safeclib/safeclib-3.6.0_p20210407.ebuild
+++ b/sys-libs/safeclib/safeclib-3.6.0_p20210407.ebuild
@@ -3,7 +3,8 @@
 
 EAPI=7
 
-inherit autotools linux-mod
+MODULE_OPTIONAL_USE=modules
+inherit autotools linux-info linux-mod
 
 MY_REV="986f6d34e49637d68cb41221307231f0ea79ca4d"
 
@@ -16,30 +17,42 @@ SLOT="0"
 KEYWORDS="~amd64"
 IUSE="+constraint-handler doc +extensions modules norm-compat +nullslack test 
unsafe valgrind"
 RESTRICT="!test? ( test )"
-
+PATCHES=( "${FILESDIR}/gh96.patch" )
 BDEPEND="
        doc? ( app-doc/doxygen[dot] )
        valgrind? ( dev-util/valgrind )
 "
 
 S="${WORKDIR}/${PN}-${MY_REV}"
-MODULE_NAMES="slkm(misc:${S}-module:${S}-module)"
+MODULE_NAMES="slkm(misc:${S}:${S})"
 BUILD_TARGETS="all"
-BUILD_PARAMS="-f Makefile.kernel V=1"
+BUILD_PARAMS="-f Makefile.kernel"
+
+pkg_setup() {
+       if use modules ; then
+               CONFIG_CHECK="COMPAT_32BIT_TIME"
+               ERROR_COMPAT_32BIT_TIME="module require COMPAT_32BIT_TIME to 
build"
+       fi
+       linux-mod_pkg_setup
+}
 
 src_prepare() {
        default
        eautoreconf
 
-       if use modules ; then
-               #duplicate the working folder
-               #one for the library and one for the module
-               cd "${WORKDIR}" || die
-               cp -r "${S}" "${S}-module" || die
-       fi
+       #duplicate the working folder
+       #one for the library and one for the module
+       cd "${WORKDIR}" || die
+       cp -r "${S}" "${S}-lib" || die
 }
 
 src_configure() {
+       if use modules ; then
+               set_kvobj ko
+               econf "${myconf[@]}" --disable-wchar
+       fi
+
+       cd "${S}-lib" || die
        #forcing wchar because of https://github.com/rurban/safeclib/issues/95
        local myconf=(
                --disable-static
@@ -54,38 +67,32 @@ src_configure() {
                $(use_enable unsafe)
                $(use_enable valgrind)
        )
-
        econf "${myconf[@]}" --enable-wchar
-
-       if use modules ; then
-               cd "${S}-module" || die
-               econf "${myconf[@]}" --disable-wchar
-       fi
 }
 
 src_compile() {
-       default
-
        if use modules ; then
-               cd "${S}-module" || die
-               export src="${S}-module"
                linux-mod_src_compile
        fi
+
+       cd "${S}-lib" || die
+       default
 }
 
 src_install() {
+       if use modules ; then
+               linux-mod_src_install
+       fi
+
+       cd "${S}-lib" || die
        # wcsstr towupper towlower manpages collide with sys-apps/man-pages
        # what to do?
        default
        einstalldocs
        use doc && dodoc -r doc/.
-
-       if use modules ; then
-               cd "${S}-module" || die
-               linux-mod_src_install
-       fi
 }
 
 src_test() {
+       cd "${S}-lib" || die
        emake check
 }

Reply via email to