From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id ONG1J3dFo2SQggEASxT56A (envelope-from ) for ; Tue, 04 Jul 2023 00:02:31 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 6JC0J3dFo2QB0gAA9RJhRA (envelope-from ) for ; Tue, 04 Jul 2023 00:02:31 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 4C3272CEFD for ; Tue, 4 Jul 2023 00:02:31 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=posteo.net header.s=2017 header.b=Jj2CdqpN; dmarc=fail reason="SPF not aligned (strict)" header.from=posteo.net (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1688421751; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=4q3WflZWnlRWdZCe8MVp+s1kj4GGxfbEqWU3qh84jEA=; b=cBIdL9T2b8MvAHok4nM2PX4XQJJTOhQNtiuCg2m9huk8iy0NYR2/6pw70mJtvlgdWLF7th n/uE2sPDHJVRSPnAKnm32q0/Vkx3o3axjOAwqyfOrrmopH3yDCgT4eVfjp9D5UKupmB2DX aXqnlGkJI+ohq2VK12fV8uhsqvt7KBNeoVBiat0Ol8ulgrsdJngOh/4RYSr26U1wx1Lrt4 vNlPzOzxwRUiww+ZOs0vgb8crNaVawdqGpozNeGtLaqViJY2HeJuiZ87VgEu06mpwXhIN0 cu4AOwSa4olT93je6cgPR9ZTyU+U+bG2Q0KHg/bUsmEo+0e7Xw7VBAbmCvJU3A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=posteo.net header.s=2017 header.b=Jj2CdqpN; dmarc=fail reason="SPF not aligned (strict)" header.from=posteo.net (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1688421751; a=rsa-sha256; cv=none; b=or9r38KbwEDCKOoEzvH5/rXbEpVGjz0ySgvJWQLVhFk/V1afwNyrKMSCNOr1Iyha60pcck ynOpTl4bwZoDiVkCYKIQnmieDLbu+MkIjPA6+H7wfJsjUwhHjVmNRgYG1oRIYDkuuJS3nE AkTR+iCEBPij/dH8YHbkv9mRGZAyEVBIF1tZy7HOevI0aJ//vRT+KmWV/LbsfO3T06ukna j/7UKtMtmUCW3jN+pNBJ/kwqj4HBvveqQIRHSwQzwb+7oJ9SEJmJDyrEjxhnHS1qE60wU7 4XNxA8hy+zpl/Gx7ExABC1+Qv2C51gjUD2FvXQTxx8UkvTlw7QNHIZnz7YY7TA== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qGRcS-0003MF-TW; Mon, 03 Jul 2023 18:02:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qGRcR-0003Lr-Rq for guix-patches@gnu.org; Mon, 03 Jul 2023 18:02:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qGRcR-00045a-IR for guix-patches@gnu.org; Mon, 03 Jul 2023 18:02:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qGRcQ-0007DJ-5I; Mon, 03 Jul 2023 18:02:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#64448] [PATCH 1/2] gnu: hdf5-1.8: Remove generated files from source Resent-From: David Elsing Original-Sender: "Debbugs-submit" Resent-CC: andreas@enge.fr, efraim@flashner.co.il, bavier@posteo.net, guix-patches@gnu.org Resent-Date: Mon, 03 Jul 2023 22:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64448 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 64448@debbugs.gnu.org Cc: David Elsing , andreas@enge.fr, efraim@flashner.co.il, bavier@posteo.net X-Debbugs-Original-Xcc: andreas@enge.fr, efraim@flashner.co.il, bavier@posteo.net Received: via spool by 64448-submit@debbugs.gnu.org id=B64448.168842166427631 (code B ref 64448); Mon, 03 Jul 2023 22:02:02 +0000 Received: (at 64448) by debbugs.gnu.org; 3 Jul 2023 22:01:04 +0000 Received: from localhost ([127.0.0.1]:34592 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qGRbT-0007BV-7B for submit@debbugs.gnu.org; Mon, 03 Jul 2023 18:01:04 -0400 Received: from mout01.posteo.de ([185.67.36.65]:56959) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qGRbP-0007Am-K5 for 64448@debbugs.gnu.org; Mon, 03 Jul 2023 18:01:02 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 55C36240028 for <64448@debbugs.gnu.org>; Tue, 4 Jul 2023 00:00:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1688421653; bh=/SJT2S2HACA28SK/isW8I+C8clfxHxMq0LWofHiyUeg=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version: Content-Transfer-Encoding:From; b=Jj2CdqpNHfzjQThDezIPlMmWk7nCT/oYOtqfVXzQZ6lL0Ea4f2flKujgfv6Ozv1FS LZsCemwTK5kYl4CcnKyj+y0DOQeP1uYlCEJwKFPfyCpQZno+GhsJiFS4Yrlk+CD2yQ 7KYSjMXs2w7kD9dWzB6FXyo49bD5V0oUAF4Xx5QwGJugRw5iBwebE5w4kBjFV8kTf+ xxxEqFvKkSBTzI4pMeG7hhHwfo2492zPkriwzPF+hFOtwhPQM8ZdxEti/Q3VF+MttI eyxbDVMss53PxiuYqjs0apMk9so4f8hgnbnmrPPYtR/aC1UlF0IRRCJxclq5MnUtO/ 0kY0jEycZgTQA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Qw0H8526zz9rxM; Tue, 4 Jul 2023 00:00:52 +0200 (CEST) From: David Elsing Date: Mon, 3 Jul 2023 22:00:46 +0000 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Scanner: scn0.migadu.com X-Migadu-Spam-Score: -1.36 X-Spam-Score: -1.36 X-Migadu-Queue-Id: 4C3272CEFD X-TUID: lokzRUdkxFcV * gnu/packages/maths.scm (hdf5-snippet): New variable. (hdf5-1.8.21-source): New variable. (hdf5-1.8)[source](modules, snippet): New fields. [native-inputs]: Add autoconf, automake, bison, flex, libtool and which. [arguments] Use Gexps. <#:phases>: Add 'copy-scripts, 'make-gen-deterministic, 'generate-flexbison and 'generate-headers phases. (hdf5-1.10)[source](modules, snippet): New fields. [arguments]<#:phases>: Use 'substitute-keyword-arguments' and delete 'copy-scripts phase. (hdf5-1.12): Inherit from hdf5-1.10. [source](modules, snippet): New fields. (hdf5-1.14): Inherit from hdf5-1.10. [source](modules, snippet): New fields. * gnu/packages/patches/hdf5-config-date.patch: Apply to configure.ac instead of configure. --- gnu/packages/maths.scm | 221 +++++++++++++++----- gnu/packages/patches/hdf5-config-date.patch | 14 +- 2 files changed, 176 insertions(+), 59 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 653e76027a..b2029db615 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -60,6 +60,7 @@ ;;; Copyright © 2022 Akira Kyle ;;; Copyright © 2022 Roman Scherer ;;; Copyright © 2023 Jake Leporte +;;; Copyright © 2023 David Elsing ;;; ;;; This file is part of GNU Guix. ;;; @@ -1376,12 +1377,48 @@ (define-public hdf4-alt (synopsis "HDF4 without netCDF API, can be combined with the regular netCDF library"))) -(define-public hdf5-1.8 - (package - (name "hdf5") - (version "1.8.23") - (source - (origin +(define hdf5-snippet + #~(begin + (for-each delete-file (find-files "." "Makefile\\.in$")) + (when (file-exists? "autom4te.cache") + (delete-file-recursively "autom4te.cache")) + (for-each (lambda (file) + (when (file-exists? file) + (delete-file file))) + (list + "configure" + "bin/ltmain.sh" + "bin/compile" + "bin/config.guess" + "bin/config.sub" + "bin/install-sh" + "bin/missing" + "bin/test-driver" + "bin/depcomp" + "src/H5config.h.in" + "src/H5Epubgen.h" + "src/H5Einit.h" + "src/H5Eterm.h" + "src/H5Edefin.h" + "src/H5version.h" + "src/H5overflow.h" + "aclocal.m4" + "hl/tools/gif2h5/testfiles/ex_image2.h5" + "hl/tools/gif2h5/testfiles/5giftst.h5" + "hl/src/H5LTparse.h" + "hl/src/H5LTparse.c" + "hl/src/H5LTanalyze.c" + ;; In later releases + "m4/libtool.m4" + "m4/ltoptions.m4" + "m4/ltsugar.m4" + "m4/ltversion.m4" + "m4/lt~obsolete.m4")))) + +;; In the 1.8.22 and 1.8.23 release, some m4 scripts are missing +(define hdf5-1.8.21-source + (let ((version "1.8.21")) + (origin (method url-fetch) (uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/" "hdf5-" (version-major+minor version) @@ -1394,18 +1431,53 @@ (define-public hdf5-1.8 (string-append major minor))) "/src/hdf5-" version ".tar.bz2"))) (sha256 - (base32 "0km65mr6dgk4ia2dqr1b9dzw9qg15j5z35ymbys9cnny51z1zb39")) - (patches (search-patches "hdf5-config-date.patch")))) + (base32 "03glk4w4wyb1jyb443g53y3y1ncnf6mj2cqwm6avfr2awkgb3cg5")) + (modules '((guix build utils))) + (snippet hdf5-snippet) + (patches (search-patches "hdf5-config-date.patch"))))) + +(define-public hdf5-1.8 + (package + (name "hdf5") + (version "1.8.23") + (source + (origin + (method url-fetch) + (uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/" + "hdf5-" (version-major+minor version) + "/hdf5-" version "/src/hdf5-" + version ".tar.bz2") + (string-append "https://support.hdfgroup.org/ftp/HDF5/" + "current" + (match (string-split version #\.) + ((major minor _ ...) + (string-append major minor))) + "/src/hdf5-" version ".tar.bz2"))) + (sha256 + (base32 "0km65mr6dgk4ia2dqr1b9dzw9qg15j5z35ymbys9cnny51z1zb39")) + (modules '((guix build utils))) + (snippet hdf5-snippet) + (patches (search-patches "hdf5-config-date.patch")))) (build-system gnu-build-system) (inputs (list zlib)) (native-inputs - (list gfortran perl)) ;part of the test machinery needs Perl + (list autoconf + automake + bison + flex + gfortran + libtool + ;; Needed to generate some headers and for tests + perl + which)) (outputs '("out" ; core library "fortran")) ; fortran interface (arguments - `(;; Some of the users, notably Flann, need the C++ interface. - #:configure-flags '("--enable-cxx" + (list + ;; Some of the users, notably Flann, need the C++ interface. + #:configure-flags #~(list + "--enable-cxx" "--enable-fortran" "--enable-fortran2003" @@ -1418,44 +1490,71 @@ (define-public hdf5-1.8 "--enable-threadsafe" "--with-pthread" "--enable-unsupported") - ;; Use -fPIC to allow the R bindings to link with the static libraries - #:make-flags (list "CFLAGS=-fPIC" - "CXXFLAGS=-fPIC") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "configure" - (("/bin/mv") "mv")) - (substitute* "fortran/src/Makefile.in" - (("libhdf5_fortran_la_LDFLAGS =") - (string-append "libhdf5_fortran_la_LDFLAGS = -Wl,-rpath=" - (assoc-ref outputs "fortran") "/lib"))) - (substitute* "hl/fortran/src/Makefile.in" - (("libhdf5hl_fortran_la_LDFLAGS =") - (string-append "libhdf5hl_fortran_la_LDFLAGS = -Wl,-rpath=" - (assoc-ref outputs "fortran") "/lib"))))) - (add-after 'configure 'patch-settings - (lambda _ - ;; libhdf5.settings contains the full path of the - ;; compilers used, and its contents are included in - ;; libhdf5.so. We truncate the hashes to avoid - ;; unnecessary store references to those compilers: - (substitute* "src/libhdf5.settings" - (("(/gnu/store/)([a-zA-Z0-9]*)" all prefix hash) - (string-append prefix (string-take hash 10) "...")) - ;; Don't record the build-time kernel version to make the - ;; settings file reproducible. - (("Uname information:.*") - "Uname information: Linux\n")))) - (add-after 'install 'patch-references - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin")) - (zlib (assoc-ref inputs "zlib"))) - (substitute* (find-files bin "h5p?cc") - (("-lz" lib) - (string-append "-L" zlib "/lib " lib)))))) - (add-after 'install 'split + ;; Use -fPIC to allow the R bindings to link with the static libraries + #:make-flags #~(list "CFLAGS=-fPIC" + "CXXFLAGS=-fPIC") + #:phases + #~(modify-phases %standard-phases + ;; These scripts are missing in this release + (add-after 'unpack 'copy-scripts + (lambda _ + (invoke "tar" "-xf" #$hdf5-1.8.21-source + "-C" "m4" "--strip-components=2" + "hdf5-1.8.21/m4/aclocal_fc.m4" + "hdf5-1.8.21/m4/aclocal_cxx.m4") + (invoke "tar" "-xf" #$(package-source hdf5-1.10) + "-C" "bin" "--strip-components=2" + "hdf5-1.10.9/bin/genparser"))) + (add-after 'copy-scripts 'make-gen-deterministic + (lambda _ + (substitute* "bin/make_err" + (("keys %major" all) + (string-append "sort " all)) + (("while.*each \\(%section\\).*") + (string-append + "foreach $sect_name (sort keys %section) {\n" + " $sect_desc = $section{$sect_name};\n"))))) + (add-after 'copy-scripts 'generate-flexbison + (lambda _ + (invoke "bash" "bin/genparser" "hl/src"))) + (add-before 'configure 'patch-configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "configure" + (("/bin/mv") "mv")) + (substitute* "fortran/src/Makefile.in" + (("libhdf5_fortran_la_LDFLAGS =") + (string-append "libhdf5_fortran_la_LDFLAGS = -Wl,-rpath=" + (assoc-ref outputs "fortran") "/lib"))) + (substitute* "hl/fortran/src/Makefile.in" + (("libhdf5hl_fortran_la_LDFLAGS =") + (string-append "libhdf5hl_fortran_la_LDFLAGS = -Wl,-rpath=" + (assoc-ref outputs "fortran") "/lib"))))) + (add-after 'configure 'patch-settings + (lambda _ + ;; libhdf5.settings contains the full path of the + ;; compilers used, and its contents are included in + ;; libhdf5.so. We truncate the hashes to avoid + ;; unnecessary store references to those compilers: + (substitute* "src/libhdf5.settings" + (("(/gnu/store/)([a-zA-Z0-9]*)" all prefix hash) + (string-append prefix (string-take hash 10) "...")) + ;; Don't record the build-time kernel version to make the + ;; settings file reproducible. + (("Uname information:.*") + "Uname information: Linux\n")))) + (add-after 'configure 'generate-headers + (lambda _ + (invoke "perl" "bin/make_err" "src/H5err.txt") + (invoke "perl" "bin/make_vers" "src/H5vers.txt") + (invoke "perl" "bin/make_overflow" "src/H5overflow.txt"))) + (add-after 'install 'patch-references + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin")) + (zlib (assoc-ref inputs "zlib"))) + (substitute* (find-files bin "h5p?cc") + (("-lz" lib) + (string-append "-L" zlib "/lib " lib)))))) + (add-after 'install 'split (lambda* (#:key inputs outputs #:allow-other-keys) ;; Move all fortran-related files (let* ((out (assoc-ref outputs "out")) @@ -1515,11 +1614,25 @@ (define-public hdf5-1.10 "/src/hdf5-" version ".tar.bz2"))) (sha256 (base32 "14gih7kmjx4h3lc7pg4fwcl28hf1qqkf2x7rljpxqvzkjrqbxi00")) - (patches (search-patches "hdf5-config-date.patch")))))) + (modules '((guix build utils))) + (snippet hdf5-snippet) + (patches (search-patches "hdf5-config-date.patch")))) + (arguments + (substitute-keyword-arguments (package-arguments hdf5-1.8) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'copy-scripts) + (add-after 'unpack 'patch-trace-shebang + (lambda _ + (for-each + patch-shebang + (find-files "bin" + (lambda (file stat) + (executable-file? file)))))))))))) (define-public hdf5-1.12 (package - (inherit hdf5-1.8) + (inherit hdf5-1.10) (version "1.12.2") (source (origin @@ -1535,11 +1648,13 @@ (define-public hdf5-1.12 "/src/hdf5-" version ".tar.bz2"))) (sha256 (base32 "1zlawdzb0gsvcxif14fwr5ap2gk4b6j02wirr2hcx8hkcbivp20s")) + (modules '((guix build utils))) + (snippet hdf5-snippet) (patches (search-patches "hdf5-config-date.patch")))))) (define-public hdf5-1.14 (package - (inherit hdf5-1.8) + (inherit hdf5-1.10) (version "1.14.0") (source (origin @@ -1555,6 +1670,8 @@ (define-public hdf5-1.14 "/src/hdf5-" version ".tar.bz2"))) (sha256 (base32 "181bdh8hp7v9xqwcby3lknr92lxlicc2hqscba3f5nhf8lrr9rz4")) + (modules '((guix build utils))) + (snippet hdf5-snippet) (patches (search-patches "hdf5-config-date.patch")))))) (define-public hdf5 diff --git a/gnu/packages/patches/hdf5-config-date.patch b/gnu/packages/patches/hdf5-config-date.patch index c105435dc2..d9710f91e9 100644 --- a/gnu/packages/patches/hdf5-config-date.patch +++ b/gnu/packages/patches/hdf5-config-date.patch @@ -1,14 +1,14 @@ Honor SOURCE_DATE_EPOCH when exporting configuration date. Autoconf-level patch submitted upstream on Wed Apr 13 17:03:23 UTC 2016 ---- a/configure -+++ b/configure -@@ -27737,7 +28573,14 @@ - +--- a/configure.ac ++++ b/configure.ac +@@ -3566,7 +3566,14 @@ + AC_SUBST([H5_VERSION]) ## Configuration date -- CONFIG_DATE="`date`" -+ CONFIG_DATE="`date -u`" +-AC_SUBST([CONFIG_DATE]) CONFIG_DATE="`date`" ++AC_SUBST([CONFIG_DATE]) CONFIG_DATE="`date -u`" +if test -n "$SOURCE_DATE_EPOCH"; then + CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \ + || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null` @@ -18,4 +18,4 @@ Autoconf-level patch submitted upstream on Wed Apr 13 17:03:23 UTC 2016 +fi ## User doing the configuration - CONFIG_USER="`whoami`@`hostname`" + AC_SUBST([CONFIG_USER]) CONFIG_USER="`whoami`@`hostname`" \ No newline at end of file -- 2.40.1