namost akkor mi is van?

kijott valamek nap a deluge 05111111111
leszedtem adtam egy make-et:
[..]
build/temp.linux-i686-2.5/libtorrent/src/alert.o build/temp.linux-i686-2.5/libtorrent/src/allocate_resources.o build/temp.linux-i686-2.5/libtorrent/src/bandwidth_manager.o build/temp.linux-i686-2.5/libtorrent/src/bt_peer_connection.o build/temp.linux-i686-2.5/libtorrent/src/connection_queue.o build/temp.linux-i686-2.5/libtorrent/src/entry.o build/temp.linux-i686-2.5/libtorrent/src/escape_string.o -L/usr/lib/python2.5/config -lboost_filesystem-mt -lboost_date_time-mt -lboost_thread-mt -lz -lpthread -lssl -lpython2.5 -o build/lib.linux-i686-2.5/deluge/deluge_core.so
/usr/bin/ld: cannot find -lboost_filesystem-mt
collect2: ld returned 1 exit status
error: command 'g++' failed with exit status 1
make: *** [all] Error 1
->> itt megneztem h fent van-e _tenyleg_ minden boostal kapcsolatod dolog.. valami static valami nem volt fent, feltettem
$ make
python setup.py build
Attempting to detect your system information
32bit x86 system detected
Linux operating system detected
Libraries mt
running build
running build_py
running build_ext
building 'deluge_core' extension
g++ -pthread -shared build/temp.linux-i686-2.5/src/deluge_core.o build/temp.linux-i686-2.5/libtorrent/src/alert.o build/temp.linux-i686-2.5/libtorrent/src/allocate_resources.o
[..]
build/temp.linux-i686-2.5/libtorrent/src/kademlia/traversal_algorithm.o -L/usr/lib/python2.5/config -lboost_filesystem-mt -lboost_date_time-mt -lboost_thread-mt -lz -lpthread -lssl -lpython2.5 -o build/lib.linux-i686-2.5/deluge/deluge_core.so
/usr/bin/ld: cannot find -lboost_filesystem-mt
collect2: ld returned 1 exit status
error: command 'g++' failed with exit status 1
make: *** [all] Error 1
$ ls /usr/lib/libboo*
/usr/lib/libboost_date_time.a /usr/lib/libboost_program_options.so.1.33.1 /usr/lib/libboost_test_exec_monitor.a
/usr/lib/libboost_date_time.so /usr/lib/libboost_program_options.so.2 /usr/lib/libboost_test_exec_monitor.so
/usr/lib/libboost_date_time.so.1.33.1 /usr/lib/libboost_python.a /usr/lib/libboost_test_exec_monitor.so.1.33.1
/usr/lib/libboost_date_time.so.2 /usr/lib/libboost_python.so /usr/lib/libboost_test_exec_monitor.so.2
/usr/lib/libboost_filesystem.a /usr/lib/libboost_python.so.1.33.1 /usr/lib/libboost_thread.a
/usr/lib/libboost_filesystem.so /usr/lib/libboost_python.so.2 /usr/lib/libboost_thread.so
/usr/lib/libboost_filesystem.so.1.33.1 /usr/lib/libboost_regex.a /usr/lib/libboost_thread.so.1.33.1
/usr/lib/libboost_filesystem.so.2 /usr/lib/libboost_regex.so /usr/lib/libboost_thread.so.2
/usr/lib/libboost_iostreams.a /usr/lib/libboost_regex.so.1.33.1 /usr/lib/libboost_unit_test_framework.a
/usr/lib/libboost_iostreams.so /usr/lib/libboost_regex.so.2 /usr/lib/libboost_unit_test_framework.so
/usr/lib/libboost_iostreams.so.1.33.1 /usr/lib/libboost_serialization.a /usr/lib/libboost_unit_test_framework.so.1.33.1
/usr/lib/libboost_iostreams.so.2 /usr/lib/libboost_serialization.so /usr/lib/libboost_unit_test_framework.so.2
/usr/lib/libboost_prg_exec_monitor.a /usr/lib/libboost_serialization.so.1.33.1 /usr/lib/libboost_wave.a
/usr/lib/libboost_prg_exec_monitor.so /usr/lib/libboost_serialization.so.2 /usr/lib/libboost_wserialization.a
/usr/lib/libboost_prg_exec_monitor.so.1.33.1 /usr/lib/libboost_signals.a /usr/lib/libboost_wserialization.so
/usr/lib/libboost_prg_exec_monitor.so.2 /usr/lib/libboost_signals.so /usr/lib/libboost_wserialization.so.1.33.1
/usr/lib/libboost_program_options.a /usr/lib/libboost_signals.so.1.33.1 /usr/lib/libboost_wserialization.so.2
/usr/lib/libboost_program_options.so /usr/lib/libboost_signals.so.2
$ less setup.py
[..]
if OS == "linux":
if os.WEXITSTATUS(os.system('grep -iq "Debian GNU/Linux 4.0\|Ubuntu 7.04\|Ubuntu 6.06\|Fedora Core release 6\|openSUSE 10.2\|Mandriva Linux release 2007.1" /etc/issue')) == 0:
if os.path.exists('/usr/lib/libboost_filesystem-mt.so'):
boosttype = 'mt'
else:
boosttype = 'nomt'
else:
boosttype = 'mt'
[..]

