[HOWTO] Install Deluge 1.3.3 with Macports

Support for Deluge on Apple Mac OS
carbncl
Leecher
Leecher
Posts: 92
Joined: Sun Nov 28, 2010 7:36 pm

Re: [HOWTO] Install Deluge 1.3.2 with Macports

Post by carbncl »

Warning, deluge doesn't build anymore on Lion.

With Macports 2.0.0 rc1 (release candidate for Lion) the package has a conflict with libnotify, so right now it is broken.
If you upgrade from Snow Leopard to Lion, previously built deluge should still work, but you won't be able to install/build it from scratch.

Here is a ticket to follow the issue : https://trac.macports.org/ticket/30283
mYrN
Member
Member
Posts: 15
Joined: Wed Nov 10, 2010 7:41 am

Re: [HOWTO] Install Deluge 1.3.2 with Macports

Post by mYrN »

Any news on getting this to work with lion?
carbncl
Leecher
Leecher
Posts: 92
Joined: Sun Nov 28, 2010 7:36 pm

Re: [HOWTO] Install Deluge 1.3.2 with Macports

Post by carbncl »

mYrN wrote:Any news on getting this to work with lion?
The macports packages has been updated 4 days ago and looks like working, but there might be some issues : http://forum.deluge-torrent.org/viewtop ... =7&t=37703

