xfce4-14: move to xfce and have only one version of xfce

All code that was at xfce4-14 has been moved to xfce/*.
Old expressions that aren't rewritten might be abandoned or broken.

Additonally I've ported the xfce4-14 thunar expression to support
thunarPlugins. We can now support this interface in the Xfce module
again, although I'm not sure if we have any plugins packaged that support
latest thunar.
This commit is contained in:
worldofpeace
2019-11-19 18:47:02 -05:00
parent 041d35a08a
commit ac70cd728c
107 changed files with 328 additions and 1726 deletions
-27
View File
@@ -1,27 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4ui, libxfce4util
, hicolor-icon-theme }:
stdenv.mkDerivation rec {
p_name = "exo";
ver_maj = "0.10";
ver_min = "7";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "521581481128af93e815f9690020998181f947ac9e9c2b232b1f144d76b1b35c";
};
name = "${p_name}-${ver_maj}.${ver_min}";
outputs = [ "out" "dev" "devdoc" ];
# lib/xfce4/exo-1/exo-compose-mail-1 is a perl script :-/
nativeBuildInputs = [ pkgconfig intltool ];
buildInputs = [ URI glib gtk libxfce4ui libxfce4util hicolor-icon-theme ];
meta = with stdenv.lib; {
homepage = "https://docs.xfce.org/xfce/${p_name}/start";
description = "Application library for the Xfce desktop environment";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}
+20
View File
@@ -0,0 +1,20 @@
{ mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk3
, libxfce4ui, libxfce4util }:
mkXfceDerivation {
category = "xfce";
pname = "exo";
version = "0.12.8";
sha256 = "013am7q4pwfncf4hk2a3hv7yx2vxgzb5xm8qsi9mxkj29xdhrvs5";
nativeBuildInputs = [ libxslt perlPackages.URI docbook_xsl ];
buildInputs = [ gtk3 glib libxfce4ui libxfce4util ];
# Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
meta = {
description = "Application library for Xfce";
};
}
@@ -1,14 +0,0 @@
diff -urNZ a/garcon-gtk/garcon-gtk-menu.c b/garcon-gtk/garcon-gtk-menu.c
--- a/garcon-gtk/garcon-gtk-menu.c 2017-11-16 19:22:33.551926068 +0000
+++ b/garcon-gtk/garcon-gtk-menu.c 2017-11-16 19:23:33.055497211 +0000
@@ -676,6 +676,9 @@
G_CALLBACK (garcon_gtk_menu_deactivate), menu);
gtk_widget_show (mi);
+ /* submenu are child items, too. */
+ has_children = TRUE;
+
if (menu->priv->show_menu_icons)
{
icon_name = garcon_menu_element_get_icon_name (li->data);
Binary files a/.git/index and b/.git/index differ
@@ -1,44 +0,0 @@
From 222080e6d5fce85eb2a8a5c33df671bd9f21add8 Mon Sep 17 00:00:00 2001
From: Yegor Timoshenko <yegortimoshenko@gmail.com>
Date: Thu, 14 Dec 2017 22:04:04 +0000
Subject: [PATCH] Decrement allocation counter on item unref (#12700)
---
garcon/garcon-menu-item-pool.c | 7 ++++++-
garcon/garcon-menu-item.c | 2 ++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/garcon/garcon-menu-item-pool.c b/garcon/garcon-menu-item-pool.c
index 2017180..355e520 100644
--- a/garcon/garcon-menu-item-pool.c
+++ b/garcon/garcon-menu-item-pool.c
@@ -191,7 +191,12 @@ garcon_menu_item_pool_filter_exclude (const gchar *desktop_id,
g_return_val_if_fail (GARCON_IS_MENU_ITEM (item), FALSE);
g_return_val_if_fail (node != NULL, FALSE);
- return garcon_menu_node_tree_rule_matches (node, item);
+ gboolean matches = garcon_menu_node_tree_rule_matches (node, item);
+
+ if (matches)
+ garcon_menu_item_increment_allocated (item);
+
+ return matches;
}
diff --git a/garcon/garcon-menu-item.c b/garcon/garcon-menu-item.c
index 66a86bf..d61c88f 100644
--- a/garcon/garcon-menu-item.c
+++ b/garcon/garcon-menu-item.c
@@ -1516,6 +1516,8 @@ garcon_menu_item_unref (GarconMenuItem *item)
{
g_return_if_fail (GARCON_IS_MENU_ITEM (item));
+ garcon_menu_item_decrement_allocated (item);
+
/* Decrement the reference counter */
g_object_unref (G_OBJECT (item));
}
--
2.15.1
-27
View File
@@ -1,27 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, libxfce4ui, gtk }:
let
p_name = "garcon";
ver_maj = "0.4";
ver_min = "0";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0wm9pjbwq53s3n3nwvsyf0q8lbmhiy2ln3bn5ncihr9vf5cwhzbq";
};
outputs = [ "out" "dev" ];
patches = [ ./garcon-10967.patch ./garcon-12700.patch ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool glib libxfce4util gtk libxfce4ui ];
meta = with stdenv.lib; {
homepage = https://www.xfce.org/;
description = "Xfce menu support library";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}
@@ -0,0 +1,15 @@
{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util }:
mkXfceDerivation {
category = "xfce";
pname = "garcon";
version = "0.6.4";
sha256 = "0pamhp1wffiw638s66nws2mpzmwkhvhb6iwccfy8b0kyr57wipjv";
buildInputs = [ gtk3 libxfce4ui libxfce4util ];
meta = {
description = "Xfce menu support library";
};
}
@@ -1,31 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk2, withGtk3 ? false, gtk3 ? null }:
assert withGtk3 -> (gtk3 != null);
stdenv.mkDerivation rec {
p_name = "gtk-xfce-engine";
ver_maj = "3.2";
ver_min = "0";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1va71f3gpl8gikfkmqsd5ikgp7qj8b64jii2l98g1ylnv8xrqp47";
};
name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool gtk2 ] ++ stdenv.lib.optional withGtk3 gtk3;
# `glib-mkenums' is unhappy that some source files are not valid UTF-8
postPatch = ''find . -type f -name '*.[ch]' -exec sed -r -i 's/\xD6/O/g' {} +'';
configureFlags = stdenv.lib.optional withGtk3 "--enable-gtk3";
meta = {
homepage = https://www.xfce.org/;
description = "GTK theme engine for Xfce";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
}
-41
View File
@@ -1,41 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, xorg, gtk, libxfce4util, xfconf
, libglade, libstartup_notification, hicolor-icon-theme
, withGtk3 ? false, gtk3
}:
let
p_name = "libxfce4ui";
ver_maj = "4.12";
ver_min = "1";
inherit (stdenv.lib) optional;
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "3d619811bfbe7478bb984c16543d980cadd08586365a7bc25e59e3ca6384ff43";
};
outputs = [ "out" "dev" "devdoc" ];
nativeBuildInputs = [ pkgconfig intltool ];
buildInputs =
[ gtk libxfce4util xfconf libglade
libstartup_notification hicolor-icon-theme
] ++ optional withGtk3 gtk3;
propagatedBuildInputs = [ xorg.libICE xorg.libSM ];
#TODO: glade?
configureFlags = optional withGtk3 "--enable-gtk3";
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://www.xfce.org/;
description = "Basic GUI library for Xfce";
license = licenses.lgpl2Plus;
platforms = platforms.linux;
};
}
@@ -0,0 +1,23 @@
{ lib, mkXfceDerivation, gobject-introspection, gtk2, gtk3, libICE, libSM
, libstartup_notification, libxfce4util, xfconf }:
mkXfceDerivation {
category = "xfce";
pname = "libxfce4ui";
version = "4.14.1";
sha256 = "0fnncf30s51qhgixn57z4d021pjjhzgsg2x69w4dy68vff2347qy";
nativeBuildInputs = [ gobject-introspection ];
buildInputs = [ gtk2 gtk3 libstartup_notification xfconf ];
propagatedBuildInputs = [ libxfce4util libICE libSM ];
configureFlags = [
"--with-vendor-info='NixOS'"
];
meta = with lib; {
description = "Widgets library for Xfce";
license = licenses.lgpl2Plus;
};
}
-26
View File
@@ -1,26 +0,0 @@
{ stdenv, fetchurl, pkgconfig, glib, intltool }:
let
p_name = "libxfce4util";
ver_maj = "4.12";
ver_min = "1";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "07c8r3xwx5is298zk77m3r784gmr5y4mh8bbca5zdjqk5vxdwsw7";
};
outputs = [ "out" "dev" "devdoc" ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ glib intltool ];
meta = {
homepage = https://www.xfce.org/;
description = "Basic utility non-GUI functions for Xfce";
license = "bsd";
platforms = stdenv.lib.platforms.linux;
};
}
@@ -0,0 +1,16 @@
{ lib, mkXfceDerivation, gobject-introspection }:
mkXfceDerivation {
category = "xfce";
pname = "libxfce4util";
version = "4.14.0";
sha256 = "0vq16bzmnykiikg4dhiaj0qbyj76nkdd54j6k6n568h3dc9ix6q4";
nativeBuildInputs = [ gobject-introspection ];
meta = with lib; {
description = "Extension library for Xfce";
license = licenses.lgpl2Plus;
};
}
-37
View File
@@ -1,37 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk
, libxfce4util, xfconf, libglade, libstartup_notification, hicolor-icon-theme }:
let
p_name = "libxfcegui4";
ver_maj = "4.10";
ver_min = "0";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0cs5im0ib0cmr1lhr5765yliqjfyxvk4kwy8h1l8bn3mj6bzk0ib";
};
outputs = [ "out" "dev" "devdoc" ];
#TODO: gladeui
# By default, libxfcegui4 tries to install into libglade's prefix.
# Install into our own prefix instead.
configureFlags = [
"--with-libglade-module-path=$(out)/lib/libglade/2.0"
];
#NOTE: missing keyboard library support is OK according to the mailing-list
buildInputs =
[ pkgconfig intltool gtk libxfce4util xfconf libglade
libstartup_notification hicolor-icon-theme
];
meta = {
homepage = https://www.xfce.org/;
description = "Basic GUI library for Xfce";
license = stdenv.lib.licenses.lgpl2Plus;
platforms = stdenv.lib.platforms.linux;
};
}
-42
View File
@@ -1,42 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool
, gtk, dbus-glib, libstartup_notification, libnotify, libexif, pcre, udev
, exo, libxfce4util, xfconf, xfce4-panel, hicolor-icon-theme, wrapGAppsHook
}:
stdenv.mkDerivation rec {
p_name = "thunar";
ver_maj = "1.6";
ver_min = "10";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/Thunar-${ver_maj}.${ver_min}.tar.bz2";
sha256 = "7e9d24067268900e5e44d3325e60a1a2b2f8f556ec238ec12574fbea15fdee8a";
};
name = "${p_name}-build-${ver_maj}.${ver_min}";
patches = [ ./thunarx_plugins_directory.patch ];
postPatch = ''
sed -i -e 's|thunar_dialogs_show_insecure_program (parent, _(".*"), file, exec)|1|' thunar/thunar-file.c
'';
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
buildInputs = [
intltool
gtk dbus-glib libstartup_notification libnotify libexif pcre udev
exo libxfce4util xfconf xfce4-panel
hicolor-icon-theme
];
# TODO: optionality?
enableParallelBuilding = true;
meta = {
homepage = http://thunar.xfce.org/;
description = "Xfce file manager";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
}
-30
View File
@@ -1,30 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui
, xfconf, udev, libgudev, libnotify, hicolor-icon-theme }:
stdenv.mkDerivation rec {
p_name = "thunar-volman";
ver_maj = "0.8";
ver_min = "1";
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1gf259n1v3y23n1zlkhyr6r0i8j59rnl1cmxvxj6la9cwdfbn22s";
};
buildInputs =
[ pkgconfig intltool exo gtk udev libgudev libxfce4ui libxfce4util
xfconf libnotify hicolor-icon-theme
];
enableParallelBuilding = true;
meta = {
homepage = https://goodies.xfce.org/projects/thunar-plugins/thunar-volman;
description = "Thunar extension for automatic management of removable drives and media";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
}
@@ -0,0 +1,15 @@
{ mkXfceDerivation, exo, gtk3, libgudev, libxfce4ui, libxfce4util, xfconf }:
mkXfceDerivation {
category = "xfce";
pname = "thunar-volman";
version = "0.9.5";
buildInputs = [ exo gtk3 libgudev libxfce4ui libxfce4util xfconf ];
sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0";
meta = {
description = "Thunar extension for automatic management of removable drives and media";
};
}
-68
View File
@@ -1,68 +0,0 @@
{ stdenv, buildEnv, runCommand, makeWrapper, lndir, thunar-bare
, thunarPlugins ? []
}:
with stdenv.lib;
let
build = thunar-bare;
replaceLnExeListWithWrapped = exeDir: exeNameList: mkWrapArgs: ''
exeDir="${exeDir}"
oriDir=`realpath -e "$exeDir"`
unlink "$exeDir"
mkdir -p "$exeDir"
lndir "$oriDir" "$exeDir"
exeList="${concatStrings (intersperse " " (map (x: "${exeDir}/${x}") exeNameList))}"
for exe in $exeList; do
oriExe=`realpath -e "$exe"`
rm -f "$exe"
makeWrapper "$oriExe" "$exe" ${concatStrings (intersperse " " mkWrapArgs)}
done
'';
name = "${build.p_name}-${build.ver_maj}.${build.ver_min}";
meta = {
inherit (build.meta) homepage license platforms;
description = build.meta.description + optionalString
(0 != length thunarPlugins)
" (with plugins: ${concatStrings (intersperse ", " (map (x: x.name) thunarPlugins))})";
maintainers = build.meta.maintainers /*++ [ jraygauthier ]*/;
};
in
# TODO: To be replaced with `buildEnv` awaiting missing features.
runCommand name {
inherit build;
inherit meta;
nativeBuildInputs = [ makeWrapper lndir ];
dontPatchELF = true;
dontStrip = true;
}
(let
buildWithPlugins = buildEnv {
name = "thunar-bare-with-plugins";
paths = [ build ] ++ thunarPlugins;
};
in ''
mkdir -p $out
pushd ${buildWithPlugins} > /dev/null
for d in `find . -maxdepth 1 -name "*" -printf "%f\n" | tail -n+2`; do
ln -s "${buildWithPlugins}/$d" "$out/$d"
done
popd > /dev/null
${replaceLnExeListWithWrapped "$out/bin" [ "thunar" "thunar-settings" ] [
"--set THUNARX_MODULE_DIR \"${buildWithPlugins}/lib/thunarx-2\""
]}
'')
@@ -0,0 +1,70 @@
{ mkXfceDerivation
, lib
, docbook_xsl
, exo
, gdk-pixbuf
, gtk3
, libgudev
, libnotify
, libX11
, libxfce4ui
, libxfce4util
, libxslt
, xfconf
, gobject-introspection
, gvfs
, makeWrapper
, symlinkJoin
, thunarPlugins ? []
}:
let unwrapped = mkXfceDerivation {
category = "xfce";
pname = "thunar";
version = "1.8.9";
sha256 = "01w60csbs2nq1bhb8n1bnmjmx48fm0va3qbnq84z0h2dxpr80b1w";
nativeBuildInputs = [
docbook_xsl
gobject-introspection
libxslt
];
buildInputs = [
exo
gdk-pixbuf
gtk3
gvfs
libX11
libgudev
libnotify
libxfce4ui
libxfce4util
xfconf
];
patches = [
./thunarx_plugins_directory.patch
];
# the desktop file … is in an insecure location»
# which pops up when invoking desktop files that are
# symlinks to the /nix/store
#
# this error was added by this commit:
# https://github.com/xfce-mirror/thunar/commit/1ec8ff89ec5a3314fcd6a57f1475654ddecc9875
postPatch = ''
sed -i -e 's|thunar_dialogs_show_insecure_program (parent, _(".*"), file, exec)|1|' thunar/thunar-file.c
'';
meta = {
description = "Xfce file manager";
};
};
in if thunarPlugins == [] then unwrapped
else import ./wrapper.nix {
inherit makeWrapper symlinkJoin thunarPlugins lib;
thunar = unwrapped;
}
@@ -1,8 +1,8 @@
diff --git a/thunarx/thunarx-provider-factory.c b/thunarx/thunarx-provider-factory.c
index 31b8835..a3e7f4e 100644
index 94b11545..1f66c982 100644
--- a/thunarx/thunarx-provider-factory.c
+++ b/thunarx/thunarx-provider-factory.c
@@ -141,12 +141,19 @@ static GList*
@@ -150,12 +150,19 @@ static GList*
thunarx_provider_factory_load_modules (ThunarxProviderFactory *factory)
{
ThunarxProviderModule *module;
@@ -24,7 +24,7 @@ index 31b8835..a3e7f4e 100644
{
/* determine the types for all existing plugins */
diff --git a/thunarx/thunarx-provider-module.c b/thunarx/thunarx-provider-module.c
index 023ad2a..6c21997 100644
index 023ad2ae..b1d1be8f 100644
--- a/thunarx/thunarx-provider-module.c
+++ b/thunarx/thunarx-provider-module.c
@@ -174,10 +174,17 @@ static gboolean
@@ -33,13 +33,13 @@ index 023ad2a..6c21997 100644
ThunarxProviderModule *module = THUNARX_PROVIDER_MODULE (type_module);
+ const gchar *thunar_dir;
gchar *path;
+
+ thunar_dir = g_getenv("THUNARX_MODULE_DIR");
+ if (NULL == thunar_dir)
+ {
+ thunar_dir = THUNARX_DIRECTORY;
+ }
+
/* load the module using the runtime link editor */
- path = g_build_filename (THUNARX_DIRECTORY, type_module->name, NULL);
+ path = g_build_filename (thunar_dir, type_module->name, NULL);
@@ -0,0 +1,34 @@
{ makeWrapper, symlinkJoin, thunar, thunarPlugins, lib }:
symlinkJoin {
name = "thunar-with-plugins-${thunar.version}";
paths = [ thunar ] ++ thunarPlugins;
buildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram "$out/bin/thunar" \
--set "THUNARX_MODULE_DIR" "$out/lib/thunarx-3"
wrapProgram "$out/bin/thunar-settings" \
--set "THUNARX_MODULE_DIR" "$out/lib/thunarx-3"
for file in "lib/systemd/user/thunar.service" "share/dbus-1/services/org.xfce.FileManager.service" \
"share/dbus-1/services/org.xfce.Thunar.FileManager1.service" \
"share/dbus-1/services/org.xfce.Thunar.service"
do
rm -f "$out/$file"
substitute "${thunar}/$file" "$out/$file" \
--replace "${thunar}" "$out"
done
'';
meta = with lib; {
inherit (thunar.meta) homepage license platforms maintainers;
description = thunar.meta.description + optionalString
(0 != length thunarPlugins)
" (with plugins: ${concatStrings (intersperse ", " (map (x: x.name) thunarPlugins))})";
};
}
-42
View File
@@ -1,42 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, dbus-glib, gdk-pixbuf, curl, freetype
, libgsf, poppler, bzip2 }:
let
p_name = "tumbler";
ver_maj = "0.1";
ver_min = "31";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0wvip28gm2w061hn84zp2q4dv947ihylrppahn4cjspzff935zfh";
};
outputs = [ "out" "dev" "devdoc" ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
intltool dbus-glib gdk-pixbuf curl freetype
poppler libgsf bzip2
];
configureFlags = [
# Needs gst-tag
# "--enable-gstreamer-thumbnailer"
# Needs libffmpegthumbnailer
# "--enable-ffmpeg-thumbnailer"
"--enable-odf-thumbnailer"
"--enable-poppler-thumbnailer"
];
meta = with stdenv.lib; {
homepage = http://git.xfce.org/xfce/tumbler/;
description = "A D-Bus thumbnailer service";
platforms = platforms.linux;
license = licenses.gpl2;
};
}
@@ -0,0 +1,39 @@
{ mkXfceDerivation
, ffmpegthumbnailer
, gdk-pixbuf
, glib
, freetype
, libgsf
, poppler
, libjpeg
, gst_all_1
}:
# TODO: add libopenraw
mkXfceDerivation {
category = "xfce";
pname = "tumbler";
version = "0.2.7";
sha256 = "14ql3fcxyz81qr9s0vcwh6j2ks5fl8jf9scwnkilv5jy0ii9l0ry";
buildInputs = [
ffmpegthumbnailer
freetype
gdk-pixbuf
glib
gst_all_1.gst-plugins-base
libgsf
poppler # technically the glib binding
];
# WrapGAppsHook won't touch this binary automatically, so we wrap manually.
postFixup = ''
wrapProgram $out/lib/tumbler-1/tumblerd "''${gappsWrapperArgs[@]}"
'';
meta = {
description = "A D-Bus thumbnailer service";
};
}
@@ -1,29 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk, libxfce4util
, libxfce4ui, garcon, xfconf }:
let
p_name = "xfce4-appfinder";
ver_maj = "4.12";
ver_min = "0";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0ry5hin8xhgnkmm9vs7jq8blk1cnbyr0s18nm1j6nsm7360abm1a";
};
buildInputs =
[ pkgconfig intltool glib gtk libxfce4util libxfce4ui garcon xfconf ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = http://docs.xfce.org/xfce/xfce4-appfinder/;
description = "Xfce application finder, a tool to locate and launch programs on your system";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eelco ];
};
}
@@ -0,0 +1,16 @@
{ mkXfceDerivation, exo, garcon, gtk3, libxfce4util, libxfce4ui, xfconf }:
mkXfceDerivation {
category = "xfce";
pname = "xfce4-appfinder";
version = "4.14.0";
sha256 = "04h7jxfm3wkxnxfy8149dckay7i160vvk4p9lnq6xny22r4x20h8";
nativeBuildInputs = [ exo ];
buildInputs = [ garcon gtk3 libxfce4ui libxfce4util xfconf ];
meta = {
description = "Appfinder for the Xfce4 Desktop Environment";
};
}
@@ -1,28 +0,0 @@
{ stdenv, fetchurl, pkgconfig, glib, autoconf, automake, libtool, intltool }:
let
p_name = "xfce4-dev-tools";
ver_maj = "4.12";
ver_min = "0";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1jxmyp80pwbfgmqmwpjxs7z5dmm6pyf3qj62z20xy44izraadqz2";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ glib ];
# not needed to build it but to use it
propagatedBuildInputs = [ autoconf automake libtool intltool ];
meta = {
homepage = http://foo-projects.org/~benny/projects/xfce4-dev-tools/;
description = "Tools and M4 macros for Xfce4 developers";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
};
}
@@ -0,0 +1,32 @@
{ mkXfceDerivation, autoreconfHook, autoconf, automake
, glib, gtk-doc, intltool, libtool }:
mkXfceDerivation {
category = "xfce";
pname = "xfce4-dev-tools";
version = "4.14.0";
sha256 = "10hcj88784faqrk08xb538355cla26vdk9ckx158hqdqv38sb42f";
nativeBuildInputs = [ autoreconfHook ];
propagatedBuildInputs = [
autoconf
automake
glib
gtk-doc
intltool
libtool
];
preAutoreconf = ''
substitute configure.ac.in configure.ac \
--subst-var-by REVISION UNKNOWN
'';
setupHook = ./setup-hook.sh;
meta = {
description = "Autoconf macros and scripts to augment app build systems";
};
}
@@ -0,0 +1,12 @@
xdtEnvHook() {
addToSearchPath ACLOCAL_PATH $1/share/xfce4/dev-tools/m4macros
}
envHooks+=(xdtEnvHook)
xdtAutogenPhase() {
mkdir -p m4
NOCONFIGURE=1 xdt-autogen
}
preConfigurePhases+=(xdtAutogenPhase)
@@ -1,25 +0,0 @@
--- ./scripts/xflock4.orig 2017-08-06 23:05:53.807688995 +0100
+++ ./scripts/xflock4 2017-08-06 23:09:06.171789989 +0100
@@ -24,12 +24,19 @
PATH=/bin:/usr/bin
export PATH
-# Lock by xscreensaver or gnome-screensaver, if a respective daemon is running
+# First test for the command set in the session's xfconf channel
+LOCK_CMD=$(xfconf-query -c xfce4-session -p /general/LockCommand)
+
+# Lock by xscreensaver, gnome-screensaver, or light-locker, if a respective daemon is running
for lock_cmd in \
+ "$LOCK_CMD" \
"xscreensaver-command -lock" \
- "gnome-screensaver-command --lock"
+ "gnome-screensaver-command --lock" \
+ "light-locker-command -l"
do
- $lock_cmd >/dev/null 2>&1 && exit
+ if [ ! -z "$lock_cmd" ]; then
+ $lock_cmd >/dev/null 2>&1 && exit
+ fi
done
# else run another access locking utility, if installed
-59
View File
@@ -1,59 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
, libxfce4ui_gtk3, libwnck, exo, garcon, xfconf, libstartup_notification
, makeWrapper, xfce4-mixer, hicolor-icon-theme, tzdata
, withGtk3 ? false, gtk3, gettext, glib-networking
}:
let
inherit (stdenv.lib) optional;
p_name = "xfce4-panel";
ver_maj = "4.12";
ver_min = "2";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1s8cvsrgmkmmm84g6mghpj2k4777gm22g5lrsf8pdy5qh6xql1a2";
};
patches = [ ./xfce4-panel-datadir.patch ];
patchFlags = "-p1";
postPatch = ''
for f in $(find . -name \*.sh); do
substituteInPlace $f --replace gettext ${gettext}/bin/gettext
done
substituteInPlace plugins/clock/clock.c \
--replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" \
--replace "if (!g_file_test (filename, G_FILE_TEST_IS_SYMLINK))" ""
'';
outputs = [ "out" "dev" "devdoc" ];
buildInputs =
[ pkgconfig intltool gtk libxfce4util exo libwnck
garcon xfconf libstartup_notification makeWrapper hicolor-icon-theme
] ++ xfce4-mixer.gst_plugins
++ optional withGtk3 gtk3;
propagatedBuildInputs = [ (if withGtk3 then libxfce4ui_gtk3 else libxfce4ui) ];
configureFlags = optional withGtk3 "--enable-gtk3";
postInstall = ''
wrapProgram "$out/bin/xfce4-panel" \
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" \
--prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules"
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://www.xfce.org/projects/xfce4-panel;
description = "Xfce panel";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eelco ];
};
}
@@ -0,0 +1,29 @@
{ mkXfceDerivation, tzdata, exo, garcon, gtk2, gtk3, glib, gettext, glib-networking, libxfce4ui, libxfce4util, libwnck3, xfconf, gobject-introspection }:
mkXfceDerivation {
category = "xfce";
pname = "xfce4-panel";
version = "4.14.0";
sha256 = "1v3f2xjz9gwa8maqqvv9w2dh1cgy03v89a9ny7nrv0cjsxwwrr15";
nativeBuildInputs = [ gobject-introspection ];
buildInputs = [ exo garcon gtk2 gtk3 glib glib-networking libxfce4ui libxfce4util libwnck3 xfconf ];
patches = [ ./xfce4-panel-datadir.patch ];
patchFlags = "-p1";
postPatch = ''
for f in $(find . -name \*.sh); do
substituteInPlace $f --replace gettext ${gettext}/bin/gettext
done
substituteInPlace plugins/clock/clock.c \
--replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
'';
configureFlags = [ "--enable-gtk3" ];
meta = {
description = "Xfce's panel";
};
}
@@ -1,44 +0,0 @@
{ stdenv, lib, fetchurl, pkgconfig, intltool, glib, gtk, dbus-glib, upower, xfconf
, libxfce4ui, libxfce4util, libnotify, xfce4-panel, hicolor-icon-theme
, withGtk3 ? false, gtk3, libxfce4ui_gtk3, xfce4panel_gtk3 }:
let
p_name = "xfce4-power-manager";
ver_maj = if withGtk3 then "1.6" else "1.4";
ver_min = if withGtk3 then "0" else "4";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 =
if withGtk3
then "0avzhllpimcn7a6z9aa4jn0zg5ahxr9ks5ldchizycdb0rz1bqxx"
else "01rvqy1cif4s8lkidb7hhmsz7d9f2fwcwvc51xycaj3qgsmch3n5";
};
buildInputs =
[ pkgconfig intltool glib dbus-glib upower xfconf libxfce4util
libnotify hicolor-icon-theme
] ++
(if withGtk3
then [ gtk3 libxfce4ui_gtk3 xfce4panel_gtk3 ]
else [ gtk libxfce4ui xfce4-panel ]);
postPatch = lib.optionalString withGtk3 ''
substituteInPlace configure --replace gio-2.0 gio-unix-2.0
'';
postConfigure = lib.optionalString withGtk3 ''
substituteInPlace src/Makefile --replace "xfce4_power_manager_CFLAGS = " "xfce4_power_manager_CFLAGS = \$(GIO_CFLAGS) "
substituteInPlace settings/Makefile --replace "xfce4_power_manager_settings_CFLAGS = " "xfce4_power_manager_settings_CFLAGS = \$(GIO_CFLAGS) "
'';
meta = with stdenv.lib; {
homepage = https://goodies.xfce.org/projects/applications/xfce4-power-manager;
description = "A power manager for the Xfce Desktop Environment";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eelco ];
};
}
@@ -0,0 +1,23 @@
{ mkXfceDerivation, automakeAddFlags, exo, gtk3, libnotify
, libxfce4ui, libxfce4util, upower, xfconf }:
mkXfceDerivation {
category = "xfce";
pname = "xfce4-power-manager";
version = "1.6.5";
sha256 = "0zazm2cgkz5xj7rvy9gbh4kaay2anfcmawg4gj38pnq3a8zcwwd5";
nativeBuildInputs = [ automakeAddFlags exo ];
buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util upower xfconf ];
postPatch = ''
substituteInPlace configure.ac.in --replace gio-2.0 gio-unix-2.0
automakeAddFlags src/Makefile.am xfce4_power_manager_CFLAGS GIO_CFLAGS
automakeAddFlags settings/Makefile.am xfce4_power_manager_settings_CFLAGS GIO_CFLAGS
'';
meta = {
description = "A power manager for the Xfce Desktop Environment";
};
}
-44
View File
@@ -1,44 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk, polkit
, libxfce4util, libxfce4ui, xfce4-panel, libwnck, dbus-glib, xfconf, libglade, xorg
, hicolor-icon-theme
}:
let
p_name = "xfce4-session";
ver_maj = "4.12";
ver_min = "1";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "97d7f2a2d0af7f3623b68d1f04091e02913b28f9555dab8b0d26c8a1299d08fd";
};
patches = [
# Fix "lock screen" not working for light-locker
./xfce4-light-locker.patch
];
buildInputs =
[ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck dbus-glib
xfconf xfce4-panel libglade xorg.iceauth xorg.libSM
polkit hicolor-icon-theme
]; #TODO: upower-glib, gconf (assistive?), gnome keyring
preBuild = ''
sed '/^PATH=/d' -i scripts/xflock4
sed '/^export PATH$/d' -i scripts/xflock4
'';
configureFlags = [ "--with-xsession-prefix=$(out)" ];
meta = with stdenv.lib; {
homepage = https://www.xfce.org/projects/xfce4-session;
description = "Session manager for Xfce";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eelco ];
};
}
@@ -0,0 +1,22 @@
{ mkXfceDerivation, polkit, exo, libxfce4util, libxfce4ui, xfconf, iceauth, gtk3, glib, libwnck3, xorg, xfce4-session }:
mkXfceDerivation {
category = "xfce";
pname = "xfce4-session";
version = "4.14.0";
sha256 = "0v0xzkdr5rgv6219c1dy96cghgw8bqnb313jccxihfgddf363104";
buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ];
configureFlags = [ "--with-xsession-prefix=${placeholder "out"}" ];
# See https://github.com/NixOS/nixpkgs/issues/36468
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
passthru.xinitrc = "${xfce4-session}/etc/xdg/xfce4/xinitrc";
meta = {
description = "Session manager for Xfce";
};
}
@@ -1,11 +0,0 @@
--- a/xfsettingsd/xsettings.xml 2015-02-28 22:32:02.681796319 +0100
+++ b/xfsettingsd/xsettings.xml 2015-02-28 22:32:27.881214735 +0100
@@ -7,7 +7,7 @@
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
<property name="ThemeName" type="empty"/>
- <property name="IconThemeName" type="empty"/>
+ <property name="IconThemeName" type="string" value="Rodent"/>
<property name="DoubleClickTime" type="int" value="400"/>
<property name="DoubleClickDistance" type="int" value="5"/>
<property name="DndDragThreshold" type="int" value="8"/>
@@ -1,54 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, garcon, libxfce4util
, libxfce4ui, xfconf, libXi, upower ? null, libnotify ? null
, libXcursor ? null, xf86inputlibinput ? null, libxklavier ? null }:
let
p_name = "xfce4-settings";
ver_maj = "4.12";
ver_min = "1";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0x35i1cvkqp0hib1knwa58mckdwrfbhaisz4bsx6bbbx385llj7n";
};
patches = [ ./xfce4-settings-default-icon-theme.patch ];
postPatch = ''
for f in $(find . -name \*.c); do
substituteInPlace $f --replace \"libinput-properties.h\" '<xorg/libinput-properties.h>'
done
'';
nativeBuildInputs = [ pkgconfig intltool ];
buildInputs = [
exo
gtk
garcon
libxfce4util
libxfce4ui
xfconf
libXi
upower
libnotify
libXcursor
xf86inputlibinput
libxklavier
];
configureFlags = [ "--enable-pluggable-dialogs" "--enable-sound-settings" ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://www.xfce.org/projects/xfce4-settings;
description = "Settings manager for Xfce";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eelco ];
};
}
@@ -0,0 +1,40 @@
{ mkXfceDerivation, automakeAddFlags, exo, garcon, gtk3, glib
, libnotify, libxfce4ui, libxfce4util, libxklavier
, upower, xfconf, xf86inputlibinput }:
mkXfceDerivation {
category = "xfce";
pname = "xfce4-settings";
version = "4.14.0";
sha256 = "13gmxd4sfgd6wky7s03bar58w9vl4i6jv2wncd6iajww791y5akn";
postPatch = ''
for f in $(find . -name \*.c); do
substituteInPlace $f --replace \"libinput-properties.h\" '<xorg/libinput-properties.h>'
done
'';
buildInputs = [
exo
garcon
glib
gtk3
libnotify
libxfce4ui
libxfce4util
libxklavier
upower
xf86inputlibinput
xfconf
];
configureFlags = [
"--enable-pluggable-dialogs"
"--enable-sound-settings"
];
meta = {
description = "Settings manager for Xfce";
};
}
-30
View File
@@ -1,30 +0,0 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus-glib }:
let
p_name = "xfconf";
ver_maj = "4.12";
ver_min = "1";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0dns190bwb615wy9ma2654sw4vz1d0rcv061zmaalkv9wmj8bx1m";
};
outputs = [ "out" "dev" "devdoc" ];
#TODO: no perl bingings yet (ExtUtils::Depends, ExtUtils::PkgConfig, Glib)
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool glib libxfce4util ];
propagatedBuildInputs = [ dbus-glib ];
doCheck = false; # requires dbus daemon
meta = with stdenv.lib; {
homepage = http://docs.xfce.org/xfce/xfconf/start;
description = "Simple client-server configuration storage and query system for Xfce";
license = licenses.gpl2;
platforms = platforms.linux;
};
}
@@ -0,0 +1,15 @@
{ mkXfceDerivation, libxfce4util }:
mkXfceDerivation {
category = "xfce";
pname = "xfconf";
version = "4.14.1";
sha256 = "1mbqc1463xgn7gafbh2fyshshdxin33iwk96y4nw2gl48nhx4sgs";
buildInputs = [ libxfce4util ];
meta = {
description = "Simple client-server configuration storage and query system for Xfce";
};
}
-36
View File
@@ -1,36 +0,0 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
, libwnck, xfconf, libglade, xfce4-panel, thunar, exo, garcon, libnotify
, hicolor-icon-theme }:
let
p_name = "xfdesktop";
ver_maj = "4.12";
ver_min = "3";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "a8a8d93744d842ca6ac1f9bd2c8789ee178937bca7e170e5239cbdbef30520ac";
};
buildInputs = [
pkgconfig intltool gtk libxfce4util libxfce4ui libwnck xfconf
libglade xfce4-panel thunar exo garcon libnotify hicolor-icon-theme
];
patches = [(fetchpatch {
url = https://git.xfce.org/xfce/xfdesktop/patch?id=157f5b55cfc3629d595ef38984278de5915aac27;
sha256 = "0ki7hnyfpz7bdmsxqnm9qvyk040iyv1fawnhzfbyyzrh4nc5jd3x";
})];
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://www.xfce.org/projects/xfdesktop;
description = "Xfce desktop manager";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eelco ];
};
}
@@ -0,0 +1,25 @@
{ mkXfceDerivation, exo, gtk3, libxfce4ui, libxfce4util, libwnck3, xfconf, libnotify, garcon, thunar }:
mkXfceDerivation {
category = "xfce";
pname = "xfdesktop";
version = "4.14.1";
sha256 = "006w4xwmpwp34q2qkkixr3xz0vb0kny79pw64yj4304wsb5jr14g";
buildInputs = [
exo
gtk3
libxfce4ui
libxfce4util
libwnck3
xfconf
libnotify
garcon
thunar
];
meta = {
description = "Xfce's desktop manager";
};
}
-31
View File
@@ -1,31 +0,0 @@
{ stdenv, fetchurl, pkgconfig, gtk, intltool, libglade, libxfce4util
, libxfce4ui, xfconf, libwnck, libstartup_notification, xorg }:
let
p_name = "xfwm4";
ver_maj = "4.12";
ver_min = "4";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0dpvdrd5lclkcrzmdpva38gfsgvdf3xkqfknvy96x6k4fn508x7s";
};
buildInputs =
[ pkgconfig intltool gtk libglade libxfce4util libxfce4ui xfconf
libwnck libstartup_notification
xorg.libXcomposite xorg.libXfixes xorg.libXdamage
];
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://www.xfce.org/projects/xfwm4;
description = "Window manager for Xfce";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eelco ];
};
}
+30
View File
@@ -0,0 +1,30 @@
{ mkXfceDerivation, exo, librsvg, dbus-glib, epoxy, gtk3, libXdamage
, libstartup_notification, libxfce4ui, libxfce4util, libwnck3
, libXpresent, xfconf }:
mkXfceDerivation {
category = "xfce";
pname = "xfwm4";
version = "4.14.0";
sha256 = "1z5aqij2d8n9wnha88b0qzkvss54jvqs8w1w5m3mzjl4c9mn9n8m";
nativeBuildInputs = [ exo librsvg ];
buildInputs = [
dbus-glib
epoxy
gtk3
libXdamage
libstartup_notification
libxfce4ui
libxfce4util
libwnck3
libXpresent
xfconf
];
meta = {
description = "Window manager for Xfce";
};
}