unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#41911] [PATCH 0/5] Add missing inputs for k3b
@ 2020-06-17 10:47 Timotej Lazar
  2020-06-17 10:50 ` [bug#41911] [PATCH 1/5] gnu: Add cdrdao Timotej Lazar
  2020-06-21 15:41 ` bug#41911: [PATCH 0/5] Add missing inputs for k3b Ludovic Courtès
  0 siblings, 2 replies; 7+ messages in thread
From: Timotej Lazar @ 2020-06-17 10:47 UTC (permalink / raw)
  To: 41911

Hi,

the first patch adds a new package cdrdao. The remaining patches update
the k3b package by adding inputs (including cdrdao) required at runtime
to actually read and write discs.

In the cases where k3b supports several backends, I picked the ones most
actively maintained (libcdio-paranoia instead of cdparanoia, and libburn
instead of cdrtools/cdrkit); this can be overriden in program settings.

I also add a note in description that udisks-service must be running for
k3b, and update it to latest released version.

Thanks!

Timotej Lazar (5):
  gnu: Add cdrdao.
  gnu: k3b: Add inputs for external programs.
  gnu: k3b: Add inputs for libraries loaded at runtime.
  gnu: k3b: Note the runtime dependency on udisks-service.
  gnu: k3b: Update to 20.04.2.

 gnu/packages/cdrom.scm          | 51 +++++++++++++++++++++++++++++++++
 gnu/packages/kde-multimedia.scm | 43 ++++++++++++++++++++++++---
 2 files changed, 90 insertions(+), 4 deletions(-)




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

* [bug#41911] [PATCH 1/5] gnu: Add cdrdao.
  2020-06-17 10:47 [bug#41911] [PATCH 0/5] Add missing inputs for k3b Timotej Lazar
@ 2020-06-17 10:50 ` Timotej Lazar
  2020-06-17 10:50   ` [bug#41911] [PATCH 2/5] gnu: k3b: Add inputs for external programs Timotej Lazar
                     ` (3 more replies)
  2020-06-21 15:41 ` bug#41911: [PATCH 0/5] Add missing inputs for k3b Ludovic Courtès
  1 sibling, 4 replies; 7+ messages in thread
From: Timotej Lazar @ 2020-06-17 10:50 UTC (permalink / raw)
  To: 41911; +Cc: Timotej Lazar

* gnu/packages/cdrom.scm (cdrdao): New variable.
---
 gnu/packages/cdrom.scm | 51 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 67236f86de..ac8dd26af0 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,9 +39,11 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix gexp)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
@@ -242,6 +245,54 @@ extra-robust data verification, synchronization, error handling and scratch
 reconstruction capability.")
     (license gpl2))) ; libraries under lgpl2.1
 