(Using only the client application in a "hacked" environment, can't really check this on my side)
genezkool323
New User
New User
Posts: 8
Joined: Sun Mar 07, 2010 7:05 pm

Re: [HOWTO] Install Deluge 1.3.3 with Macports

Post by genezkool323 »

Actually to be clear it is NOT working on Lion unless you perform a dangerous (I don't exactly know why, but the MacPorts developers do) workaround to get libnotify working. The workaround is located here: https://trac.macports.org/browser/trunk ... y/Portfile. If you look in the commented out section you will see the correct commands to perform to get deluge running.
# This port installs ${prefix}/lib/libnotify.dylib which gets
# picked up at link time instead of /usr/lib/system/libnotify.dylib
# leading to many build failures across MacPorts when it is installed.
#
# Because of this, we block installation in fetch and activate.
#
# ***DANGEROUS*** WORKAROUND
# There is a workaround for this issue which is recomended for *expert* users.
# Implementing this workaround and being lazy about it can (read: most likely
# *will*) result in a completely horked system after a software update.
#
# If do not follow this advise exactly, and your system becomes non-booting,
# shame on you for not listening to me.
#
# If you do follow this advise exactly, and your system becomes non-booting,
# shame on you for listening to me.
#
# Can I make this any clearer? If you are inclinded to blame anyone *but*
# yourself if your system fails to boot, then DON'T DO THIS!
#
# You have been warned.
#
# It is your responsibility to verify the sanity of what you are about to do!
#
# PROCEED DO AT YOUR OWN PERIL
#
# UNDO THIS WORKAROUND BEFORE ANY APPLE SOFTWARE UPDATE!
#
# To work around this issue (make sure this is really necessary before doing it):
# sudo cp /usr/lib/system/libnotify.dylib /usr/lib/system/libsystem_notify.dylib
# sudo install_name_tool -id /usr/lib/system/libsystem_notify.dylib /usr/lib/system/libsystem_notify.dylib
# for f in /usr/lib/system/*dylib /usr/lib/libSystem.B.dylib ; do sudo install_name_tool -change /usr/lib/system/libnotify.dylib /usr/lib/system/libsystem_notify.dylib ${f} ; done
# sudo /usr/bin/update_dyld_shared_cache
# sudo reboot
# sudo mv /usr/lib/system/libnotify.dylib /usr/lib/system/libnotify.dylib.bak
#
# To undo:
# sudo mv /usr/lib/system/libnotify.dylib.bak /usr/lib/system/libnotify.dylib
# for f in /usr/lib/system/*dylib /usr/lib/libSystem.B.dylib ; do sudo install_name_tool -change /usr/lib/system/libsystem_notify.dylib /usr/lib/system/libnotify.dylib ${f} ; done
# sudo install_name_tool -id /usr/lib/system/libnotify.dylib /usr/lib/system/libnotify.dylib
# sudo /usr/bin/update_dyld_shared_cache
# sudo reboot
# sudo rm /usr/lib/system/libsystem_notify.dylib
I suppose you could just temporarily perform this workaround and then switch back after deluge has been built. I may give that a shot.

But to be clear, the one step command to compile Deluge is NOT working on Lion because of the libnotify dependency as of 2011-09-14.
carbncl
Leecher
Leecher
Posts: 92
Joined: Sun Nov 28, 2010 7:36 pm

Re: [HOWTO] Install Deluge 1.3.3 with Macports

Post by carbncl »

genezkool323 wrote:Actually to be clear it is NOT working on Lion unless you perform a dangerous (I don't exactly know why, but the MacPorts developers do) workaround to get libnotify working. The workaround is located here: https://trac.macports.org/browser/trunk ... y/Portfile. If you look in the commented out section you will see the correct commands to perform to get deluge running.
I suppose you could just temporarily perform this workaround and then switch back after deluge has been built. I may give that a shot.
But to be clear, the one step command to compile Deluge is NOT working on Lion because of the libnotify dependency as of 2011-09-14.
My bad, I thought that was fixed, I did another workaround for libnotify a long time ago that I just forgot.

As the packager writed and that you quoted :
# This port installs ${prefix}/lib/libnotify.dylib which gets
# picked up at link time instead of /usr/lib/system/libnotify.dylib
# leading to many build failures across MacPorts when it is installed.
The interesting part: "leading to many build failures across MacPorts" :
Because of not using many macports packages (using brew when possible), and in general not many packages using libnotify (I guess deluge is the only one)
I just commented that check and installed libnotify in ${prefix}/lib/libnotify.dylib ...

The proposed workaround by the packager is just horribly dangerous and I prefer to take the risk that "maybe" some day have a macports (or other) corrupted package than a computer that doesn't boot anymore.
Just my 2 cents. :)

The best solution I guess would be to remove libnotify since I doubt it will ever work on OSX (via growl maybe), but I have no idea if deluge can be built without.
Someone (me? :)) should try and propose a macports package fix (with maybe a libnotify variant)
genezkool323
New User
New User
Posts: 8
Joined: Sun Mar 07, 2010 7:05 pm

Re: [HOWTO] Install Deluge 1.3.3 with Macports

Post by genezkool323 »

carbncl wrote:The best solution I guess would be to remove libnotify since I doubt it will ever work on OSX (via growl maybe), but I have no idea if deluge can be built without.
Someone (me? :)) should try and propose a macports package fix (with maybe a libnotify variant)
Yes, I too believe the best option is to remove libnotify as a dependency. I don't think it's more important than actually having the damn thing build. In any case, I was tempted to stay up late and I actually temporarily performed the workaround and was able to install Deluge. After a nervously long boot time, my system popped up and Deluge worked! This is the first time I've had a MacPorts Deluge install work for me. So assuming that the libnotify package was useless on OS X anyway, I reversed the workaround and reinitialized the system libnotify and to my great pleasure Deluge still runs natively on my compy.

So I guess it is safe to follow that workaround but do the reverse steps immediately after Deluge has been built in order to stay on the safe side.

Cheers,
genez
genezkool323
New User
New User
Posts: 8
Joined: Sun Mar 07, 2010 7:05 pm

Re: [HOWTO] Install Deluge 1.3.3 with Macports

Post by genezkool323 »

I was also digging around a bit more about the libnotify dependency. After looking at the Deluge portfile I found that Deluge does not require libnotify per se, but rather it is Deluge's requirement of py26-notify-python which requires libnotify. Do we really need this? Something for the portfile people to determine.

genez
gaffel

Re: [HOWTO] Install Deluge 1.3.3 with Macports

Post by gaffel »

