2013-10-14 17:55:53 +00:00
|
|
|
;;; GNU Guix --- Functional package management for GNU
|
2016-05-31 19:20:57 +00:00
|
|
|
;;; Copyright © 2013, 2014 Eric Bavier <bavier@member.fsf.org>
|
|
|
|
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
2019-02-24 16:18:31 +00:00
|
|
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
2020-04-13 18:00:29 +00:00
|
|
|
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
2013-10-14 17:55:53 +00:00
|
|
|
;;;
|
|
|
|
;;; This file is part of GNU Guix.
|
|
|
|
;;;
|
|
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
|
|
;;; under the terms of the GNU General Public License as published by
|
|
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
|
|
;;; your option) any later version.
|
|
|
|
;;;
|
|
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
;;; GNU General Public License for more details.
|
|
|
|
;;;
|
|
|
|
;;; You should have received a copy of the GNU General Public License
|
|
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
(define-module (gnu packages autogen)
|
|
|
|
#:use-module (guix packages)
|
|
|
|
#:use-module (guix licenses)
|
|
|
|
#:use-module (guix download)
|
|
|
|
#:use-module (guix build-system gnu)
|
|
|
|
#:use-module (gnu packages)
|
2014-09-30 22:29:16 +00:00
|
|
|
#:use-module (gnu packages perl)
|
2015-05-13 02:29:53 +00:00
|
|
|
#:use-module (gnu packages pkg-config)
|
gnu: Move 'which' to (gnu packages base).
* gnu/packages/which.scm: Remove.
* gnu-system.am (GNU_SYSTEM_MODULES): Remove it.
* gnu/packages/base.scm (which): New variable.
* gnu/packages/aspell.scm, gnu/packages/audio.scm,
gnu/packages/autogen.scm, gnu/packages/cdrom.scm,
gnu/packages/compression.scm, gnu/packages/datamash.scm,
gnu/packages/games.scm, gnu/packages/glib.scm,
gnu/packages/gnu-pw-mgr.scm, gnu/packages/gnutls.scm,
gnu/packages/gps.scm, gnu/packages/guile.scm,
gnu/packages/java.scm, gnu/packages/libevent.scm,
gnu/packages/linux.scm, gnu/packages/lisp.scm,
gnu/packages/node.scm, gnu/packages/ntp.scm,
gnu/packages/orpheus.scm, gnu/packages/pciutils.scm,
gnu/packages/python.scm, gnu/packages/qt.scm,
gnu/packages/rsync.scm, gnu/packages/sawfish.scm,
gnu/packages/scheme.scm, gnu/packages/ssh.scm,
gnu/packages/statistics.scm, gnu/packages/texlive.scm,
gnu/packages/wdiff.scm: Adjust accordingly.
2015-03-04 16:21:21 +00:00
|
|
|
#:use-module (gnu packages base)
|
2013-10-14 17:55:53 +00:00
|
|
|
#:use-module (gnu packages guile))
|
|
|
|
|
|
|
|
(define-public autogen
|
|
|
|
(package
|
|
|
|
(name "autogen")
|
2019-02-24 16:18:31 +00:00
|
|
|
(version "5.18.16")
|
2013-10-14 17:55:53 +00:00
|
|
|
(source
|
|
|
|
(origin
|
2019-02-24 16:18:31 +00:00
|
|
|
(method url-fetch)
|
|
|
|
(uri (string-append "mirror://gnu/autogen/rel" version
|
|
|
|
"/autogen-" version ".tar.xz"))
|
|
|
|
(sha256
|
2022-02-11 10:18:59 +00:00
|
|
|
(base32 "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq"))
|
|
|
|
(modules '((guix build utils)))
|
|
|
|
(snippet
|
|
|
|
;; Address '-Werror=format-overflow' error.
|
|
|
|
'(substitute* "getdefs/getdefs.c"
|
|
|
|
(("def_bf\\[[[:space:]]*MAXNAMELEN[[:space:]]*\\]")
|
|
|
|
"def_bf[MAXNAMELEN + 10]")))))
|
2013-10-14 17:55:53 +00:00
|
|
|
(build-system gnu-build-system)
|
2021-12-13 16:18:24 +00:00
|
|
|
(native-inputs (list pkg-config which))
|
2022-06-05 23:05:02 +00:00
|
|
|
(inputs (list guile-3.0 perl)) ; for doc generator mdoc
|
2013-10-14 17:55:53 +00:00
|
|
|
(arguments
|
2019-02-24 16:18:31 +00:00
|
|
|
'(#:configure-flags
|
|
|
|
;; XXX Needed to build 5.18.16. ./configure fails without it:
|
|
|
|
;; “Something went wrong bootstrapping makefile fragments for
|
|
|
|
;; automatic dependency tracking. Try re-running configure with […]”
|
|
|
|
(list "--disable-dependency-tracking")
|
2020-04-13 18:00:29 +00:00
|
|
|
|
|
|
|
;; XXX: Parallel tests may cause an indefinite hang with GNU Make 4.3.
|
|
|
|
#:parallel-tests? #f
|
|
|
|
|
2019-02-24 16:18:31 +00:00
|
|
|
#:phases
|
2016-05-31 19:24:59 +00:00
|
|
|
(modify-phases %standard-phases
|
2022-06-05 23:05:02 +00:00
|
|
|
(add-after 'unpack 'support-guile-3.0
|
|
|
|
;; Upstream bug:
|
|
|
|
;; https://sourceforge.net/p/autogen/bugs/196/
|
|
|
|
;;
|
|
|
|
;; Supported in Debian and openSUSE:
|
|
|
|
;; https://salsa.debian.org/debian/autogen/-/blob/master/debian/patches/40_suse_04-guile-version.patch
|
|
|
|
(lambda _
|
|
|
|
(substitute* "agen5/guile-iface.h"
|
|
|
|
(("#elif GUILE_VERSION < 203000") "#elif GUILE_VERSION < 301000"))
|
|
|
|
(substitute* "configure"
|
|
|
|
(("2.2 2.0 1.8") "3.0 2.2 2.0 1.8"))))
|
2022-06-14 01:51:00 +00:00
|
|
|
(add-after 'unpack 'use-numeric-ids-in-tarball
|
|
|
|
;; Pass arguments to tar to generate tarball with consistent uid
|
|
|
|
;; and gid to ensure reproducible build
|
|
|
|
(lambda _
|
|
|
|
(substitute* "pkg/libopts/mklibsrc.sh"
|
|
|
|
(("--sort=name --format=gnu")
|
|
|
|
"--sort=name --format=gnu --owner=0 --group=0 --numeric-owner"))))
|
2022-06-05 16:14:23 +00:00
|
|
|
(add-before 'build 'set-man-page-date
|
|
|
|
;; Avoid embedding the current date for reproducible builds
|
|
|
|
(lambda _
|
|
|
|
(setenv "MAN_PAGE_DATE" "2012-04-18")))
|
2016-05-31 19:24:59 +00:00
|
|
|
(add-before 'patch-source-shebangs 'patch-test-scripts
|
|
|
|
(lambda _
|
|
|
|
(let ((sh (which "sh")))
|
|
|
|
(substitute*
|
2019-02-24 16:18:31 +00:00
|
|
|
(append (find-files "agen5/test" "\\.test$")
|
|
|
|
(find-files "autoopts/test" "\\.(test|in)$"))
|
2018-08-08 01:54:41 +00:00
|
|
|
(("/bin/sh") sh))
|
2016-10-09 06:44:40 +00:00
|
|
|
#t))))))
|
|
|
|
(home-page "https://www.gnu.org/software/autogen/")
|
2013-10-14 17:55:53 +00:00
|
|
|
(synopsis "Automated program generator")
|
|
|
|
(description
|
|
|
|
"AutoGen is a program to ease the maintenance of programs that contain
|
|
|
|
large amounts of repetitive text. It automates the construction of these
|
|
|
|
sections of the code, simplifying the task of keeping the text in sync. It
|
|
|
|
also includes an add-on package called AutoOpts, which is specialized for the
|
|
|
|
maintenance and documentation of program options.")
|
|
|
|
(license gpl3+)))
|