diff mbox series

[bug#40752] gnu: Add eject.

Message ID 20200421162206.527fd8c8.raghavgururajan@disroot.org
State Accepted
Headers show
Series [bug#40752] gnu: Add eject. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job

Commit Message

Raghav Gururajan April 21, 2020, 8:22 p.m. UTC

Comments

ashish.is--- via Guix-patches" via April 21, 2020, 10:28 p.m. UTC | #1
Raghav,

Thanks for the patch!  Amazing that this wasn't in Guix yet.  Even 
more amazing that I didn't package it.

Raghav Gururajan 写道:
+(define-public eject
+  (package
+    (name "eject")
+    (version "2019.08.22")

You've been around long enough to know how we package git releases 
:-)  Certainly not like this.

More like

  ;; Comment explaining why we use a git snapshot.
  (let ((commit "12a22e…")
        (revision "0"))
    (package …
      (version (git version "2.1.…" revision commit))

please.

Upstream[0 ]says there's a 2.1.6 version, but it may exist nowhere 
but in the author's mind.  If you do find a tarball, tag, or 
corresponding commit, use it, or explain in a comment why 12a22e 
is better.

+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://git.code.sf.net/p/eject/git")
+         (commit "12a22e")))

Please don't abbreviate commits like this.

+       (file-name (git-file-name name version))

Yay!

+       (sha256
+        (base32 
"1dxj0zn32l8k16j5innh8y4snambx1b702ny37114drddqcqac6h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; No target

Write ‘; no test suite’ instead, which is to be expected from a 
package like this.

‘No target’ makes it sound like who knows, there might be tests, 
but there's no make rule to run them, so we don't.  Not a good 
look.

+       #:make-flags
+       (list

Hm?  Eh?  Oh…  Please insert a comment here:

         ;; ./configure respects --prefix=; the handwritten 
         po/Makefile doesn't.

+        (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)))
+    (inputs
+     `(("lvm2" ,lvm2)
+       ("sg3-utils" ,sg3-utils)))
+    (synopsis "Utility for Removable Media")

…is too vague.  And this is worse:

+    (description "Eject allows removable media (typically a 
CD-ROM, floppy disk,
+tape, or JAZ or ZIP disk) to be ejected under software control. 
The command can
+also control some multi-disc CD-ROM changers, the auto-eject 
feature supported
+by some devices, and close the disc tray of some CD-ROM 
drives. ")

I know this is upstream's handiwork; not yours, but crikey.

Always feel free to edit the hell out of these texts.  ‘Software 
Foo allows gizmos to be frobbed under software control’? → ‘Foo 
frobs gizmos’. Done.

A quick attempt with some inspiration from Debian:

  (synopsis "Eject and safely disconnect removable media")
  (description
    "This little program will eject CD-ROMs and other ejectable 
    removable media.
It can also set the auto-eject feature, close the tray of some 
CD-ROM drives,
and select the active disc in supported multi-disc changers.

You can also use @command{eject} to properly disconnect external 
mass-storage
devices like mobile phones, digital cameras, or portable music 
players.")

+    (home-page "http://eject.sourceforge.net")
+    (license license:gpl2+)))
+

I wasn't able to apply & test this patch; I guess ‘udevil’ is 
still under review.  I don't have time to review it as well.

Please: try to add new packages in alphabetical order, NOT blindly 
to the beginning or end of files.  For once, this has nothing 
(well, less) to do with my obsession for ordnung.  It makes 
annoying issues like this less likely.

It doesn't matter that most package .scm files are an unordered 
mess: if you'd added eject near the beginning and udevil near the 
end, the two unrelated packages wouldn't conflict.

Kind regards,

T G-R

[0]: https://sourceforge.net/p/eject/git/ci/master/tree/NEWS
Danny Milosavljevic April 22, 2020, 6:55 a.m. UTC | #2
Hmm, how is this different to util-linux's eject ?
Raghav Gururajan April 23, 2020, 1:21 a.m. UTC | #3
Hi Danny!

> Hmm, how is this different to util-linux's eject ?

There is no difference, but for some reason SpaceFM use this as dependency.
This is has been packaged for the sole purpose of SpaceFM (#40753). :-)

Regards,
RG.
Janneke Nieuwenhuizen April 23, 2020, 6:16 a.m. UTC | #4
Raghav Gururajan writes:

>> Hmm, how is this different to util-linux's eject ?
>
> There is no difference, but for some reason SpaceFM use this as dependency.
> This is has been packaged for the sole purpose of SpaceFM (#40753). :-)

This page

    https://aur.archlinux.org/packages/spacefm/

suggests that on Arch, SpaceFM is using eject from util-linux.  Wouldn't
it be nice to do that in Guix too?  Maybe you can see how they did it?

Greetings,
janneke
Raghav Gururajan April 24, 2020, 6:46 p.m. UTC | #5
Hi Jan!

> This page
> 
>     https://aur.archlinux.org/packages/spacefm/
> 
> suggests that on Arch, SpaceFM is using eject from util-linux.  Wouldn't
> it be nice to do that in Guix too?  Maybe you can see how they did it?

Thanks for the info. I tried and it works. But I am wondering why to use
'util-linux' package just for one utility. This 'eject' package will be
smaller dependency than 'util-linux' package. What do you think?

Regards,
RG.
Raghav Gururajan April 24, 2020, 7:02 p.m. UTC | #6
On Fri, 24 Apr 2020 14:46:21 -0400
Raghav Gururajan <raghavgururajan@disroot.org> wrote:

> Hi Jan!
> 
> > This page
> > 
> >     https://aur.archlinux.org/packages/spacefm/
> > 
> > suggests that on Arch, SpaceFM is using eject from util-linux.  Wouldn't
> > it be nice to do that in Guix too?  Maybe you can see how they did it?  
> 
> Thanks for the info. I tried and it works. But I am wondering why to use
> 'util-linux' package just for one utility. This 'eject' package will be
> smaller dependency than 'util-linux' package. What do you think?

On the second thought, 'util-linux' is better maintained. So I'll close this
ticket.

Regards,
RG.
diff mbox series

Patch

From a7fcab4e6ea2e61c4a18520a1a462250a503eba7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 21 Apr 2020 16:20:27 -0400
Subject: [PATCH 2/2] gnu: Add eject.

* gnu/packages/disk.scm (eject): New variable.
---
 gnu/packages/disk.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 573cc88c34..8b2a432e9c 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -66,6 +66,7 @@ 
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages samba)
+  #:use-module (gnu packages scsi)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages swig)
@@ -86,6 +87,41 @@ 
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages))
 
+(define-public eject
+  (package
+    (name "eject")
+    (version "2019.08.22")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://git.code.sf.net/p/eject/git")
+         (commit "12a22e")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dxj0zn32l8k16j5innh8y4snambx1b702ny37114drddqcqac6h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; No target
+       #:make-flags
+       (list
+        (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)))
+    (inputs
+     `(("lvm2" ,lvm2)
+       ("sg3-utils" ,sg3-utils)))
+    (synopsis "Utility for Removable Media")
+    (description "Eject allows removable media (typically a CD-ROM, floppy disk,
+tape, or JAZ or ZIP disk) to be ejected under software control.  The command can
+also control some multi-disc CD-ROM changers, the auto-eject feature supported
+by some devices, and close the disc tray of some CD-ROM drives. ")
+    (home-page "http://eject.sourceforge.net")
+    (license license:gpl2+)))
+
 (define-public udevil
   (package
     (name "udevil")
-- 
2.26.1