On the first post it says
"EDIT : 1.3.3 / Lion : Looks like deluge 1.3.3 macports package (and its dependencies) has been recently fixed, the following procedure should be working! (when writing this on 11/09/11)"
But the last posts on this thread suggest its not working.. Pretty confusing for a new user if you ask me.
I've never tried macports before but I've followed every guide to a T after hours of installing it always ends in:
Error: Status 1 encountered during processing.
I've even tried it without installing libnotify but it won't work. Here's the error messages from my last attempt:
---> Dependencies to be installed: dbus-python26 dbus dbus-glib py26-gobject libffi librsvg libart_lgpl libcroco libgsf gconf orbit2 libidl policykit eggdbus gnome-vfs desktop-file-utils popt gnome-mime-data libbonobo libtorrent-rasterbar libgeoip py26-chardet py26-distribute py26-distribute py26-game libsdl_image libsdl xorg-libXext xorg-libX11 xorg-bigreqsproto xorg-inputproto xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-libxcb xorg-libpthread-stubs xorg-xcb-proto xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-libXrandr xorg-randrproto xrender xorg-renderproto libsdl_mixer flac libogg libmikmod libvorbis smpeg libsdl_ttf py26-numpy fftw-3 py26-nose py26-gtk libglade2 py26-cairo py26-py py26-mako py26-notify-python libnotify py26-openssl py26-twisted py26-zopeinterface py26-twisted-web2 py26-xdg py26-numeric
---> Activating dbus @1.4.12_0
Error: Target org.macports.activate returned: Image error: /Library/LaunchAgents/org.freedesktop.dbus-session.plist already exists and does not belong to a registered port. Unable to activate port dbus. Use 'port -f activate dbus' to force the activation.
Error: Failed to install dbus
Log for dbus is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_dbus/dbus/main.log
Error: The following dependencies were not installed: dbus-python26 dbus dbus-glib py26-gobject libffi librsvg libart_lgpl libcroco libgsf gconf orbit2 libidl policykit eggdbus gnome-vfs desktop-file-utils popt gnome-mime-data libbonobo libtorrent-rasterbar libgeoip py26-chardet py26-distribute py26-distribute py26-game libsdl_image libsdl xorg-libXext xorg-libX11 xorg-bigreqsproto xorg-inputproto xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-libxcb xorg-libpthread-stubs xorg-xcb-proto xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-libXrandr xorg-randrproto xrender xorg-renderproto libsdl_mixer flac libogg libmikmod libvorbis smpeg libsdl_ttf py26-numpy fftw-3 py26-nose py26-gtk libglade2 py26-cairo py26-py py26-mako py26-notify-python libnotify py26-openssl py26-twisted py26-zopeinterface py26-twisted-web2 py26-xdg py26-numeric
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>
carbncl
Leecher
Leecher
Posts: 92
Joined: Sun Nov 28, 2010 7:36 pm

Re: [HOWTO] Install Deluge 1.3.3 with Macports

Post by carbncl »

genezkool323 wrote:I was also digging around a bit more about the libnotify dependency. After looking at the Deluge portfile I found that Deluge does not require libnotify per se, but rather it is Deluge's requirement of py26-notify-python which requires libnotify. Do we really need this? Something for the portfile people to determine.
genez
I'm not a python developer, but from what I can see (grep/ack) in deluge code:

Code: Select all

try:
    import pynotify
except:
    log.warning("pynotify is not installed")
else: ...
 
So I think I can say that deluge will degrade gracefully without libnotify/py26-python-notify, just some warnings.
Just uninstalled these, and rebuilt deluge, no problem:

Code: Select all

port uninstall py26-notify-python libnotify
Just delete dependency line from port:

Code: Select all

sudo port edit deluge
carbncl
Leecher
Leecher
Posts: 92
Joined: Sun Nov 28, 2010 7:36 pm

Re: [HOWTO] Install Deluge 1.3.3 with Macports

Post by carbncl »

gaffel wrote:On the first post it says...
But the last posts on this thread suggest its not working.. Pretty confusing for a new user if you ask me.
First post edited.
gaffel wrote:I've even tried it without installing libnotify but it won't work. Here's the error messages from my last attempt:
As you quoted, error message is explicit:
Error: Target org.macports.activate returned: Image error: /Library/LaunchAgents/org.freedesktop.dbus-session.plist already exists and does not belong to a registered port. Unable to activate port dbus. Use 'port -f activate dbus' to force the activation.
Just delete/move that file or try command suggested by port and try again! :) (I think someone already asked this previously, search in thread)
Post Reply