+(define-public cdrdao
+  (package
+    (name "cdrdao")
+    (version "1.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cdrdao/cdrdao.git")
+             (commit
+              (string-append "rel_" (string-replace-substring version "." "_")))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1gcl8ibyylamy2d1piq3749nw3xrlp12r0spzp2gmni57b8a6b7j"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       (list
+        ;; GCDMaster depends on obsolete libgnomeuimm, see
+        ;; <https://github.com/cdrdao/cdrdao/issues/3>.
+        "--without-gcdmaster"
+        ;; Use the native SCSI interface.
+        "--without-scglib")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'fix-configure.ac
+           (lambda _
+             ;; Remove reference to missing macro.
+             (substitute* "configure.ac" (("^AM_GCONF_SOURCE_2.*") ""))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ao" ,ao)
+       ("lame" ,lame)
+       ("libmad" ,libmad)
+       ("libvorbis" ,libvorbis)))
+    (home-page "http://cdrdao.sourceforge.net")
+    (synopsis "Read and write CDs in disk-at-once mode")
+    (description "cdrdao records audio or data CDs in disk-at-once (DAO) mode,
+based on a textual description of the contents.  This mode writes the complete
+disc – lead-in, one or more tracks, and lead-out – in a single step and is
+commonly used with audio CDs.  @code{cdrdao} can also handle the bin/cue
+format, commonly used for VCDs or disks with subchannel data.")
+    (license gpl2+)))
+
 (define-public cdrtools
   (package
     (name "cdrtools")
-- 
2.26.2





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

* [bug#41911] [PATCH 2/5] gnu: k3b: Add inputs for external programs.
  2020-06-17 10:50 ` [bug#41911] [PATCH 1/5] gnu: Add cdrdao Timotej Lazar
@ 2020-06-17 10:50   ` Timotej Lazar
  2020-06-17 10:50   ` [bug#41911] [PATCH 3/5] gnu: k3b: Add inputs for libraries loaded at runtime Timotej Lazar
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Timotej Lazar @ 2020-06-17 10:50 UTC (permalink / raw)
  To: 41911; +Cc: Timotej Lazar

* gnu/packages/kde-multimedia.scm (k3b)[inputs]: Add cdrdao, dvd+rw-tools,
libburn and sox.
[arguments]<#:phases>[wrap-path]: New phase to wrap the binary with paths to
the above.
---
 gnu/packages/kde-multimedia.scm | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index 938251a532..654aecd858 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -296,12 +297,26 @@ This package is part of the KDE multimedia module.")
        (sha256
         (base32 "0r01ninrrmqk7pl5jg0g51fcky1ammw0yyq572wyhibw7q8y7ly7"))))
     (build-system qt-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'qt-wrap 'wrap-path
+           (lambda _
+             ;; Set paths to backend programs.
+             (wrap-program (string-append (assoc-ref %outputs "out") "/bin/k3b")
+               `("PATH" ":" prefix
+                 ,(map (lambda (input)
+                         (string-append (assoc-ref %build-inputs input) "/bin"))
+                       '("cdrdao" "dvd+rw-tools" "libburn" "sox"))))
+             #t)))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)
        ("kdoctools" ,kdoctools)))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
+     `(("cdrdao" ,cdrdao)
+       ("dvd+rw-tools" ,dvd+rw-tools)
+       ("ffmpeg" ,ffmpeg)
        ("flac" ,flac)
        ("karchive" ,karchive)
        ("kcmutils" ,kcmutils)
@@ -319,6 +334,7 @@ This package is part of the KDE multimedia module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("lame" ,lame)
+       ("libburn" ,libburn)
        ("libdvdread" ,libdvdread)
        ;; TODO: LibFuzzer
        ("libiconv" ,libiconv)
@@ -334,6 +350,7 @@ This package is part of the KDE multimedia module.")
        ("qtwebkit" ,qtwebkit)
        ("shared-mime-info" ,shared-mime-info)
        ("solid" ,solid)
+       ("sox" ,sox)
        ("taglib" ,taglib)))
     (home-page "https://kde.org/applications/multimedia/org.kde.k3b")
     (synopsis "Sophisticated CD/DVD burning application")
-- 
2.26.2





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

* [bug#41911] [PATCH 3/5] gnu: k3b: Add inputs for libraries loaded at runtime.
  2020-06-17 10:50 ` [bug#41911] [PATCH 1/5] gnu: Add cdrdao Timotej Lazar
  2020-06-17 10:50   ` [bug#41911] [PATCH 2/5] gnu: k3b: Add inputs for external programs Timotej Lazar
@ 2020-06-17 10:50   ` Timotej Lazar
  2020-06-17 10:50   ` [bug#41911] [PATCH 4/5] gnu: k3b: Note the runtime dependency on udisks-service Timotej Lazar
  2020-06-17 10:50   ` [bug#41911] [PATCH 5/5] gnu: k3b: Update to 20.04.2 Timotej Lazar
  3 siblings, 0 replies; 7+ messages in thread
From: Timotej Lazar @ 2020-06-17 10:50 UTC (permalink / raw)
  To: 41911; +Cc: Timotej Lazar

Patch the source to load these from absolute paths. Actual loading is done by
the Qt library, so we cannot use k3b’s runpath.

* gnu/packages/kde-multimedia.scm (k3b)[inputs]: Add libcdio-paranoia and
libdvdcss.
[arguments]<#:phases>[set-absolute-library-paths]: New phase.
---
 gnu/packages/kde-multimedia.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index 654aecd858..9fab19f1f6 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -300,6 +300,19 @@ This package is part of the KDE multimedia module.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'set-absolute-library-paths
+           (lambda _
+             ;; Set absolute paths for dlopened libraries. We can’t use k3b’s
+             ;; runpath as they are loaded by the Qt library.
+             (let ((libcdio-paranoia (assoc-ref %build-inputs "libcdio-paranoia"))
+                   (libdvdcss (assoc-ref %build-inputs "libdvdcss")))
+               (substitute* "libk3b/tools/k3bcdparanoialib.cpp"
+                 (("\"(cdio_cdda|cdio_paranoia)\"" _ library)
+                  (string-append "\"" libcdio-paranoia "/lib/" library "\"")))
+               (substitute* "libk3b/tools/k3blibdvdcss.cpp"
+                 (("\"(dvdcss)\"" _ library)
+                  (string-append "\"" libdvdcss "/lib/" library "\""))))
+             #t))
          (add-after 'qt-wrap 'wrap-path
            (lambda _
              ;; Set paths to backend programs.
@@ -335,6 +348,8 @@ This package is part of the KDE multimedia module.")
        ("kxmlgui" ,kxmlgui)
        ("lame" ,lame)
        ("libburn" ,libburn)
+       ("libcdio-paranoia" ,libcdio-paranoia)
+       ("libdvdcss" ,libdvdcss)
        ("libdvdread" ,libdvdread)
        ;; TODO: LibFuzzer
        ("libiconv" ,libiconv)
-- 
2.26.2





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

* [bug#41911] [PATCH 4/5] gnu: k3b: Note the runtime dependency on udisks-service.
  2020-06-17 10:50 ` [bug#41911] [PATCH 1/5] gnu: Add cdrdao Timotej Lazar
  2020-06-17 10:50   ` [bug#41911] [PATCH 2/5] gnu: k3b: Add inputs for external programs Timotej Lazar
  2020-06-17 10:50   ` [bug#41911] [PATCH 3/5] gnu: k3b: Add inputs for libraries loaded at runtime Timotej Lazar
@ 2020-06-17 10:50   ` Timotej Lazar
  2020-06-17 10:50   ` [bug#41911] [PATCH 5/5] gnu: k3b: Update to 20.04.2 Timotej Lazar
  3 siblings, 0 replies; 7+ messages in thread
From: Timotej Lazar @ 2020-06-17 10:50 UTC (permalink / raw)
  To: 41911; +Cc: Timotej Lazar

* gnu/packages/kde-multimedia.scm (k3b)[description]: Note that udisks-service
should be enabled.
---
 gnu/packages/kde-multimedia.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index 9fab19f1f6..ecc1afe83b 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -372,7 +372,10 @@ This package is part of the KDE multimedia module.")
     (description "K3b is CD-writing software which intends to be feature-rich
 and provide an easily usable interface.  Features include burning audio CDs
 from .WAV and .MP3 audio files, configuring external programs and configuring
-devices.")
+devices.
+
+The @code{udisks-service} should be enabled for @command{k3b} to discover the
+available CD drives.")
     (license ;; GPL for programs, FDL for documentation
      (list license:gpl2+ license:fdl1.2+))))
 
-- 
2.26.2





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

* [bug#41911] [PATCH 5/5] gnu: k3b: Update to 20.04.2.
  2020-06-17 10:50 ` [bug#41911] [PATCH 1/5] gnu: Add cdrdao Timotej Lazar
                     ` (2 preceding siblings ...)
  2020-06-17 10:50   ` [bug#41911] [PATCH 4/5] gnu: k3b: Note the runtime dependency on udisks-service Timotej Lazar
@ 2020-06-17 10:50   ` Timotej Lazar
  3 siblings, 0 replies; 7+ messages in thread
From: Timotej Lazar @ 2020-06-17 10:50 UTC (permalink / raw)
  To: 41911; +Cc: Timotej Lazar

* gnu/packages/kde-multimedia.scm (k3b): Update to 20.04.2.
---
 gnu/packages/kde-multimedia.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index ecc1afe83b..dd1355010e 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -288,14 +288,14 @@ This package is part of the KDE multimedia module.")
 (define-public k3b
   (package
     (name "k3b")
-    (version "20.04.1")
+    (version "20.04.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/k3b-" version ".tar.xz"))
        (sha256
-        (base32 "0r01ninrrmqk7pl5jg0g51fcky1ammw0yyq572wyhibw7q8y7ly7"))))
+        (base32 "15wm987hz6rfs9ds9l1gbs6gdsardj1ywvk6zmpvj2i2190y4b3q"))))
     (build-system qt-build-system)
     (arguments
      `(#:phases
-- 
2.26.2





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

* bug#41911: [PATCH 0/5] Add missing inputs for k3b
  2020-06-17 10:47 [bug#41911] [PATCH 0/5] Add missing inputs for k3b Timotej Lazar
  2020-06-17 10:50 ` [bug#41911] [PATCH 1/5] gnu: Add cdrdao Timotej Lazar
@ 2020-06-21 15:41 ` Ludovic Courtès
  1 sibling, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2020-06-21 15:41 UTC (permalink / raw)
  To: Timotej Lazar; +Cc: 41911-done

Hi Timotej,

Timotej Lazar <timotej.lazar@araneo.si> skribis:

>   gnu: Add cdrdao.
>   gnu: k3b: Add inputs for external programs.
>   gnu: k3b: Add inputs for libraries loaded at runtime.
>   gnu: k3b: Note the runtime dependency on udisks-service.
>   gnu: k3b: Update to 20.04.2.

I pushed the whole series, thank you!

Ludo’.




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

end of thread, other threads:[~2020-06-21 15:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-17 10:47 [bug#41911] [PATCH 0/5] Add missing inputs for k3b Timotej Lazar
2020-06-17 10:50 ` [bug#41911] [PATCH 1/5] gnu: Add cdrdao Timotej Lazar
2020-06-17 10:50   ` [bug#41911] [PATCH 2/5] gnu: k3b: Add inputs for external programs Timotej Lazar
2020-06-17 10:50   ` [bug#41911] [PATCH 3/5] gnu: k3b: Add inputs for libraries loaded at runtime Timotej Lazar
2020-06-17 10:50   ` [bug#41911] [PATCH 4/5] gnu: k3b: Note the runtime dependency on udisks-service Timotej Lazar
2020-06-17 10:50   ` [bug#41911] [PATCH 5/5] gnu: k3b: Update to 20.04.2 Timotej Lazar
2020-06-21 15:41 ` bug#41911: [PATCH 0/5] Add missing inputs for k3b 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).