.
OBS-URL: https://build.opensuse.org/package/show/editors/emacs?expand=0&rev=121
This commit is contained in:
parent
43f6555818
commit
9f976d12b6
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 24 10:30:24 UTC 2013 - werner@suse.de
|
||||||
|
|
||||||
|
- Make emacs launch script smart, that is search for a valid dbus
|
||||||
|
on the current system if if not found launch a own dbus session
|
||||||
|
- With emacs version 24.3 the package epg becoes obsolate
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed May 22 10:13:13 UTC 2013 - werner@suse.de
|
Wed May 22 10:13:13 UTC 2013 - werner@suse.de
|
||||||
|
|
||||||
|
99
emacs.sh
Normal file
99
emacs.sh
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Launch a GNU Emacs
|
||||||
|
#
|
||||||
|
# The environment variable EMACS_TOOLKIT is used to determine
|
||||||
|
# the prefered GUI. Possible values/types of EMACS_TOOLKIT are
|
||||||
|
#
|
||||||
|
# nox -- for pure console based GNU Emacs
|
||||||
|
# gtk -- for full GTK2/3 based GNU Emacs
|
||||||
|
# x11 -- for full LUCID based GNU Emacs (used Xaw3d)
|
||||||
|
#
|
||||||
|
# Should work but remember history
|
||||||
|
# bnc#345669 -- Emacs doesn't un-maximize in KDE/KWin
|
||||||
|
# bnc#342385 -- Emacs doesn't keep the iconic information in KDE/KWin
|
||||||
|
#
|
||||||
|
# if test -z "$EMACS_TOOLKIT" ; then
|
||||||
|
# EMACS_TOOLKIT=gtk
|
||||||
|
# KDE_FULL_SESSION=$(xprop -root KDE_FULL_SESSION 2>/dev/null)
|
||||||
|
# case "$KDE_FULL_SESSION" in
|
||||||
|
# *true*) EMACS_TOOLKIT=x11
|
||||||
|
# esac
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
: ${EMACS_TOOLKIT:=gtk}
|
||||||
|
if test "$EMACS_TOOLKIT" = gtk; then
|
||||||
|
# Currently (2013/05/24) the parser of the GNOME libs
|
||||||
|
# are broken that is it is not independent from locale
|
||||||
|
LC_NUMERIC=POSIX
|
||||||
|
export LC_NUMERIC
|
||||||
|
fi
|
||||||
|
arg0=$0
|
||||||
|
argv=("$@")
|
||||||
|
if test -e ${arg0}-${EMACS_TOOLKIT}
|
||||||
|
then
|
||||||
|
set -- ${arg0}-${EMACS_TOOLKIT}
|
||||||
|
elif test -e ${arg0}-x11
|
||||||
|
then
|
||||||
|
set -- ${arg0}-x11
|
||||||
|
elif test -e ${arg0}-nox
|
||||||
|
then
|
||||||
|
set -- ${arg0}-nox
|
||||||
|
else
|
||||||
|
echo "no emacs binary found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
# Now check for valid dbus, e.g. after su/sudo/slogin
|
||||||
|
#
|
||||||
|
if dbusdaemon=$(type -p dbus-daemon) && dbuslaunch=$(type -p dbus-launch) ; then
|
||||||
|
#
|
||||||
|
# Currently (2013/05/24) the option --autolaunch for scanning for an
|
||||||
|
# already existing session is an internal option of dbus-launch(1).
|
||||||
|
#
|
||||||
|
if test -s /var/lib/dbus/machine-id ; then
|
||||||
|
read -t1 mid < /var/lib/dbus/machine-id
|
||||||
|
elif test -s /etc/machine-id ; then
|
||||||
|
read -t1 mid < /etc/machine-id
|
||||||
|
else
|
||||||
|
mid=
|
||||||
|
fi
|
||||||
|
if test -n "$DBUS_SESSION_BUS_ADDRESS" ; then
|
||||||
|
# Determine dbus identifier
|
||||||
|
for guid in ${DBUS_SESSION_BUS_ADDRESS//,/ } ; do
|
||||||
|
case "$guid" in
|
||||||
|
guid=*) break
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
# Check if dbus-daemon is active
|
||||||
|
dpid=
|
||||||
|
for suid in "${HOME}/.dbus/session-bus/"${mid}* ; do
|
||||||
|
test -e "$suid" || break
|
||||||
|
grep -q $guid "$suid" || continue
|
||||||
|
dpid=$(grep -E '^DBUS_SESSION_BUS_PID=[[:digit:]]+' "$suid")
|
||||||
|
test /proc/${dpid#*=}/exe -ef $dbusdaemon && continue
|
||||||
|
unset DBUS_SESSION_BUS_ADDRESS
|
||||||
|
break
|
||||||
|
done
|
||||||
|
test -n "$dpid" || unset DBUS_SESSION_BUS_ADDRESS
|
||||||
|
fi
|
||||||
|
# Find a valid dbus-daemon if active
|
||||||
|
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
|
||||||
|
for suid in "${HOME}/.dbus/session-bus/"${mid}* ; do
|
||||||
|
test -e "$suid" || break
|
||||||
|
dpid=$(grep -E '^DBUS_SESSION_BUS_PID=[[:digit:]]+' "$suid")
|
||||||
|
test /proc/${dpid#*=}/exe -ef $dbusdaemon || continue
|
||||||
|
dadd=$(grep -E '^DBUS_SESSION_BUS_ADDRESS=' "$suid")
|
||||||
|
DBUS_SESSION_BUS_ADDRESS=${dadd#*=}
|
||||||
|
export DBUS_SESSION_BUS_ADDRESS
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unset mid guid suid dadd
|
||||||
|
# Oops ... no dbus-daemon then launch a new session
|
||||||
|
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
|
||||||
|
set -- $dbuslaunch --sh-syntax --close-stderr --exit-with-session ${1+"$@"}
|
||||||
|
arg0=$dbuslaunch
|
||||||
|
fi
|
||||||
|
unset dbuslaunch dbusdaemon
|
||||||
|
fi
|
||||||
|
exec -a $arg0 ${1+"$@"} "${argv[@]}"
|
47
emacs.spec
47
emacs.spec
@ -80,11 +80,14 @@ License: GPL-3.0+
|
|||||||
Group: Productivity/Editors/Emacs
|
Group: Productivity/Editors/Emacs
|
||||||
Provides: nxml-mode = 20041004
|
Provides: nxml-mode = 20041004
|
||||||
Obsoletes: nxml-mode < 20041004
|
Obsoletes: nxml-mode < 20041004
|
||||||
|
Provides: epg = 1.0.0
|
||||||
|
Obsoletes: epg < 1.0.0
|
||||||
Source: ftp://ftp.gnu.org/gnu/emacs/emacs-24.3.tar.xz
|
Source: ftp://ftp.gnu.org/gnu/emacs/emacs-24.3.tar.xz
|
||||||
Source1: app-defaults.Emacs
|
Source1: app-defaults.Emacs
|
||||||
Source2: site-lisp.tar.bz2
|
Source2: site-lisp.tar.bz2
|
||||||
Source3: dot.gnu-emacs
|
Source3: dot.gnu-emacs
|
||||||
Source4: emacs-rpmlintrc
|
Source4: emacs-rpmlintrc
|
||||||
|
Source5: emacs.sh
|
||||||
Patch: emacs-24.3.dif
|
Patch: emacs-24.3.dif
|
||||||
Patch2: emacs-24.3-glibc.patch
|
Patch2: emacs-24.3-glibc.patch
|
||||||
Patch3: emacs-24.3-decl.dif
|
Patch3: emacs-24.3-decl.dif
|
||||||
@ -100,7 +103,6 @@ Patch22: emacs-24.1-bnc628268.patch
|
|||||||
Patch23: emacs-24.3-xevent.patch
|
Patch23: emacs-24.3-xevent.patch
|
||||||
Patch25: emacs-24.3-giflib5.patch
|
Patch25: emacs-24.3-giflib5.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
%global bug_345669 0
|
|
||||||
%{expand: %%global _exec_prefix %(type -p pkg-config &>/dev/null && pkg-config --variable prefix x11 || echo /usr/X11R6)}
|
%{expand: %%global _exec_prefix %(type -p pkg-config &>/dev/null && pkg-config --variable prefix x11 || echo /usr/X11R6)}
|
||||||
%if "%_exec_prefix" == "/usr/X11R6"
|
%if "%_exec_prefix" == "/usr/X11R6"
|
||||||
%define _x11lib %{_exec_prefix}/%{_lib}
|
%define _x11lib %{_exec_prefix}/%{_lib}
|
||||||
@ -423,48 +425,7 @@ install -m 0755 emacs-gtk %{buildroot}/usr/bin/
|
|||||||
install -m 0755 emacs-x11 %{buildroot}/usr/bin/
|
install -m 0755 emacs-x11 %{buildroot}/usr/bin/
|
||||||
make install DESTDIR=%{buildroot}
|
make install DESTDIR=%{buildroot}
|
||||||
rm -vf %{buildroot}/usr/bin/emacs
|
rm -vf %{buildroot}/usr/bin/emacs
|
||||||
%if %bug_345669
|
install -p %{S:5} %{buildroot}/usr/bin/emacs
|
||||||
cat > %{buildroot}/usr/bin/emacs <<-"EOF"
|
|
||||||
#!/bin/bash
|
|
||||||
# Avoid trouble with maximize/minimize within KDE (bug #345669)
|
|
||||||
# -> under KWin emacs does not maximize in the correct way if
|
|
||||||
# GTK/GDK is used as toolkit. After click on the maximize
|
|
||||||
# button emacs shrinks to fit to the current font which
|
|
||||||
# destroys the maximize state in KWin.
|
|
||||||
# Avoid trouble with "iconic" state information (bug #342385)
|
|
||||||
# -> under KWin emacs with GTK/GDK toolkit does not hold its
|
|
||||||
# "iconic" state if a desktop state is saved before logout
|
|
||||||
# and restored after login.
|
|
||||||
if test -z "$EMACS_TOOLKIT" ; then
|
|
||||||
EMACS_TOOLKIT=gtk
|
|
||||||
KDE_FULL_SESSION=$(xprop -root KDE_FULL_SESSION 2>/dev/null)
|
|
||||||
case "$KDE_FULL_SESSION" in
|
|
||||||
*true*) EMACS_TOOLKIT=x11
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
exec -a ${0} ${0}-${EMACS_TOOLKIT} ${1+"$@"}
|
|
||||||
EOF
|
|
||||||
%else
|
|
||||||
cat > %{buildroot}/usr/bin/emacs <<-"EOF"
|
|
||||||
#!/bin/bash
|
|
||||||
# Possible values are nox, gtk, or x11
|
|
||||||
: ${EMACS_TOOLKIT:=gtk}
|
|
||||||
if test "$EMACS_TOOLKIT" = gtk; then
|
|
||||||
LC_NUMERIC=POSIX
|
|
||||||
export LC_NUMERIC
|
|
||||||
fi
|
|
||||||
if test -e ${0}-${EMACS_TOOLKIT} ; then
|
|
||||||
exec -a ${0} ${0}-${EMACS_TOOLKIT} ${1+"$@"}
|
|
||||||
elif test -e ${0}-x11 ; then
|
|
||||||
exec -a ${0} ${0}-x11 ${1+"$@"}
|
|
||||||
elif test -e ${0}-nox ; then
|
|
||||||
exec -a ${0} ${0}-nox ${1+"$@"}
|
|
||||||
else
|
|
||||||
echo "no emacs binary found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
%endif
|
|
||||||
chmod 0755 %{buildroot}/usr/bin/emacs
|
chmod 0755 %{buildroot}/usr/bin/emacs
|
||||||
tar cf - `find site-lisp/ -name '*.el' -o -name '*.elc'` | \
|
tar cf - `find site-lisp/ -name '*.el' -o -name '*.elc'` | \
|
||||||
tar -x -f - -C %{buildroot}%{_datadir}/emacs/%{version}/
|
tar -x -f - -C %{buildroot}%{_datadir}/emacs/%{version}/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user