summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeague Sterling <teaguesterling@users.noreply.github.com>2024-08-03 04:29:48 -0700
committerGitHub <noreply@github.com>2024-08-03 13:29:48 +0200
commitc5ae5ba4dba5e326f7f71b44124a3be4b1ef2572 (patch)
tree6fdb70ba3c64c8980919711a908eadb91f2285b1
parenta1090029f36aef54495294426619be55eaf715fb (diff)
downloadspack-c5ae5ba4dba5e326f7f71b44124a3be4b1ef2572.tar.gz
spack-c5ae5ba4dba5e326f7f71b44124a3be4b1ef2572.tar.bz2
spack-c5ae5ba4dba5e326f7f71b44124a3be4b1ef2572.tar.xz
spack-c5ae5ba4dba5e326f7f71b44124a3be4b1ef2572.zip
xfce4: new packages (#44646)
-rw-r--r--var/spack/repos/builtin/packages/exo/package.py54
-rw-r--r--var/spack/repos/builtin/packages/garcon/package.py51
-rw-r--r--var/spack/repos/builtin/packages/libxfce4ui/package.py66
-rw-r--r--var/spack/repos/builtin/packages/libxfce4util/package.py56
-rw-r--r--var/spack/repos/builtin/packages/thunar-volman/package.py38
-rw-r--r--var/spack/repos/builtin/packages/thunar/package.py76
-rw-r--r--var/spack/repos/builtin/packages/tumbler/package.py72
-rw-r--r--var/spack/repos/builtin/packages/xfce4-appfinder/package.py36
-rw-r--r--var/spack/repos/builtin/packages/xfce4-core/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xfce4-panel/fix-libxfce4util-gir.patch14
-rw-r--r--var/spack/repos/builtin/packages/xfce4-panel/package.py57
-rw-r--r--var/spack/repos/builtin/packages/xfce4-session/package.py65
-rw-r--r--var/spack/repos/builtin/packages/xfce4-settings/package.py59
-rw-r--r--var/spack/repos/builtin/packages/xfconf/package.py33
-rw-r--r--var/spack/repos/builtin/packages/xfdesktop/package.py53
-rw-r--r--var/spack/repos/builtin/packages/xfwm4/package.py45
16 files changed, 821 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/exo/package.py b/var/spack/repos/builtin/packages/exo/package.py
new file mode 100644
index 0000000000..6dc79dc943
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exo/package.py
@@ -0,0 +1,54 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Exo(AutotoolsPackage):
+ """Helper applications for XFCE4"""
+
+ homepage = "https://docs.xfce.org/xfce/exo/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/exo-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("GPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="4f2c61d045a888cdb64297fd0ae20cc23da9b97ffb82562ed12806ed21da7d55")
+ version("4.16.0", sha256="1975b00eed9a8aa1f899eab2efaea593731c19138b83fdff2f13bdca5275bacc")
+
+ variant("introspection", default=True, description="Build with gobject-introspection support")
+
+ # Base requirements
+ with default_args(type=("build", "run")):
+ depends_on("libxfce4util")
+ depends_on("libxfce4ui")
+ depends_on("glib@2:")
+ depends_on("gtkplus@3:")
+ depends_on("perl-uri")
+
+ with when("+introspection"):
+ depends_on("libxfce4util+introspection")
+ depends_on("libxfce4ui+introspection")
+ depends_on("gobject-introspection")
+
+ depends_on("intltool@0.51.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ depends_on("gobject-introspection@1.66:", when="+introspection")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+ depends_on("gtkplus@3.22:")
+ depends_on("gobject-introspection@1.60:", when="+introspection")
+
+ def configure_args(self):
+ args = []
+ args += self.enable_or_disable("introspection")
+ return args
diff --git a/var/spack/repos/builtin/packages/garcon/package.py b/var/spack/repos/builtin/packages/garcon/package.py
new file mode 100644
index 0000000000..57d76cee6b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/garcon/package.py
@@ -0,0 +1,51 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Garcon(AutotoolsPackage):
+ """Menu library for XFCE4"""
+
+ homepage = "https://docs.xfce.org/xfce/garcon/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/garcon-0.8.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("LGPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="54633487566a8b8502b71c11a7f719efe27c069bd5773cc95f11ff4ea8f11a14")
+ version("0.8.0", sha256="4811d89ee5bc48dbdeffd69fc3eec6c112bbf01fde98a9e848335b374a4aa1bb")
+
+ variant("introspection", default=True, description="Build with gobject-introspection support")
+
+ # Base requirements
+ depends_on("intltool@0.51.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4util")
+ depends_on("xfconf")
+ depends_on("libxfce4ui")
+ depends_on("glib@2:")
+ depends_on("gtkplus@3:")
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ depends_on("gobject-introspection@1.66:", when="+introspection")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+ depends_on("gtkplus@3.22:")
+ depends_on("gobject-introspection@1.60:", when="+introspection")
+
+ def configure_args(self):
+ args = []
+ args += self.enable_or_disable("introspection")
+ return args
+
+ def setup_dependent_build_environment(self, env, dep_spec):
+ if self.spec.satisfies("+introspection") and dep_spec.satisfies("+introspection"):
+ env.append_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/libxfce4ui/package.py b/var/spack/repos/builtin/packages/libxfce4ui/package.py
new file mode 100644
index 0000000000..0ac4b5500d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxfce4ui/package.py
@@ -0,0 +1,66 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Libxfce4ui(AutotoolsPackage):
+ """Widget sharing library for XFCE4"""
+
+ homepage = "https://docs.xfce.org/xfce/libxfce4ui/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/libxfce4ui-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("LGPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="532247c4387c17bb9ef94a73147039b8d013c3131c95cdbd2fa85fbcc848d06b")
+ version("4.16.0", sha256="8b06c9e94f4be88a9d87c47592411b6cbc32073e7af9cbd64c7b2924ec90ceaa")
+
+ variant("glibtop", default=True, description="Build with glibtop support")
+ variant("introspection", default=True, description="Build with gobject-introspection support")
+ variant("vala", default=True, description="Build with vala support")
+ variant("notification", default=True, description="Build with startup-notification support")
+
+ depends_on("intltool@0.35.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4util")
+ depends_on("xfconf")
+ depends_on("glib@2:")
+ depends_on("gtkplus@3:")
+ depends_on("libgtop@2", when="+glibtop")
+ depends_on("startup-notification", when="+notification")
+ with when("+introspection"):
+ depends_on("gobject-introspection")
+ depends_on("libxfce4util+introspection")
+ with when("+vala"):
+ depends_on("vala")
+ depends_on("libxfce4util+vala")
+ with when("@4.18:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ depends_on("gobject-introspection@1.66:", when="+introspection")
+ with when("@4.16:"):
+ depends_on("glib@2.50:")
+ depends_on("gtkplus@3.22:")
+ depends_on("gobject-introspection@1.60:", when="+introspection")
+
+ def configure_args(self):
+ args = []
+
+ args += self.enable_or_disable("glibtop")
+ args += self.enable_or_disable("introspection")
+ args += self.enable_or_disable("vala")
+ args += self.enable_or_disable("notification")
+
+ return args
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/libxfce4util/package.py b/var/spack/repos/builtin/packages/libxfce4util/package.py
new file mode 100644
index 0000000000..705720ff72
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxfce4util/package.py
@@ -0,0 +1,56 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Libxfce4util(AutotoolsPackage):
+ """Libxfce4util common non-GTK+ utilities among the Xfce applications."""
+
+ homepage = "https://docs.xfce.org/xfce/libxfce4util/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/libxfce4util-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("LGPLv2", checked_by="teague") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="1157ca717fd3dd1da7724a6432a4fb24af9cd922f738e971fd1fd36dfaeac3c9")
+ version("4.16.0", sha256="60598d745d1fc81ff5ad3cecc3a8d1b85990dd22023e7743f55abd87d8b55b83")
+
+ variant("introspection", default=True, description="Build with gobject-introspection support")
+ variant("vala", default=True, description="Build with vala support")
+
+ with default_args(type="build"):
+ depends_on("intltool@0.35.0:", when="@4.16:")
+ depends_on("gettext", when="@4.18:")
+
+ with default_args(type=("run", "link", "build")):
+ depends_on("pkgconfig@0.9.0:")
+ depends_on("glib@2")
+ depends_on("gobject-introspection", when="+introspection")
+ depends_on("vala", when="+vala")
+ with when("@4.18:"):
+ depends_on("glib@2.66:")
+ depends_on("gobject-introspection@1.66:", when="+introspection")
+ with when("@4.16"):
+ depends_on("glib@2.50:")
+ depends_on("gobject-introspection@1.60:", when="+introspection")
+
+ def configure_args(self):
+ args = []
+
+ args += self.enable_or_disable("introspection")
+ args += self.enable_or_disable("vala")
+
+ return args
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/thunar-volman/package.py b/var/spack/repos/builtin/packages/thunar-volman/package.py
new file mode 100644
index 0000000000..a1943bb91d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/thunar-volman/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class ThunarVolman(AutotoolsPackage):
+ """Thunar extension which enables automatic management of removable drives and media."""
+
+ homepage = "https://docs.xfce.org/xfce/thunar/thunar-volman"
+ url = "https://archive.xfce.org/xfce/4.18/src/thunar-volman-4.18.0.tar.bz2"
+
+ maintainers("teaguesterling")
+
+ license("GPLv2", checked_by="teaguesterling")
+
+ version("4.18.0", sha256="93b75c7ffbe246a21f4190295acc148e184be8df397e431b258d0d676e87fc65")
+
+ extends("thunar")
+
+ # Base requirements
+ depends_on("intltool@0.39.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4util")
+ depends_on("xfconf")
+ depends_on("libxfce4ui")
+ depends_on("exo")
+ depends_on("libgudev")
+ depends_on("glib@2:")
+ depends_on("gtkplus@3:")
+ depends_on("dbus-glib")
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ depends_on("libgudev@145:")
diff --git a/var/spack/repos/builtin/packages/thunar/package.py b/var/spack/repos/builtin/packages/thunar/package.py
new file mode 100644
index 0000000000..9d1e4bd517
--- /dev/null
+++ b/var/spack/repos/builtin/packages/thunar/package.py
@@ -0,0 +1,76 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Thunar(AutotoolsPackage):
+ """Thunar File Manager"""
+
+ homepage = "https://docs.xfce.org/xfce/thunar/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/thunar-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+ license("GPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="d1f4b080c97b9e390eff199aaaac7562fb20f031686f8d5ee5207e953bfc2feb")
+ version("4.16.0", sha256="6277c448116a91ebfa564972645d8d79ef69864992a02bb164b7b13f98fdfd9b")
+
+ variant("introspection", default=True, description="Build with gobject-introspection support")
+ variant("notifications", default=True, description="Build with startup-notification support")
+ variant("jpeg", default=True, description="Build with libjpeg support")
+ variant("exif", default=True, description="Build with libexif support")
+ variant("gdbus", default=True, description="Build with gdbus support")
+ variant("gio-unix", default=True, description="Build with gio-unix support")
+ variant("libnotify", default=True, description="Build with libnotify support")
+ variant("freetype", default=True, description="Build with freetype support")
+
+ extendable = True
+
+ # Base requirements
+ depends_on("intltool@0.39.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4util")
+ depends_on("xfconf")
+ depends_on("libxfce4ui")
+ depends_on("exo")
+ depends_on("libpng")
+ depends_on("glib@2:")
+ depends_on("gtkplus@3:")
+ depends_on("libexif", when="+exif")
+ depends_on("dbus-glib", when="+gdbus")
+ depends_on("libnotify", when="+libnotify")
+ depends_on("libjpeg", when="+jpeg")
+ depends_on("freetype", when="+freetype")
+ depends_on("startup-notification", when="+notifications")
+ with when("+introspection"):
+ depends_on("libxfce4util+introspection")
+ depends_on("libxfce4ui+introspection")
+ depends_on("gobject-introspection")
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ depends_on("gobject-introspection@1.66:", when="+introspection")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+ depends_on("gtkplus@3.22:")
+ depends_on("gobject-introspection@1.60:", when="+introspection")
+
+ def setup_build_environment(self, env):
+ if self.spec.satisfies("@4.18"):
+ # Fails to check in xcfe4 include subdirectory for the libxfce4kbd-private-3 tree
+ env.append_flags("CPPFLAGS", f"-I{self.spec['libxfce4ui'].home.include.xfce4}")
+
+ def configure_args(self):
+ args = []
+ args += self.enable_or_disable("introspection")
+ args += self.enable_or_disable("notifications")
+ args += self.enable_or_disable("exif")
+ args += self.enable_or_disable("gio-unix")
+ args += ["--with-custom-thunarx-dirs-enabled"]
+ return args
diff --git a/var/spack/repos/builtin/packages/tumbler/package.py b/var/spack/repos/builtin/packages/tumbler/package.py
new file mode 100644
index 0000000000..66fa45706a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tumbler/package.py
@@ -0,0 +1,72 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Tumbler(AutotoolsPackage):
+ """Tumbler is a D-Bus service for applications to request thumbnails for XFCE4"""
+
+ homepage = "https://docs.xfce.org/xfce/tumbler/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/tumbler-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("GPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="4087f3af4ef31271d3f315421a2f1fe67e4fda7ad60bbab1f073627914dfcf00")
+ version("4.16.0", sha256="9b0b7fed0c64041733d490b1b307297984629d0dd85369749617a8766850af66")
+
+ variant("desktop-thumbnailer", default=True, description="Build with .desktop file support")
+ variant("cover-thumbnailer", default=True, description="Build with cover support")
+ variant("pixbuf-thumbnailer", default=True, description="Build with pixbuf support")
+ variant("font-thumbnailer", default=True, description="Build with font support")
+ variant("jpeg-thumbnailer", default=True, description="Build with jpeg thumbnail support")
+ variant("ffmpeg-thumbnailer", default=True, description="Build with ffmpg video support")
+ # variant("gstreamer", default=True, description="Build with gstreamer video support")
+ variant("poppler-thumbnailer", default=True, description="Build with pdf support")
+ # variant("libgsf", default=True, description="Build with odf support")
+ # variant("libopenraw-gnome", default=True, description="Build with raw image support")
+
+ conflicts("%gcc@13:", when="@:4.18", msg="GCC 13+ fails on implicit pointer casting")
+
+ # Base requirements
+ with default_args(type="build"):
+ depends_on("intltool@0.35.0:")
+ depends_on("gettext")
+ depends_on("pkgconfig", type=("build", "link"))
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4util")
+ depends_on("glib@2:")
+ depends_on("dbus-glib")
+ depends_on("gdk-pixbuf")
+ depends_on("libpng")
+ depends_on("gtkplus@3:")
+ depends_on("freetype", when="+font-thumbnailer")
+ depends_on("libjpeg", when="+jpeg-thumbnailer")
+ depends_on("ffmpeg", when="+ffmpeg-thumbnailer")
+ depends_on("poppler+glib", when="+poppler-thumbnailer")
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+ depends_on("gtkplus@3.22:")
+
+ def configure_args(self):
+ args = []
+
+ args += self.enable_or_disable("desktop-thumbnailer")
+ args += self.enable_or_disable("cover-thumbnailer")
+ args += self.enable_or_disable("pixbuf-thumbnailer")
+ args += self.enable_or_disable("font-thumbnailer")
+ args += self.enable_or_disable("jpeg-thumbnailer")
+ args += self.enable_or_disable("ffmpeg-thumbnailer")
+ args += self.enable_or_disable("poppler-thumbnailer")
+
+ return args
diff --git a/var/spack/repos/builtin/packages/xfce4-appfinder/package.py b/var/spack/repos/builtin/packages/xfce4-appfinder/package.py
new file mode 100644
index 0000000000..c7c48fdfa5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfce4-appfinder/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Xfce4Appfinder(AutotoolsPackage):
+ """Program to find and launch installed applications for XFCE4"""
+
+ homepage = "https://docs.xfce.org/xfce/xfce4-appfinder/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/xfce4-appfinder-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("GPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="962a98d7b327d2073ed4cd0f78bce7945ed51b97d52fd60196e8b02ef819c18c")
+ version("4.16.0", sha256="37b92aaaeeec8220ed23163cf89321168d3b49e0c48b4c10f12dc4a21fdf0954")
+
+ # Base requirements
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4ui")
+ depends_on("garcon")
+ depends_on("glib@2:")
+
+ depends_on("intltool@0.35.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
diff --git a/var/spack/repos/builtin/packages/xfce4-core/package.py b/var/spack/repos/builtin/packages/xfce4-core/package.py
new file mode 100644
index 0000000000..406fdcaaa6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfce4-core/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Xfce4Core(BundlePackage):
+ """Core libraries and applications for the Xfce4 desktop environment"""
+
+ homepage = "https://docs.xfce.org/start"
+
+ maintainers("teaguesterling")
+
+ version("4.18")
+ version("4.16")
+
+ with when("@4.18"):
+ depends_on("libxfce4util@4.18")
+ depends_on("xfconf@4.18")
+ depends_on("libxfce4ui@4.18")
+ depends_on("garcon@4.18.0")
+ depends_on("exo@4.18")
+ depends_on("thunar@4.18")
+ depends_on("xfce4-session@4.18")
+ depends_on("xfce4-panel@4.18")
+ depends_on("xfce4-settings@4.18")
+ depends_on("xfdesktop@4.18")
+ depends_on("xfwm4@4.18")
+ depends_on("xfce4-appfinder@4.18")
+ depends_on("tumbler@4.18")
+ with when("@4.16"):
+ depends_on("libxfce4util@4.16")
+ depends_on("xfconf@4.16")
+ depends_on("libxfce4ui@4.16")
+ depends_on("garcon@0.8.0")
+ depends_on("exo@4.16")
+ depends_on("thunar@4.16")
+ depends_on("xfce4-session@4.16")
+ depends_on("xfce4-panel@4.16")
+ depends_on("xfce4-settings@4.16")
+ depends_on("xfdesktop@4.16")
+ depends_on("xfwm4@4.16")
+ depends_on("xfce4-appfinder@4.16")
+ depends_on("tumbler@4.16")
diff --git a/var/spack/repos/builtin/packages/xfce4-panel/fix-libxfce4util-gir.patch b/var/spack/repos/builtin/packages/xfce4-panel/fix-libxfce4util-gir.patch
new file mode 100644
index 0000000000..7716dd8d4a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfce4-panel/fix-libxfce4util-gir.patch
@@ -0,0 +1,14 @@
+diff --git a/libxfce4panel/Makefile.in b/libxfce4panel/Makefile.in
+index 41642e1..c7d7b51 100644
+--- a/libxfce4panel/Makefile.in
++++ b/libxfce4panel/Makefile.in
+@@ -861,7 +861,7 @@ INTROSPECTION_COMPILER_ARGS = \
+ --includedir=.
+
+ @HAVE_INTROSPECTION_TRUE@introspection_sources = $(libxfce4panel_2_0_la_SOURCES)
+-@HAVE_INTROSPECTION_TRUE@libxfce4panel_2_0_gir_INCLUDES = GObject-2.0 GLib-2.0 Gtk-3.0 Libxfce4util-1.0
++@HAVE_INTROSPECTION_TRUE@libxfce4panel_2_0_gir_INCLUDES = GObject-2.0 GLib-2.0 Gtk-3.0 libxfce4util-1.0
+ @HAVE_INTROSPECTION_TRUE@libxfce4panel_2_0_gir_CFLAGS = $(AM_CPPFLAGS)
+ @HAVE_INTROSPECTION_TRUE@libxfce4panel_2_0_gir_LIBS = libxfce4panel-2.0.la
+ @HAVE_INTROSPECTION_TRUE@libxfce4panel_2_0_gir_FILES = $(introspection_sources)
+
diff --git a/var/spack/repos/builtin/packages/xfce4-panel/package.py b/var/spack/repos/builtin/packages/xfce4-panel/package.py
new file mode 100644
index 0000000000..b406173fc4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfce4-panel/package.py
@@ -0,0 +1,57 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Xfce4Panel(AutotoolsPackage):
+ """Panel manager for Xfce4"""
+
+ homepage = "https://docs.xfce.org/xfce/xfce4-panel/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/xfce4-panel-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("GPLv2 OR LGPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="be80023fd546587831bab25ded15ae4c9e346289a75744b6ba4cf4ee53794710")
+ version("4.16.0", sha256="5e979aeeb37d306d72858b1bc67448222ea7a68de01409055b846cd31f3cc53d")
+
+ variant("introspection", default=True, description="Build with gobject-introspection support")
+ variant("notification", default=True, description="Build with startup-notification support")
+
+ patch("fix-libxfce4util-gir.patch", when="@4.16.0") # Capitalization difference causes error
+
+ # Base requirements
+ depends_on("intltool@0.51.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4ui")
+ depends_on("libxfce4util")
+ depends_on("exo")
+ depends_on("garcon")
+ depends_on("libwnck@3:")
+ depends_on("glib@2:")
+ depends_on("gtkplus@3:")
+ depends_on("startup-notification", when="+notification")
+ with when("+introspection"):
+ depends_on("libxfce4ui+introspection")
+ depends_on("gobject-introspection")
+ depends_on("gobject-introspection")
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ depends_on("gobject-introspection@1.66:", when="+introspection")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+ depends_on("gtkplus@3.22:")
+ depends_on("gobject-introspection@1.60:", when="+introspection")
+
+ def configure_args(self):
+ args = []
+ args += self.enable_or_disable("introspection")
+ return args
diff --git a/var/spack/repos/builtin/packages/xfce4-session/package.py b/var/spack/repos/builtin/packages/xfce4-session/package.py
new file mode 100644
index 0000000000..850af1c059
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfce4-session/package.py
@@ -0,0 +1,65 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Xfce4Session(AutotoolsPackage):
+ """Session manager for Xfce4"""
+
+ homepage = "https://docs.xfce.org/xfce/xfce4-session/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/xfce4-session-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("GPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="38badb500b272012f494543a60a9c0563c381647cc95bed73b68aec0b0b89a7f")
+ version("4.16.0", sha256="22f273f212481d71e0b5618c62710cd85f69aea74f5ea5c0093f7918b07d17b7")
+
+ variant(
+ "icon-themes",
+ description="Default icon themes to include",
+ default="hicolor",
+ values=["hicolor", "adwaita"],
+ multi=True,
+ )
+
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4ui")
+ depends_on("libwnck@3.10:")
+ depends_on("dbus-glib")
+ depends_on("iceauth")
+ depends_on("perl-xml-parser")
+
+ depends_on("intltool@0.39.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+
+ with default_args(type="run"):
+ depends_on("adwaita-icon-theme", when="icon-themes=adwaita")
+ depends_on("hicolor-icon-theme", when="icon-themes=hicolor")
+
+ def configure_args(self):
+ args = []
+ args += [f"--with-xsession-prefix={self.home}"]
+ return args
+
+ def setup_run_enviornment(self, env):
+ self.add_xdg_dirs(env)
+
+ def setup_dependent_run_environment(self, env, dep_spec):
+ self.add_xdg_dirs(env)
+
+ def add_xdg_dirs(self, env):
+ # Xfce4-session needs $prefix/etc/xdg in it XDG_CONFIG_DIRS
+ env.append_path("XDG_CONFIG_DIRS", self.home.etc.xdg)
+ env.append_path("XDG_CONFIG_DIRS", self.prefix.etc.xdg)
diff --git a/var/spack/repos/builtin/packages/xfce4-settings/package.py b/var/spack/repos/builtin/packages/xfce4-settings/package.py
new file mode 100644
index 0000000000..1d9b7cfb79
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfce4-settings/package.py
@@ -0,0 +1,59 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Xfce4Settings(AutotoolsPackage):
+ """Daemon, manager, and editor to centralize the configuration management for XFCE4"""
+
+ homepage = "https://docs.xfce.org/xfce/xfce4-settings/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/xfce4-settings-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("GPLv2", checked_by="teaguesterling")
+
+ version("4.18.0", sha256="ed3f75837cb33cd694610fc87cd569c4782b7ac4e099143a3dbe8fff1f1c6a9d")
+ version("4.16.0", sha256="67a1404fc754c675c6431e22a8fe0e5d79644fdfadbfe25a4523d68e1442ddc2")
+
+ variant("introspection", default=True, description="Build with gobject-introspection support")
+ variant("libxcursor", default=True, description="Build with Xcursor support")
+ variant("libnotify", default=True, description="Build with libnotify support")
+
+ # Base requirements
+ with default_args(type=("build", "link", "run")):
+ depends_on("xfconf")
+ depends_on("libxfce4ui")
+ depends_on("garcon")
+ depends_on("exo")
+ depends_on("dbus-glib")
+ depends_on("libxi")
+ depends_on("libxrandr")
+ depends_on("libxcursor", when="+libxcursor")
+ depends_on("libnotify", when="+libnotify")
+ with when("+introspection"):
+ depends_on("libxfce4util+introspection")
+ depends_on("libxfce4ui+introspection")
+ depends_on("gobject-introspection")
+
+ depends_on("intltool@0.39.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gobject-introspection@1.66:", when="+introspection")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+ depends_on("gobject-introspection@1.60:", when="+introspection")
+
+ def configure_args(self):
+ args = []
+ args += self.enable_or_disable("libxcursor")
+ args += self.enable_or_disable("libnotify")
+ args += self.enable_or_disable("introspection")
+ return args
diff --git a/var/spack/repos/builtin/packages/xfconf/package.py b/var/spack/repos/builtin/packages/xfconf/package.py
new file mode 100644
index 0000000000..ffd975c11f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfconf/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Xfconf(AutotoolsPackage):
+ """xfconf - Configuration Storage System for XFCE4"""
+
+ homepage = "https://docs.xfce.org/xfce/xfconf/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/xfconf-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("LGPLv2.1", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="2e8c50160bf800a807aea094fc9dad81f9f361f42db56607508ed5b4855d2906")
+ version("4.16.0", sha256="652a119007c67d9ba6c0bc7a740c923d33f32d03dc76dfc7ba682584e72a5425")
+
+ depends_on("intltool@0.35.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4util")
+ depends_on("dbus-glib")
+ with when("@4.18"):
+ depends_on("glib@2.66:")
+ depends_on("gettext") # Undocumented
+ with when("@4.16"):
+ depends_on("glib@2.50:")
diff --git a/var/spack/repos/builtin/packages/xfdesktop/package.py b/var/spack/repos/builtin/packages/xfdesktop/package.py
new file mode 100644
index 0000000000..58daf8ac72
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfdesktop/package.py
@@ -0,0 +1,53 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Xfdesktop(AutotoolsPackage):
+ """Xfdesktop is a desktop manager for the Xfce Desktop Environment."""
+
+ homepage = "https://docs.xfce.org/xfce/xfdesktop/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/xfdesktop-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("GPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="661783e7e6605459926d80bca46d25ce2197c221456457a863ea9d0252120d14")
+ version("4.16.0", sha256="934ba5affecff21e62d9fac1dd50c50cd94b3a807fefa5f5bff59f3d6f155bae")
+
+ variant("libnotify", default=True, description="Build with libnotify support")
+ variant("thunarx", default=False, description="Build with thunarx support") # TODO
+
+ # Base requirements
+ depends_on("intltool@0.35.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ depends_on("xfconf")
+ depends_on("libxfce4ui")
+ depends_on("libwnck")
+ depends_on("exo")
+ depends_on("garcon")
+ depends_on("glib@2:")
+ depends_on("gtkplus@3:")
+
+ depends_on("libnotify", when="+libnotify")
+
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+ depends_on("gtkplus@3.22:")
+
+ def configure_args(self):
+ args = []
+
+ args += self.enable_or_disable("libnotify")
+
+ return args
diff --git a/var/spack/repos/builtin/packages/xfwm4/package.py b/var/spack/repos/builtin/packages/xfwm4/package.py
new file mode 100644
index 0000000000..c97354369e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfwm4/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Xfwm4(AutotoolsPackage):
+ """xfwm4 is the window manager for Xfce"""
+
+ homepage = "https://docs.xfce.org/xfce/xfwm4/start"
+ url = "https://archive.xfce.org/xfce/4.16/src/xfwm4-4.16.0.tar.bz2"
+ list_url = "https://archive.xfce.org/xfce/"
+ list_depth = 2
+
+ maintainers("teaguesterling")
+
+ license("GPLv2", checked_by="teaguesterling") # https://wiki.xfce.org/licenses/audit
+
+ version("4.18.0", sha256="92cd1b889bb25cb4bc06c1c6736c238d96e79c1e706b9f77fad0a89d6e5fc13f")
+ version("4.16.0", sha256="1e22eae1bbb66cebfd1753b0a5606e76ecbf6b09ce4cdfd732d093c936f1feb3")
+
+ variant("notification", default=True, description="Build with startup-notification support")
+
+ # Base requirements
+ depends_on("intltool@0.35.0:", type="build")
+ with default_args(type=("build", "link", "run")):
+ depends_on("libxfce4util")
+ depends_on("xfconf")
+ depends_on("libxfce4ui")
+ depends_on("dbus-glib")
+ depends_on("libwnck")
+ depends_on("libxinerama") # Undocumented
+ depends_on("glib@2:")
+ depends_on("gtkplus@3:")
+ depends_on("startup-notification", when="+notification")
+
+ with when("@4.18.0:"):
+ depends_on("glib@2.66:")
+ depends_on("gtkplus@3.24:")
+ with when("@4.16.0:"):
+ depends_on("glib@2.50:")
+ depends_on("gtkplus@3.22:")