Package: guix-patches;
Reported by: Leo Famulari <leo <at> famulari.name>
Date: Thu, 20 Jan 2022 18:12:01 UTC
Severity: normal
Tags: patch
Merged with 53750
Done: Vinicius Monego <monego <at> posteo.net>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Leo Famulari <leo <at> famulari.name> To: guix-patches <at> gnu.org Subject: [PATCH] gnu: Openbox: Make compatible with Python 3. Date: Thu, 20 Jan 2022 13:11:07 -0500
As the patch file says, Openbox seems abandoned upstream. So, as Python 2 is phased out, we can either use a patch like this, or remove Openbox. I rebuilt all affected packages on x86_64-linux, and there were no new build failures, only the same failures as before this patch: kdepim-runtime-20.04.1 kmail-20.04.1 akregator-20.04.1 scorep-openmpi-3.1 smb4k-3.0.6 * gnu/packages/patches/openbox-python-3-compatibility.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/openbox.scm (openbox)[source]: Use it. --- gnu/packages/openbox.scm | 4 +- .../openbox-python-3-compatibility.patch | 273 ++++++++++++++++++ 2 files changed, 276 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/openbox-python-3-compatibility.patch diff --git a/gnu/packages/openbox.scm b/gnu/packages/openbox.scm index 873592c19e..698c939a96 100644 --- a/gnu/packages/openbox.scm +++ b/gnu/packages/openbox.scm @@ -24,6 +24,7 @@ (define-module (gnu packages openbox) #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (gnu packages) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) @@ -44,6 +45,7 @@ (define-public openbox (uri (string-append "http://openbox.org/dist/openbox/" name "-" version ".tar.xz")) + (patches (search-patches "openbox-python-3-compatibility.patch")) (sha256 (base32 "0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb")))) @@ -60,7 +62,7 @@ (define-public openbox libxrandr libxft pango - python-2)) + python)) (synopsis "Box style window manager") (description "Openbox is a highly configurable, next generation window manager with diff --git a/gnu/packages/patches/openbox-python-3-compatibility.patch b/gnu/packages/patches/openbox-python-3-compatibility.patch new file mode 100644 index 0000000000..8e19bc86d6 --- /dev/null +++ b/gnu/packages/patches/openbox-python-3-compatibility.patch @@ -0,0 +1,273 @@ +Make Openbox compatible with Python 3. + +Patch adapted from Gentoo: + +https://gitweb.gentoo.org/repo/gentoo.git/patch/?id=31bad4f781f788ccf848500f8c17905ad32a2de9 + +Openbox seems to be abandoned upstream, with no activity in their Git repo since +2015: + +http://openbox.org/develop-git.php + +From 31bad4f781f788ccf848500f8c17905ad32a2de9 Mon Sep 17 00:00:00 2001 +From: Hanno Böck <hanno <at> gentoo.org> +Date: Mon, 13 Jan 2020 17:22:27 +0100 +Subject: x11-wm/openbox: Python 3 support. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Use EAPI 7. +Remove Python 2, change to python single package. + +Closes: https://bugs.gentoo.org/696042 +Signed-off-by: Hanno Böck <hanno <at> gentoo.org> +Package-Manager: Portage-2.3.84, Repoman-2.3.20 +--- + x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch | 126 +++++++++++++++++++++++ + x11-wm/openbox/openbox-3.6.1-r2.ebuild | 100 ++++++++++++++++++ + 2 files changed, 226 insertions(+) + create mode 100644 x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch + create mode 100644 x11-wm/openbox/openbox-3.6.1-r2.ebuild + +diff --git a/x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch b/x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch +new file mode 100644 +index 00000000000..d28b536d64a +--- /dev/null ++++ b/x11-wm/openbox/files/openbox-3.6.1-py3-xdg.patch +@@ -0,0 +1,126 @@ ++diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart ++index 04a17a199..f2c75bbdd 100755 ++--- a/data/autostart/openbox-xdg-autostart +++++ b/data/autostart/openbox-xdg-autostart ++@@ -19,6 +19,8 @@ ++ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ # GNU General Public License for more details. ++ +++from __future__ import print_function +++ ++ ME="openbox-xdg-autostart" ++ VERSION="1.1" ++ ++@@ -28,9 +30,9 @@ try: ++ from xdg.DesktopEntry import DesktopEntry ++ from xdg.Exceptions import ParsingError ++ except ImportError: ++- print ++- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed" ++- print +++ print() +++ print("ERROR:", ME, "requires PyXDG to be installed", file=sys.stderr) +++ print() ++ sys.exit(1) ++ ++ def main(argv=sys.argv): ++@@ -51,7 +53,7 @@ def main(argv=sys.argv): ++ try: ++ autofile = AutostartFile(path) ++ except ParsingError: ++- print "Invalid .desktop file: " + path +++ print("Invalid .desktop file: " + path) ++ else: ++ if not autofile in files: ++ files.append(autofile) ++@@ -99,9 +101,9 @@ class AutostartFile: ++ ++ def _alert(self, str, info=False): ++ if info: ++- print "\t ", str +++ print("\t ", str) ++ else: ++- print "\t*", str +++ print("\t*", str) ++ ++ def _showInEnvironment(self, envs, verbose=False): ++ default = not self.de.getOnlyShowIn() ++@@ -146,14 +148,14 @@ class AutostartFile: ++ ++ def display(self, envs): ++ if self._shouldRun(envs): ++- print "[*] " + self.de.getName() +++ print("[*] " + self.de.getName()) ++ else: ++- print "[ ] " + self.de.getName() +++ print("[ ] " + self.de.getName()) ++ self._alert("File: " + self.path, info=True) ++ if self.de.getExec(): ++ self._alert("Executes: " + self.de.getExec(), info=True) ++ self._shouldRun(envs, True) ++- print +++ print() ++ ++ def run(self, envs): ++ here = os.getcwd() ++@@ -165,34 +167,34 @@ class AutostartFile: ++ os.chdir(here) ++ ++ def show_help(): ++- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..." ++- print ++- print "This tool will run xdg autostart .desktop files" ++- print ++- print "OPTIONS" ++- print " --list Show a list of the files which would be run" ++- print " Files which would be run are marked with an asterix" ++- print " symbol [*]. For files which would not be run," ++- print " information is given for why they are excluded" ++- print " --help Show this help and exit" ++- print " --version Show version and copyright information" ++- print ++- print "ENVIRONMENT specifies a list of environments for which to run autostart" ++- print "applications. If none are specified, only applications which do not " ++- print "limit themselves to certain environments will be run." ++- print ++- print "ENVIRONMENT can be one or more of:" ++- print " GNOME Gnome Desktop" ++- print " KDE KDE Desktop" ++- print " ROX ROX Desktop" ++- print " XFCE XFCE Desktop" ++- print " Old Legacy systems" ++- print +++ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...") +++ print() +++ print("This tool will run xdg autostart .desktop files") +++ print() +++ print("OPTIONS") +++ print(" --list Show a list of the files which would be run") +++ print(" Files which would be run are marked with an asterix") +++ print(" symbol [*]. For files which would not be run,") +++ print(" information is given for why they are excluded") +++ print(" --help Show this help and exit") +++ print(" --version Show version and copyright information") +++ print() +++ print("ENVIRONMENT specifies a list of environments for which to run autostart") +++ print("applications. If none are specified, only applications which do not ") +++ print("limit themselves to certain environments will be run.") +++ print() +++ print("ENVIRONMENT can be one or more of:") +++ print(" GNOME Gnome Desktop") +++ print(" KDE KDE Desktop") +++ print(" ROX ROX Desktop") +++ print(" XFCE XFCE Desktop") +++ print(" Old Legacy systems") +++ print() ++ ++ def show_version(): ++- print ME, VERSION ++- print "Copyright (c) 2008 Dana Jansens" ++- print +++ print(ME, VERSION) +++ print("Copyright (c) 2008 Dana Jansens") +++ print() ++ ++ if __name__ == "__main__": ++ sys.exit(main()) +#diff --git a/x11-wm/openbox/openbox-3.6.1-r2.ebuild b/x11-wm/openbox/openbox-3.6.1-r2.ebuild +#new file mode 100644 +#index 00000000000..80c67975b17 +#--- /dev/null +#+++ b/x11-wm/openbox/openbox-3.6.1-r2.ebuild +#@@ -0,0 +1,100 @@ +#+# Copyright 1999-2020 Gentoo Authors +#+# Distributed under the terms of the GNU General Public License v2 +#+ +#+EAPI=7 +#+ +#+PYTHON_COMPAT=( python3_{6,7,8} ) +#+inherit multilib autotools python-single-r1 eutils +#+ +#+DESCRIPTION="A standards compliant, fast, light-weight, extensible window manager" +#+HOMEPAGE="http://openbox.org/" +#+if [[ ${PV} == *9999* ]]; then +#+ inherit git-r3 +#+ EGIT_REPO_URI="git://git.openbox.org/dana/openbox" +#+ SRC_URI="branding? ( +#+ https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )" +#+else +#+ SRC_URI="http://openbox.org/dist/openbox/${P}.tar.gz +#+ branding? ( https://dev.gentoo.org/~hwoarang/distfiles/surreal-gentoo.tar.gz )" +#+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-linux" +#+fi +#+ +#+LICENSE="GPL-2" +#+SLOT="3" +#+IUSE="branding debug imlib nls session startup-notification static-libs svg xdg" +#+REQUIRED_USE="xdg? ( ${PYTHON_REQUIRED_USE} )" +#+ +#+RDEPEND="dev-libs/glib:2 +#+ >=dev-libs/libxml2-2.0 +#+ >=media-libs/fontconfig-2 +#+ x11-libs/cairo +#+ x11-libs/libXau +#+ x11-libs/libXcursor +#+ x11-libs/libXext +#+ x11-libs/libXft +#+ x11-libs/libXinerama +#+ x11-libs/libXrandr +#+ x11-libs/libXt +#+ >=x11-libs/pango-1.8[X] +#+ imlib? ( media-libs/imlib2 ) +#+ startup-notification? ( >=x11-libs/startup-notification-0.8 ) +#+ svg? ( gnome-base/librsvg:2 ) +#+ xdg? ( +#+ ${PYTHON_DEPS} +#+ dev-python/pyxdg[${PYTHON_USEDEP}] +#+ ) +#+ " +#+DEPEND="${RDEPEND} +#+ sys-devel/gettext +#+ virtual/pkgconfig +#+ x11-base/xorg-proto" +#+ +#+PATCHES=( +#+ "${FILESDIR}/${PN}-3.5.2-gnome-session.patch" +#+ # see https://github.com/danakj/openbox/pull/35 +#+ "${FILESDIR}/${PN}-3.6.1-py3-xdg.patch" +#+) +#+ +#+src_prepare() { +#+ default +#+ sed -i \ +#+ -e "s:-O0 -ggdb ::" \ +#+ -e 's/-fno-strict-aliasing//' \ +#+ "${S}"/m4/openbox.m4 || die +#+ eautoreconf +#+} +#+ +#+src_configure() { +#+ econf \ +#+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \ +#+ $(use_enable debug) \ +#+ $(use_enable static-libs static) \ +#+ $(use_enable nls) \ +#+ $(use_enable imlib imlib2) \ +#+ $(use_enable svg librsvg) \ +#+ $(use_enable startup-notification) \ +#+ $(use_enable session session-management) \ +#+ --with-x +#+} +#+ +#+src_install() { +#+ dodir /etc/X11/Sessions +#+ echo "/usr/bin/openbox-session" > "${ED}/etc/X11/Sessions/${PN}" +#+ fperms a+x /etc/X11/Sessions/${PN} +#+ emake DESTDIR="${D}" install +#+ if use branding; then +#+ insinto /usr/share/themes +#+ doins -r "${WORKDIR}"/Surreal_Gentoo +#+ # make it the default theme +#+ sed -i \ +#+ -e "/<theme>/{n; s@<name>.*</name>@<name>Surreal_Gentoo</name>@}" \ +#+ "${D}"/etc/xdg/openbox/rc.xml \ +#+ || die "failed to set Surreal Gentoo as the default theme" +#+ fi +#+ use static-libs || find "${D}" -name '*.la' -delete +#+ if use xdg ; then +#+ python_fix_shebang "${ED}"/usr/libexec/openbox-xdg-autostart +#+ else +#+ rm "${ED}"/usr/libexec/openbox-xdg-autostart || die +#+ fi +#+} +#-- +#cgit v1.2.3-18-g5258 +# -- 2.34.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.