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."))))
490b52459c31191d578619f9ea1edcbaf Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Giacomo Leidi 2024-03-01gnu: Add bruteforce-salted-openssl....* gnu/packages/password-utils.scm (bruteforce-salted-openssl): New variable. Change-Id: I90e52a6f70333ef14024fd794b6cb55692fdc24e Guillaume Le Vaillant 2024-03-01gnu: bruteforce-luks: Update to 1.4.1....* gnu/packages/password-utils.scm (bruteforce-luks): Update to 1.4.1. [source]: Switch to git-fetch method. [native-inputs]: Remove lzip, add autoconf and automake. Change-Id: Iea339deb9d4331cb0813468fbcd84b7a5112e6bd Guillaume Le Vaillant 2024-02-26gnu: Add pass-coffin...* gnu/packages/password-utils.scm (pass-coffin): New variable. Reviewed-by: Steve George <steve@futurile.net> Change-Id: I2fdf6c755b9b75780c5a3c0304e5b961a15640a4 Signed-off-by: Andreas Enge <andreas@enge.fr> Christian Miller via Guix-patches via 2024-02-13gnu: go-golang-org-x-sys: Move to golang-build....* gnu/packages/golang.scm (go-golang-org-x-sys): Move from here ... * gnu/packages/golang-build.scm: ... to here. * gnu/packages/curl.scm: Add (gnu packages golang-build) module. * gnu/packages/databases.scm: As above. * gnu/packages/docker.scm: As above. * gnu/packages/golang-build.scm: As above. * gnu/packages/golang.scm: As above. * gnu/packages/irc.scm: As above. * gnu/packages/linux.scm: As above. * gnu/packages/password-utils.scm: As above. * gnu/packages/syncthing.scm: As above. * gnu/packages/textutils.scm: As above. * gnu/packages/vpn.scm: As above. * gnu/packages/weather.scm: As above. * gnu/packages/web.scm: As above. Change-Id: I161e89cacb9aa87b4fbb643ecd9ad32cfe49c9d7 Sharlatan Hellseher 2024-02-13gnu: qtpass: Switch to qt-build-system and new package style....* gnu/packages/password-utils.scm (qtpass): Use qt-build-system. [arguments]: Drop 'wrap-qt and 'check-setup phases. Drop the unnecessary 'reset-resource-timestamps phase. Use new package style for remaining phases. [inputs]: Drop qtbase-5. Change-Id: I23a0b8dfd1fdfeca343704d3df084c522b319d30 Signed-off-by: Christopher Baines <mail@cbaines.net> Timotej Lazar 2024-02-13gnu: qtpass: Update to 1.4.0....* gnu/packages/password-utils.scm (qtpass): Update to 1.4.0. Change-Id: Ia0d29a0044b8bfedef692aba337d1ef23c672804 Signed-off-by: Christopher Baines <mail@cbaines.net> Timotej Lazar 2024-01-28gnu: go-filippo-io-edwards25519: Move to (gnu packages golang-crypto)....* gnu/packages/golang.scm (go-filippo-io-edwards25519): Move from here ... * gnu/packages/golang-crypto.scm: ... to here. * gnu/packages/password-utils.scm: Add (gnu packages golang-crypto) to used modules. Change-Id: I11769b8b212bf4cbe98fe10181c0a2a479c599df Sharlatan Hellseher 2023-12-23gnu: argon2: Fix cross-compilation....* gnu/packages/password-utils.scm (argon2): Use `cc-for-target'. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Change-Id: Ia33ad67a2a05d82be036080f1938865daa11cfe9 Leo Nikkilä 2023-12-10gnu: keepassxc: Record file name of ‘xclip’ and ‘wl-copy’....* gnu/packages/password-utils.scm (keepassxc)[arguments]: Add ‘record-clipboard-programs’ phase. [inputs]: Add WL-CLIPBOARD and XCLIP. Change-Id: I3cfe3d8604da575f6bf5e5cf3ce862fbac099ab6 Ludovic Courtès 2023-11-04gnu: password-store: Add missing ‘tail’ input....* gnu/packages/password-utils.scm (password-store)[arguments]: Add “tail” to the list of requisites. [inputs]: Add COREUTILS. Change-Id: I7f59e6c0abfb5396b9548edaec08d3b0a7c0eb23 Clément Lassieur 2023-09-28gnu: keepassxc: Switch to qt-build-system....* gnu/packages/password-utils.scm (keepassxc): Use qt-build-system. [build-system]: Switch to qt-build-system. [arguments]: Drop superfluous phase and modules. [inputs]: Drop qtbase-5. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Timotej Lazar 2023-09-19gnu: keepassxc: Update to 2.7.6....* gnu/packages/password-utils.scm (keepassxc): Update to 2.7.6. Efraim Flashner 2023-08-31gnu: xkcdpass: Update to 1.19.4....* gnu/packages/password-utils.scm (xkcdpass): Update to 1.19.4. 宋文武 2023-08-02gnu: john-the-ripper-jumbo: Fix compilation with GCC 11+....* gnu/packages/patches/john-the-ripper-jumbo-with-gcc-11.patch: New file. * gnu/local.mk (dist_PATCH_DATA): Register it. * gnu/packages/password-utils.scm (john-the-ripper-jumbo)[source]: Use it. Co-authored-by: Guillaume Le Vaillant <glv@posteo.net> Jakob Kirsch 2023-07-22gnu: tessen: Update to 2.2.1....* gnu/packages/password-utils.scm (tessen): Update to 2.2.1. [arguments]<#:make-flags>: Set DESTDIR. [license]: License has been changed to GPL2-only. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Hilton Chain 2023-07-16gnu: yapet: Fix documentation directory....* gnu/packages/password-utils.scm (yapet)[arguments]: Add missing stroke. Tobias Geerinckx-Rice 2023-07-16gnu: yapet: Update to 2.6....* gnu/packages/password-utils.scm (yapet): Update to 2.6. Tobias Geerinckx-Rice 2023-07-16gnu: passwdqc: Update to 2.0.3....* gnu/packages/password-utils.scm (passwdqc): Update to 2.0.3. Tobias Geerinckx-Rice 2023-07-16gnu: otpclient: Update to 3.1.9....* gnu/packages/password-utils.scm (otpclient): Update to 3.1.9. Tobias Geerinckx-Rice 2023-07-16gnu: hydra: Update to 9.5....* gnu/packages/password-utils.scm (hydra): Update to 9.5. Tobias Geerinckx-Rice