network/museek-plus: Initial import
This commit is contained in:
parent
9e8be9f5cb
commit
20376b5048
|
@ -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.
|
|
@ -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
|
|
@ -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}"
|
|
@ -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']`))
|
|
@ -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"
|
|
@ -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
|
|
@ -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).
|
Loading…
Reference in New Issue