aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
;;;
;;; 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 zile)
  #:use-module (guix licenses)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix packages)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages bdw-gc)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages guile)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages gnupg)
  #:use-module (gnu packages m4)
  #:use-module (gnu packages man)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages version-control))

(define-public zile
  (package
    (name "zile")
    (version "2.6.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/zile/zile-"
                                 version ".tar.gz"))
             (sha256
              (base32
               "0hf788zadmwx0xp1dhrgqcfvhwnarh6h9b51va4dr2y9yfppvsvp"))))
    (build-system gnu-build-system)
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-before 'configure 'patch-/bin/sh
           (lambda* (#:key inputs #:allow-other-keys)
             (let ((bash (assoc-ref inputs "bash")))
               ;; Refer to the actual shell.
               (substitute* '("src/shell.c")
                 (("/bin/sh")
                  (string-append bash "/bin/sh")))
               #t)))
         ;; Zile generates its manual pages by calling the built Zile
         ;; with the --help argument.  That does not work when cross-
         ;; compiling; use the native Zile added below in that case.
         ,@(if (%current-target-system)
               '((add-before 'build 'use-native-zile-for-documentation
                   (lambda _
                     (substitute* "build-aux/zile-help2man-wrapper"
                       (("src/zile")
                        (which "zile")))
                     #t)))
               '()))))
    (inputs
     `(("boehm-gc" ,libgc)
       ("ncurses" ,ncurses)
       ("bash" ,bash)
       ("gee" ,libgee)
       ("glib" ,glib)))
    (native-inputs
     `(("perl" ,perl)
       ("help2man" ,help2man)
       ;; When cross-compiling, Zile needs a native version of itself to
       ;; generate the manual pages (see the related phase above).
       ,@(if (%current-target-system)
             `(("self" ,this-package))
             '())
       ("pkg-config" ,pkg-config)))
    (home-page "https://www.gnu.org/software/zile/")
    (synopsis "Lightweight Emacs clone")
    (description
     "GNU Zile is a lightweight Emacs clone.  It usage is similar to the
default Emacs configuration, but it carries a much lighter feature set.")
    (license gpl3+)))

(define-public zile-on-guile
  ;; This is a fork of Zile that uses Guile, announced here:
  ;; <http://lists.gnu.org/archive/html/guile-user/2012-02/msg00033.html>.
  (let ((commit "fd097811a60e58696d734c35b0eb7da3afc1adb7")
        (revision "0"))
    (package
      (inherit zile)
      (name "zile-on-guile")
      (version (string-append (package-version zile)
                              "-" revision "."
                              (string-take commit 7)))
      (home-page "https://github.com/spk121/zile")
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url home-page)
                      (commit commit)
                      (recursive? #t)))           ;for the Gnulib sub-module
                (sha256
                 (base32
                  "0wlli8hqal9ikmbl3a49kyhzyf164jk6mdbir3bclq2gxszs532d"))
                (file-name (string-append name "-" version "-checkout"))))
      (inputs
       (modify-inputs (package-inputs zile)
         (prepend guile-2.0)))
      (native-inputs
       `(("m4" ,m4)                               ;for 'bootstrap'
         ("autoconf" ,autoconf)
         ("automake" ,automake)

         ;; For some reason, 'bootstrap' insists on having these.
         ("git" ,git)
         ("gpg" ,gnupg)

         ,@(package-native-inputs zile)))
      (arguments
       (substitute-keyword-arguments (package-arguments zile)
         ((#:phases phases)
          `(modify-phases ,phases
             (replace 'bootstrap
               (lambda _
                 ;; Make sure all the files are writable so that ./bootstrap
                 ;; can proceed.
                 (for-each (lambda (file)
                             (chmod file #o755))
                           (find-files "."))
                 (patch-shebang "gnulib/gnulib-tool")
                 (invoke "sh" "./bootstrap"
                         "--gnulib-srcdir=gnulib"
                         "--skip-git" "--skip-po"
                         "--verbose")))
             (replace 'patch-/bin/sh
               (lambda* (#:key inputs #:allow-other-keys)
                 (let ((bash (assoc-ref inputs "bash")))
                   ;; Refer to the actual shell.
                   (substitute* '("lib/spawni.c" "src/funcs.c")
                     (("/bin/sh")
                      (string-append bash "/bin/sh")))
                   #t)))
             (add-after 'install 'wrap-command
               (lambda* (#:key outputs #:allow-other-keys)
                 ;; Add zile.scm to the search path.
                 (let* ((out    (assoc-ref outputs "out"))
                        (scheme (dirname
                                 (car (find-files out "^zile\\.scm$")))))
                   (wrap-program (string-append out "/bin/zile-on-guile")
                     `("GUILE_LOAD_PATH" ":" prefix (,scheme)))
                   #t)))))))
      (synopsis "Lightweight clone of the Emacs editor using Guile")
      (description
       "GNU Zile is a lightweight clone of the Emacs editor, and Zile-on-Guile
is a variant of Zile that can be extended in Guile Scheme.  Hitting
@kbd{M-C} (or: @kbd{Alt} and @kbd{C}) brings up a Guile REPL from which
interactive functions akin to those of Emacs can be invoked."))))
pdate to 2.10.6....* gnu/packages/gimp.scm (gimp): Update to 2.10.6. Tobias Geerinckx-Rice 2018-08-20gnu: gegl: Update to 0.4.8....* gnu/packages/gimp.scm (gegl): Update to 0.4.8. Tobias Geerinckx-Rice 2018-08-20gnu: babl: Update to 0.1.56....* gnu/packages/gimp.scm (babl): Update to 0.1.56. Tobias Geerinckx-Rice 2018-08-17gnu: Use HTTPS for gtk.org....* gnu/packages/gimp.scm (babl)[source]: Use HTTPS for ftp.gtk.org. * gnu/packages/gnome.scm (rest)[home-page]: Use HTTPS for www.gtk.org. * gnu/packages/gtk.scm (gtk+-2, gtk-doc)[home-page]: Likewise. Tobias Geerinckx-Rice 2018-07-15gnu: gimp: Use libjpeg@9....* gnu/packages/gimp.scm (gimp)[inputs]: Replace libjpeg@8 with libjpeg. Efraim Flashner 2018-07-15gnu: gegl: Use libjpeg@9....* gnu/packages/gimp.scm (gegl)[inputs]: Replace libjpeg@8 with libjpeg. Efraim Flashner 2018-07-08gnu: gimp: Update to 2.10.4....* gnu/packages/gimp.scm (gimp): Update to 2.10.4. Tobias Geerinckx-Rice 2018-07-08gnu: gegl: Update to 0.4.4....* gnu/packages/gimp.scm (gegl): Update to 0.4.4. Tobias Geerinckx-Rice 2018-07-08gnu: babl: Update to 0.1.52....* gnu/packages/gimp.scm (babl): Update to 0.1.52. Tobias Geerinckx-Rice 2018-06-21gnu: gimp: Update to 2.10.2....* gnu/packages/gimp.scm (gimp): Update to 2.10.2. Tobias Geerinckx-Rice 2018-06-21gnu: gegl: Update to 0.4.2....* gnu/packages/gimp.scm (gegl): Update to 0.4.2. Tobias Geerinckx-Rice 2018-06-21gnu: babl: Update to 0.1.50....* gnu/packages/gimp.scm (babl): Update to 0.1.50. Tobias Geerinckx-Rice 2018-05-29gnu: mypaint-brushes: Fetch source from git....* gnu/packages/gimp.scm (mypaint-brushes)[source]: Fetch source from git. Ricardo Wurmus 2018-05-29gnu: mypaint-brushes: Fix build....* gnu/packages/gimp.scm (mypaint-brushes)[arguments]: Remove bootstrap phase; add "relax-dependency-version" phase. Ricardo Wurmus 2018-05-23gnu: gimp-fourier: Fix build....* gnu/packages/gimp.scm (gimp-fourier)[arguments]: Copy gegl-0.4.pc to gegl-0.3.pc in the configure phase. [inputs]: Add gegl. Ricardo Wurmus 2018-04-30gnu: gimp: Update to 2.10.0....* gnu/packages/gimp.scm (gimp): Update to 2.10.0. [inputs]: Add glib-networking, gexiv2, libmypaint, mypaint-brushes and poppler-data. [native-inputs]: Add glib:bin. [source]: Remove obsolete patches and use HTTPS URL. [home-page]: Use HTTPS URL. * gnu/packages/patches/gimp-CVE-2017-17784.patch, gnu/packages/patches/gimp-CVE-2017-17785.patch, gnu/packages/patches/gimp-CVE-2017-17786.patch, gnu/packages/patches/gimp-CVE-2017-17787.patch, gnu/packages/patches/gimp-CVE-2017-17789.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. Leo Famulari 2018-04-30gnu: babl: Update to 0.1.46....* gnu/packages/gimp.scm (babl): Update to 0.1.46. Leo Famulari 2018-04-30gnu: gegl: Update to 0.4....* gnu/packages/gimp.scm (gegl): Update to 0.4. [inputs]: Move babl and glib to propagated-inputs. [propagated-inputs]: Add json-glib. [arguments]: Re-enable the tests and remove the obsolete 'pre-build' phase. [source]: Use HTTPS URL. * gnu/packages/patches/gegl-CVE-2012-4433.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. Leo Famulari 2018-04-30gnu: Add mypaint-brushes....* gnu/packages/gimp.scm (mypaint-brushes): New variable. Leo Famulari 2018-04-30gnu: Add libmypaint....* gnu/packages/gimp.scm (libmypaint): New variable. Leo Famulari 2018-03-17gnu: Fix common unquote typos....It's easy to mistype ‘("foo" foo)’ as ‘("foo", foo)’ (which also works). Fix such typos for the proper edification of our young. * gnu/packages/android.scm: Move unquotes to their operands. * gnu/packages/bootloaders.scm: Likewise. * gnu/packages/build-tools.scm: Likewise. * gnu/packages/chemistry.scm: Likewise. * gnu/packages/compression.scm: Likewise. * gnu/packages/connman.scm: Likewise. * gnu/packages/django.scm: Likewise. * gnu/packages/emulators.scm: Likewise. * gnu/packages/engineering.scm: Likewise. * gnu/packages/file-systems.scm: Likewise. * gnu/packages/freedesktop.scm: Likewise. * gnu/packages/games.scm: Likewise. * gnu/packages/gimp.scm: Likewise. * gnu/packages/gl.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/graphics.scm: Likewise. * gnu/packages/haskell.scm: Likewise. * gnu/packages/irc.scm: Likewise. * gnu/packages/julia.scm: Likewise. * gnu/packages/kde-frameworks.scm: Likewise. * gnu/packages/linux.scm: Likewise. * gnu/packages/lua.scm: Likewise. * gnu/packages/mail.scm: Likewise. * gnu/packages/make-bootstrap.scm: Likewise. * gnu/packages/messaging.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/networking.scm: Likewise. * gnu/packages/ocaml.scm: Likewise. * gnu/packages/perl.scm: Likewise. * gnu/packages/python.scm: Likewise. * gnu/packages/python-web.scm: Likewise. * gnu/packages/qt.scm: Likewise. * gnu/packages/ratpoison.scm: Likewise. * gnu/packages/sdl.scm: Likewise. * gnu/packages/sml.scm: Likewise. * gnu/packages/terminals.scm: Likewise. * gnu/packages/text-editors.scm: Likewise. * gnu/packages/video.scm: Likewise. * gnu/packages/virtualization.scm: Likewise. * gnu/packages/vulkan.scm: Likewise. * gnu/packages/wget.scm: Likewise. * gnu/packages/wine.scm: Likewise. * gnu/packages/wm.scm: Likewise. * gnu/packages/xdisorg.scm: Likewise. * gnu/packages/xml.scm: Likewise. * gnu/packages/xorg.scm: Likewise. Tobias Geerinckx-Rice 2018-01-21gnu: babl: Update to 0.1.40....* gnu/packages/gimp.scm (babl): Update to 0.1.40. Tobias Geerinckx-Rice 2018-01-21gnu: babl: Parameterise source URI....* gnu/packages/gimp.scm (babl)[source]: Use VERSION-MAJOR+MINOR. Tobias Geerinckx-Rice 2018-01-21gnu: babl: Edit description....* gnu/packages/gimp.scm (babl)[description]: Edit. Tobias Geerinckx-Rice 2017-12-31gnu: gimp: Fix CVE-2017-{17784,17785,17786,17787,17789}....* gnu/packages/patches/gimp-CVE-2017-17784.patch, gnu/packages/patches/gimp-CVE-2017-17785.patch, gnu/packages/patches/gimp-CVE-2017-17786.patch, gnu/packages/patches/gimp-CVE-2017-17787.patch, gnu/packages/patches/gimp-CVE-2017-17789.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/gimp.scm (gimp)[source]: Use them. Leo Famulari 2017-12-20gnu: babl: Update to 0.1.38....* gnu/packages/gimp.scm (babl): Update to 0.1.38. Leo Famulari