Accepting request 65024 from games:tools
Accepted submit request 65024 from user licensedigger OBS-URL: https://build.opensuse.org/request/show/65024 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mumble?expand=0&rev=5
This commit is contained in:
commit
10de13685d
91
0001-open-log-file-early-so-log-dir-can-be-root-owned.diff
Normal file
91
0001-open-log-file-early-so-log-dir-can-be-root-owned.diff
Normal file
@ -0,0 +1,91 @@
|
||||
From d79587e5570ec036355ada3de76521d981ce9596 Mon Sep 17 00:00:00 2001
|
||||
From: Ludwig Nussel <ludwig.nussel@suse.de>
|
||||
Date: Tue, 8 Mar 2011 16:31:33 +0100
|
||||
Subject: [PATCH] open log file early so log dir can be root owned
|
||||
|
||||
http://article.gmane.org/gmane.comp.security.oss.general/4404
|
||||
---
|
||||
src/murmur/UnixMurmur.cpp | 2 +-
|
||||
src/murmur/main.cpp | 46 ++++++++++++++++++++++++++------------------
|
||||
2 files changed, 28 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/src/murmur/UnixMurmur.cpp b/src/murmur/UnixMurmur.cpp
|
||||
index 773701c..3dc9c08 100644
|
||||
--- a/src/murmur/UnixMurmur.cpp
|
||||
+++ b/src/murmur/UnixMurmur.cpp
|
||||
@@ -255,7 +255,7 @@ void UnixMurmur::setuid() {
|
||||
|
||||
void UnixMurmur::initialcap() {
|
||||
#ifdef Q_OS_LINUX
|
||||
- cap_value_t caps[] = {CAP_NET_ADMIN, CAP_SETUID, CAP_SETGID, CAP_SYS_RESOURCE, CAP_DAC_OVERRIDE };
|
||||
+ cap_value_t caps[] = {CAP_NET_ADMIN, CAP_SETUID, CAP_SETGID, CAP_CHOWN, CAP_SYS_RESOURCE, CAP_DAC_OVERRIDE };
|
||||
|
||||
if (! bRoot)
|
||||
return;
|
||||
diff --git a/src/murmur/main.cpp b/src/murmur/main.cpp
|
||||
index 5a4810d..695f8cc 100644
|
||||
--- a/src/murmur/main.cpp
|
||||
+++ b/src/murmur/main.cpp
|
||||
@@ -273,6 +273,33 @@ int main(int argc, char **argv) {
|
||||
|
||||
Meta::mp.read(inifile);
|
||||
|
||||
+ // need to open log file early so log dir can be root owned:
|
||||
+ // http://article.gmane.org/gmane.comp.security.oss.general/4404
|
||||
+ if (detach && ! Meta::mp.qsLogfile.isEmpty()) {
|
||||
+ qfLog = new QFile(Meta::mp.qsLogfile);
|
||||
+ if (! qfLog->open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) {
|
||||
+ delete qfLog;
|
||||
+ qfLog = NULL;
|
||||
+#ifdef Q_OS_UNIX
|
||||
+ fprintf(stderr, "murmurd: failed to open logfile %s: no logging will be done\n",qPrintable(Meta::mp.qsLogfile));
|
||||
+#else
|
||||
+ qWarning("Failed to open logfile %s. Will not detach.",qPrintable(Meta::mp.qsLogfile));
|
||||
+ detach = false;
|
||||
+#endif
|
||||
+ } else {
|
||||
+ qfLog->setTextModeEnabled(true);
|
||||
+ QFileInfo qfi(*qfLog);
|
||||
+ Meta::mp.qsLogfile = qfi.absoluteFilePath();
|
||||
+#ifdef Q_OS_UNIX
|
||||
+ if (Meta::mp.uiUid != 0 && fchown(qfLog->handle(), Meta::mp.uiUid, Meta::mp.uiGid) == -1) {
|
||||
+ qFatal("can't change log file owner to %d %d:%d - %s", qfLog->handle(), Meta::mp.uiUid, Meta::mp.uiGid, strerror(errno));
|
||||
+ }
|
||||
+#endif
|
||||
+ }
|
||||
+ } else {
|
||||
+ detach = false;
|
||||
+ }
|
||||
+
|
||||
#ifdef Q_OS_UNIX
|
||||
unixhandler.setuid();
|
||||
#endif
|
||||
@@ -318,25 +345,6 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
}
|
||||
|
||||
- if (detach && ! Meta::mp.qsLogfile.isEmpty()) {
|
||||
- qfLog = new QFile(Meta::mp.qsLogfile);
|
||||
- if (! qfLog->open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) {
|
||||
- delete qfLog;
|
||||
- qfLog = NULL;
|
||||
-#ifdef Q_OS_UNIX
|
||||
- fprintf(stderr, "murmurd: failed to open logfile %s: no logging will be done\n",qPrintable(Meta::mp.qsLogfile));
|
||||
-#else
|
||||
- qWarning("Failed to open logfile %s. Will not detach.",qPrintable(Meta::mp.qsLogfile));
|
||||
- detach = false;
|
||||
-#endif
|
||||
- } else {
|
||||
- qfLog->setTextModeEnabled(true);
|
||||
- QFileInfo qfi(*qfLog);
|
||||
- Meta::mp.qsLogfile = qfi.absoluteFilePath();
|
||||
- }
|
||||
- } else {
|
||||
- detach = false;
|
||||
- }
|
||||
#ifdef Q_OS_UNIX
|
||||
if (detach) {
|
||||
if (fork() != 0) {
|
||||
--
|
||||
1.7.3.4
|
||||
|
@ -21,10 +21,6 @@ GROUP=mumble-server
|
||||
|
||||
INIFILE=/etc/mumble-server.ini
|
||||
DAEMON_OPTS="-ini $INIFILE"
|
||||
MURMUR_DAEMON_START=0
|
||||
MURMUR_USE_CAPABILITIES=0
|
||||
MURMUR_LIMIT_NOFILE=0
|
||||
MURMUR_LIMIT_RTPRIO=0
|
||||
|
||||
# Include murmur defaults if available
|
||||
if [ -f /etc/default/$NAME ] ; then
|
||||
@ -33,26 +29,12 @@ fi
|
||||
|
||||
. /etc/rc.status
|
||||
|
||||
if [ "$MURMUR_LIMIT_NOFILE" -gt 0 ] ; then
|
||||
ulimit -n $MURMUR_LIMIT_NOFILE
|
||||
fi
|
||||
if [ "$MURMUR_LIMIT_RTPRIO" -gt 0 ]; then
|
||||
ulimit -r 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting $NAME "
|
||||
user=`sed -ne '/^uname=/s/.*=//p' < $INIFILE`
|
||||
if [ -z "$user" ]; then
|
||||
echo -n "${ext}No user configured in $INIFILE, refusing to run as root${norm}"
|
||||
rc_status -v 6
|
||||
else
|
||||
eval HOME=~$user
|
||||
cd $HOME
|
||||
/sbin/start_daemon -p $PIDFILE -u $user $DAEMON $DAEMON_OPTS
|
||||
test -d $PIDDIR || /usr/bin/install -d -m 0755 -o mumble-server -g mumble-server $PIDDIR
|
||||
/sbin/start_daemon -p $PIDFILE $DAEMON $DAEMON_OPTS
|
||||
rc_status -v
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down $NAME "
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 8 16:07:54 UTC 2011 - lnussel@suse.de
|
||||
|
||||
- change log dir owner to root
|
||||
- clean up init script
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 21 13:19:50 UTC 2011 - lnussel@suse.de
|
||||
|
||||
|
33
mumble.spec
33
mumble.spec
@ -1,20 +1,3 @@
|
||||
#
|
||||
# spec file for package mumble
|
||||
#
|
||||
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
%if 0%{?suse_version} > 1100
|
||||
@ -43,7 +26,7 @@
|
||||
%bcond_with system_celt
|
||||
%bcond_without system_speex
|
||||
|
||||
Name: mumble
|
||||
Name: mumble%{?snapshot:-unstable}
|
||||
BuildRequires: protobuf-devel
|
||||
%if %{with bonjour}
|
||||
%if 0%{?suse_version}
|
||||
@ -66,7 +49,7 @@ BuildRequires: speex-devel
|
||||
%endif
|
||||
BuildRequires: boost-devel gcc-c++
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires: alsa-devel libqt4-devel pkg-config update-desktop-files
|
||||
BuildRequires: libqt4-devel pkg-config update-desktop-files alsa-devel
|
||||
%if 0%{?suse_version} > 1020
|
||||
BuildRequires: libopenssl-devel
|
||||
%else
|
||||
@ -74,13 +57,13 @@ BuildRequires: openssl-devel
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?fedora_version}
|
||||
BuildRequires: alsa-lib-devel libXevie-devel openssl-devel pkgconfig qt4-devel
|
||||
BuildRequires: qt4-devel pkgconfig libXevie-devel openssl-devel alsa-lib-devel
|
||||
%endif
|
||||
%if %{with ice}
|
||||
BuildRequires: ice-devel
|
||||
%endif
|
||||
%if 0%{?mandriva_version}
|
||||
BuildRequires: -alsa-plugins alsa-lib-devel libxevie-devel openssl-devel pkgconfig qt4-devel qt4-linguist
|
||||
BuildRequires: qt4-devel qt4-linguist pkgconfig openssl-devel libxevie-devel alsa-lib-devel -alsa-plugins
|
||||
BuildRequires: libxi-devel
|
||||
%endif
|
||||
%if %{with pulseaudio}
|
||||
@ -97,6 +80,7 @@ Source1: http://downloads.sourceforge.net/project/mumble/Mumble/%{version
|
||||
Source2: mumble-server.init
|
||||
Patch0: 0001-fix-build-error-with-capability.h.diff
|
||||
Patch1: 0001-fix-user-switching.diff
|
||||
Patch2: 0001-open-log-file-early-so-log-dir-can-be-root-owned.diff
|
||||
Patch50: mumble-1.2.2-buildcompare.diff
|
||||
# hack, no clue about glx so no idea to fix this properly
|
||||
Patch99: mumble-1.1.4-sle10glx.diff
|
||||
@ -142,7 +126,6 @@ characters, and has echo cancellation so the sound from your loudspeakers
|
||||
won't be audible to other players.
|
||||
|
||||
%package server
|
||||
License: BSD3c
|
||||
Summary: Voice Communication Server for Gamers
|
||||
Group: Productivity/Multimedia/Sound/Utilities
|
||||
Requires: qt-sql-sqlite
|
||||
@ -162,6 +145,7 @@ won't be audible to other players.
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
#
|
||||
%patch50 -p1
|
||||
%if 0%{?suse_version} && 0%{?suse_version} < 1020
|
||||
@ -183,7 +167,6 @@ done
|
||||
sed -i -e '/QT_REQUIRE_VERSION/d' src/mumble/main.cpp src/mumble11x/main.cpp
|
||||
%endif
|
||||
#
|
||||
|
||||
%build
|
||||
%if 0%{?fedora_version}
|
||||
ln -s /usr/bin/qmake-qt4 qmake
|
||||
@ -356,7 +339,6 @@ cat >> %buildroot/etc/tmpfiles.d/mumble-server.conf <<EOF
|
||||
d /var/run/mumble-server 0755 mumble-server mumble-server -
|
||||
EOF
|
||||
%endif
|
||||
|
||||
%clean
|
||||
rm -rf "%{buildroot}"
|
||||
|
||||
@ -408,7 +390,7 @@ getent passwd mumble-server >/dev/null || \
|
||||
%{_mandir}/man1/murmurd.*
|
||||
%{_mandir}/man1/murmur-user-wrapper.*
|
||||
%dir %attr(-,mumble-server,mumble-server) /var/lib/mumble-server
|
||||
%dir %attr(-,mumble-server,mumble-server) /var/log/mumble-server
|
||||
%dir /var/log/mumble-server
|
||||
%if 0%{?suse_version} < 1130
|
||||
%dir %attr(-,mumble-server,mumble-server) /var/run/mumble-server
|
||||
%else
|
||||
@ -417,4 +399,3 @@ getent passwd mumble-server >/dev/null || \
|
||||
%endif
|
||||
%config /etc/tmpfiles.d/mumble-server.conf
|
||||
%endif
|
||||
%changelog
|
||||
|
Loading…
Reference in New Issue
Block a user