;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2013, 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Efraim Flashner ;;; ;;; 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 . (define-module (gnu packages gv) #:use-module (gnu packages) #:use-module (gnu packages ghostscript) #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu)) (define-public gv (package (name "gv") (version "3.7.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gv/gv-" version ".tar.gz")) (sha256 (base32 "0q8s43z14vxm41pfa8s5h9kyyzk1fkwjhkiwbf2x70alm6rv6qi1")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'set-gs-file-name (lambda* (#:key inputs #:allow-other-keys) ;; Set the value of 'GV.gsInterpreter' in the generated ;; 'gv_system.ad' file. (let ((gs (assoc-ref inputs "ghostscript"))) (with-fluids ((%default-port-encoding "ISO-8859-1")) (substitute* "src/Makefile.in" (("GV\\.gsInterpreter:([[:blank:]]+)gs" _ blank) (string-append "GV.gsInterpreter:" blank gs "/bin/gs")) (("GV\\.gsCmd([[:alpha:]]+):([[:blank:]]+)gs" _ command blank) (string-append "GV.gsCmd" command ":" blank gs "/bin/gs")))) #t)))))) (inputs `(("ghostscript" ,ghostscript/x) ("libx11" ,libx11) ("libxaw3d" ,libxaw3d) ("libxinerama" ,libxinerama) ("libxpm" ,libxpm) ("zlib" ,zlib))) (native-inputs `(("pkg-config" ,pkg-config))) (synopsis "PostScript and PDF viewer using Ghostscript as a back-end") (description "GNU GV is a graphical user interface to the Ghostscript interpreter. With it, one can view and navigate through PostScript and PDF documents in X Windows.") (license license:gpl3+) (home-page "https://www.gnu.org/software/gv/"))) class='msg-tooltip'>Since the switch to Guile 3.0.7 using mini-GMP, we can leave 'scm_install_gmp_memory_functions' to its default value, which is to use custom memory allocators; there is no interference with users of GMP such as GnuTLS/Nettle. * gnu/packages/aux-files/guile-launcher.c (main) [!SCM_ENABLE_MINI_GMP]: Leave 'scm_install_gmp_memory_functions' unchanged. Ludovic Courtès 2021-02-07guile: Do not install Guile/libgc allocators for GMP....Fixes <https://bugs.gnu.org/46330>. * gnu/packages/aux-files/guile-launcher.c (main): Clear 'scm_install_gmp_memory_functions'. Ludovic Courtès 2020-12-11guix: 'guile' executable ignores GUILE_LOAD_PATH during startup....When starting the 'guix' command, this ensures Guile modules are immediately found instead of being search for in other directories. This reduces the number of 'stat' calls during startup when GUILE_LOAD_PATH is set to (almost) that of "env -i $(type -P guix)". * gnu/packages/aux-files/guile-launcher.c (load_path) (load_compiled_path): New variables. (inner_main): Restore GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH and set %load-path and %load-compiled-path accordingly. (main): Save GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH and unset them. Ludovic Courtès 2020-10-05self: Use a 'guile' that doesn't complain about locales....Since commit ba48895899a117d6ace2209c3f54411a4a989133, selected UTF-8 locales are bundled. However, because 'guix-command' is itself a Guile script, users would still see Guile's warning, particularly on foreign distros: $ LC_ALL=sdf guix foo guile: warning: failed to install locale hint: Consider installing the `glibc-utf8-locales' [...] User commands would print that warning, but more importantly, each invocation of 'guix substitute' would print it, even though 'guix-daemon.service' explicitly chooses "en_US.utf8", which is in 'glibc-utf8-locales'. This leads to confusion since users would keep seeing this message unless/until they realize they also need to install 'glibc-utf8-locales' in root's profile. This patch gets rid of "guile: warning: ..." for a guix-pulled 'guix' command. * guix/self.scm (specification->package): Add "gcc-toolchain". (quiet-guile): New procedure. (guix-command): Use it. * gnu/packages/aux-files/guile-launcher.c: New file. * Makefile.am (AUX_FILES): Add it. Ludovic Courtès