network/museek-plus: Initial import

This commit is contained in:
Iskar Enev 2010-05-11 15:01:32 +02:00 committed by Michiel van Wessem
parent 9e8be9f5cb
commit 20376b5048
7 changed files with 376 additions and 0 deletions

View file

@ -0,0 +1,30 @@
Museek+ is a file-sharing application for the Soulseek peer-to-peer network,
written in C++. It's an enhanced version of Hyriand's original Museek
(see http://museek.thegraveyard.org). It supports chat, transferring files,
searching, user-management, shares browsing and more. The new features are:
room searching, interests, buddy-only shares, banlists, icon themes and
font/color selecting.
Museek+ consists of museekd (daemon), muscan (shares scanning tool), muscand
(automated shares scanning tool), musetup (command-line configuration script),
musetup-gtk (PyGTK configuration app), museeq (QT GUI client), mucous (curses
python client) and museekcontrol (command-line python client).
After installing museek+ follow these steps:
1) Configure your settings with musetup: server, username, password, interface
password, download directory, shared directories.
2) Run museekd.
3) Run museeq, mucous or museekcontrol.
4) Login into museekd via the interface socket or host:port and the interface
password.
Requires: scons, libsig++ and libxml++. Optional requirements are PyGTK
(for musetup-gtk) and gamin (for muscand). Slackbuilds for all the requirements
are available at slackbuilds.org.
An example init script (rc.museekd) for the museekd daemon is provided. Feel
free to modify it for your needs. Use it at your own risk.
Note for compiling on -current: You will have to change the name of the CFLAGS
variable to FLAGS and apply a second patch -museek-scons-current.patch.

View file

@ -0,0 +1,70 @@
#!/bin/sh
# Slackware build script for museek+
# Written by Iskar Enev <iskar.enev@gmail.com>
# modified by the SlackBuilds project.
PRGNAM=museek-plus
PKGNAME=museek+
VERSION=0.1.12
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PKGNAME
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
fi
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP || exit 1
rm -rf $PKGNAME-$VERSION
tar -xjvf $CWD/$PKGNAME-$VERSION.tar.bz2 || exit 1
cd $PKGNAME-$VERSION || exit 1
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
# This patch fixes several SCons related compile problems
cat $CWD/museek-scons.patch | patch -p0 || exit 1
# All options and build targets can be found at http://www.museek-plus.org/wiki/MuseekFromSources
scons CFLAGS="-fPIC -Wall -pipe $SLKCFLAGS" PREFIX=/usr DESTDIR=$PKG RELEASE=yes install || exit 1
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
mkdir -p $PKG/usr/share/pixmaps/museek
cp -a icons/*.png $PKG/usr/share/pixmaps/museek
mkdir -p $PKG/usr/share/applications
cp -a museeq.desktop $PKG/usr/share/applications
# Fix icon path in desktop file
sed -i 's%Icon=/usr/share/pixmaps/museeq-circle2.png%Icon=/usr/share/pixmaps/museek/museeq-circle2.png%' \
$PKG/usr/share/applications/museeq.desktop || exit 1
mkdir -p $PKG/usr/doc/$PKGNAME-$VERSION
cp -a CHANGELOG COPYING CREDITS FILES INSTALL INSTRUCTIONS LICENSE README TODO doc/protocol.tmpl \
$PKG/usr/doc/$PKGNAME-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PKGNAME-$VERSION/$PRGNAM.SlackBuild
cat $CWD/rc.museekd > $PKG/usr/doc/$PKGNAME-$VERSION/rc.museekd
( cd $PKG/usr/man
find . -type f -exec gzip -9 {} \;
for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
)
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PKGNAME-$VERSION-$ARCH-$BUILD$TAG.tgz

View file

@ -0,0 +1,8 @@
PRGNAM="museek-plus"
VERSION="0.1.12"
HOMEPAGE="http://museek-plus.sourceforge.net/"
DOWNLOAD="http://dl.sourceforge.net/museek-plus/museek+-0.1.12.tar.bz2"
MD5SUM="5d871e40dc93c04e60688a06e0e143e8"
MAINTAINER="Iskar Enev"
EMAIL="iskar.enev@gmail.com"
APPROVED="BP{k}"

View file

@ -0,0 +1,73 @@
Index: SConstruct
===================================================================
--- SConstruct
+++ SConstruct
@@ -33,9 +33,9 @@
opts.Add(BoolOption('RELEASE', 'Build for release', ''))
opts.Add(ListOption('MULOG', 'Set debug output', '', ['debug', 'cycle', 'calltrace', 'traffictime']))
opts.Add(ListOption('MUSEEQTRANSLATIONS', 'Build translations for', '', ['fr','de','es','it','pl','ru','pt_BR','ja','zh','sk','he', 'ar', 'cs' ]))
-print "Reading CFLAGS from defaults.py and Command Line arguments"
-opts.Add(BoolOption('LOCKFLAGS', 'Don\'t modify CFLAGS, use only those selected', ''))
-opts.Add('CFLAGS', 'Set your CCFLAGS here', '')
+print "Reading FLAGS from defaults.py and Command Line arguments"
+opts.Add(BoolOption('LOCKFLAGS', 'Don\'t modify FLAGS, use only those selected', ''))
+opts.Add('FLAGS', 'Set your CCFLAGS here', '')
# CFLAGS are now a string, if you have a mulocal.py from 0.1.11, please remove it.
opts.Add(BoolOption('EPOLL', 'Use epoll when available', ''))
opts.Add(BoolOption('MUCOUS', 'Install Mucous (when SWIG can be found', ''))
@@ -102,13 +102,7 @@
# All warnings if compiler is gcc
if os.path.basename(env['CC']) in ['gcc', 'apgcc']:
-# env['CFLAGS'] = ['-fPIC', '-Wall', '-pipe'] # allows x86_64 to compile
-# ['-Wall', '-pipe']) # original
- #flags = []
- #for flag in str(env['CFLAGS']).split(','):
- #flags.append("-"+flag)
- #env.Append(CCFLAGS = flags)
- env.Append(CCFLAGS = env['CFLAGS'].split(' '))
+ env.Append(CCFLAGS = env['FLAGS'].split(' '))
if not env['LOCKFLAGS']:
if env['RELEASE'] and "-fomit-frame-pointer" not in env["CCFLAGS"]:
env.Append(CCFLAGS = ['-fomit-frame-pointer'])
@@ -121,7 +115,6 @@
flagstring += i + " "
print "BUILDING with CCFLAGS: "+ flagstring
- #print "BUILDING with CFLAGS: "+ env['CFLAGS']
# Set up additional include and library paths
@@ -190,7 +183,8 @@
print "Couldn't figure out how to use the dynamic run-time linker"
Exit(1)
env.Replace(LIBS = libs)
- env.Append(CCFLAGS = ' -fPIC' )
+ if "-fPIC" not in env["CCFLAGS"]:
+ env.Append(CCFLAGS = ' -fPIC' )
if check_deps == 1:
@@ -397,7 +391,12 @@
f.write('RELEASE = %s\n' % (`env['RELEASE']`))
f.write('MULOG = %s\n' % (`string.join(env['MULOG'], ',')`))
f.write('LOCKFLAGS = %s\n' % (`env['LOCKFLAGS']`))
-f.write('CFLAGS = %s\n' % (`env['CFLAGS']`))
+if type(env['FLAGS']) == list:
+ CFLAGS = ""
+ for string in env['FLAGS']:
+ CFLAGS += " "+ string
+ env['FLAGS'] = CFLAGS.strip()
+f.write('FLAGS = %s\n' % (`env['FLAGS']`))
f.write('EPOLL = %s\n' % (`env['EPOLL']`))
f.write('RELAY = %s\n' % (`env['RELAY']`))
f.write('BINRELOC = %s\n' % (`env['BINRELOC']`))
@@ -405,7 +404,7 @@
f.write('MUSETUPGTK = %s\n' % (`env['MUSETUPGTK']`))
f.write('MUSEEQ = %s\n' % (`env['MUSEEQ']`))
f.write('ONLYMUSEEQ = %s\n' % (`env['ONLYMUSEEQ']`))
-f.write('MUSEEQTRANSLATIONS = %s\n' % (`string.join(env['MUSEEQTRANSLATIONS'], ',')`))
+f.write('MUSEEQTRANSLATIONS = %s\n' % (`env['MUSEEQTRANSLATIONS']`))
f.write('MUSEEQTRAYICON = %s\n' % (`env['MUSEEQTRAYICON']`))
f.write('QSA = %s\n' % (`env['QSA']`))
f.write('RELAY_QSA = %s\n' % (`env['RELAY_QSA']`))

View file

@ -0,0 +1,71 @@
Index: Tools/SConscript
===================================================================
--- Tools/SConscript
+++ Tools/SConscript
@@ -16,7 +16,7 @@
if env['VORBIS']:
env_libmuscan.ParseConfig('pkg-config --libs --cflags vorbisfile')
if conf.CheckLibWithHeader('', 'vorbis/vorbisfile.h', 'C++', 'ov_clear(0);'):
- env_libmuscan.Append(CPPDEFINES = {'HAVE_VORBIS': 1})
+ env_libmuscan.Append(CPPDEFINES = 'HAVE_VORBIS=1')
print "OGG Vorbis found, compiling into muscan."
else:
print "OGG Vorbis NOT found, not compiled into muscan."
Index: Mucipher/SConscript
===================================================================
--- Mucipher/SConscript
+++ Micipher/SConscript
@@ -1,5 +1,5 @@
Import('env')
-
+import os
sources = Split("""
md5.c
sha.c
@@ -10,7 +10,10 @@
env.StaticLibrary(target = 'ucipher', source = sources)
-
+if not os.path.exists("mucipher.i"):
+ open(str("mucipher.i"), "w").write(open(os.path.abspath("../../Mucipher/mucipher.i")).read())
+if not os.path.exists("wraphelp.c"):
+ open(str("wraphelp.c"), "w").write(open(os.path.abspath("../../Mucipher/wraphelp.c")).read())
if 'swig' in env['TOOLS']:
import os
Index: Mucipher/python/SConscript
==================================================================
--- Mucipher/python/SConscript
+++ Mucipher/python/SConscript
@@ -23,16 +23,26 @@
env_swigpy.Append(LIBS = ['ucipher'])
env_swigpy.Replace(SHLIBPREFIX='')
+ if not os.path.exists("mucipher.py"):
+ open(str("mucipher.py"), "w").write( open(os.path.abspath("../../../Mucipher/python/mucipher.py")).read())
+ if not os.path.exists("mucipher.i"):
+ open(str("mucipher.i"), "w").write(open(os.path.abspath("../mucipher.i")).read())
+ if not os.path.exists("wraphelp.c"):
+ open(str("wraphelp.c"), "w").write(open(os.path.abspath("../wraphelp.c")).read())
env_swigpy.Command("mucipher.i", "../mucipher.i", file_copy)
env_swigpy.Command("wraphelp.c", "../wraphelp.c", file_copy)
mucipherc = env_swigpy.SharedLibrary('_mucipherc', sources, SWIGFLAGS='-python')
-
+ if type(mucipherc) == type([]):
+ mucipherc = mucipherc[0]
py_dest = env['DESTDIR'] + os.path.join(sys.prefix, "lib", "python" + py_ver, "site-packages")
- install = env.Install(py_dest, source = [ mucipherc, 'mucipherc.py', 'mucipher.py'])
+ dp1 = env_swigpy.Install(py_dest, 'mucipherc.py')
+ dp2 = env_swigpy.Install(py_dest, mucipherc)
+ dp3 = env_swigpy.Install(py_dest, "mucipher.py")
+ Depends(dp1, dp2)
- env.Alias('install_mucipher', install)
+ env.Alias('install_mucipher', [dp1, dp2, dp3])
env.Alias('install', 'install_mucipher')
else:
print "WARNING: Python.h include not found, please install Python's development packages"

View file

@ -0,0 +1,105 @@
#!/bin/sh
#
# This shell script takes care of starting and stopping museekd.
MUSEEKD=/usr/bin/museekd
MUSETUP=/usr/bin/musetup
MUSCAN=/usr/bin/muscan
MUSOCKET=/tmp/museekd.root
PIDFILE=/var/run/museekd.pid
DBDIR=/var/museek
CONFIG=$DBDIR/museekd.xml
CHOWNSOCKET=YES
case "$1" in
start)
if [ ! -d $DBDIR ]; then
mkdir $DBDIR
fi
if [ ! -f $CONFIG ]; then
echo -n "Starting Museek Setup"
echo
if [ ! -d $DBDIR ]; then
mkdir $DBDIR
fi
$MUSETUP $CONFIG
echo
fi
if [ -f $PIDFILE ]; then
echo -n "Museek Daemon already running (or zombie pid file in /var/run/)"
echo
exit
fi
echo -n "Starting Museek Daemon"
$MUSEEKD -c $CONFIG &>/dev/null &
PID="$!"
sleep 2
if kill -0 $PID # pid check
then
if [ $CHOWNSOCKET = YES ];
then
if [ -e $MUSOCKET ]; then chmod 666 $MUSOCKET
# access the museekd socket from other users, may be a security risk on multiuser systems
fi
fi
echo $PID > $PIDFILE
echo
else
echo -n "Museekd isn't starting up properly. Check your Config file, \nor run 'museekd -c /var/museek/museekd.xml' for verbose messages."
echo
fi
;;
stop)
echo -n "Stopping Museek Daemon"
echo
if [ -f $PIDFILE ]; then
kill -15 `cat $PIDFILE` &>/dev/null
rm $PIDFILE
else
echo -n "Museek Daemon not running"
echo
exit
fi
;;
reconnect)
if [ -f $PIDFILE ]; then
echo -n "Attempting to reconnect Museekd to the Server"
kill -ALRM `cat $PIDFILE` &>/dev/null
echo
fi
;;
restart)
$0 stop
sleep 3
$0 start
;;
rescan)
echo -n "Starting Muscan, rescanning shared files"
echo
$MUSCAN -c $CONFIG -r -v
echo
$0 reload
;;
setup)
echo -n "Starting Museek Setup"
echo
if [ ! -d $DBDIR ]; then
mkdir $DBDIR
fi
$MUSETUP $CONFIG
echo
;;
reload)
if [ -f $PIDFILE ]; then
echo -n "Reloading Museek Daemon to update Shares"
kill -HUP `cat $PIDFILE`
echo
else
echo -n "Museek Daemon not running, can't reload shares"
echo
fi
;;
*)
echo "usage: $0 {start|stop|restart|rescan|reconnect|setup|reload}"
echo -n
esac

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. You must make
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
|-----handy-ruler---------------------------------------------------------|
museek+: museek+
museek+:
museek+: Museek+ is a file-sharing application for the Soulseek p2p network,
museek+: written in C++. It's an enhanced version of Hyriand's original Museek
museek+: (http://museek.thegraveyard.org). It supports chat, transferring files,
museek+: searching, user-management, sharing, banlists, interests and more.
museek+: Museek+ consists of museekd (daemon), muscan (shares scanning tool),
museek+: muscand (automated shares scanning tool), musetup (command-line
museek+: configuration script), musetup-gtk (PyGTK configuration app), museeq
museek+: (QT GUI client), mucous (curses python client) and museekcontrol
museek+: (command-line python client).