diff mbox series

[bug#67692] gnu: Add trash-d.

Message ID d6ab38823333b95771db3767bfd78508feb410db.1701963280.git.hugonobrega@gmail.com
State New
Headers show
Series [bug#67692] gnu: Add trash-d. | expand

Commit Message

Hugo Nobrega Dec. 7, 2023, 3:34 p.m. UTC
Change-Id: Ib216ec159ef256b79b3fba740ad3fc1575f5ecbc
---
 gnu/packages/dlang-xyz.scm | 75 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100644 gnu/packages/dlang-xyz.scm


base-commit: 06f25a9a85be1bbe7a709e58ce41c1a834e5f1ae

Comments

Hugo Nobrega Dec. 7, 2023, 3:40 p.m. UTC | #1
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
diff mbox series

Patch

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)))