unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / Atom feed
* [bug#43433] [PATCH] gnu: Add cozy.
@ 2020-09-15 20:50 Vinicius Monego
  2020-09-17 14:04 ` Mathieu Othacehe
  0 siblings, 1 reply; 4+ messages in thread
From: Vinicius Monego @ 2020-09-15 20:50 UTC (permalink / raw)
  To: 43433; +Cc: Vinicius Monego

* gnu/packages/ebook.scm (cozy): New variable.
---
 gnu/packages/ebook.scm | 90 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)

diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index b7c78b6a64..9515c663b0 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,26 +27,32 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libreoffice)
+  #:use-module (gnu packages music)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -405,6 +412,89 @@ following formats:
 @end enumerate")
     (license license:gpl2+)))
 
+(define-public cozy
+  (package
+    (name "cozy")
+    (version "0.6.19")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/geigi/cozy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1f1qydjs8sz39yhlg9qdjf31vrsmdk2pxiimw4fzsy1k2zr5dr34"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-gi-python
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out               (assoc-ref outputs "out"))
+                    (pylib             (string-append out "/lib/python"
+                                                      ,(version-major+minor
+                                                        (package-version python))
+                                                      "/site-packages"))
+                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                    (gst-plugin-path   (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                    (libmagic-path     (string-append
+                                        (assoc-ref %build-inputs "file")
+                                        "/lib"))
+                    (python-path       (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/com.github.geigi.cozy")
+                 `("LD_LIBRARY_PATH" ":" prefix (,libmagic-path))
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+                 `("PYTHONPATH" ":" prefix (,python-path ,pylib))))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("file" ,file) ;cozy distributes its own python-magic implementation
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gst-libav" ,gst-libav)
+       ("gst-plugins-bad" ,gst-plugins-bad)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("gst-plugins-ugly" ,gst-plugins-ugly)
+       ("gtk+" ,gtk+)
+       ("python-apsw" ,python-apsw)
+       ("python-distro" ,python-distro)
+       ("python-gst" ,python-gst)
+       ("python-mutagen" ,python-mutagen)
+       ("python-peewee" ,python-peewee)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pytz" ,python-pytz)
+       ("python-requests" ,python-requests)))
+    (home-page "https://cozy.geigi.de/")
+    (synopsis "Modern audiobook player using GTK+")
+    (description
+     "Cozy is a modern audiobook player written in GTK+.
+
+Some of the current features:
+
+@itemize
+@item Import your audiobooks into Cozy to browse them comfortably
+@item Sort your audio books by author, reader & name
+@item Remembers your playback position
+@item Sleep timer
+@item Playback speed control
+@item Search your library
+@item Offline mode
+@item Add multiple storage locations
+@item Drag & Drop to import new audio books
+@item Support for DRM free mp3, m4a (aac, ALAC, …), flac, ogg, opus, wav files
+@item Mpris integration (Media keys & playback info for desktop environment)
+@end itemize")
+    (license license:gpl3+)))
+
 (define-public xchm
   (package
     (name "xchm")
-- 
2.20.1





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

* [bug#43433] [PATCH] gnu: Add cozy.
  2020-09-15 20:50 [bug#43433] [PATCH] gnu: Add cozy Vinicius Monego
@ 2020-09-17 14:04 ` Mathieu Othacehe
  2020-09-17 20:40   ` [bug#43433] [PATCH v2] " Vinicius Monego
  0 siblings, 1 reply; 4+ messages in thread
From: Mathieu Othacehe @ 2020-09-17 14:04 UTC (permalink / raw)
  To: Vinicius Monego; +Cc: 43433


Hello Vinicius,

> +                                                        (package-version python))

This line is over the 78 columns limit.

> +                                                      "/site-packages"))
> +                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
> +                    (gst-plugin-path   (getenv "GST_PLUGIN_SYSTEM_PATH"))
> +                    (libmagic-path     (string-append
> +                                        (assoc-ref %build-inputs "file")
> +                                        "/lib"))
> +                    (python-path       (getenv "PYTHONPATH")))
> +               (wrap-program (string-append out "/bin/com.github.geigi.cozy")

What about calling the wrapped program "cozy"?

Thanks,

Mathieu




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

* [bug#43433] [PATCH v2] gnu: Add cozy.
  2020-09-17 14:04 ` Mathieu Othacehe
@ 2020-09-17 20:40   ` Vinicius Monego
  2020-09-18  7:18     ` bug#43433: " Mathieu Othacehe
  0 siblings, 1 reply; 4+ messages in thread
From: Vinicius Monego @ 2020-09-17 20:40 UTC (permalink / raw)
  To: 43433; +Cc: Vinicius Monego

* gnu/packages/ebook.scm (cozy): New variable.
---
Added phase to rename the executable.
Added phase to patch desktop file for the renamed executable.
Added python-wrapper as native-input because it's checked for in configure phase.
Wrapped lines to fit under the 78 columns limit.
Added license information for the bundled python-inject.
Removed comment about python-magic.

 gnu/packages/ebook.scm | 105 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 105 insertions(+)

diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index b7c78b6a64..a8212df031 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,26 +27,32 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libreoffice)
+  #:use-module (gnu packages music)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -405,6 +412,104 @@ following formats:
 @end enumerate")
     (license license:gpl2+)))
 
