Compare commits

..

No commits in common. "rawhide" and "el6" have entirely different histories.

10 changed files with 122 additions and 398 deletions

2
.gitignore vendored
View file

@ -1,2 +1,2 @@
/setlayout.c
/openbox-3.6.1.tar.xz
/openbox-3.5.0.tar.gz

View file

@ -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

View file

@ -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)

View file

@ -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 \

View file

@ -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__":

9
openbox.desktop Normal file
View file

@ -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

5
openbox.gnome-session Normal file
View file

@ -0,0 +1,5 @@
[GNOME Session]
RequiredComponents=gnome-panel;gnome-settings-daemon;
RequiredProviders=windowmanager;notifications;
DefaultProvider-windowmanager=openbox
DefaultProvider-notifications=notification-daemon

View file

@ -1,30 +1,28 @@
Name: openbox
Version: 3.6.1
Release: 31%{?dist}
Version: 3.5.0
Release: 4%{?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}
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 +33,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 +45,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 +65,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 +95,7 @@ KDE session.
%prep
%setup -q
%patch -P1 -p1 -b .python3
%patch -P2 -p1 -b .kf5menu
%patch -P3 -p1 -b .calc-layer
%patch2 -p1 -b .gnome
%build
@ -101,42 +104,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,182 +154,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 <releng@fedoraproject.org> - 3.6.1-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Leigh Scott <leigh123linux@gmail.com> - 3.6.1-23
- Rebuild fo new imlib2
* Thu Apr 27 2023 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-22
- fix crash with new glib (#2178299)
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Nov 09 2020 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-16
- update XDG menu prefix in KDE session script (#1851755)
- drop obsolete KDE4 requirement
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Oct 09 2019 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-13
- remove obmenu from description
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Apr 17 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-9
- fix pyxdg requirement
* Tue Apr 17 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-8
- switch packaged python scripts to python3
* Mon Feb 26 2018 Miroslav Lichvar <mlichvar@redhat.com> - 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 <releng@fedoraproject.org> - 3.6.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Jul 02 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-1
- update to 3.6.1
* Thu Jun 25 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6-3
- restore libobrender compatibility (#1231693)
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Jun 01 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6-1
- update to 3.6
* Thu Mar 05 2015 Rex Dieter <rdieter@fedoraproject.org> 3.5.2-7
- -kde: fix deps for plasma5
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Mon Jul 07 2014 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-5
- drop gnome subpackages (#964977)
- fix typo in description (#1064959)
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue Dec 10 2013 Christoph Wickert <cwickert@fedoraproject.org> - 3.5.2-3
- gdm-control depends on gdm, not on gnome-panel (#964977)
* Thu Aug 15 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-2
- Add workaround for yum to install correct libpng-devel in build
* Tue Aug 13 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-1
- Update to 3.5.2
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.0-12.20121001git782b28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Mar 11 2013 Miroslav Lichvar <mlichvar@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 3.5.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Tue Nov 13 2012 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.0-9
- Update xdg-menu to work with latest pyxdg (#874633)
- Remove unnecessary macros
* Fri Sep 28 2012 Christoph Wickert <cwickert@fedoraproject.org> - 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 <rel-eng@lists.fedoraproject.org> - 3.5.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sun Jun 03 2012 Christoph Wickert <cwickert@fedoraproject.org> - 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 <mlichvar@redhat.com> - 3.5.0-5
- increase doubleclick timeout (#727995)
- fix another crash in xdg-menu (#799663)
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
@ -500,7 +359,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 <peter@thecodergeek.com> - 3.3.1-1
* Sun Sep 09 2006 Peter Gordon <peter@thecodergeek.com> - 3.3.1-1
- Update to new 3.3.1 from upstream
* Sun Aug 27 2006 Peter Gordon <peter@thecodergeek.com> - 3.3-3

View file

@ -1,2 +1,2 @@
16ca0d290cae2f4c16a35e9cdfb6f503 setlayout.c
46bf5f1edda0eda0d9e824b585988be9 openbox-3.6.1.tar.xz
00441b53cf14c03566c8e82643544ff9 openbox-3.5.0.tar.gz

View file

@ -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,34 @@ 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)
def entry_name(entry):
return escape_utf8(entry.getName())
return escape(entry.getName().encode('utf-8', 'xmlcharrefreplace'))
def walk_menu(entry):
if isinstance(entry, xdg.Menu.Menu) and entry.Show is True:
print('<menu id="%s" label="%s"%s>' \
print '<menu id="%s" label="%s"%s>' \
% (entry_name(entry),
entry_name(entry),
escape_utf8(icon_attr(entry))))
list(map(walk_menu, entry.getEntries()))
print('</menu>')
escape(icon_attr(entry)))
map(walk_menu, entry.getEntries())
print '</menu>'
elif isinstance(entry, xdg.Menu.MenuEntry) and entry.Show is True:
name = entry_name(entry.DesktopEntry)
print(' <item label="%s"%s>' % (name.replace('"', ''),
escape_utf8(icon_attr(entry.DesktopEntry))))
command = re.sub(' -caption "%c"| -caption %c',
' -caption "%s"' % name,
escape_utf8(entry.DesktopEntry.getExec()))
print ' <item label="%s"%s>' % \
(entry_name(entry.DesktopEntry).replace('"', ''),
escape(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(' <action name="Execute">' + \
'<command>%s</command></action>' % command)
print(' </item>')
command = 'xterm -title "%s" -e %s' % \
(entry_name(entry.DesktopEntry), command)
print ' <action name="Execute">' + \
'<command>%s</command></action>' % command
print ' </item>'
if len(sys.argv) > 1:
menufile = sys.argv[1] + '.menu'
@ -102,7 +93,7 @@ if icons:
menu = xdg.Menu.parse(menufile)
print('<?xml version="1.0" encoding="UTF-8"?>')
print('<openbox_pipe_menu>')
list(map(walk_menu, menu.getEntries()))
print('</openbox_pipe_menu>')
print '<?xml version="1.0" encoding="UTF-8"?>'
print '<openbox_pipe_menu>'
map(walk_menu, menu.getEntries())
print '</openbox_pipe_menu>'