aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;;
;;; 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 xfig)
  #:use-module (guix packages)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages freedesktop)
  #:use-module (gnu packages ghostscript)
  #:use-module (gnu packages xorg)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages image)
  #:use-module (gnu packages ghostscript)
  #:use-module (gnu packages imagemagick)
  #:use-module (gnu packages netpbm)
  #:use-module (gnu packages compression))

(define-public fig2dev
  (package
    (name "fig2dev")
    (version "3.2.9")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/mcj/"
                           name "-" version ".tar.xz"))
       (sha256
        (base32
         "1cch429zbmrg2zy1mkx9xwnpvkjhmlw40c88bvi2virws744dqhm"))))
    (build-system gnu-build-system)
    (arguments
     (list
      #:modules '((guix build gnu-build-system)
                  (guix build utils)
                  (srfi srfi-26))
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'install 'wrap-program
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((programs
                     (find-files (string-append #$output "/bin")))
                    (path
                     (search-path-as-list
                      '("bin")
                      (map (cut assoc-ref inputs <>)
                           (list "ghostscript" "imagemagick")))))
                (for-each (lambda (program)
                            (wrap-program program
                              `("PATH" ":" prefix ,path)))
                          programs)))))))
    (inputs
     (list libpng zlib
           ;; Quoth INSTALL:
           ;; “To run fig2dev, the packages
           ;;    ghostscript, and one out of
           ;;    netpbm | ImageMagick | GraphicsMagick
           ;; are needed to produce various bitmap output formats, or process
           ;; fig files with embedded images.”
           ghostscript
           imagemagick))
    (native-inputs
     ;; XXX: Tests fail if netpbm is absent.
     (list netpbm))
    (home-page "https://sourceforge.net/projects/mcj")
    (synopsis "Translate Fig to other graphic description formats")
    (description "Fig2dev is a set of tools for creating TeX documents with
graphics which are portable, in the sense that they can be printed in a wide
variety of environments.")
    (license
     (license:non-copyleft "file://Makefile.am"
                           "See <https://spdx.org/licenses/Xfig.html>."))))

(define-public transfig
  (deprecated-package "transfig" fig2dev))

(define-public xfig
  (package
    (name "xfig")
    (version "3.2.9")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/mcj/"
                           name "-" version ".tar.xz"))
       (sha256
        (base32
         "1xy2zqbd1wn2fij95kgnj39850r7xk74kvx7kp0dxhmvs429vv8k"))
       ;; TODO: Remove these patches and snippet when updating,
       ;; upstreamed since commit `84375ac05e923b46bbacc8b336b0dfbe29497b6b'.
       (patches
        (search-patches "xfig-Enable-error-message-for-missing-libraries.patch"
                        "xfig-Use-pkg-config-to-set-fontconfig-CFLAGS-and-LIBS.patch"
                        "xfig-Fix-double-free-when-requesting-MediaBox.patch"))
       (modules '((guix build utils)))
       (snippet
        ;; The patch-dot-desktop-files phase requires a relative name.
        #~(begin
            (substitute* "xfig.desktop"
              (("^(Exec=)/usr/bin/" _ key) key))
            ;; This forces autoreconf to be invoked, needed for patches
            ;; to be effective.
            (delete-file "configure")))))
    (build-system gnu-build-system)
    (arguments
     (list
      #:modules '((guix build gnu-build-system)
                  (guix build utils)
                  (srfi srfi-26))
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'install 'wrap-program
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((path
                     (search-path-as-list
                      '("bin")
                      (map (cut assoc-ref inputs <>)
                           (list "ghostscript" "fig2dev")))))
                (wrap-program (string-append #$output "/bin/xfig")
                  `("PATH" ":" prefix ,path))))))))
    (native-inputs
     (list pkg-config
           ;; TODO: Remove the import on (gnu packages autotools)
           ;; and related packages in the next update.
           autoconf automake libtool
           ;; For tests.
           desktop-file-utils))
    (inputs
     (list ghostscript
           fig2dev
           libxaw3d
           libjpeg-turbo
           libpng
           libxpm
           libx11
           libxft
           libxt))
    (home-page "https://mcj.sourceforge.net/")
    (synopsis "Interactive drawing tool")
    (description
     "Xfig is an interactive drawing tool which runs under X Window System.
In xfig, figures may be drawn using objects such as circles, boxes, lines,
spline curves, text, etc.  It is also possible to import images in formats
such as GIF, JPEG, EPSF (PostScript), etc.  Those objects can be created,
deleted, moved or modified.  Attributes such as colors or line styles can be
selected in various ways.  For text, 35 fonts are available.")
    (license
     (license:non-copyleft "file://Makefile.am"
                           "See <https://spdx.org/licenses/Xfig.html>."))))
-6.3, linux-libre-6.3-pristine-source, linux-libre-6.3-source, linux-libre-headers-6.3, linux-libre-6.3): New variables. * gnu/packages/aux-files/linux-libre/6.3-arm.conf, gnu/packages/aux-files/linux-libre/6.3-arm64.conf, gnu/packages/aux-files/linux-libre/6.3-i686.conf, gnu/packages/aux-files/linux-libre/6.3-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2023-04-21gnu: docbook-xml-4.1.2: Add missing catalog.xml....* gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml: New file. * Makefile.am: Register it. * gnu/packages/docbook.scm (docbook-xml-4.1.2)[arguments]: Use prebuilt catalog.xml. [native-inputs]: Add libxml2. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-04-21gnu: docbook-xml: Use XSLT to patch catalog.xml....(sxml transforms) are unsuited here due to guile-bug #20339. * gnu/packages/aux-files/xml/patch-catalog-xml.xsl: New file. * Makefile.am: Register it. * gnu/packages/docbook.scm (docbook-xml-5)[native-inputs]: Add libxslt. [arguments]: Add phase to patch catalog.xml using XSLT. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-04-14maint: Merge sanity-check-next.py into sanity-check.py....* gnu/packages/aux-files/python/sanity-check-next.py: Rename to... * gnu/packages/aux-files/python/sanity-check.py: ... this. * guix/build-system/pyproject.scm (sanity-check.py): Adjust file name. * Makefile.am (AUX_FILES): De-register sanity-check-next.py. Maxim Cournoyer 2023-03-19gnu: linux-libre: Update kernel configs for 6.2.7....* gnu/packages/aux-files/linux-libre/6.2-arm.conf, gnu/packages/aux-files/linux-libre/6.2-arm64.conf, gnu/packages/aux-files/linux-libre/6.2-i686.conf, gnu/packages/aux-files/linux-libre/6.2-x86_64.conf: Set some new configuration options. Leo Famulari 2023-03-06gnu: Add linux-libre 6.2....* gnu/packages/linux.scm (linux-libre-6.2-version, linux-libre-6.2-gnu-revision, deblob-scripts-6.2, linux-libre-6.2-pristine-source, linux-libre-6.2-source, linux-libre-headers-6.2, linux-libre-6.2): New variables. * gnu/packages/aux-files/linux-libre/6.2-arm.conf, gnu/packages/aux-files/linux-libre/6.2-arm64.conf, gnu/packages/aux-files/linux-libre/6.2-i686.conf, gnu/packages/aux-files/linux-libre/6.2-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2023-02-19gnu: linux-libre: Consistently provide the drop_monitor module....This is needed by, e.g., <https://github.com/nhorman/dropwatch>. Build it as a module everywhere for consistency. * gnu/packages/aux-files/linux-libre/4.14-i686.conf: Set CONFIG_NET_DROP_MONITOR=m. * gnu/packages/aux-files/linux-libre/4.14-x86_64.conf: Likewise. * gnu/packages/aux-files/linux-libre/4.19-i686.conf: Likewise. * gnu/packages/aux-files/linux-libre/4.19-x86_64.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.10-arm.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.10-arm64.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.10-i686.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.10-x86_64.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.15-arm.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.15-arm64.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.15-i686.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.15-x86_64.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.4-arm.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.4-arm64.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.4-i686.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.4-x86_64.conf: Likewise. * gnu/packages/aux-files/linux-libre/6.1-arm.conf: Likewise. * gnu/packages/aux-files/linux-libre/6.1-arm64.conf: Likewise. * gnu/packages/aux-files/linux-libre/6.1-i686.conf: Likewise. * gnu/packages/aux-files/linux-libre/6.1-x86_64.conf: Likewise. Reported by mirai in #guix. Tobias Geerinckx-Rice 2023-02-12gnu: linux-libre: Disable unprivileged BPF by default....* gnu/packages/aux-files/linux-libre/5.15-arm.conf: Set CONFIG_BPF_UNPRIV_DEFAULT_OFF=y. * gnu/packages/aux-files/linux-libre/5.15-arm64.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.15-i686.conf: Likewise. * gnu/packages/aux-files/linux-libre/5.15-x86_64.conf: Likewise. * gnu/packages/aux-files/linux-libre/6.1-arm.conf: Likewise. * gnu/packages/aux-files/linux-libre/6.1-arm64.conf: Likewise. * gnu/packages/aux-files/linux-libre/6.1-i686.conf: Likewise. * gnu/packages/aux-files/linux-libre/6.1-x86_64.conf: Likewise. Tobias Geerinckx-Rice 2023-02-11gnu: emacs: Add TREE_SITTER_GRAMMAR_PATH support....gnu/packages/emacs.scm (emacs)[native-search-paths]: Add a search-path for tree-sitter grammars. gnu/packages/aux-files/emacs/guix-emacs.el: Add directories from TREE_SITTER_GRAMMAR_PATH to treesit-extra-load-path. Andrew Tropin 2023-01-13gnu: Remove linux-libre 6.0....This kernel series is no longer supported upstream. * gnu/packages/linux.scm (linux-libre-6.0-version, linux-libre-6.0-gnu-revision, deblob-scripts-6.0, linux-libre-6.0-pristine-source, linux-libre-6.0-source, linux-libre-headers-6.0, linux-libre-6.0): Remove variables. * gnu/packages/aux-files/linux-libre/6.0-arm.conf, gnu/packages/aux-files/linux-libre/6.0-arm64.conf, gnu/packages/aux-files/linux-libre/6.0-i686.conf, gnu/packages/aux-files/linux-libre/6.0-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. Leo Famulari 2023-01-08gnu: Remove linux-libre 4.9....This kernel series is no longer supported upstream: https://lkml.iu.edu/hypermail/linux/kernel/2301.0/06398.html https://www.kernel.org/category/releases.html * gnu/packages/aux-files/linux-libre/4.9-i686.conf, gnu/packages/aux-files/linux-libre/4.9-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. * gnu/packages/linux.scm (linux-libre-4.9-version, linux-libre-4.9-gnu-revision, deblob-scripts-4.9, linux-libre-4.9-pristine-source, linux-libre-4.9-source, linux-libre-headers-4.9, linux-libre-4.9): Remove variables. * gnu/tests/base.scm (%test-linux-libre-4.9): Likewise. Leo Famulari 2023-01-03gnu: Add linux-libre 6.1....* gnu/packages/linux.scm (linux-libre-6.1-version, linux-libre-6.1-gnu-revision, deblob-scripts-6.1, linux-libre-6.1-source, linux-libre-headers-6.1, linux-libre-6.1): New variables. * gnu/packages/aux-files/linux-libre/6.1-arm.conf, gnu/packages/aux-files/linux-libre/6.1-arm64.conf, gnu/packages/aux-files/linux-libre/6.1-i686.conf, gnu/packages/aux-files/linux-libre/6.1-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2022-11-08gnu: Remove linux-libre 5.19....* gnu/packages/linux.scm (linux-libre-5.19-version, linux-libre-5.19-gnu-revision, deblob-scripts-5.19, linux-libre-5.19-pristine-source, linux-libre-5.19-source, linux-libre-headers-5.19, linux-libre-5.19): Remove variables. * gnu/packages/aux-files/linux-libre/5.19-arm.conf, gnu/packages/aux-files/linux-libre/5.19-arm64.conf, gnu/packages/aux-files/linux-libre/5.19-i686.conf, gnu/packages/aux-files/linux-libre/5.19-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. Leo Famulari 2022-11-02gnu: linux-libre: Add linux-libre 6.0.6....* gnu/packages/linux.scm (linux-libre-6.0-version, linux-libre-6.0-pristine-source, linux-libre-6.0-source, linux-libre-headers-6.0, linux-libre-6.0): New variables. * gnu/packages/aux-files/linux-libre/6.0-arm.conf, gnu/packages/aux-files/linux-libre/6.0-arm64.conf, gnu/packages/aux-files/linux-libre/6.0-i686.conf, gnu/packages/aux-files/linux-libre/6.0-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2022-10-27build-system: Add pyproject-build-system....This is an experimental build system based on python-build-system that implements PEP 517-compliant builds. * doc/guix.texi (Build Systems): Add pyproject-build-system section. * doc/contributing.texi (Python Modules): Mention pyproject.toml and the PYTHON-TOOLCHAIN package, as well as differences to python-build-system. * guix/build-system/pyproject.scm, guix/build/pyproject-build-system.scm, gnu/packages/aux-files/python/sanity-check-next.py, gnu/packages/python-commencement.scm: New files. * Makefile.am (MODULES): Register the new build systems. * gnu/local.mk (GNU_SYSTEM_MODULES): Add python-commencement.scm. * gnu/packages/python.scm (python-sans-pip, python-sans-pip-wrapper): New variables. Co-authored-by: Marius Bakke <marius@gnu.org> Lars-Dominik Braun 2022-09-06gnu: Remove linux-libre 5.18....* gnu/packages/linux.scm (linux-libre-5.18-version, linux-libre-5.18-gnu-revision, deblob-scripts-5.18, linux-libre-5.18-pristine-source, linux-libre-5.18-source, linux-libre-headers-5.18, linux-libre-5.18): Remove variables. * gnu/packages/aux-files/linux-libre/5.18-arm.conf, gnu/packages/aux-files/linux-libre/5.18-arm64.conf, gnu/packages/aux-files/linux-libre/5.18-i686.conf, gnu/packages/aux-files/linux-libre/5.18-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. Leo Famulari 2022-08-31gnu: Add linux-libre 5.19....* gnu/packages/linux.scm (linux-libre-5.19-version, linux-libre-5.19-gnu-revision, deblob-scripts-5.19, linux-libre-5.19-pristine-source, linux-libre-5.19-source, linux-libre-headers-5.19, linux-libre-5.19): New variables. * gnu/packages/aux-files/linux-libre/5.19-arm.conf, gnu/packages/aux-files/linux-libre/5.19-arm64.conf, gnu/packages/aux-files/linux-libre/5.19-i686.conf, gnu/packages/aux-files/linux-libre/5.19-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari