GNU bug report logs - #53394
[PATCH] gnu: Openbox: Make compatible with Python 3.

Previous Next

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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 53394 in the body.
You can then email your comments to 53394 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#53394; Package guix-patches. (Thu, 20 Jan 2022 18:12:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Leo Famulari <leo <at> famulari.name>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 20 Jan 2022 18:12:02 GMT) Full text and rfc822 format available.

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





Merged 53394 53750. Request was from Leo Famulari <leo <at> famulari.name> to control <at> debbugs.gnu.org. (Thu, 03 Feb 2022 16:15:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#53394; Package guix-patches. (Sun, 06 Feb 2022 18:57:02 GMT) Full text and rfc822 format available.

Message #10 received at 53394 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: Leo Famulari <leo <at> famulari.name>, 53394 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Openbox: Make compatible with Python 3.
Date: Sun, 06 Feb 2022 18:56:14 +0000
Em qui, 2022-01-20 às 13:11 -0500, Leo Famulari escreveu:
> 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
> 

[...]

I noticed that with 'python' the shebang in libexec/openbox-xdg-
autostart becomes '#!/usr/bin/env python' while with python-wrapper it
changes to the store path.

I also 'cat' that file and the code is still in Python 2. Can you check
this?

openbox.scm is missing the copyright line, and python2-xdg should be
changed to python-xdg. There are trailing whitespaces in the patch.





Information forwarded to guix-patches <at> gnu.org:
bug#53394; Package guix-patches. (Tue, 29 Mar 2022 10:07:02 GMT) Full text and rfc822 format available.

Message #13 received at 53394 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Vinicius Monego <monego <at> posteo.net>
Cc: 53394 <at> debbugs.gnu.org, Leo Famulari <leo <at> famulari.name>
Subject: Re: bug#53394: [PATCH] gnu: Openbox: Make compatible with Python 3.
Date: Tue, 29 Mar 2022 12:06:24 +0200
Leo, Vinicius,

What’s the status of this patch?  Looks like it was almost ready.

Thanks,
Ludo’.

Vinicius Monego <monego <at> posteo.net> skribis:

> Em qui, 2022-01-20 às 13:11 -0500, Leo Famulari escreveu:
>> 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
>> 
>
> [...]
>
> I noticed that with 'python' the shebang in libexec/openbox-xdg-
> autostart becomes '#!/usr/bin/env python' while with python-wrapper it
> changes to the store path.
>
> I also 'cat' that file and the code is still in Python 2. Can you check
> this?
>
> openbox.scm is missing the copyright line, and python2-xdg should be
> changed to python-xdg. There are trailing whitespaces in the patch.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 19 Sep 2022 11:24:11 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 219 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.