unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#29472] [patch 0/4] Add perl-file-mimeinfo and dependencies; add it as an input to xdg-utils
@ 2017-11-27 12:50 brendan.tildesley
  2017-11-27 12:54 ` [bug#29472] [PATCH 1/4] gnu: Add perl-file-basedir Brendan Tildesley
  0 siblings, 1 reply; 6+ messages in thread
From: brendan.tildesley @ 2017-11-27 12:50 UTC (permalink / raw)
  To: 29472

I was wondering why my pdf documents were getting opened in Gimp by default instead of Evince, so I investigated xdg-open and found it uses mimeopen as a fallback, and packaged it. Turns out it didn't make a difference and the issue was simply that the generated mimedata.cache in xdg-mime-database had Gimp listed before Evince.

I was also I little confused that xdg-mime-database produces so many conflicts with shared-mime-info. It's role appears to be to update the data in shared-mime-data and have it overshadow the original data when  conflicts are resolved during profile generation. Looks ugly seeing all those conflicts though.

I had a look at Fedora's version. They just have a single shared-mime-data package that runs update-mime-database, but also they add a few changes to make Evince open pdf's instead of Gimp, among other changes.

This makes me feel that it's desirable for us to also tweak mimedata to make it more sensible -- Pdf's should open in a pdf reader before it opens in an image editor. It seems unrealistic to only tweak upstream projects to make all this mimedata mesh together perfectly to produce ideal default behaviour.

I rambled on a bit too much... Here are some patches that add perl-file-mimeinfo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#29472] [PATCH 1/4] gnu: Add perl-file-basedir.
  2017-11-27 12:50 [bug#29472] [patch 0/4] Add perl-file-mimeinfo and dependencies; add it as an input to xdg-utils brendan.tildesley
@ 2017-11-27 12:54 ` Brendan Tildesley
  2017-11-27 12:54   ` [bug#29472] [PATCH 2/4] gnu: Add perl-file-desktopentry Brendan Tildesley
                     ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Brendan Tildesley @ 2017-11-27 12:54 UTC (permalink / raw)
  To: 29472

* gnu/packages/perl.scm: (perl-file-basedir): New variable.
---
 gnu/packages/perl.scm | 33 ++++++++++++++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 73bab96a2..b52d6fd91 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -44,7 +44,8 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-web)
-  #:use-module (gnu packages pkg-config))
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages freedesktop))
 
 ;;;
 ;;; Please: Try to add new module packages in alphabetic order.
@@ -3418,6 +3419,36 @@ files, it will not remove directories; this module remedies that.  It also
 accepts wildcards, * and ?, as arguments for file names.")
     (license (package-license perl))))
 
+(define-public perl-file-basedir
+  (package
+    (name "perl-file-basedir")
+    (version "0.07")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/K/KI/KIMRYAN/"
+                           "File-BaseDir-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0aq8d4hsaxqibp36f773y6dfck7zd82v85sp8vhi6pjkg3pmf2hj"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-file-which" ,perl-file-which)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+       ("xdg-user-dirs" ,xdg-user-dirs)))
+    (propagated-inputs
+     `(("perl-ipc-system-simple" ,perl-ipc-system-simple)))
+    (home-page "http://search.cpan.org/dist/File-BaseDir/")
+    (synopsis "Use the Freedesktop.org base directory specification")
+    (description
+     "File::Basedir can be used to find directories and files as specified by
+the Freedesktop.org Base Directory Specification.  This specifications gives a
+mechanism to locate directories for configuration, application data and cache
+data.")
+    (license (package-license perl))))
+
 (define-public perl-file-sharedir
   (package
     (name "perl-file-sharedir")
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#29472] [PATCH 2/4] gnu: Add perl-file-desktopentry.
  2017-11-27 12:54 ` [bug#29472] [PATCH 1/4] gnu: Add perl-file-basedir Brendan Tildesley
@ 2017-11-27 12:54   ` Brendan Tildesley
  2017-11-27 12:54   ` [bug#29472] [PATCH 3/4] gnu: Add perl-file-mimeinfo Brendan Tildesley
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Brendan Tildesley @ 2017-11-27 12:54 UTC (permalink / raw)
  To: 29472

* gnu/packages/perl.scm (perl-file-desktopentry): New variable.
---
 gnu/packages/perl.scm | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index b52d6fd91..bacaaf38a 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -45,7 +45,8 @@
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages freedesktop))
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages web))
 
 ;;;
 ;;; Please: Try to add new module packages in alphabetic order.
@@ -3449,6 +3450,33 @@ mechanism to locate directories for configuration, application data and cache
 data.")
     (license (package-license perl))))
 
+(define-public perl-file-desktopentry
+  (package
+    (name "perl-file-desktopentry")
+    (version "0.22")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
+                           "File-DesktopEntry-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1f1maqix2kbfg2rf008m7mqnvv6nvcf9y6pcgdv2kxp2vbih370n"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (propagated-inputs
+     `(("perl-file-basedir" ,perl-file-basedir)
+       ("perl-uri" ,perl-uri)))
+    (home-page "http://search.cpan.org/~michielb/File-DesktopEntry/")
+    (synopsis "Handle .desktop files")
+    (description
+     "File::Desktopentry parses .desktop files defined by the Freedesktop.org
+\"Desktop Entry\" specification.  It can also run the applications define in
+those files.")
+    (license (package-license perl))))
+
 (define-public perl-file-sharedir
   (package
     (name "perl-file-sharedir")
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#29472] [PATCH 3/4] gnu: Add perl-file-mimeinfo.
  2017-11-27 12:54 ` [bug#29472] [PATCH 1/4] gnu: Add perl-file-basedir Brendan Tildesley
  2017-11-27 12:54   ` [bug#29472] [PATCH 2/4] gnu: Add perl-file-desktopentry Brendan Tildesley
@ 2017-11-27 12:54   ` Brendan Tildesley
  2017-11-27 12:54   ` [bug#29472] [PATCH 4/4] gnu: xdg-utils: Add perl-file-mimeinfo as an input Brendan Tildesley
  2017-11-28  9:44   ` bug#29472: [PATCH 1/4] gnu: Add perl-file-basedir Ludovic Courtès
  3 siblings, 0 replies; 6+ messages in thread
From: Brendan Tildesley @ 2017-11-27 12:54 UTC (permalink / raw)
  To: 29472

* gnu/packages/perl.scm (perl-file-mimeinfo): New variable.
---
 gnu/packages/perl.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index bacaaf38a..f658b9177 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -46,6 +46,7 @@
   #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages web))
 
 ;;;
@@ -3477,6 +3478,53 @@ data.")
 those files.")
     (license (package-license perl))))
 
+(define-public perl-file-mimeinfo
+  (package
+    (name "perl-file-mimeinfo")
+    (version "0.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
+                           "File-MimeInfo-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ipbh63bkh1r2gy5g7q4bzhki8j29mm1jkhbv60p9vwsdys5s91a"))))
+    (build-system perl-build-system)
+    ;; If the tests are fixed, add perl-test-pod, perl-test-pod-coverage, and
+    ;; perl-test-tiny as native-inputs.
+    (propagated-inputs
+     `(("shared-mime-info" ,shared-mime-info)
+       ("perl-file-desktopentry" ,perl-file-desktopentry)))
+    (arguments
+     ;; Some tests fail due to requiring the mimetype of perl files to be
+     ;; text/plain when they are actually application/x-perl.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each (lambda (prog)
+                           (wrap-program (string-append out "/bin/" prog)
+                             `("PERL5LIB" ":" prefix
+                               (,(string-append (getenv "PERL5LIB") ":" out
+                                                "/lib/perl5/site_perl")))))
+                         '("mimeopen" "mimetype")))
+             #t)))))
+    (home-page "http://search.cpan.org/dist/File-MimeInfo/")
+    (synopsis "Determine file type from the file name")
+    (description
+     "File::Mimeinfo can be used to determine the mime type of a file.  It
+tries to implement the freedesktop specification for a shared MIME database.
+
+ This package also contains two related utilities:
+@itemize
+@item mimetype: Determine a file's mimetype.
+@item mimeopen: Open files in an appropriate program according to their mimetype.
+@end itemize")
+    (license (package-license perl))))
+
 (define-public perl-file-sharedir
   (package
     (name "perl-file-sharedir")
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#29472] [PATCH 4/4] gnu: xdg-utils: Add perl-file-mimeinfo as an input.
  2017-11-27 12:54 ` [bug#29472] [PATCH 1/4] gnu: Add perl-file-basedir Brendan Tildesley
  2017-11-27 12:54   ` [bug#29472] [PATCH 2/4] gnu: Add perl-file-desktopentry Brendan Tildesley
  2017-11-27 12:54   ` [bug#29472] [PATCH 3/4] gnu: Add perl-file-mimeinfo Brendan Tildesley
@ 2017-11-27 12:54   ` Brendan Tildesley
  2017-11-28  9:44   ` bug#29472: [PATCH 1/4] gnu: Add perl-file-basedir Ludovic Courtès
  3 siblings, 0 replies; 6+ messages in thread
From: Brendan Tildesley @ 2017-11-27 12:54 UTC (permalink / raw)
  To: 29472

* gnu/packages/freedesktop.scm (perl-file-mimeinfo)
[input]: Add perl-file-mimeinfo.
---
 gnu/packages/freedesktop.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index cac1f67c5..a830cd93e 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -56,6 +56,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages m4)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -85,7 +86,8 @@
        ("w3m" ,w3m)
        ("xmlto" ,xmlto)))
     (propagated-inputs
-     `(("xprop" ,xprop) ; for Xfce detecting
+     `(("perl-file-mimeinfo" ,perl-file-mimeinfo) ; for mimeopen fallback
+       ("xprop" ,xprop) ; for Xfce detecting
        ("xset" ,xset))) ; for xdg-screensaver
     (arguments
      `(#:tests? #f   ; no check target
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#29472: [PATCH 1/4] gnu: Add perl-file-basedir.
  2017-11-27 12:54 ` [bug#29472] [PATCH 1/4] gnu: Add perl-file-basedir Brendan Tildesley
                     ` (2 preceding siblings ...)
  2017-11-27 12:54   ` [bug#29472] [PATCH 4/4] gnu: xdg-utils: Add perl-file-mimeinfo as an input Brendan Tildesley
@ 2017-11-28  9:44   ` Ludovic Courtès
  3 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2017-11-28  9:44 UTC (permalink / raw)
  To: Brendan Tildesley; +Cc: 29472-done

Hi Brendan,

I applied all 4 patches.  However I took the liberty (1) to add a bit of
@code etc. markup in descriptions, and (2) to move them to
freedesktop.scm so that perl.scm doesn’t pull in all of
freedesktop/gnome.

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-11-28  9:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-27 12:50 [bug#29472] [patch 0/4] Add perl-file-mimeinfo and dependencies; add it as an input to xdg-utils brendan.tildesley
2017-11-27 12:54 ` [bug#29472] [PATCH 1/4] gnu: Add perl-file-basedir Brendan Tildesley
2017-11-27 12:54   ` [bug#29472] [PATCH 2/4] gnu: Add perl-file-desktopentry Brendan Tildesley
2017-11-27 12:54   ` [bug#29472] [PATCH 3/4] gnu: Add perl-file-mimeinfo Brendan Tildesley
2017-11-27 12:54   ` [bug#29472] [PATCH 4/4] gnu: xdg-utils: Add perl-file-mimeinfo as an input Brendan Tildesley
2017-11-28  9:44   ` bug#29472: [PATCH 1/4] gnu: Add perl-file-basedir Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).