[PATCH] gnu: openbox: Build with Python 3.

  • Done
  • quality assurance status badge
Details
2 participants
  • Leo Famulari
  • Vinicius Monego
Owner
unassigned
Submitted by
Vinicius Monego
Severity
normal
Merged with
V
V
Vinicius Monego wrote on 3 Feb 2022 16:17
(address . guix-patches@gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20220203151712.465416-1-monego@posteo.net
* gnu/packages/openbox.scm (openbox): Build with Python 3.
[source]: Make some cosmetic changes. Add patch.
[inputs]: Replace python with python-wrapper.
[propagated-inputs]: Replace python2-xdg with python-xdg.
* gnu/packages/patches/openbox-build-with-python3.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 3 +-
gnu/packages/openbox.scm | 23 +--
.../patches/openbox-build-with-python3.patch | 162 ++++++++++++++++++
3 files changed, 177 insertions(+), 11 deletions(-)
create mode 100644 gnu/packages/patches/openbox-build-with-python3.patch

Toggle diff (248 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index dddda78efa..fd03d1b8cf 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -38,7 +38,7 @@
# Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
# Copyright © 2020 Martin Becze <mjbecze@riseup.net>
# Copyright © 2020 Malte Frank Gerdes <mate.f.gerdes@gmail.com>
-# Copyright © 2020 Vinicius Monego <monego@posteo.net>
+# Copyright © 2020, 2022 Vinicius Monego <monego@posteo.net>
# Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
# Copyright © 2021 Greg Hogan <code@greghogan.com>
# Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
@@ -1571,6 +1571,7 @@ dist_patch_DATA = \
%D%/packages/patches/onnx-shared-libraries.patch \
%D%/packages/patches/onnx-skip-model-downloads.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
+ %D%/packages/patches/openbox-build-with-python3.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
diff --git a/gnu/packages/openbox.scm b/gnu/packages/openbox.scm
index 873592c19e..40288aa72c 100644
--- a/gnu/packages/openbox.scm
+++ b/gnu/packages/openbox.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Nikita <nikita@n0.is>
+;;; Copyright © 2022 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,6 +25,7 @@
#: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)
@@ -39,17 +41,18 @@
(package
(name "openbox")
(version "3.6.1")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://openbox.org/dist/openbox/" name "-"
- version ".tar.xz"))
- (sha256
- (base32
- "0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://openbox.org/dist/openbox/" name "-"
+ version ".tar.xz"))
+ (patches (search-patches "openbox-build-with-python3.patch"))
+ (sha256
+ (base32 "0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config))
- (propagated-inputs (list python2-pyxdg))
+ (propagated-inputs (list python-pyxdg))
(inputs (list imlib2
libxml2
(librsvg-for-system)
@@ -60,7 +63,7 @@
libxrandr
libxft
pango
- python-2))
+ python-wrapper))
(synopsis "Box style window manager")
(description
"Openbox is a highly configurable, next generation window manager with
diff --git a/gnu/packages/patches/openbox-build-with-python3.patch b/gnu/packages/patches/openbox-build-with-python3.patch
new file mode 100644
index 0000000000..29682a18f1
--- /dev/null
+++ b/gnu/packages/patches/openbox-build-with-python3.patch
@@ -0,0 +1,162 @@
+From acfbbc4ea40932f183617bb7006700140fe5f61e Mon Sep 17 00:00:00 2001
+From: Troy Curtis Jr <troycurtisjr@gmail.com>
+Date: Wed, 13 Sep 2017 21:59:48 -0500
+Subject: [PATCH] Add python3 support to openbox-xdg-autostart.
+
+Updated syntax in openbox-xdg-autostart to support both python2 and
+python3.
+
+Added a configure substitution to set the chosen python at build time.
+
+https://bugzilla.icculus.org/show_bug.cgi?id=6444
+---
+Patch imported from Debian: https://sources.debian.org/src/openbox/3.6.1-10/debian/patches/python3.patch/ with the following change: don't rename data/autostart/openbox-xdg-autostart to data/autostart/openbox-xdg-autostart.in.
+
+ .gitignore | 1 +
+ configure.ac | 3 +
+ ...xdg-autostart => openbox-xdg-autostart.in} | 70 +++++++++----------
+ 3 files changed, 38 insertions(+), 36 deletions(-)
+ rename data/autostart/{openbox-xdg-autostart => openbox-xdg-autostart.in} (77%)
+
+diff --git a/configure.ac b/configure.ac
+index ca1602670..9a31e9845 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -103,6 +103,8 @@ AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h grp.h locale.h pwd.h)
+ AC_CHECK_HEADERS(signal.h string.h stdio.h stdlib.h unistd.h sys/stat.h)
+ AC_CHECK_HEADERS(sys/select.h sys/socket.h sys/time.h sys/types.h sys/wait.h)
+
++AM_PATH_PYTHON([2],,)
++
+ AC_PATH_PROG([SED], [sed], [no])
+ if test "$SED" = "no"; then
+ AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.])
+@@ -259,6 +261,7 @@ AC_CONFIG_FILES([
+ obrender/version.h
+ obt/version.h
+ version.h
++ data/autostart/openbox-xdg-autostart
+ ])
+ AC_CONFIG_COMMANDS([doc],
+ [test -d doc || mkdir doc])
+diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart
+index 04a17a199..3c365b112 100755
+--- a/data/autostart/openbox-xdg-autostart
++++ b/data/autostart/openbox-xdg-autostart
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!@PYTHON@
+
+ # openbox-xdg-autostart runs things based on the XDG autostart specification
+ # Copyright (C) 2008 Dana Jansens
+@@ -28,9 +28,7 @@ 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
++ sys.stderr.write("\nERROR: %s requires PyXDG to be installed\n" % ME)
+ sys.exit(1)
+
+ def main(argv=sys.argv):
+@@ -51,7 +49,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 +97,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 +144,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 +163,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())
--
2.30.2
L
L
Leo Famulari wrote on 3 Feb 2022 17:13
(no subject)
(address . control@debbugs.gnu.org)
Yfv/Ro/LYDW8Ytqn@jasmine.lan
merge 53394 53750
L
L
Leo Famulari wrote on 4 Feb 2022 19:32
Re: [bug#53750] [PATCH] gnu: openbox: Build with Python 3.
(name . Vinicius Monego)(address . monego@posteo.net)(address . 53750@debbugs.gnu.org)
Yf1xMUapEvSazdyZ@jasmine.lan
On Thu, Feb 03, 2022 at 03:17:12PM +0000, Vinicius Monego wrote:
Toggle quote (7 lines)
> * gnu/packages/openbox.scm (openbox): Build with Python 3.
> [source]: Make some cosmetic changes. Add patch.
> [inputs]: Replace python with python-wrapper.
> [propagated-inputs]: Replace python2-xdg with python-xdg.
> * gnu/packages/patches/openbox-build-with-python3.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.

Thanks! You might have noticed that I merged this patch ticket with my
own similar contribution at https://issues.guix.gnu.org/53394.

I missed the python2-xdg change in my patch, and I also did not replace
python with python-wrapper. Is the latter change necessary?

Toggle quote (14 lines)
> +From acfbbc4ea40932f183617bb7006700140fe5f61e Mon Sep 17 00:00:00 2001
> +From: Troy Curtis Jr <troycurtisjr@gmail.com>
> +Date: Wed, 13 Sep 2017 21:59:48 -0500
> +Subject: [PATCH] Add python3 support to openbox-xdg-autostart.
> +
> +Updated syntax in openbox-xdg-autostart to support both python2 and
> +python3.
> +
> +Added a configure substitution to set the chosen python at build time.
> +
> +https://bugzilla.icculus.org/show_bug.cgi?id=6444
> +---
> +Patch imported from Debian: https://sources.debian.org/src/openbox/3.6.1-10/debian/patches/python3.patch/ with the following change: don't rename data/autostart/openbox-xdg-autostart to data/autostart/openbox-xdg-autostart.in.

Is this note about "Patch imported from Debian" written by you?

We always try to give links to the source of patches, as well as a note
that explains the context of the patch and a link to any discussions
within Guix.

So, the patch file should start with something like this:

------
Make Openbox compatible with Python 2:


Openbox seems to be abandoned upstream, with no activity in their Git repo since
2015:


Patch copied from XXX:

------
V
V
Vinicius Monego wrote on 6 Feb 2022 18:53
(name . Leo Famulari)(address . leo@famulari.name)(address . 53750@debbugs.gnu.org)
4b640be44edce7b55d800976ff18f641a729f3b7.camel@posteo.net
Em sex, 2022-02-04 às 13:32 -0500, Leo Famulari escreveu:
Toggle quote (13 lines)
> On Thu, Feb 03, 2022 at 03:17:12PM +0000, Vinicius Monego wrote:
> > * gnu/packages/openbox.scm (openbox): Build with Python 3.
> > [source]: Make some cosmetic changes. Add patch.
> > [inputs]: Replace python with python-wrapper.
> > [propagated-inputs]: Replace python2-xdg with python-xdg.
> > * gnu/packages/patches/openbox-build-with-python3.patch: New file.
> > * gnu/local.mk (dist_patch_DATA): Add it.
>
> Thanks! You might have noticed that I merged this patch ticket with
> my
> own similar contribution at <https://issues.guix.gnu.org/53394>.
>

Oh I didn't see that one!

Toggle quote (5 lines)
> I missed the python2-xdg change in my patch, and I also did not
> replace
> python with python-wrapper. Is the latter change necessary?
>

I use the wrapper because it is more failproof with calling the correct
interpreter. The autostart header begins with:

#!@PYTHON@

Not a direct call the path in the store, don't know if it would work
with only python.

Toggle quote (23 lines)
> > +From acfbbc4ea40932f183617bb7006700140fe5f61e Mon Sep 17 00:00:00
> > 2001
> > +From: Troy Curtis Jr <troycurtisjr@gmail.com>
> > +Date: Wed, 13 Sep 2017 21:59:48 -0500
> > +Subject: [PATCH] Add python3 support to openbox-xdg-autostart.
> > +
> > +Updated syntax in openbox-xdg-autostart to support both python2
> > and
> > +python3.
> > +
> > +Added a configure substitution to set the chosen python at build
> > time.
> > +
> > +https://bugzilla.icculus.org/show_bug.cgi?id=6444
> > +---
> > +Patch imported from Debian:
> > https://sources.debian.org/src/openbox/3.6.1-10/debian/patches/python3.patch/
> >  with the following change: don't rename data/autostart/openbox-
> > xdg-autostart to data/autostart/openbox-xdg-autostart.in.
>
> Is this note about "Patch imported from Debian" written by you?
>

Yes, that is my own comment.

Toggle quote (23 lines)
> We always try to give links to the source of patches, as well as a
> note
> that explains the context of the patch and a link to any discussions
> within Guix.
>
> So, the patch file should start with something like this:
>
> ------
> Make Openbox compatible with Python 2:
>
> https://issues.guix.gnu.org/53750
>
> Openbox seems to be abandoned upstream, with no activity in their Git
> repo since
> 2015:
>
> http://openbox.org/develop-git.php
>
> Patch copied from XXX:
>
> https://example.com/
> ------

Thanks for the suggestion. I'll check the other issue.
V
V
Vinicius Monego wrote on 22 Aug 2022 00:11
[PATCH] gnu: openbox: Build with Python 3.
(address . 53750-done@debbugs.gnu.org)
5f886d24ce518b799c3f2b2a8e598b81c44275ff.camel@posteo.net
A similar patch was pushed in f451a8e80cf8d2da08bb65c4c07e3d41d7a17e58.
Closing.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 53750@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 53750
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch