about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBernardo Meurer <bernardo@meurer.org>2022-11-09 11:18:38 -0500
committerBernardo Meurer <bernardo@meurer.org>2022-11-09 11:18:38 -0500
commit76a857c71b5cc4c329645474ba1095da2a048652 (patch)
tree127ea5cf65c18e5f7440c9cd0b35ddb4af654b17
parent16722903aa6f7dbe202926d61e8f54398912c9ad (diff)
hqplayerd: 4.32.4 -> 4.33.0
-rw-r--r--pkgs/servers/hqplayerd/add-option-for-installation-sysconfdir.patch35
-rw-r--r--pkgs/servers/hqplayerd/default.nix24
-rw-r--r--pkgs/servers/hqplayerd/rygel.nix108
3 files changed, 160 insertions, 7 deletions
diff --git a/pkgs/servers/hqplayerd/add-option-for-installation-sysconfdir.patch b/pkgs/servers/hqplayerd/add-option-for-installation-sysconfdir.patch
new file mode 100644
index 0000000000000..d2319ec13ed3e
--- /dev/null
+++ b/pkgs/servers/hqplayerd/add-option-for-installation-sysconfdir.patch
@@ -0,0 +1,35 @@
+diff --git a/meson.build b/meson.build
+index 8af2fcf9..0e318307 100644
+--- a/meson.build
++++ b/meson.build
+@@ -22,7 +22,11 @@ if not get_option('uninstalled')
+     rygel_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'rygel')
+     rygel_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'),
+     'rygel')
+-    rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
++    if get_option('sysconfdir_install') != ''
++        rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir_install'))
++    else
++        rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
++    endif
+     rygel_plugindir = join_paths(rygel_libdir, 'rygel-2.6', 'plugins')
+     rygel_enginedir = join_paths(rygel_libdir, 'rygel-2.6', 'engines')
+     rygel_presetdir = join_paths(rygel_datadir, 'presets')
+@@ -57,7 +61,7 @@ conf.set_quoted('DATA_DIR', rygel_datadir)
+ conf.set_quoted('PLUGIN_DIR', rygel_plugindir)
+ conf.set_quoted('BIG_ICON_DIR', rygel_bigicondir)
+ conf.set_quoted('SMALL_ICON_DIR', rygel_smallicondir)
+-conf.set_quoted('SYS_CONFIG_DIR', rygel_sysconfdir)
++conf.set_quoted('SYS_CONFIG_DIR', get_option('sysconfdir'))
+ conf.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))
+ conf.set_quoted('MX_EXTRACT_PATH', join_paths(rygel_libexecdir, 'mx-extract'))
+ conf.set_quoted('DESKTOP_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'applications'))
+diff --git a/meson_options.txt b/meson_options.txt
+index fd04776a..3dee43ba 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,3 +1,4 @@
++option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation')
+ option('uninstalled', type: 'boolean', value: 'false', description: 'Run Rygel from build directory only')
+ option('api-docs', type: 'boolean', value: 'false', description: 'Build the API documentation')
+ option('man_pages', type: 'boolean', value: 'true', description: 'Build the man pages')
diff --git a/pkgs/servers/hqplayerd/default.nix b/pkgs/servers/hqplayerd/default.nix
index 37b60ce56aaf1..1b312218aeda8 100644
--- a/pkgs/servers/hqplayerd/default.nix
+++ b/pkgs/servers/hqplayerd/default.nix
@@ -6,27 +6,33 @@
 , fetchurl
 , flac
 , gcc12
-, gnome
 , gssdp
 , gupnp
 , gupnp-av
 , lame
 , libgmpris
 , libusb-compat-0_1
-, llvmPackages_10
+, llvmPackages_14
 , meson
 , mpg123
 , ninja
 , rpmextract
 , wavpack
-}:
+
+, callPackage
+, rygel ? null
+}@inputs:
+let
+  # FIXME: Replace with gnome.rygel once hqplayerd releases a new version.
+  rygel-hqplayerd = inputs.rygel or (callPackage ./rygel.nix { });
+in
 stdenv.mkDerivation rec {
   pname = "hqplayerd";
-  version = "4.32.4-94sse42";
+  version = "4.33.0-96sse42";
 
   src = fetchurl {
     url = "https://www.signalyst.eu/bins/${pname}/fc36/${pname}-${version}.fc36.x86_64.rpm";
-    hash = "sha256-hTckJdZzD/Sx/uV30dlGiT46QvzIGp6BQdNNRlQ/Mgw=";
+    hash = "sha256-4gPK31XMd5JUp2+il1Qa7r0EaXVGEvKoYLNGSD2dLUs=";
   };
 
   unpackPhase = ''
@@ -40,14 +46,14 @@ stdenv.mkDerivation rec {
     cairo
     flac
     gcc12.cc.lib
-    gnome.rygel
+    rygel-hqplayerd
     gssdp
     gupnp
     gupnp-av
     lame
     libgmpris
     libusb-compat-0_1
-    llvmPackages_10.openmp
+    llvmPackages_14.openmp
     mpg123
     wavpack
   ];
@@ -106,6 +112,10 @@ stdenv.mkDerivation rec {
     $out/bin/hqplayerd --version
   '';
 
+  passthru = {
+    rygel = rygel-hqplayerd;
+  };
+
   meta = with lib; {
     homepage = "https://www.signalyst.com/custom.html";
     description = "High-end upsampling multichannel software embedded HD-audio player";
diff --git a/pkgs/servers/hqplayerd/rygel.nix b/pkgs/servers/hqplayerd/rygel.nix
new file mode 100644
index 0000000000000..c09fb5450f3f7
--- /dev/null
+++ b/pkgs/servers/hqplayerd/rygel.nix
@@ -0,0 +1,108 @@
+{ lib, stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, vala
+, gettext
+, libxml2
+, gobject-introspection
+, wrapGAppsHook
+, python3
+, glib
+, gssdp
+, gupnp
+, gupnp-av
+, gupnp-dlna
+, gst_all_1
+, libgee
+, libsoup
+, gtk3
+, libmediaart
+, sqlite
+, systemd
+, tracker
+, shared-mime-info
+, gnome
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rygel";
+  version = "0.40.4";
+
+  # TODO: split out lib
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "c22K2+hhX2y8j8//mEXcmF/RDhZinaI2tLUtvt8KNIs=";
+  };
+
+  patches = [
+    ./add-option-for-installation-sysconfdir.patch
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+    gettext
+    libxml2
+    gobject-introspection
+    wrapGAppsHook
+    python3
+  ];
+
+  buildInputs = [
+    glib
+    gssdp
+    gupnp
+    gupnp-av
+    gupnp-dlna
+    libgee
+    libsoup
+    gtk3
+    libmediaart
+    sqlite
+    systemd
+    tracker
+    shared-mime-info
+  ] ++ (with gst_all_1; [
+    gstreamer
+    gst-editing-services
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+  ]);
+
+  mesonFlags = [
+    "-Dsystemd-user-units-dir=${placeholder "out"}/lib/systemd/user"
+    "-Dapi-docs=false"
+    "--sysconfdir=/etc"
+    "-Dsysconfdir_install=${placeholder "out"}/etc"
+  ];
+
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs data/xml/process-xml.py
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+      versionPolicy = "odd-unstable";
+    };
+  };
+
+  meta = with lib; {
+    description = "A home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices";
+    homepage = "https://wiki.gnome.org/Projects/Rygel";
+    license = licenses.lgpl21Plus;
+    maintainers = teams.gnome.members;
+    platforms = platforms.linux;
+  };
+}