diff --git a/.gitignore b/.gitignore index bc8d4e8..65d1291 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /setlayout.c -/openbox-3.5.0.tar.gz +/openbox-3.6.1.tar.xz diff --git a/openbox-3.4.11.2-gnomesession.patch b/openbox-3.4.11.2-gnomesession.patch deleted file mode 100644 index 82d0ab4..0000000 --- a/openbox-3.4.11.2-gnomesession.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up openbox-3.4.11.2/data/xsession/openbox-gnome-session.in.gnome openbox-3.4.11.2/data/xsession/openbox-gnome-session.in ---- openbox-3.4.11.2/data/xsession/openbox-gnome-session.in.gnome 2010-03-14 15:40:37.000000000 +0100 -+++ openbox-3.4.11.2/data/xsession/openbox-gnome-session.in 2011-01-14 17:15:18.738710496 +0100 -@@ -24,7 +24,7 @@ if test $MAJOR -lt 2 || (test $MAJOR = 2 - # old gnome-session was easy to work with - export WINDOW_MANAGER="@bindir@/openbox" - exec gnome-session --choose-session=openbox-session "$@" --else -+elif test $MAJOR = 2 && test $MINOR -lt 91; then - # new gnome-session requires openbox to be set in gconf and an - # openbox.desktop to be installed in the applications directory - -@@ -54,6 +54,8 @@ else - - # run GNOME/Openbox - exec gnome-session --default-session-key $SPATH/openbox_session "$@" -+else -+ exec gnome-session --session=gnome-openbox "$@" - fi - - diff --git a/openbox-calc-layer.patch b/openbox-calc-layer.patch new file mode 100644 index 0000000..9f00bbb --- /dev/null +++ b/openbox-calc-layer.patch @@ -0,0 +1,36 @@ +From https://bugzilla.icculus.org/show_bug.cgi?id=6669#c2 + +diff --git a/openbox/client.c b/openbox/client.c +index 3ff278ae..ac4ff827 100644 +--- a/openbox/client.c ++++ b/openbox/client.c +@@ -2702,9 +2702,10 @@ static void client_calc_layer_internal(ObClient *self) + void client_calc_layer(ObClient *self) + { + GList *it; ++ GList *list = g_list_copy(stacking_list); + + /* skip over stuff above fullscreen layer */ +- for (it = stacking_list; it; it = g_list_next(it)) ++ for (it = list; it; it = g_list_next(it)) + if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; + + /* find the windows in the fullscreen layer, and mark them not-visited */ +@@ -2717,7 +2718,7 @@ void client_calc_layer(ObClient *self) + client_calc_layer_internal(self); + + /* skip over stuff above fullscreen layer */ +- for (it = stacking_list; it; it = g_list_next(it)) ++ for (it = list; it; it = g_list_next(it)) + if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; + + /* now recalc any windows in the fullscreen layer which have not +@@ -2728,6 +2729,8 @@ void client_calc_layer(ObClient *self) + !WINDOW_AS_CLIENT(it->data)->visited) + client_calc_layer_internal(it->data); + } ++ ++ g_list_free(it); + } + + gboolean client_should_show(ObClient *self) diff --git a/openbox-doubleclick.patch b/openbox-doubleclick.patch deleted file mode 100644 index dc668dd..0000000 --- a/openbox-doubleclick.patch +++ /dev/null @@ -1,97 +0,0 @@ -commit c885c9a676e4860a68f0bdce4b926902f6597ebb -Author: Mikael Magnusson -Date: Thu Aug 4 18:34:54 2011 +0200 - - Change default doubleclick timeout to 500ms and keep track of where last click was - - Bug #5152 - "mouse double-click time is too low by default - 200ms" - - We only use the doubleclick in one place in the default configuration, - for doubleclicking titlebars to maximize windows, so any negative impact - of increasing the timeout should be minimal, especially with the - addition of requiring the two clicks to be in the same place. - - Doubleclicks are hardcoded to occur within 8 pixels for now, it doesn't - seem worth it to add a config until someone complains. A possibility is - using the drag threshold, but some people have that set very low so it - could be hard to doubleclick then. - -diff --git a/data/rc.xml b/data/rc.xml -index 7598a72..209cc2d 100644 ---- a/data/rc.xml -+++ b/data/rc.xml -@@ -313,7 +313,7 @@ - - 1 - -- 200 -+ 500 - - 400 - -- 200 -+ 500 - - - -diff --git a/openbox/config.c b/openbox/config.c -index debd9fb..8e0e5ac 100644 ---- a/openbox/config.c -+++ b/openbox/config.c -@@ -1070,7 +1070,7 @@ void config_startup(ObtXmlInst *i) - obt_xml_register(i, "keyboard", parse_keyboard, NULL); - - config_mouse_threshold = 8; -- config_mouse_dclicktime = 200; -+ config_mouse_dclicktime = 500; - config_mouse_screenedgetime = 400; - config_mouse_screenedgewarp = FALSE; - -diff --git a/openbox/mouse.c b/openbox/mouse.c -index ddf6851..2f0c8f5 100644 ---- a/openbox/mouse.c -+++ b/openbox/mouse.c -@@ -211,7 +211,7 @@ gboolean mouse_event(ObClient *client, XEvent *e) - static Time ltime; - static guint button = 0, state = 0, lbutton = 0; - static Window lwindow = None; -- static gint px, py, pwx = -1, pwy = -1; -+ static gint px, py, pwx = -1, pwy = -1, lx = -10, ly = -10; - gboolean used = FALSE; - - ObFrameContext context; -@@ -290,18 +290,24 @@ gboolean mouse_event(ObClient *client, XEvent *e) - if (e->xbutton.x >= (signed)-b && - e->xbutton.y >= (signed)-b && - e->xbutton.x < (signed)(w+b) && -- e->xbutton.y < (signed)(h+b)) { -+ e->xbutton.y < (signed)(h+b)) -+ { - click = TRUE; - /* double clicks happen if there were 2 in a row! */ - if (lbutton == button && - lwindow == e->xbutton.window && - e->xbutton.time - config_mouse_dclicktime <= -- ltime) { -+ ltime && -+ ABS(e->xbutton.x - lx) < 8 && -+ ABS(e->xbutton.y - ly) < 8) -+ { - dclick = TRUE; - lbutton = 0; - } else { - lbutton = button; - lwindow = e->xbutton.window; -+ lx = e->xbutton.x; -+ ly = e->xbutton.y; - } - } else { - lbutton = 0; diff --git a/openbox-kf5menu.patch b/openbox-kf5menu.patch new file mode 100644 index 0000000..1c3c9e5 --- /dev/null +++ b/openbox-kf5menu.patch @@ -0,0 +1,12 @@ +diff -up openbox-3.6.1/data/xsession/openbox-kde-session.in.kf5menu openbox-3.6.1/data/xsession/openbox-kde-session.in +--- openbox-3.6.1/data/xsession/openbox-kde-session.in.kf5menu 2011-10-16 18:13:18.000000000 +0200 ++++ openbox-3.6.1/data/xsession/openbox-kde-session.in 2020-11-09 10:42:43.755217411 +0100 +@@ -8,7 +8,7 @@ if test -n "$1"; then + fi + + # Set the prefix for the menu layout to use +-export XDG_MENU_PREFIX="kde-4-" ++export XDG_MENU_PREFIX="kf5-" + + # Clean up after GDM + xprop -root -remove _NET_NUMBER_OF_DESKTOPS \ diff --git a/openbox-python3.patch b/openbox-python3.patch new file mode 100644 index 0000000..f17bef3 --- /dev/null +++ b/openbox-python3.patch @@ -0,0 +1,113 @@ +diff -up openbox-3.6.1/data/autostart/openbox-xdg-autostart.python3 openbox-3.6.1/data/autostart/openbox-xdg-autostart +--- openbox-3.6.1/data/autostart/openbox-xdg-autostart.python3 2013-04-17 14:27:27.000000000 +0200 ++++ openbox-3.6.1/data/autostart/openbox-xdg-autostart 2018-04-17 15:52:23.849765020 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + + # openbox-xdg-autostart runs things based on the XDG autostart specification + # Copyright (C) 2008 Dana Jansens +@@ -28,9 +28,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 +51,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 +99,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,9 +146,9 @@ 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) +@@ -165,33 +165,33 @@ 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("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(ME, VERSION) ++ print("Copyright (c) 2008 Dana Jansens") + print + + if __name__ == "__main__": diff --git a/openbox.desktop b/openbox.desktop deleted file mode 100644 index cc249ac..0000000 --- a/openbox.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Openbox -Exec=openbox -Icon=openbox -NoDisplay=true -X-GNOME-Autostart-Phase=WindowManager -X-GNOME-Provides=windowmanager -X-GNOME-Autostart-Notify=true diff --git a/openbox.gnome-session b/openbox.gnome-session deleted file mode 100644 index 0f8f91f..0000000 --- a/openbox.gnome-session +++ /dev/null @@ -1,5 +0,0 @@ -[GNOME Session] -RequiredComponents=gnome-panel;gnome-settings-daemon; -RequiredProviders=windowmanager;notifications; -DefaultProvider-windowmanager=openbox -DefaultProvider-notifications=notification-daemon diff --git a/openbox.spec b/openbox.spec index 3c4c1ba..9e1d7f4 100644 --- a/openbox.spec +++ b/openbox.spec @@ -1,29 +1,30 @@ Name: openbox -Version: 3.5.0 -Release: 5%{?dist} +Version: 3.6.1 +Release: 31%{?dist} Summary: A highly configurable and standards-compliant X11 window manager -Group: User Interface/Desktops -License: GPLv2+ +License: GPL-2.0-or-later URL: http://openbox.org -Source0: http://openbox.org/releases/%{name}-%{version}.tar.gz +Source0: http://openbox.org/dist/%{name}/%{name}-%{version}.tar.xz Source1: http://icculus.org/openbox/tools/setlayout.c Source2: xdg-menu Source3: menu.xml -Source4: openbox.desktop -Source5: terminals.menu -Source6: openbox.gnome-session +Source4: terminals.menu +Patch1: openbox-python3.patch +Patch2: openbox-kf5menu.patch +Patch3: openbox-calc-layer.patch -Patch1: openbox-doubleclick.patch -Patch2: openbox-3.4.11.2-gnomesession.patch - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} # required by xdg-menu and xdg-autostart scripts -Requires: pyxdg +Requires: python3-pyxdg +# used by xdg-menu for icon support (optional) +Suggests: python3-gobject +# as discussed in https://bugzilla.redhat.com/860997 +Requires: redhat-menus +BuildRequires: make +BuildRequires: gcc BuildRequires: gettext BuildRequires: desktop-file-utils BuildRequires: pango-devel @@ -34,8 +35,15 @@ BuildRequires: libXt-devel BuildRequires: libXrandr-devel BuildRequires: libXinerama-devel BuildRequires: imlib2-devel +# workaround for yum to install correct libpng-devel +BuildRequires: libpng-devel Provides: firstboot(windowmanager) +# gdm-control, gnome-control-center and openbox-gnome were removed in 3.5.2-5 +Obsoletes: gdm-control < 3.5.2-5 +Obsoletes: gnome-panel-control < 3.5.2-5 +Obsoletes: %{name}-gnome < 3.5.2-5 + %description Openbox is a window manager designed explicity for standards-compliance and speed. It is fast, lightweight, and heavily configurable (using XML for its @@ -46,14 +54,12 @@ actions, multi-head/Xinerama support, and dynamically generated "pipe menus." For a full list of the FreeDesktop.org standards with which it is compliant, please see the COMPLIANCE file in the included documentation of this package. For a graphical configuration editor, you'll need to install the obconf -package. For a graphical menu editor, you'll need to install the obmenu package. %package devel Summary: Development files for %{name} -Group: Development/Libraries -Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: pkgconfig Requires: pango-devel Requires: libxml2-devel @@ -66,28 +72,16 @@ developing applications that use %{name}. %package libs Summary: Shared libraries for %{name} -Group: Development/Libraries %description libs The %{name}-libs package contains shared libraries used by %{name}. -%package gnome -Summary: GNOME integration for %{name} -Group: User Interface/Desktops -Requires: %{name} = %{version}-%{release} -Requires: gnome-session - -%description gnome -The %{name}-gnome package contains the files needed for using %{name} inside a -GNOME session. - - %package kde Summary: KDE integration for %{name} -Group: User Interface/Desktops Requires: %{name} = %{version}-%{release} -Requires: kdebase-workspace +Requires: plasma-workspace +BuildArch: noarch %description kde The %{name}-kde package contains the files needed for using %{name} inside a @@ -96,8 +90,9 @@ KDE session. %prep %setup -q -%patch1 -p1 -b .doubleclick -%patch2 -p1 -b .gnome +%patch -P1 -p1 -b .python3 +%patch -P2 -p1 -b .kf5menu +%patch -P3 -p1 -b .calc-layer %build @@ -106,38 +101,42 @@ KDE session. ## Fix RPATH hardcoding. sed -ie 's|^hardcode_libdir_flag_spec=.*$|hardcode_libdir_flag_spec=""|g' libtool sed -ie 's|^runpath_var=LD_RUN_PATH$|runpath_var=DIE_RPATH_DIE|g' libtool -make %{?_smp_mflags} +%make_build -gcc %{optflags} -o setlayout %{SOURCE1} -lX11 +gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS -o setlayout %{SOURCE1} -lX11 %install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} +%make_install install setlayout %{buildroot}%{_bindir} install -p %{SOURCE2} %{buildroot}%{_libexecdir}/openbox-xdg-menu sed 's|_LIBEXECDIR_|%{_libexecdir}|g' < %{SOURCE3} \ > %{buildroot}%{_sysconfdir}/xdg/%{name}/menu.xml -desktop-file-install --vendor="" \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE4} +install -m644 -p %{SOURCE4} %{buildroot}%{_sysconfdir}/xdg/%{name}/terminals.menu + +# 'make install' misses these two, so we install them manually +install -m644 -D data/gnome-session/openbox-gnome.session \ + %{buildroot}%{_datadir}/gnome-session/sessions/openbox-gnome.session +install -m644 -D data/gnome-session/openbox-gnome-fallback.session \ + %{buildroot}%{_datadir}/gnome-session/sessions/openbox-gnome-fallback.session + +# remove unpackaged files +pushd %{buildroot} +rm ./%{_bindir}/{gdm-control,gnome-panel-control,%{name}-gnome-session} +rm ./%{_datadir}/xsessions/%{name}-gnome.desktop +rm ./%{_datadir}/gnome/wm-properties/openbox.desktop +rm ./%{_datadir}/gnome-session/sessions/openbox-gnome*.session +rm ./%{_mandir}/man1/%{name}-gnome-session*.1* +popd -install -m644 -p %{SOURCE5} %{buildroot}%{_sysconfdir}/xdg/%{name}/terminals.menu -install -m644 -D %{SOURCE6} \ - %{buildroot}%{_datadir}/gnome-session/sessions/gnome-openbox.session %find_lang %{name} rm -f %{buildroot}%{_libdir}/*.la rm -rf %{buildroot}%{_datadir}/doc/%{name} -%clean -rm -rf %{buildroot} - - %files -f %{name}.lang -%defattr(-,root,root,-) %doc AUTHORS CHANGELOG COMPLIANCE COPYING README %doc data/*.xsd data/menu.xml doc/rc-mouse-focus.xml %dir %{_sysconfdir}/xdg/%{name}/ @@ -156,42 +155,178 @@ rm -rf %{buildroot} %{_mandir}/man1/obxprop.1* %files libs -%defattr(-,root,root,-) %doc COPYING %{_libdir}/libobrender.so.* %{_libdir}/libobt.so.* %files devel -%defattr(-,root,root,-) %{_includedir}/%{name}/ %{_libdir}/libobrender.so %{_libdir}/libobt.so %{_libdir}/pkgconfig/*.pc -%files gnome -%defattr(-,root,root,-) -%{_bindir}/gnome-panel-control -%{_bindir}/gdm-control -%{_bindir}/%{name}-gnome-session -%{_datadir}/xsessions/%{name}-gnome.desktop -%{_datadir}/gnome/wm-properties/openbox.desktop -%{_datadir}/gnome-session/sessions/gnome-openbox.session -%{_mandir}/man1/%{name}-gnome-session*.1* - %files kde -%defattr(-,root,root,-) %{_bindir}/%{name}-kde-session %{_datadir}/xsessions/%{name}-kde.desktop %{_mandir}/man1/%{name}-kde-session*.1* - -%post libs -p /sbin/ldconfig - - -%postun libs -p /sbin/ldconfig - +%ldconfig_scriptlets libs %changelog +* Thu Jul 16 2026 Fedora Release Engineering - 3.6.1-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Fri Jan 16 2026 Fedora Release Engineering - 3.6.1-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Thu Jul 24 2025 Fedora Release Engineering - 3.6.1-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 17 2025 Fedora Release Engineering - 3.6.1-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Jul 18 2024 Fedora Release Engineering - 3.6.1-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 3.6.1-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 3.6.1-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 3.6.1-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Leigh Scott - 3.6.1-23 +- Rebuild fo new imlib2 + +* Thu Apr 27 2023 Miroslav Lichvar - 3.6.1-22 +- fix crash with new glib (#2178299) + +* Thu Jan 19 2023 Fedora Release Engineering - 3.6.1-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 3.6.1-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 3.6.1-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 3.6.1-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 3.6.1-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Nov 09 2020 Miroslav Lichvar - 3.6.1-16 +- update XDG menu prefix in KDE session script (#1851755) +- drop obsolete KDE4 requirement + +* Tue Jul 28 2020 Fedora Release Engineering - 3.6.1-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jan 29 2020 Fedora Release Engineering - 3.6.1-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Oct 09 2019 Miroslav Lichvar - 3.6.1-13 +- remove obmenu from description + +* Thu Jul 25 2019 Fedora Release Engineering - 3.6.1-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 3.6.1-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 3.6.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Apr 17 2018 Miroslav Lichvar - 3.6.1-9 +- fix pyxdg requirement + +* Tue Apr 17 2018 Miroslav Lichvar - 3.6.1-8 +- switch packaged python scripts to python3 + +* Mon Feb 26 2018 Miroslav Lichvar - 3.6.1-7 +- build setlayout with hardening LDFLAGS (#1548830) +- use macro for ldconfig scriptlets +- add gcc to build requirements + +* Thu Feb 08 2018 Fedora Release Engineering - 3.6.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 3.6.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 3.6.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 3.6.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 3.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jul 02 2015 Miroslav Lichvar - 3.6.1-1 +- update to 3.6.1 + +* Thu Jun 25 2015 Miroslav Lichvar - 3.6-3 +- restore libobrender compatibility (#1231693) + +* Wed Jun 17 2015 Fedora Release Engineering - 3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Jun 01 2015 Miroslav Lichvar - 3.6-1 +- update to 3.6 + +* Thu Mar 05 2015 Rex Dieter 3.5.2-7 +- -kde: fix deps for plasma5 + +* Sun Aug 17 2014 Fedora Release Engineering - 3.5.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Mon Jul 07 2014 Miroslav Lichvar - 3.5.2-5 +- drop gnome subpackages (#964977) +- fix typo in description (#1064959) + +* Sat Jun 07 2014 Fedora Release Engineering - 3.5.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Dec 10 2013 Christoph Wickert - 3.5.2-3 +- gdm-control depends on gdm, not on gnome-panel (#964977) + +* Thu Aug 15 2013 Miroslav Lichvar - 3.5.2-2 +- Add workaround for yum to install correct libpng-devel in build + +* Tue Aug 13 2013 Miroslav Lichvar - 3.5.2-1 +- Update to 3.5.2 + +* Sat Aug 03 2013 Fedora Release Engineering - 3.5.0-12.20121001git782b28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Mar 11 2013 Miroslav Lichvar - 3.5.0-11.20121001git782b28 +- Update to git snapshot 20121001git782b28 +- Update xdg-menu to work with latest gtk3 (#914830) +- Make some dependencies arch-specific +- Make gnome and kde subpackages noarch + +* Thu Feb 14 2013 Fedora Release Engineering - 3.5.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Nov 13 2012 Miroslav Lichvar - 3.5.0-9 +- Update xdg-menu to work with latest pyxdg (#874633) +- Remove unnecessary macros + +* Fri Sep 28 2012 Christoph Wickert - 3.5.0-8 +- Require redhat-menus (#860997) +- Use upstream's gnome-session 3 fixes instead of ours + +* Fri Jul 20 2012 Fedora Release Engineering - 3.5.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Jun 03 2012 Christoph Wickert - 3.5.0-6 +- Fix crash on unexpected NET_WM_MOVERESIZE_CANCEL messages (#827800) +- Make sub-packages for gdm-control and gnome-panel-control (#750056) + * Fri Mar 30 2012 Miroslav Lichvar - 3.5.0-5 - increase doubleclick timeout (#727995) - fix another crash in xdg-menu (#799663) @@ -365,7 +500,7 @@ rm -rf %{buildroot} - Allow building with startup-notification as an rpmbuild option (though it is disabled by default as recommended by upstream). -* Sun Sep 09 2006 Peter Gordon - 3.3.1-1 +* Sat Sep 09 2006 Peter Gordon - 3.3.1-1 - Update to new 3.3.1 from upstream * Sun Aug 27 2006 Peter Gordon - 3.3-3 diff --git a/sources b/sources index 9f31b00..34cf0c4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 16ca0d290cae2f4c16a35e9cdfb6f503 setlayout.c -00441b53cf14c03566c8e82643544ff9 openbox-3.5.0.tar.gz +46bf5f1edda0eda0d9e824b585988be9 openbox-3.6.1.tar.xz diff --git a/xdg-menu b/xdg-menu index aefc6a4..ccd0efd 100644 --- a/xdg-menu +++ b/xdg-menu @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # # Copyright (C) 2008 Red Hat, Inc. # @@ -26,6 +26,8 @@ from xml.sax.saxutils import escape icons = True try: + import gi + gi.require_version('Gtk', '3.0') from gi.repository import Gtk except ImportError: icons = False @@ -47,37 +49,41 @@ def icon_attr(entry): iconinfo = theme.lookup_icon(name, 22, Gtk.IconLookupFlags.NO_SVG) if iconinfo: iconfile = iconinfo.get_filename() - iconinfo.free() + if hasattr(iconinfo, 'free'): + iconinfo.free() if iconfile: return ' icon="' + iconfile + '"' return '' def escape_utf8(s): - return escape(s.encode('utf-8', 'xmlcharrefreplace')) + if sys.version_info[0] < 3 and isinstance(s, unicode): + s = s.encode('utf-8', 'xmlcharrefreplace') + return escape(s) def entry_name(entry): return escape_utf8(entry.getName()) def walk_menu(entry): if isinstance(entry, xdg.Menu.Menu) and entry.Show is True: - print '' \ + print('' \ % (entry_name(entry), entry_name(entry), - escape_utf8(icon_attr(entry))) - map(walk_menu, entry.getEntries()) - print '' + escape_utf8(icon_attr(entry)))) + list(map(walk_menu, entry.getEntries())) + print('') elif isinstance(entry, xdg.Menu.MenuEntry) and entry.Show is True: - print ' ' % \ - (entry_name(entry.DesktopEntry).replace('"', ''), - escape_utf8(icon_attr(entry.DesktopEntry))) - command = re.sub(' -caption "%c"| -caption %c', ' -caption "%s"' % entry_name(entry.DesktopEntry), entry.DesktopEntry.getExec()) + name = entry_name(entry.DesktopEntry) + print(' ' % (name.replace('"', ''), + escape_utf8(icon_attr(entry.DesktopEntry)))) + command = re.sub(' -caption "%c"| -caption %c', + ' -caption "%s"' % name, + escape_utf8(entry.DesktopEntry.getExec())) command = re.sub(' [^ ]*%[fFuUdDnNickvm]', '', command) if entry.DesktopEntry.getTerminal(): - command = 'xterm -title "%s" -e %s' % \ - (entry_name(entry.DesktopEntry), command) - print ' ' + \ - '%s' % command - print ' ' + command = 'xterm -title "%s" -e %s' % (name, command) + print(' ' + \ + '%s' % command) + print(' ') if len(sys.argv) > 1: menufile = sys.argv[1] + '.menu' @@ -96,7 +102,7 @@ if icons: menu = xdg.Menu.parse(menufile) -print '' -print '' -map(walk_menu, menu.getEntries()) -print '' +print('') +print('') +list(map(walk_menu, menu.getEntries())) +print('')