[PATCH] gnu: Add trash-d.

  • Open
  • quality assurance status badge
Details
One participant
  • Hugo Nobrega
Owner
unassigned
Submitted by
Hugo Nobrega
Severity
normal
H
H
Hugo Nobrega wrote on 7 Dec 2023 16:34
(address . guix-patches@gnu.org)(name . Hugo Nobrega)(address . hugonobrega@gmail.com)
d6ab38823333b95771db3767bfd78508feb410db.1701963280.git.hugonobrega@gmail.com
Change-Id: Ib216ec159ef256b79b3fba740ad3fc1575f5ecbc
---
gnu/packages/dlang-xyz.scm | 75 ++++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)
create mode 100644 gnu/packages/dlang-xyz.scm

Toggle diff (85 lines)
diff --git a/gnu/packages/dlang-xyz.scm b/gnu/packages/dlang-xyz.scm
new file mode 100644
index 0000000000..14015f8bc2
--- /dev/null
+++ b/gnu/packages/dlang-xyz.scm
@@ -0,0 +1,75 @@
+;;; GNU Guix --- Functional package management for GNU
+;;;
+;;; 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 dlang-xyz)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages commencement)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages dlang)
+ #:use-module (gnu packages groff)
+ #:use-module (guix build-system dub)
+ #:use-module (guix git-download)
+ #:use-module (guix packages))
+
+(define-public trash-d
+ (package
+ (name "trash-d")
+ (version "19")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rushsteve1/trash-d.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256 (base32 "1ljj1fqlby15iaar4pzni3h2hc7ncj2gads26bz2cala0inl3ywf"))))
+ (build-system dub-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'set-env-cc
+ (lambda _
+ (setenv "CC" "gcc")))
+ (add-before 'build 'touch-dub-json
+ (lambda _
+ (mkdir-p ".dub")
+ (open-output-file ".dub/dub.json")))
+ (add-before 'build 'patch-build-dub
+ (lambda _
+ (substitute* "dub.json"
+ (("\"dflags-linux-ldc\": \\[\"-static\"\\]")
+ "\"dflags-ldc\": []"))))
+ (add-before 'install 'make-man-page
+ (lambda _
+ (invoke "ronn" "--roff" "MANUAL.md")
+ (invoke "mv" "MANUAL.1" "trash.1")
+ (invoke "gzip" "-9" "trash.1")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "build/trash" (string-append (assoc-ref outputs "out")
+ "/bin"))
+ (install-file "trash.1.gz" (string-append (assoc-ref outputs "out")
+ "/share/man/man1")))))))
+ (native-inputs
+ (list ld-gold-wrapper ronn-ng groff-minimal gzip))
+ (home-page "https://github.com/rushsteve1/trash-d")
+ (synopsis "Delete files using the FreeDesktop trash bin")
+ (description "A near drop-in replacement for rm that uses the FreeDesktop
+trash bin. trash-d is written in the D programming language using only D's
+Phobos standard library.")
+ (license license:expat)))

base-commit: 06f25a9a85be1bbe7a709e58ce41c1a834e5f1ae
--
2.41.0
H
H
Hugo Nobrega wrote on 7 Dec 2023 16:40
(address . guix-patches@gnu.org)
CA+hgWQNdQWUQ_broVmPBKvdsSrZpfmRUbe7d0f-fpEmb0EyZaQ@mail.gmail.com
Some comments:

- this is my first "proper" patch so I apologize for any faux-pas :)

- in particular, I didn't quite know where to put the package, so I thought
I
would follow tradition and put it in a "language-xyz.scm" file, which is
new in
this case (the language is D)

- I didn't know what to do with the Copyright line in the new file, so I
didn't
add one

Best regards,
Hugo
Attachment: file
?