diff --git a/.gitignore b/.gitignore index 65d1291..bc8d4e8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /setlayout.c -/openbox-3.6.1.tar.xz +/openbox-3.5.0.tar.gz diff --git a/openbox-3.4.11.2-gnomesession.patch b/openbox-3.4.11.2-gnomesession.patch new file mode 100644 index 0000000..82d0ab4 --- /dev/null +++ b/openbox-3.4.11.2-gnomesession.patch @@ -0,0 +1,21 @@ +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 deleted file mode 100644 index 9f00bbb..0000000 --- a/openbox-calc-layer.patch +++ /dev/null @@ -1,36 +0,0 @@ -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 new file mode 100644 index 0000000..dc668dd --- /dev/null +++ b/openbox-doubleclick.patch @@ -0,0 +1,97 @@ +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 deleted file mode 100644 index 1c3c9e5..0000000 --- a/openbox-kf5menu.patch +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index f17bef3..0000000 --- a/openbox-python3.patch +++ /dev/null @@ -1,113 +0,0 @@ -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 new file mode 100644 index 0000000..cc249ac --- /dev/null +++ b/openbox.desktop @@ -0,0 +1,9 @@ +[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 new file mode 100644 index 0000000..0f8f91f --- /dev/null +++ b/openbox.gnome-session @@ -0,0 +1,5 @@ +[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 9e1d7f4..3c4c1ba 100644 --- a/openbox.spec +++ b/openbox.spec @@ -1,30 +1,29 @@ Name: openbox -Version: 3.6.1 -Release: 31%{?dist} +Version: 3.5.0 +Release: 5%{?dist} Summary: A highly configurable and standards-compliant X11 window manager -License: GPL-2.0-or-later +Group: User Interface/Desktops +License: GPLv2+ URL: http://openbox.org -Source0: http://openbox.org/dist/%{name}/%{name}-%{version}.tar.xz +Source0: http://openbox.org/releases/%{name}-%{version}.tar.gz Source1: http://icculus.org/openbox/tools/setlayout.c Source2: xdg-menu Source3: menu.xml -Source4: terminals.menu -Patch1: openbox-python3.patch -Patch2: openbox-kf5menu.patch -Patch3: openbox-calc-layer.patch +Source4: openbox.desktop +Source5: terminals.menu +Source6: openbox.gnome-session -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +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} # required by xdg-menu and xdg-autostart scripts -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 +Requires: pyxdg -BuildRequires: make -BuildRequires: gcc BuildRequires: gettext BuildRequires: desktop-file-utils BuildRequires: pango-devel @@ -35,15 +34,8 @@ 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 @@ -54,12 +46,14 @@ 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} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} Requires: pkgconfig Requires: pango-devel Requires: libxml2-devel @@ -72,16 +66,28 @@ 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: plasma-workspace -BuildArch: noarch +Requires: kdebase-workspace %description kde The %{name}-kde package contains the files needed for using %{name} inside a @@ -90,9 +96,8 @@ KDE session. %prep %setup -q -%patch -P1 -p1 -b .python3 -%patch -P2 -p1 -b .kf5menu -%patch -P3 -p1 -b .calc-layer +%patch1 -p1 -b .doubleclick +%patch2 -p1 -b .gnome %build @@ -101,42 +106,38 @@ 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_build +make %{?_smp_mflags} -gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS -o setlayout %{SOURCE1} -lX11 +gcc %{optflags} -o setlayout %{SOURCE1} -lX11 %install -%make_install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} install setlayout %{buildroot}%{_bindir} install -p %{SOURCE2} %{buildroot}%{_libexecdir}/openbox-xdg-menu sed 's|_LIBEXECDIR_|%{_libexecdir}|g' < %{SOURCE3} \ > %{buildroot}%{_sysconfdir}/xdg/%{name}/menu.xml -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 +desktop-file-install --vendor="" \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE4} +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}/ @@ -155,178 +156,42 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name} %{_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* -%ldconfig_scriptlets libs + +%post libs -p /sbin/ldconfig + + +%postun libs -p /sbin/ldconfig + %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) @@ -500,7 +365,7 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name} - Allow building with startup-notification as an rpmbuild option (though it is disabled by default as recommended by upstream). -* Sat Sep 09 2006 Peter Gordon - 3.3.1-1 +* Sun 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 34cf0c4..9f31b00 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 16ca0d290cae2f4c16a35e9cdfb6f503 setlayout.c -46bf5f1edda0eda0d9e824b585988be9 openbox-3.6.1.tar.xz +00441b53cf14c03566c8e82643544ff9 openbox-3.5.0.tar.gz diff --git a/xdg-menu b/xdg-menu index ccd0efd..aefc6a4 100644 --- a/xdg-menu +++ b/xdg-menu @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/python # # Copyright (C) 2008 Red Hat, Inc. # @@ -26,8 +26,6 @@ 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 @@ -49,41 +47,37 @@ def icon_attr(entry): iconinfo = theme.lookup_icon(name, 22, Gtk.IconLookupFlags.NO_SVG) if iconinfo: iconfile = iconinfo.get_filename() - if hasattr(iconinfo, 'free'): - iconinfo.free() + iconinfo.free() if iconfile: return ' icon="' + iconfile + '"' return '' def escape_utf8(s): - if sys.version_info[0] < 3 and isinstance(s, unicode): - s = s.encode('utf-8', 'xmlcharrefreplace') - return escape(s) + return escape(s.encode('utf-8', 'xmlcharrefreplace')) 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)))) - list(map(walk_menu, entry.getEntries())) - print('') + escape_utf8(icon_attr(entry))) + map(walk_menu, entry.getEntries()) + print '' elif isinstance(entry, xdg.Menu.MenuEntry) and entry.Show is True: - 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())) + 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()) command = re.sub(' [^ ]*%[fFuUdDnNickvm]', '', command) if entry.DesktopEntry.getTerminal(): - command = 'xterm -title "%s" -e %s' % (name, command) - print(' ' + \ - '%s' % command) - print(' ') + command = 'xterm -title "%s" -e %s' % \ + (entry_name(entry.DesktopEntry), command) + print ' ' + \ + '%s' % command + print ' ' if len(sys.argv) > 1: menufile = sys.argv[1] + '.menu' @@ -102,7 +96,7 @@ if icons: menu = xdg.Menu.parse(menufile) -print('') -print('') -list(map(walk_menu, menu.getEntries())) -print('') +print '' +print '' +map(walk_menu, menu.getEntries()) +print ''