# Soulseek on FreeBSD



## Grell (Feb 21, 2014)

Has anyone successfully gotten a Soulseek (p2p) client up on FreeBSD?  The only one in ports that I am aware of is museekplus which does not compile, I get the following errors 
	
	



```
In file included from workdir/Museek/Museek.cc:25:
./Museek/PeerManager.hh:98:52: error: redefinition of parameter 'path'
        void push_download(uint path, const std::wstring& path);
                                                          ^
./Museek/PeerManager.hh:98:26: note: previous declaration is here
        void push_download(uint path, const std::wstring& path);
                                ^
1 warning generated.
8 warnings generated.
2 warnings and 1 error generated.
scons: *** [workdir/Museek/Museek.o] Error 1
scons: building terminated because of errors.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1
```
I follow the advice and try compiling with MAKE_JOBS_UNSAFE set and get this 
	
	



```
In file included from workdir/Museek/BaseConnection.cc:23:
./Museek/PeerManager.hh:98:52: error: redefinition of parameter 'path'
        void push_download(uint path, const std::wstring& path);
                                                          ^
./Museek/PeerManager.hh:98:26: note: previous declaration is here
        void push_download(uint path, const std::wstring& path);
                                ^
In file included from workdir/Museek/BaseConnection.cc:25:
./Museek/Museek.hh:43:1: warning: typedef requires a name [-Wmissing-declarations]
typedef enum _ConnectMode {
^~~~~~~
2 warnings and 1 error generated.
scons: *** [workdir/Museek/BaseConnection.o] Error 1
scons: building terminated because of errors.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/net-p2p/museekplus
*** Error code 1

Stop.
```


----------



## fonz (Feb 21, 2014)

I used to use _Nicotine_ successfully with several versions of FreeBSD, but a quick search of the ports tree suggests it has been abandoned. If I can find the time I'll look into that more deeply.

FWIW: The error you quote above is not a FreeBSD problem, it's just lousy programming. It may not be of much immediate help, but chances are good it will be fixed soon.


----------



## roddierod (Feb 22, 2014)

Nicotine still works as I used it a few weeks ago.  I'm not sure if it left it on my machine from a prior version or if I had to download it from the Nicotine site and build myself.  I want to say the latter but I'm not sure.


----------



## fonz (Feb 22, 2014)

Update: I have no idea why net-p2p/nicotine-plus has been marked as broken, for me it works just fine. Here's what I did:
Download the source from http://nicotine-plus.sourceforge.net/.
Unpack somewhere, e.g. in /tmp: `% tar xf nicotine+-1.2.16.tar.bz2 -C /tmp`.
To install into /opt:
`# cd /tmp/nicotine+-1.2.16`
`# python setup.py install --prefix=/opt`
Move the source there too, for Nicotine+ is best run from the source tree:
`# cd ..`
`# mkdir /opt/src`
`# mv nicotine+-1.2.16 /opt/src/nicotine+`
To run Nicotine+ as a mortal user:
Check your firewall settings (allow port 2234).
`% cd /opt/src/nicotine+`
`./nicotine.py`
Note that for me the Fast Configure dialog "stops" at the directories step (the Forward button just won't become available). If that happens, just cancel it and edit your settings manually.

That should do it.


----------



## roddierod (Feb 22, 2014)

Other than the Fast Configure issue, I have noticed that if you do too many searches or queues it stops working. Usually exiting Nicotine and restarting will correct the download problem.


----------



## Grell (Feb 23, 2014)

Thanks @fonz, that worked.  For future reference is there a guide of some kind to installing third party software not in the ports?  I have a certain fear of installing programs outside of ports/packages, sometimes it is necessary though.


----------



## fonz (Feb 24, 2014)

Grell said:
			
		

> For future reference is there a guide of some kind to installing third party software not in the ports? I have a certain fear of installing programs outside of ports/packages, sometimes it is necessary though.


There's some information in the Porter's Handbook. Two more tips:

I'd recommend using a _build jail_. Try building the software in a jail first, so it can't foul up the actual system. Once you've verified that it works, you could create a package/port that can be installed on the host itself.
It may be convenient to install software for which no ports/packages exist in /opt, in order to keep it separate from the rest of the system.


----------



## Csaba (Jul 24, 2016)

fonz said:


> Update: I have no idea why net-p2p/nicotine-plus has been marked as broken, for me it works just fine. Here's what I did:
> 
> Download the source from http://nicotine-plus.sourceforge.net/.
> Unpack somewhere, e.g. in /tmp: `% tar xf nicotine+-1.2.16.tar.bz2 -C /tmp`.
> ...



Hi I'm new in BSD and I use PCBSD. Can you help me? I get this error message at the end:


```
Traceback (most recent call last):
  File "./nicotine.py", line 286, in <module>
    run()
  File "./nicotine.py", line 268, in run
    result = checkenv()
  File "./nicotine.py", line 127, in checkenv
    import gtk
  File "/usr/local/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py", line 30, in <module>
    import gobject as _gobject
  File "/usr/local/lib/python2.7/site-packages/gobject/__init__.py", line 26, in <module>
    from glib import spawn_async, idle_add, timeout_add, timeout_add_seconds, \
  File "/usr/local/lib/python2.7/site-packages/glib/option.py", line 33, in <module>
    import optparse
  File "/usr/local/lib/python2.7/optparse.py", line 419, in <module>
    _builtin_cvt = { "int" : (_parse_int, _("integer")),
  File "/usr/local/lib/python2.7/gettext.py", line 569, in gettext
    return dgettext(_current_domain, message)
  File "/usr/local/lib/python2.7/gettext.py", line 533, in dgettext
    codeset=_localecodesets.get(domain))
  File "/usr/local/lib/python2.7/gettext.py", line 481, in translation
    t = _translations.setdefault(key, class_(fp))
  File "/usr/local/lib/python2.7/gettext.py", line 182, in __init__
    self._parse(fp)
  File "/usr/local/lib/python2.7/gettext.py", line 317, in _parse
    plural = v[1].split('plural=')[1]
IndexError: list index out of range
```


----------



## drhowarddrfine (Jul 24, 2016)

Csaba If you have a new question, start your own thread, but PC-BSD has their own forum you should ask such questions on.


----------



## roddierod (Jul 24, 2016)

Just for anyone really needing nicotine/soulseek.  I have been using the windows version of SoulSeekNS via Wine and it runs very well. I got tired of fighting with nicotine and tried it, have been using it for at least a year or so.


----------



## zc4r (Jul 30, 2022)

does it work without an x window system?


----------