nagyon "crosslinux" cucc... persze miutan kicsereltem a "Fedora Core release 6" -t "Fedora release 7 (Moonshine)" -ra leforgatta
ok.. probaljuk meg futtatni (persze make installoztam rootal kozbe)

$ /usr/bin/deluge
no existing Deluge session
Starting new Deluge session...
deluge_core; using libtorrent 0.13.0.0. Compiled with NDEBUG value: 1
Applying preferences
Starting DHT...
/usr/lib/python2.5/site-packages/deluge/core.py:723: DeprecationWarning: integer argument expected, got float
PREF_FUNCTIONS[pref](self.get_pref(pref))
Traceback (most recent call last):
File "/usr/bin/deluge", line 93, in
start_deluge()
File "/usr/bin/deluge", line 67, in start_deluge
interface = deluge.interface.DelugeGTK()
File "/usr/lib/python2.5/site-packages/deluge/interface.py", line 58, in __init__
'%s %s'%(common.PROGRAM_NAME, common.PROGRAM_VERSION), common.CONFIG_DIR)
File "/usr/lib/python2.5/site-packages/deluge/core.py", line 223, in __init__
self.state = pickle.load(pkl_file)
File "/usr/lib/python2.5/pickle.py", line 1370, in load
return Unpickler(file).load()
File "/usr/lib/python2.5/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.5/pickle.py", line 1069, in load_inst
klass = self.find_class(module, name)
File "/usr/lib/python2.5/pickle.py", line 1124, in find_class
__import__(module)
ImportError: No module named deluge

$ ls /usr/lib/python2.5/site-packages/deluge/
common.py core.py deluge_core.so deluge_stats.pyc dgtk.pyc dialogs.pyc __init__.pyc interface.pyc ipc_manager.pyc plugins.pyc pref.pyc
common.pyc core.pyc deluge_stats.py dgtk.py dialogs.py __init__.py interface.py ipc_manager.py plugins.py pref.py
$
es tenyleg nincs ... fura..
gondoltam egyet:
$ rm -rf .config/deluge/
$ /usr/bin/deluge
no existing Deluge session
Starting new Deluge session...
deluge_core; using libtorrent 0.13.0.0. Compiled with NDEBUG value: 1
Applying preferences
Starting DHT...
No DHT file to resume
/usr/lib/python2.5/site-packages/deluge/core.py:723: DeprecationWarning: integer argument expected, got float
PREF_FUNCTIONS[pref](self.get_pref(pref))
Applying preferences
Starting DHT...
No DHT file to resume

es elindul..

Hozzászólások