+(define-public cozy
+  (package
+    (name "cozy")
+    (version "0.6.19")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/geigi/cozy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1f1qydjs8sz39yhlg9qdjf31vrsmdk2pxiimw4fzsy1k2zr5dr34"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-desktop-file
+           (lambda _
+             (substitute* "data/com.github.geigi.cozy.desktop.in"
+               (("com.github.geigi.cozy") "cozy"))
+             #t))
+         (add-after 'install 'patch-executable-name
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion
+                 (string-append (assoc-ref outputs "out") "/bin")
+               (rename-file "com.github.geigi.cozy" "cozy"))
+             #t))
+         (add-after 'wrap 'wrap-libs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out               (assoc-ref outputs "out"))
+                    (pylib             (string-append
+                                        out "/lib/python"
+                                        ,(version-major+minor
+                                          (package-version python))
+                                        "/site-packages"))
+                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                    (gst-plugin-path   (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                    (libmagic-path     (string-append
+                                        (assoc-ref %build-inputs "file")
+                                        "/lib"))
+                    (python-path     (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/cozy")
+                 `("LD_LIBRARY_PATH" ":" prefix (,libmagic-path))
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+                 `("PYTHONPATH" ":" prefix (,python-path ,pylib))))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("file" ,file)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gst-libav" ,gst-libav)
+       ("gst-plugins-bad" ,gst-plugins-bad)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("gst-plugins-ugly" ,gst-plugins-ugly)
+       ("gtk+" ,gtk+)
+       ("python-apsw" ,python-apsw)
+       ("python-distro" ,python-distro)
+       ("python-gst" ,python-gst)
+       ("python-mutagen" ,python-mutagen)
+       ("python-peewee" ,python-peewee)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pytz" ,python-pytz)
+       ("python-requests" ,python-requests)))
+    (home-page "https://cozy.geigi.de/")
+    (synopsis "Modern audiobook player using GTK+")
+    (description
+     "Cozy is a modern audiobook player written in GTK+.
+
+Some of the current features:
+
+@itemize
+@item Import your audiobooks into Cozy to browse them comfortably
+@item Sort your audio books by author, reader & name
+@item Remembers your playback position
+@item Sleep timer
+@item Playback speed control
+@item Search your library
+@item Offline mode
+@item Add multiple storage locations
+@item Drag & Drop to import new audio books
+@item Support for DRM free mp3, m4a (aac, ALAC, …), flac, ogg, opus, wav files
+@item Mpris integration (Media keys & playback info for desktop environment)
+@end itemize")
+    ;; TODO: Unbundle python-inject.
+    (license (list license:gpl3+ ;cozy
+                   license:asl2.0)))) ;python-inject (bundled dependency)
+
 (define-public xchm
   (package
     (name "xchm")
-- 
2.20.1





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

* bug#43433: [PATCH v2] gnu: Add cozy.
  2020-09-17 20:40   ` [bug#43433] [PATCH v2] " Vinicius Monego
@ 2020-09-18  7:18     ` Mathieu Othacehe
  0 siblings, 0 replies; 4+ messages in thread
From: Mathieu Othacehe @ 2020-09-18  7:18 UTC (permalink / raw)
  To: Vinicius Monego; +Cc: 43433-done


Hello Vinicius,

> Added phase to rename the executable.
> Added phase to patch desktop file for the renamed executable.
> Added python-wrapper as native-input because it's checked for in configure phase.
> Wrapped lines to fit under the 78 columns limit.
> Added license information for the bundled python-inject.
> Removed comment about python-magic.

Thanks for this v2. The above changelog makes it easier to review :)
Pushed as 13ba3dc8a3fed66dbdc317f0d97357bbb47e1175.

Mathieu

-- 
https://othacehe.org




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

end of thread, other threads:[~2020-09-18  7:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-15 20:50 [bug#43433] [PATCH] gnu: Add cozy Vinicius Monego
2020-09-17 14:04 ` Mathieu Othacehe
2020-09-17 20:40   ` [bug#43433] [PATCH v2] " Vinicius Monego
2020-09-18  7:18     ` bug#43433: " Mathieu Othacehe

unofficial mirror of guix-patches@gnu.org 

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/guix-patches/1 guix-patches/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 guix-patches guix-patches/ https://yhetil.org/guix-patches \
		guix-patches@gnu.org
	public-inbox-index guix-patches

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://news.yhetil.org/yhetil.gnu.guix.patches


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git