aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/m4.scm
blob: 090f5578e33d3222f32347f7742bb654aa743bc7 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; 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 m4)
  #:use-module (guix licenses)
  #:use-module (gnu packages)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu))

(define-public m4
  (package
   (name "m4")
   (version "1.4.18")
   (source (origin
            (method url-fetch)
            (uri (string-append "mirror://gnu/m4/m4-"
                                version ".tar.xz"))
            (patches (search-patches "m4-gnulib-libio.patch"))
            (sha256
             (base32
              "01sfjd5a4waqw83bibvmn522g69qfqvwig9i2qlgy154l1nfihgj"))))
   (build-system gnu-build-system)
   (arguments
    `(;; Explicitly disable tests when cross-compiling, otherwise 'make check'
      ;; proceeds and fails, unsurprisingly.
      #:tests? ,(not (%current-target-system))

      #:phases
      (modify-phases %standard-phases
        (add-before 'check 'pre-check
          (lambda* (#:key inputs #:allow-other-keys)
            ;; Fix references to /bin/sh.
            (let ((bash (assoc-ref inputs "bash")))
              (for-each patch-shebang
                        (find-files "tests" "\\.sh$"))
              (substitute* (find-files "tests"
                                       "posix_spawn")
                (("/bin/sh")
                 (format #f "~a/bin/sh" bash)))
              #t))))))
   (synopsis "Macro processor")
   (description
    "GNU M4 is an implementation of the M4 macro language, which features
some extensions over other implementations, some of which are required by GNU
Autoconf.  It is used as a macro processor, which means it processes text,
expanding macros as it encounters them.  It also has some built-in functions,
for example to run shell commands or to do arithmetic.")
   (license gpl3+)
   (home-page "https://www.gnu.org/software/m4/")))
x/commit/gnu/installer/newt?id=883fb8f41b08a8455f16c736a83fb1ae8a3df0a1'>installer: Factorize url-alive? in internet check....* gnu/installer/newt/network.scm (wait-service-online): Factorize url-alive? in internet check. Andrew Tropin 2022-10-17installer: Relax internet check availability criteria....Checks the availability of the mirror bordeaux.guix.gnu.org in addition to ci.guix.gnu.org. This allows to proceed the installation if the ci.guix.gnu.org is unavailable. * gnu/installer/newt/network.scm (wait-service-online): Relax internet check availability criteria. Signed-off-by: Andrew Tropin <andrew@trop.in> aleksandr barakin 2022-10-17guix: Fix typos....These typos were found and reported through weblate. * gnu/packages/audio.scm (wildmidi)[description]: Fix typo. * gnu/packages/games.scm (cgoban)[description]: Fix typo. * gnu/services/version-control.scm (gitolite-service-type)[description]: Fix typo. * gnu/installer/newt/substitutes.scm (run-substitutes-page): Remove full stop at end of title. * gnu/machine/ssh.scm (machine-ssh-configuration-system): Move punctuation outside of quotes. * guix/scripts/home.scm (process-action): Remove trailing space before newline. * guix/scripts/system.scm (show-help): Fix typo. * guix/scripts/environment.scm (with-store/maybe): Fix typo. Julien Lepiller 2022-10-13installer: partition: Add a confirmation page before formatting....Fixes: <https://issues.guix.gnu.org/57232>. * gnu/installer/newt/partition.scm (run-label-confirmation-page): New procedure. (run-label-page): Call the above procedure before proceeding. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Mathieu Othacehe 2022-09-22installer: Exit console-services page with abort-to-prompt....* gnu/installer/newt/services.scm (run-console-services-cbt-page): Do it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-09-22installer: Return partitions with crypt password as step result....* gnu/installer/newt/partition.scm (run-partitioning-page): Do it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-09-22installer: Move <secret> to utils and use it for crypt passwords....* gnu/installer/user.scm (<secret>, secret?, make-secret, secret-content): Move to utils.scm. * gnu/installer/utils.scm (<secret>, secret?, make-secret, secret-content): Moved from user.scm. * gnu/installer/newt/partition.scm (prompt-luks-passwords): Make password a <secret>. * gnu/installer/parted.scm (luks-format-and-open): Unwrap secret. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-04-06installer: user: Forbid root user creation....Forbid root user creation as it could lead to a system without any non-priviledged user accouts. Fixes: <https://issues.guix.gnu.org/54666>. * gnu/installer/newt/user.scm (run-user-add-page): Forbid it. Mathieu Othacehe 2022-02-02installer: Make dump archive creation optional and selective....* gnu/installer.scm (installer-program): Let the installer customize the dump archive. * gnu/installer/dump.scm (prepare-dump, make-dump): Split make-dump in prepare-dump, which copies the files necessary for the dump, and make-dump which creates the archive. * gnu/installer/record.scm (installer): Add report-page field. Change documented return value of exit-error. * gnu/installer/newt.scm (exit-error): Change arguments to be a string containing the error. Let the user choose between exiting and initiating a dump. (report-page): Add new variable. * gnu/installer/newt/page.scm (run-dump-page): New variable. * gnu/installer/newt/dump.scm: Delete it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Turn passwords into opaque records....* gnu/installer/user.scm (<secret>, secret?, make-secret, secret-content): Add opaque <secret> record that boxes its contents, with a custom printer that doesn't display anything. * gnu/installer/newt/user.scm (run-user-add-page, run-user-page): Box it. * gnu/installer/final.scm (create-user-database): Unbox it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Add error page when running external commands....* gnu/installer/newt.scm (newt-run-command): Add it. * gnu/installer/newt/page.scm (%ok-button, %exit-button, %default-buttons, make-newt-buttons, run-textbox-page): Add them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Use named prompt to abort or break installer steps....* gnu/installer/steps.scm (run-installer-steps): Set up 'installer-step prompt. * gnu/installer/newt/ethernet.scm (run-ethernet-page) * gnu/installer/newt/final.scm (run-config-display-page, run-install-failed-page) * gnu/installer/newt/keymap.scm (run-layout-page, run-variant-page) * gnu/installer/newt/locale.scm (run-language-page, run-territory-page, run-codeset-page, run-modifier-page, run-locale-page) * gnu/installer/newt/network.scm (run-technology-page, wait-service-online) * gnu/installer/newt/page.scm (run-listbox-selection-page, run-checkbox-tree-page) * gnu/installer/newt/partition.scm (button-exit-action) * gnu/installer/newt/services.scm (run-desktop-environments-cbt-page, run-networking-cbt-page, run-other-services-cbt-page, run-network-management-page) * gnu/installer/newt/timezone.scm (run-timezone-page) * gnu/installer/newt/user.scm (run-user-page) * gnu/installer/newt/welcome.scm (run-menu-page) * gnu/installer/newt/wifi.scm (run-wifi-page): Use the 'installer-step prompt to abort. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Replace run-command by invoke in newt/page.scm....* gnu/installer/newt/page.scm (edit-file): Replace it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Fix run-file-textbox-page when edit-button is #f....* gnu/installer/newt/page.scm (run-file-textbox-page): Check if edit-button is #f. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Use new installer-log-line everywhere....* gnu/installer.scm (installer-program) * gnu/installer/final.scm (install-locale) * gnu/installer/newt.scm (init) * gnu/installer/newt/final.scm (run-final-page) * gnu/installer/newt/page.scm (run-form-with-clients) * gnu/installer/newt/partition.scm (run-partitioning-page) * gnu/installer/parted.scm (eligible-devices, mkpart, luks-format-and-open, luks-close, mount-user-partitions, umount-user-partitions, free-parted): * gnu/installer/steps.scm (run-installer-steps): * gnu/installer/utils.scm (run-command, send-to-clients): Use it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Add crash dump upload support....Suggested-by: Josselin Poiret <dev@jpoiret.xyz> * gnu/installer/dump.scm: New file. * gnu/installer/newt/dump.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add them. * gnu/installer/record.scm (<installer>)[dump-page]: New field. * gnu/installer/steps.scm (%current-result): New variable. (run-installer-steps): Update it. * gnu/installer.scm (installer-program): Add tar and gip to the installer path. Add guile-webutils and gnutls to the Guile extensions. Generate and send the crash dump report. * gnu/installer/newt.scm (exit-error): Add a report argument. Display the report id. (dump-page): New procedure. (newt-installer): Update it. Mathieu Othacehe 2022-01-14installer: Check if ci.guix.gnu.org can be reached....* gnu/installer.scm (installer-program): Add gnutls extension. * gnu/installer/newt/network.scm (wait-service-online): Check if the CI server can be reached. Mathieu Othacehe 2022-01-14installer: Ignore small devices....Filter the devices that are smaller than 2GiB in the device selection list. * gnu/installer/parted.scm (%min-device-size): New variable. (non-install-devices): Rename it ... (eligible-devices): ... this way. Filter the install device as well as the small devices. * gnu/installer/newt/partition.scm (run-partitioning-page): Adapt it. Mathieu Othacehe 2021-12-28installer: Recommend 'ntp-service-type' for non-graphical systems....We had several bug reports with a root cause of "the clock was incorrect" from users who used the installer to install a non-graphical Guix System. * gnu/installer/services.scm (%system-services): Add the ntp-service-type. * gnu/installer/newt/services.scm (run-system-administration-cbt-page): New variable. (run-services-page): Use run-system-administration-cbt-page when not installing a desktop. * gnu/installer/tests.scm (choose-services): Add and use a choose-misc-service? procedure. * gnu/tests/install.scm (installation-target-os-for-gui-tests)<services>: Add ntp-service-type. Leo Famulari 2021-12-28installer: Offer the CUPS printing service on a dedicated page....Currently, the installer page RUN-OTHER-SERVICES-CBT-PAGE offers to the user all installer services that are not of the types 'desktop', 'network-management', or 'networking'. Concretely, this means that it offers the CUPS printing service, because that is the only service of a different type defined in the installer. In later commits, we will add some services of a new type, and we only want them to be offered when the user is installing a non-graphical system. At least one of these new services (NTP) is part of %DESKTOP-SERVICES. If it was also offered on RUN-OTHER-SERVICES-CBT-PAGE, and the user had configured a system using %DESKTOP-SERVICES, the user could accidentally add NTP to their services twice, which is an error and would break installation. So, this commit makes the RUN-OTHER-SERVICES-CBT-PAGE be more specific about what services to offer. This makes it easier to discriminate between desktop and non-desktop installations, in terms of when a given service is offered. * gnu/installer/newt/services.scm (RUN-OTHER-SERVICES-CBT-PAGE): Rename to ... (RUN-PRINTING-SERVICES-CBT-PAGE): ... new variable, and select only 'document' services. (RUN-SERVICES-PAGE): Adjust accordingly. * gnu/installer/tests.scm (CHOOSE-SERVICES): Adjust accordingly. Leo Famulari 2021-10-21installer: Reorder file system type listbox....Recommending ext4 over btrfs is probably ill-advised nowadays. See the regular bug reports about running out of /gnu/store directory entries, for which the documented fix then breaks booting with GRUB. Instead, just list regular file systems alphabetically. We can bikeshed bcachefs later ;-) Move second-class file systems like NTFS to their own section at the end of the list. * gnu/packages/package-management.scm (run-fs-type-page): Reorder the LISTBOX-ITEMS. Tobias Geerinckx-Rice 2021-09-23installer: Support XFS....* gnu/installer/newt/partition.scm (run-fs-type-page): Add ‘xfs’ to the list box. * gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type) (partition-filesystem-user-type): Add ‘xfs’ mapping. (create-xfs-file-system): New procedure. (format-user-partitions): Use it. * gnu/installer.scm (set-installer-path): Add xfsprogs. Tobias Geerinckx-Rice 2021-06-30installer: Offer the CUPS printing service....* gnu/installer/services.scm (%system-services): Add CUPS. * gnu/installer/newt/services.scm (run-other-services-cbt-page): New procedure. (run-services-page): Call it last. Tobias Geerinckx-Rice 2021-06-29installer: Fix crash when deleting a free space partition....Fixes: <https://issues.guix.gnu.org/49126>. * gnu/installer/newt/partition.scm (run-disk-page): Fix the return value when removing a free space partition. Mathieu Othacehe 2021-06-12installer: Check partitions UUIDs....* gnu/installer/parted.scm (&cannot-read-uuid): New condition. (cannot-read-uuid?, cannot-read-uuid-partition): New procedures. (check-user-partitions): Check that all user-partitions have a valid UUID, raide the above condition otherwise. * gnu/installer/newt/partition.scm (run-disk-page): Run an error page if the &cannot-read-uuid condition is raised. Mathieu Othacehe 2021-06-12installer: Print user partitions....* gnu/installer/newt/partition.scm (run-partitioning-page): Print user-partitions to syslog. Mathieu Othacehe 2021-04-28installer: Force GPT disk label when UEFI is supported....* gnu/installer/newt/partition.scm (run-label-page): Force the GPT disk label when UEFI is supported. Mathieu Othacehe 2021-01-31installer: Edit desktop selection prompt....* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page): Fix and clarify the #:info-text. Tobias Geerinckx-Rice 2021-01-12installer: Fix crash in parameters menu....Fixes: <https://issues.guix.gnu.org/45378>. * gnu/installer/newt/keymap.scm (run-layout-page): Return false when "Continue" button is pressed. (run-keymap-page): Do not try to compute variants if layout is false. Also do not try to format the result if layout is false. * gnu/installer.scm (compute-keymap-step): Do not apply keymap if "run-keymap-page" returns false. Mathieu Othacehe