if OS == "linux":
if os.WEXITSTATUS(os.system('grep -iq "Debian GNU/Linux 4.0\|Ubuntu 7.04\|Ubuntu 6.06\|Fedora Core release 6\|openSUSE 10.2\|Mandriva Linux release 2007.1" /etc/issue')) == 0:
if os.path.exists('/usr/lib/libboost_filesystem-mt.so'):
boosttype = 'mt'
else:
boosttype = 'nomt'
else:
boosttype = 'mt'

nagyon "crosslinux" cucc... persze miutan kicsereltem a "Fedora Core release 6" -t "Fedora release 7 (Moonshine)" -ra leforgatta
------------------------------------------------

Ebből nekem úgy tűnik, hogy a különböző disztribek a boost libeket nem azonos módon nevezik el (okát nem tudom), úgyhogy itt lehet, hogy nem a deluge a sáros.

------------------------------------------------
File "/usr/lib/python2.5/site-packages/deluge/core.py", line 223, in __init__
self.state = pickle.load(pkl_file)
[..]
ImportError: No module named deluge

Itt viszont a ~/.config/deluge/persistent.state -ből nem tudja visszatölteni a cuccost
mert átszervezte/átnevezte a modulokat.
Ez viszont már a pickle nem kultúrált használata. Szerintem.

"Ebből nekem úgy tűnik, hogy a különböző disztribek a boost libeket nem azonos módon nevezik el (okát nem tudom), úgyhogy itt lehet, hogy nem a deluge a sáros."

jo.. de ott van egy sorba kullonbozo disztro.. nem lehetne ertelmesebben megnezni hogy hol is akarja a gyerek futtatni?

"Itt viszont a ~/.config/deluge/persistent.state -ből nem tudja visszatölteni a cuccost
mert átszervezte/átnevezte a modulokat.
Ez viszont már a pickle nem kultúrált használata. Szerintem."

backward compatibility nuku? oszinten nem nezegettem meg h mivan a config/deluge ba.. hogy meglehetett volna e oldani a dolgot, ersd: most akkor elszalt volna az osszes torrent (ha lett volna) vagy nem

"jo.. de ott van egy sorba kullonbozo disztro.. nem lehetne ertelmesebben megnezni hogy hol is akarja a gyerek futtatni?"

Biztosan lehetne.

"backward compatibility nuku? oszinten nem nezegettem meg h mivan a config/deluge ba.. hogy meglehetett volna e oldani a dolgot, ersd: most akkor elszalt volna az osszes torrent (ha lett volna) vagy nem"

Nem szállt volna el. Azok külön könyvtárban vannak.
Elég lett volna a ~/.config/deluge/persistent.state fájl törlése.

Lehet, hogy jelezni kéne ezeket a dolgokat a szerzőnek. Én most lusta vagyok hozzá :)

Való igaz. Csakhogy én összesen kétfajta elnevezést látok.
Az alábbi kódok csak hasraütéssszerűek, de jól szemléltetik a mondandót:


try:
   from boost import mt
except ImportError:
   from boost import nomt as mt

És máris platformfüggetlen.

Emellett a try-except blokkok egymásba ágyazhatóak, nem kell velük cicázni.

Ja, és az os.path modulnak van exist függvénye ami - milyen érdekes - fájlok és mappák létezőségét vizsgálja.

uhum, de enneka: if "s.path.exists('/usr/lib/libboost_filesystem-mt.so'):" is eleg workaround buze van... mivan akkor ha /banya -'ba van a boostom??
masreszt nem emlekszek pontosan, de pl solarisba kapott egy: "sunspro" vagy hasonlo suffixet is, az 'mt' melle(?)

na mind1.. okosodtunk ezzel is..

Pont ezért írtam az első példát. A try-except tényleg korlátlan egymásba ágyazható.

Amúgy asszem le lehet kérni a modulok tartalmát is valahogy... most nincs előttem teljesen. Mindenesetre mindent lehet, csak akarat és elhatározás kérdése. De lehet hogy csak én vagyok olyan, hogy nem szeretek gány munkát kiadni a kezemből?