From a62d652a3bf44b52b1cd7839aca820994a868ff2 Mon Sep 17 00:00:00 2001 From: Brandon Dimcheff Date: Fri, 20 Mar 2015 15:50:11 -0400 Subject: [PATCH 1/4] add brasero, a gnome cd/dvd burner --- pkgs/tools/cd-dvd/brasero/default.nix | 57 +++++++++++++++++++ .../cd-dvd/brasero/remove-symlink-check.patch | 29 ++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 88 insertions(+) create mode 100644 pkgs/tools/cd-dvd/brasero/default.nix create mode 100644 pkgs/tools/cd-dvd/brasero/remove-symlink-check.patch diff --git a/pkgs/tools/cd-dvd/brasero/default.nix b/pkgs/tools/cd-dvd/brasero/default.nix new file mode 100644 index 000000000000..f180e7f5ecb3 --- /dev/null +++ b/pkgs/tools/cd-dvd/brasero/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, itstool, gst_all_1, libxml2, libnotify +, libcanberra_gtk3, intltool, gnome3, makeWrapper, dvdauthor, cdrdao +, dvdplusrwtools, cdrtools, libdvdcss }: + +let + major = "3.12"; + minor = "0"; + GST_PLUGIN_PATH = stdenv.lib.makeSearchPath "lib/gstreamer-1.0" [ + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gst_all_1.gst-libav ]; + +in stdenv.mkDerivation rec { + version = "${major}.${minor}"; + name = "brasero-${version}"; + + src = fetchurl { + url = "http://download.gnome.org/sources/brasero/${major}/${name}.tar.xz"; + sha256 = "68fef2699b772fa262d855dac682100dbfea05563a7e4056eff8fe6447aec2fc"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard dvdauthor + cdrdao dvdplusrwtools cdrtools ]; + + buildInputs = [ pkgconfig gtk3 itstool libxml2 libnotify libcanberra_gtk3 + intltool gnome3.gsettings_desktop_schemas makeWrapper libdvdcss + gst_all_1.gstreamer gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad ]; + + # brasero checks that the applications it uses aren't symlinks, but this + # will obviously not work on nix + patches = [ ./remove-symlink-check.patch ]; + + configureFlags = [ + "--with-girdir=$out/share/gir-1.0" + "--with-typelibdir=$out/lib/girepository-1.0" ]; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram "$f" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ + --prefix GST_PLUGIN_PATH : "${GST_PLUGIN_PATH}" \ + --prefix LD_LIBRARY_PATH : ${libdvdcss}/lib + done + rm $out/share/icons/hicolor/icon-theme.cache + ''; + + meta = with stdenv.lib; { + description = "A Gnome CD/DVD Burner"; + homepage = https://wiki.gnome.org/Apps/Brasero; + maintainers = [ maintainers.bdimcheff ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/cd-dvd/brasero/remove-symlink-check.patch b/pkgs/tools/cd-dvd/brasero/remove-symlink-check.patch new file mode 100644 index 000000000000..028ac12c4a03 --- /dev/null +++ b/pkgs/tools/cd-dvd/brasero/remove-symlink-check.patch @@ -0,0 +1,29 @@ +diff --git a/libbrasero-burn/burn-plugin.c b/libbrasero-burn/burn-plugin.c +index f97bc5f..88e9d35 100644 +--- a/libbrasero-burn/burn-plugin.c ++++ b/libbrasero-burn/burn-plugin.c +@@ -221,21 +221,10 @@ brasero_plugin_test_app (BraseroPlugin *plugin, + return; + } + +- /* make sure that's not a symlink pointing to something with another +- * name like wodim. +- * NOTE: we used to test the target and see if it had the same name as +- * the symlink with GIO. The problem is, when the symlink pointed to +- * another symlink, then GIO didn't follow that other symlink. And in +- * the end it didn't work. So forbid all symlink. */ +- if (g_file_test (prog_path, G_FILE_TEST_IS_SYMLINK)) { +- brasero_plugin_add_error (plugin, +- BRASERO_PLUGIN_ERROR_SYMBOLIC_LINK_APP, +- name); +- g_free (prog_path); +- return; +- } ++ /* disable symlink check on nixos */ ++ + /* Make sure it's a regular file */ +- else if (!g_file_test (prog_path, G_FILE_TEST_IS_REGULAR)) { ++ if (!g_file_test (prog_path, G_FILE_TEST_IS_REGULAR)) { + brasero_plugin_add_error (plugin, + BRASERO_PLUGIN_ERROR_MISSING_APP, + name); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 777c5e3d1ead..ad332125fd4e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -679,6 +679,8 @@ let boxfs = callPackage ../tools/filesystems/boxfs { }; + brasero = callPackage ../tools/cd-dvd/brasero { }; + bro = callPackage ../applications/networking/ids/bro { }; bsod = callPackage ../misc/emulators/bsod { }; From 62f925543970b05f944093e59d7cc07275d99af6 Mon Sep 17 00:00:00 2001 From: Brandon Dimcheff Date: Fri, 20 Mar 2015 15:50:38 -0400 Subject: [PATCH 2/4] add sound juicer, a gnome cd ripper --- .../audio/sound-juicer/default.nix | 47 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 49 insertions(+) create mode 100644 pkgs/applications/audio/sound-juicer/default.nix diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix new file mode 100644 index 000000000000..d53d059e7a7c --- /dev/null +++ b/pkgs/applications/audio/sound-juicer/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, intltool, itstool, libxml2, brasero, libcanberra_gtk3, gnome3, gst_all_1, libmusicbrainz5, libdiscid, isocodes, makeWrapper }: + +let + major = "3.15"; + minor = "92"; + GST_PLUGIN_PATH = stdenv.lib.makeSearchPath "lib/gstreamer-1.0" [ + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gst_all_1.gst-libav ]; + +in stdenv.mkDerivation rec { + version = "${major}.${minor}"; + name = "sound-juicer-${version}"; + + src = fetchurl { + url = "http://download.gnome.org/sources/sound-juicer/${major}/${name}.tar.xz"; + sha256 = "b1420f267a4c553f6ca242d3b6082b60682c3d7b431ac3c979bd1ccfbf2687dd"; + }; + + buildInputs = [ pkgconfig gtk3 intltool itstool libxml2 brasero libcanberra_gtk3 + gnome3.gsettings_desktop_schemas libmusicbrainz5 libdiscid isocodes + makeWrapper + gst_all_1.gstreamer gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad ]; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram "$f" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ + --prefix GST_PLUGIN_PATH : "${GST_PLUGIN_PATH}" + done + ''; + + postInstall = '' + rm $out/share/icons/hicolor/icon-theme.cache + ''; + + meta = with stdenv.lib; { + description = "A Gnome CD Ripper"; + homepage = https://wiki.gnome.org/Apps/SoundJuicer; + maintainers = [ maintainers.bdimcheff ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ad332125fd4e..55b904fd21ec 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11428,6 +11428,8 @@ let sooperlooper = callPackage ../applications/audio/sooperlooper { }; + sound-juicer = callPackage ../applications/audio/sound-juicer { }; + spideroak = callPackage ../applications/networking/spideroak { }; ssvnc = callPackage ../applications/networking/remote/ssvnc { }; From aea93670d12e90115b30ba97453c45df9e7ec390 Mon Sep 17 00:00:00 2001 From: Brandon Dimcheff Date: Sun, 22 Mar 2015 22:06:23 -0400 Subject: [PATCH 3/4] wrap long lines in sound-juicer --- pkgs/applications/audio/sound-juicer/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix index d53d059e7a7c..2dfbfe8cc3f6 100644 --- a/pkgs/applications/audio/sound-juicer/default.nix +++ b/pkgs/applications/audio/sound-juicer/default.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl, pkgconfig, gtk3, intltool, itstool, libxml2, brasero, libcanberra_gtk3, gnome3, gst_all_1, libmusicbrainz5, libdiscid, isocodes, makeWrapper }: +{ stdenv, fetchurl, pkgconfig, gtk3, intltool, itstool, libxml2, brasero +, libcanberra_gtk3, gnome3, gst_all_1, libmusicbrainz5, libdiscid, isocodes +, makeWrapper }: let major = "3.15"; From 93228a08630c1e815334c854555636645d0f814a Mon Sep 17 00:00:00 2001 From: Brandon Dimcheff Date: Tue, 24 Mar 2015 10:30:00 -0400 Subject: [PATCH 4/4] add dconf dependencies to sound-juicer and brasero If you have services.gnome3.enabled = true, you shouldn't need this, but if you don't, you'll need this dconf env var to be able to save settings in these apps. --- pkgs/applications/audio/sound-juicer/default.nix | 3 ++- pkgs/tools/cd-dvd/brasero/default.nix | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix index 2dfbfe8cc3f6..f7f5998846bc 100644 --- a/pkgs/applications/audio/sound-juicer/default.nix +++ b/pkgs/applications/audio/sound-juicer/default.nix @@ -22,7 +22,7 @@ in stdenv.mkDerivation rec { buildInputs = [ pkgconfig gtk3 intltool itstool libxml2 brasero libcanberra_gtk3 gnome3.gsettings_desktop_schemas libmusicbrainz5 libdiscid isocodes - makeWrapper + makeWrapper gnome3.dconf gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad ]; @@ -31,6 +31,7 @@ in stdenv.mkDerivation rec { wrapProgram "$f" \ --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ + --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules" \ --prefix GST_PLUGIN_PATH : "${GST_PLUGIN_PATH}" done ''; diff --git a/pkgs/tools/cd-dvd/brasero/default.nix b/pkgs/tools/cd-dvd/brasero/default.nix index f180e7f5ecb3..d7773b0ba0cc 100644 --- a/pkgs/tools/cd-dvd/brasero/default.nix +++ b/pkgs/tools/cd-dvd/brasero/default.nix @@ -25,7 +25,7 @@ in stdenv.mkDerivation rec { buildInputs = [ pkgconfig gtk3 itstool libxml2 libnotify libcanberra_gtk3 intltool gnome3.gsettings_desktop_schemas makeWrapper libdvdcss - gst_all_1.gstreamer gst_all_1.gst-plugins-base + gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.dconf gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad ]; # brasero checks that the applications it uses aren't symlinks, but this @@ -42,6 +42,7 @@ in stdenv.mkDerivation rec { --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ --prefix GST_PLUGIN_PATH : "${GST_PLUGIN_PATH}" \ + --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules" \ --prefix LD_LIBRARY_PATH : ${libdvdcss}/lib done rm $out/share/icons/hicolor/icon-theme.cache