<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi<br>
<br>
Finally got the compile to work. Although, not the code from svn.<br>
I got the source from the slackware current rep to which seems to use
two different lib builds.<br>
They existed in the source tar ball.<br>
libamarok_taglib.so.1
<br>
libamarokplasma.so.2
<br>
<br>
The version I tried compiling from svn was using libplasma.so.3,<br>
which would not load the app beyond the splash screen.<br>
<br>
Compiling the source from slackware current I ran into two issues.<br>
First was an older libgpod, so I compiled a new 0.7.0 version.<br>
Then that got it farther to 92%, and died with the thumbnails errors in
iPod.<br>
I found the 2.0-ipod patch and applied that. <br>
Worked like a charm. :)<br>
<br>
Amarok now runs.<br>
Also, I noticed the libmysqld.a was missing from the mysql pkg.<br>
So I added that and recompiled amarok.<br>
<br>
Although adding the mysql lib doesn't show any sign of speeding up the
collection.<br>
2 hours after initial start, only 69% complete.<br>
<br>
Just a thought, to speed up the collecting process,<br>
maybe do it in phases. <br>
- scan the filenames and update urls only<br>
- run first batch (maybe 250 titles) of queries to update db info<br>
- display list box in collection<br>
- continue background batch queries for remaining collection<br>
- as user adds tracks to the playlist, update db info if necessary<br>
<br>
It would allow faster initial access to the system for a user that has<br>
lots of songs (30K or more). Waiting several hours on the initial
build can<br>
be frustrating. :) I tried hitting cancel, to resume scanning later,
but <br>
it locked up the entire app.<br>
<br>
Making the progress bar more active would lighten the fears of it being
locked up?<br>
Example of update intervals on a large group of files:<br>
5min - 5%<br>
10min - 14%<br>
20min - 32%<br>
30min - 55%<br>
40min - 69%<br>
120min - no update, still 69%<br>
<br>
<br>
<br>
<br>
Thanks<br>
Rich<br>
<br>
<br>
<br>
Rich wrote:
<blockquote cite="mid:49BDE607.80903@eastlink.ca" type="cite">
<pre wrap="">Hi
I guess the first attempt at the svn compile was beginners luck. :)
I was trying to recompile it now, which it does complete with no errors.
However, when I try to run it, it constantly dies after the splash screen.
So I was thought I may have overlooked a step in compiling it.
I added options to add debugging to see if that showed anything useful.
The failure doesn't produce any back trace.
Starting program: /usr/local/bin/amarok --debug
[Thread debugging using libthread_db enabled]
[New Thread 0xb34416f0 (LWP 6107)]
amarok: BEGIN: App::App()
amarok: BEGIN: void App::continueInit()
amarok: BEGIN: EngineController::EngineController()
amarok: BEGIN: void EngineController::initializePhonon()
amarok: [EngineController] Tick Interval (actual): 100
amarok: END__: void EngineController::initializePhonon() - Took 7.5s
amarok: END__: EngineController::EngineController() - Took 7.5s
amarok: BEGIN: MainWindow::MainWindow()
<unknown program name>(6107)/: Communication problem with "amarok" , it
probably crashed.
Error message was: "org.freedesktop.DBus.Error.NoReply" : " "Message
did not receive a reply (timeout by message bus)" "
Program exited with code 0377.
(gdb) KCrash: Application 'amarok' crashing...
sock_file=/home/budman/.kde/socket-mars/kdeinit4_0_0
kdeinit4: preparing to launch /usr/lib/kde4/libexec/drkonqi
amarok: Fatal IO error: client killed
I then ran a stack strace on the 'running' version from a latest distro pkg.
I then compared it to the bad failing run.
Its odd they pretty much run in sync, except when it tries to load the
fonts.
Failing run:
19450 open("/usr/lib/mysql/libexpat.so.1", O_RDONLY) = -1 ENOENT (No
such file or directory)
19450 open("/usr/lib/libexpat.so.1", O_RDONLY) = 3
19450 read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\37"..., 512) = 512
19450 fstat64(3, {st_mode=S_IFREG|0755, st_size=126996, ...}) = 0
19450 mmap2(NULL, 129724, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6101000
19450 mmap2(0xb611f000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d) = 0xb611f000
19450 close(3) = 0
19450 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb6100000
19450 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb60ff000
19450 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb60fe000
19450 set_thread_area({entry_number:-1 -> 6, base_addr:0xb60fe6d0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_i
n_pages:1, seg_not_present:0, useable:1}) = 0
19450 mprotect(0xb6268000, 4096, PROT_READ) = 0
19450 mprotect(0xb6280000, 4096, PROT_READ) = 0
19450 mprotect(0xb635c000, 4096, PROT_READ) = 0
19450 mprotect(0xb6706000, 77824, PROT_READ|PROT_WRITE) = 0
19450 mprotect(0xb6706000, 77824, PROT_READ|PROT_EXEC) = 0
19450 mprotect(0xb6874000, 8192, PROT_READ) = 0
19450 mprotect(0xb68ac000, 4096, PROT_READ) = 0
19442 stat64("/usr/share/fonts/TTF/DejaVuSans-Bold.ttf",
{st_mode=S_IFREG|0644, st_size=569432, ...}) = 0
19442 open("/usr/share/fonts/TTF/DejaVuSans-Bold.ttf", O_RDONLY) = 3
19442 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
19442 fstat64(3, {st_mode=S_IFREG|0644, st_size=569432, ...}) = 0
19442 mmap2(NULL, 569432, PROT_READ, MAP_PRIVATE, 3, 0) = 0xae7b4000
19442 close(3) = 0
19442 brk(0x85a5000) = 0x85a5000
19442 brk(0x85c6000) = 0x85c6000
19442 brk(0x85e7000) = 0x85e7000
19442 clock_gettime(CLOCK_MONOTONIC, {425986, 258420178}) = 0
19442 clock_gettime(CLOCK_MONOTONIC, {425986, 258488039}) = 0
19442 clock_gettime(CLOCK_MONOTONIC, {425986, 258709591}) = 0
19442 clock_gettime(CLOCK_MONOTONIC, {425986, 258750991}) = 0
19442 select(9, [8], [8], NULL, NULL) = -1 EBADF (Bad file descriptor)
19442 write(2, "amarok: Fatal IO error: client k"..., 38) = 38
19450 mprotect(0xb698b000, 16384, PROT_READ) = 0
19442 writev(5, [{"l\1\1\1D\0\0\0
\0\0\0\177\0\0\0\1\1o\0\25\0\0\0/org/fr"..., 144},
{"?\0\0\0type=\'signal\',interface=\'org"..., 68}], 2) = -1
EBADF (Bad file descriptor)
19442 close(5) = -1 EBADF (Bad file descriptor)
19442 gettimeofday({1237150391, 171217}, NULL) = 0
19442 clock_gettime(CLOCK_REALTIME, {1237150391, 171297797}) = 0
19442 futex(0xbf943df8, 0x80 /* FUTEX_??? */, 1 <unfinished ...>
19447 <... poll resumed> [{fd=13, events=POLLIN|POLLERR|POLLNVAL,
revents=POLLNVAL}], 1, 333) = 1
19447 read(13, 0xb003f210, 72) = -1 EBADF (Bad file descriptor)
19447 poll([{fd=13, events=POLLIN|POLLERR|POLLNVAL, revents=POLLNVAL}],
1, 333) = 1
=== thousands of the above line ====
19450 open("/usr/share/locale/locale.alias", O_RDONLY) = 3
19450 fstat64(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
19450 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb7505000
19450 read(3, "# Locale name alias data base.\n#"..., 4096) = 2570
19450 read(3, "", 4096) = 0
19450 close(3) = 0
19450 munmap(0xb7505000, 4096) = 0
Output from gdb:
Starting program: /usr/local/bin/amarok --debug
[Thread debugging using libthread_db enabled]
[New Thread 0xb34416f0 (LWP 6107)]
amarok: BEGIN: App::App()
amarok: BEGIN: void App::continueInit()
amarok: BEGIN: EngineController::EngineController()
amarok: BEGIN: void EngineController::initializePhonon()
amarok: [EngineController] Tick Interval (actual): 100
amarok: END__: void EngineController::initializePhonon() - Took 7.5s
amarok: END__: EngineController::EngineController() - Took 7.5s
amarok: BEGIN: MainWindow::MainWindow()
<unknown program name>(6107)/: Communication problem with "amarok" , it
probably crashed.
Error message was: "org.freedesktop.DBus.Error.NoReply" : " "Message
did not receive a reply (timeout by message bus)" "
Program exited with code 0377.
(gdb) KCrash: Application 'amarok' crashing...
sock_file=/home/budman/.kde/socket-mars/kdeinit4_0_0
kdeinit4: preparing to launch /usr/lib/kde4/libexec/drkonqi
amarok: Fatal IO error: client killed
That line "select(9, [8], [8], NULL, NULL) = -1 EBADF (Bad file
descriptor)"
19442 write(2, "amarok: Fatal IO error: client k"..., 38) = 38
In the good run, its
19642 select(9, [8], [8], NULL, NULL) = 2 (in [8], out [8])
and then continues to load the next font.
Good run:
19642 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3424,
...}) = 0
19642 stat64("/usr/share/fonts/TTF/DejaVuSans-Bold.ttf",
{st_mode=S_IFREG|0644, st_size=569432, ...}) = 0
19642 open("/usr/share/fonts/TTF/DejaVuSans-Bold.ttf", O_RDONLY) = 14
19642 fcntl64(14, F_SETFD, FD_CLOEXEC) = 0
19642 fstat64(14, {st_mode=S_IFREG|0644, st_size=569432, ...}) = 0
19642 mmap2(NULL, 569432, PROT_READ, MAP_PRIVATE, 14, 0) = 0xaef13000
19642 close(14) = 0
19642 brk(0x846e000) = 0x846e000
19642 brk(0x8490000) = 0x8490000
19642 brk(0x84b1000) = 0x84b1000
19642 clock_gettime(CLOCK_MONOTONIC, {426387, 295547393}) = 0
19642 clock_gettime(CLOCK_MONOTONIC, {426387, 295612875}) = 0
19642 clock_gettime(CLOCK_MONOTONIC, {426387, 295857156}) = 0
19642 clock_gettime(CLOCK_MONOTONIC, {426387, 295899380}) = 0
19642 select(9, [8], [8], NULL, NULL) = 2 (in [8], out [8])
19642 read(8,
"\34T\37\3\213\0@\1,\1\0\0R\27j\31\0\220S\t,\1\0\0\230K"..., 4096) = 32
19642 writev(8,
[{"5\30\4\0\245\0@\1\210\1\0\0@\0@\0\236\4\5\0\246\0@\1\245"..., 624}],
1) = 624
19642 read(8,
"\34K8\3\213\0@\1#\0\0\0`\'j\31\0\230\37\10\240K\311\277"..., 4096) = 128
I compiled as:
export KDEDIR=/usr
export XDG_CONFIG_DIRS=/etc/xdg:/etc/kde/xdg
export NUMJOBS="-j7"
export SLKCFLAGS="-O0 -g"
cd ~/svn/amarok
mkdir -p build
cd build
cmake \
-DCMAKE_BUILD_TYPE=debugfull \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DMAN_INSTALL_DIR=/usr/man \
-DSYSCONF_INSTALL_DIR=/etc/kde \
..
make $NUMJOBS || make || exit 1
I was hoping to add a debug line before the if track compare in
FastForwardWorker.cpp
to see what url is being generated. I can change the table back to its
original state (I have backups)
with the deviceid=-1 and last mount NULL.
Thanks
Rich
Rich wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Hi
I tried the SQLite import, that worked fine.
I originally had some old entries in there before I enabled MySql in 1.4.
Thanks, I found the table after looking a bit deeper. :)
So I ran the sql in the mysql db to see why it wasnt being detected.
I found the deviceid in the stats table had 99% of the rows as -1
which matched NULL on the join. So I issued an update to set
the deviceid to match a valid id in device table.
I tried the import again it failed with no tracks to import.
When I run the query in mysql, I get 2600+ rows back.
I did notice many of my paths in the url column were never updated.
So I ran a script on the column to correct the path of the files.
I thought maybe it was a path issue.
So now I tried again, still not recognizing the tracks.
Since the songs were collected when I ran 2.02 for the first time,
this would generate a new unique id. Would this be causing the
tracks not be picked up?
What determines a valid track in the import?
Thanks
Rich
Seb Ruiz wrote:
</pre>
<blockquote type="cite">
<pre wrap="">2009/3/15 Rich <a class="moz-txt-link-rfc2396E" href="mailto:budman85@eastlink.ca"><budman85@eastlink.ca></a>:
</pre>
<blockquote type="cite">
<pre wrap="">Hi
I tried importing old stats from mysql in amarok 1.4, but turns up with
no tracks found.
I checked the source sql, the lastmountpoint column doesn't exist so the
import fails.
Is there another table missing or is this column not needed?
</pre>
</blockquote>
<pre wrap="">The importer does a join on the device table, which contains this column.
Are you getting any errors when running Amarok from the command line
with the --debug option enabled?
</pre>
<blockquote type="cite">
<pre wrap="">SELECT lastmountpoint, S.url, createdate, accessdate, percentage,
rating, playcounter, lyrics from statistics ORDER BY lastmountpoint, url;
ERROR 1054 (42S22): Unknown column 'lastmountpoint' in 'field list'
mysql> describe statistics;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| url | varchar(255) | NO | PRI | | |
| deviceid | int(11) | NO | PRI | 0 | |
| createdate | int(11) | YES | | NULL | |
| accessdate | int(11) | YES | | NULL | |
| percentage | float | YES | MUL | NULL | |
| rating | int(11) | YES | MUL | 0 | |
| playcounter | int(11) | YES | MUL | NULL | |
| uniqueid | varchar(32) | YES | UNI | NULL | |
| deleted | tinyint(1) | YES | | 0 | |
+-------------+--------------+------+-----+---------+-------+
Thanks
Rich
_______________________________________________
Amarok mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Amarok@kde.org">Amarok@kde.org</a>
<a class="moz-txt-link-freetext" href="https://mail.kde.org/mailman/listinfo/amarok">https://mail.kde.org/mailman/listinfo/amarok</a>
</pre>
</blockquote>
<pre wrap="">
</pre>
</blockquote>
<pre wrap="">------------------------------------------------------------------------
_______________________________________________
Amarok mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Amarok@kde.org">Amarok@kde.org</a>
<a class="moz-txt-link-freetext" href="https://mail.kde.org/mailman/listinfo/amarok">https://mail.kde.org/mailman/listinfo/amarok</a>
</pre>
</blockquote>
<pre wrap=""><!---->_______________________________________________
Amarok mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Amarok@kde.org">Amarok@kde.org</a>
<a class="moz-txt-link-freetext" href="https://mail.kde.org/mailman/listinfo/amarok">https://mail.kde.org/mailman/listinfo/amarok</a>
</pre>
</blockquote>
</body>
</html>