Planet Amarok

Compiling Amarok from git locally - full summary

Myriam Schweingruber - September 26, 2009 - 09:05

As we have more and more questions for support on how to install Amarok 2.2 from GIT, I thought I might make another synopsis on how to install a local build. Apparently linking to previous posts is not very useful because people tend not to read the links…

Warning: please do not try this if you are not comfortable with compiling from sources, and be aware that compiling from a development branch can break a few things!

Note: as I use Kubuntu, this is heavily biased, but there are a few indications for other distributions, as far as those have been provided by the previous bloggers.

Thanks go to Mark Kretschmann who started that adventure and wrote the first instructions, to Stephan Jau who wrote an excellent How-to for the SVN version for Kubuntu users and to David Faure who corrected some of our settings. And, of course, all the Amarok Team who do a tremendous job every single day :)


This document explains how to install Amarok 2 from GIT in your home directory - in an easy way :-)

Update:October 12th 2009 I updated a few things since the first edition, in particular the README content in section 5 and adapted it to the upcoming Karmic Koala aka Kubuntu 9.10 (remember, I am biased)

If you already have an Amarok 2.x version installed from your distro, un-install it to prevent setting conflicts and similar. You will need the kdelibs and kdebase-runtime from KDE 4.2 or higher. Please see also the minimal requirements and mandatory dependencies in section 5.


1.Install git, the compiler and KDE 4 development packages:

  • In Kubuntu, Debian, and all their derivatives:
    • sudo aptitude install git-core build-essential kde-devel
  • In Archlinux:
    • sudo pacman -Sy git base-devel kdelibs kdebase-runtime
  • In Gentoo:
    • sudo emerge -av dev-util/git kdelibs plasma-workspace


2. Install ccache to speed up compilation

ccache is a very nice tool that can speed up your compilation. It speeds up re-compilation of C/C++ code by caching previous compiles and detecting when the same compile is being done again. Install the package from your distribution and set the size of the cache to 2 GB with the command

ccache -M 2G

This will take 2Gb of space in your local directory, but the gain of time is really impressive. Enable the use of ccache by adding it to your local .bashrc, described in step 3 below:


3. Define the PATH and local environment

  • Append the following to $HOME/.bashrc:
    • export PATH=$HOME/kde/bin:$PATH
    • export PATH=/usr/lib/ccache:$PATH
  • Reload your edited .bashrc:
    • source $HOME/.bashrc

    NOTE: if you are not using the bash shell, edit your proper shell config file (~/.zshrc or ~/.tcshrc or whatever it may be).


    4. Make KDE aware of Amarok’s plugin location:

  • echo 'export KDEDIR=$HOME/kde' >> $HOME/.kde/env/myenv.sh
  • echo 'export KDEDIRS=$KDEDIR' >> $HOME/.kde/env/myenv.sh

  • 5. Make sure you have all the necessary dependencies

    The README file in the source states the required and optional dependencies, but I might as well write it down here, so there is no other document to be read for the lazy ones. Of course, before diving into compiling from source, check if those dependencies are available in the package repository of your distro :)

    Note: you must also install the devel versions of these packages!

  • Required
    • MySQL 5.0 (or newer) Embedded: libmysqld compiled with fPIC (In-process database support)

      Note: If you have installed MySQL Embedded in non-default location (i.e. $HOME/usr), Amarok may fail to start with error regarding libmysqlclient library. In this case, add the following string to your ~/.bashrc:

      • export LD_LIBRARY_PATH=$HOME/usr/lib/mysql:$LD_LIBRARY_PATH

        where $HOME/usr is the path you will use in the --prefix option when compiling (see step 7. below)

  • Optional
    • MySQL 5.0 (or newer) Server (external database support)


    5.1.Various dependencies that might cause compile errors and have to be installed:

    (these are rather specific to Kubuntu, might have other names in other distributions and/or are already installed)

    • libstrigiqtdbusclient-dev
    • libsearchclient-dev
    • libmysqlclient15off
    • libmysqlclient16-dev
    • libmysqld-dev
    • libmysqld-pic


    6. Create folders:

    • mkdir $HOME/kde
    • mkdir $HOME/kde/src
    • mkdir $HOME/kde/build
    • mkdir $HOME/kde/build/amarok


    7. Checking out and Building:

    Now you need a source checkout from Gitorious. In the folder ~/kde/src/, type the following command:

    git clone git://gitorious.org/amarok/amarok.git

    this will drag approx. 55-60Mb of data, depending on the moment you actually make this checkout.

    Everything is now ready to build:

    • cd $HOME/kde/build/amarok
    • cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde -DCMAKE_BUILD_TYPE=debugfull $HOME/kde/src/amarok
    • make install


    8. Updating KDE Config:

    • kbuildsycoca4 --noincremental
    • Note: this might not be necessary for most of the cases

    Now you are ready to run Amarok 2, by typing “amarok” in the shell. We strongly recommend you run amarok with the -d and –nofork option, so you will have debugging enabled and can get a valid backtrace if Amarok crashes.


    9. Updating your Amarok build:

    Since the development is quite fast with git, you should update your Amarok build regularly, and a daily checkout is not too much. This is made easy with the following command:

    • cd $HOME/kde/src/amarok
    • git pull

    This will update your local git branch. If you have done modifications to your local branch you would like to keep, make sure you update with the --rebase option. See also the git tutorial for KDE in section 10.

    You can now simply build again with

    • cd $HOME/kde/build/amarok
    • make install

    Since you have installed ccache, a full build will speed up over time. To have an idea about the build time, just type time make install when building. If you have several CPU cores, you can speed up even more with the -j[n] option, where [n] is the number of CPU cores +1. Of course, the more CPU you use for building, the less you will have available for other tasks :)


    10. More information and useful links

    Don’t forget: running a development version also means that it is not stable and can break anytime ! This is especially true after a feature freeze, when the developers merge their personal git branches to the master branch.

    Note: To be notified about major changes you definitely should subscribe to our mailing list amarok@kde.org at https://mail.kde.org/mailman/listinfo/amarok. Of course you will also find help in our #amarok channel on irc.freenode.net, but reading the mailing list is mandatory and spares us a lot of time.

    Since you don’t want to repeat all this completely when you upgrade to a newer version of your preferred distribution, you should consider installing your /home directory on a separate partition from the start, it will spare you quite some time and hassle in the future.

    Edit: Casper van Donderen just pointed me to the possibility to have the latest Amarok from git on Windows, too: if you build KDE using the emerge system, just type emerge amarok at the kdeenv command prompt. Thanks for the hint, Casper!

    分类: Planet Amarok

    Tune your Quassel!

    Lydia Pintscher - September 26, 2009 - 09:02

    If you would do a quick analysis on which programs I use the most you’d probably get Firefox, Quassel, Amarok and Kopete (in this order and Firefox being way ahead of everything else). Using those programs extensively of course leads to optimizing workflows.

    Quassel is the fourth IRC client I use now. MIRC back on Windows. Then I learned to love Konversation when I switched to Linux. At some point I got tired of missing stuff when I was offline so I got shell access on a friends server to run irssi. It was ok and I customized the hell out of it to fit my needs pretty perfectly but I always missed Konversation’s nice GUI. I’m just not the type that really enjoys a CLI app (well except for listadmin maybe – but more about that another time). And then came Quassel, developed by a good friend of mine. I got a GUI and always-online in one app without hacks. Heaven! Well ok – close to heaven. There were a few usability issues that thankfully got fixed with help by Celeste. But one thing is still problematic: Quassel keeps all queries (private chats) in your default channel list. (Konversation had (has?) this nice feature that it closes inactive queries after a while and they are gone after a restart anyway so your channel list doesn’t grow too huge.)  With a huge list of queries (not hard to achieve if you’re using IRC for a while) you easily miss new messages in Quassel. Since I noticed a few people having this problem I’ll share how I tuned my Quassel to never miss queries again.

    I have 2 chat lists. One with all my channels and queries and another one with only new stuff – that means unread channels and queries. It looks like this:

    Quassel channel buffer

    Once I read and leave the queries again they are removed from the news chat list – same for the channels. A nice side effect of this is that I can easily manage a lot of channels even on the small screen on my netbook without scrolling.

    To set this up go to View -> Chat Lists -> Configure Chat Lists.

    Settings for my All Buffers chat list:

    Quassel All Buffers

    Settings for my news chat list:

    Quassel news chat list

    How about a list of only new queries? Easy:

    Quassel queries-only

    How about a chat lists with only channels with highlights? There you go:

    Quassel highlights-only

    Enjoy and never get angry looks from friends again for missing a query ;-)

    How did you tune Quassel?

    分类: Planet Amarok

    AFT and MusicBrainz track identifiers, redux

    Jeff Mitchell - September 24, 2009 - 13:08

    A bit ago I blogged about how Amarok File Tracking can now use MusicBrainz identifiers to do its stuff.

    Then, a little while later, I started getting bug reports of peoples' music disappearing from their collection, and requested some of the reporters send me some files. One of the users did so, and I found something curious in his tags (if I had a penny for every time I've personally seen users have something odd or strange in their tags, I'd have...well, a few dollars at least). Several of his files had full MusicBrainz tags -- with absolutely no data populating them, meaning that the MusicBrainz identifier (and all other MB data) for all of those files was ending up the same (blank) and Amarok was thinking them the same file.

    It was a quick fix (use generated non-embedded AFT IDs when the MB tags are empty) but just adds to the evidence that you can never, ever trust users' tags. Also, that users that use your Git-based version or betas really rock for finding this stuff before release...so in case I don't say this enough: thanks users!

    分类: Planet Amarok

    Sunset

    Nikolaj Hald Nielsen - September 23, 2009 - 07:33
    The sun is setting on the development of Amarok 2.2.0. With todays release of Amarok 2.2 rc1, we are preparing to release 2.2.0 very soon and end this significant chapter in the history of Amarok. br / br / This rc contains a number of important bugfixes compared to Beta2 and also adds a few much needed features and improvements to the podcast support. See the a href=http://amarok.kde.org/en/releases/2.2/rc/1 title=release announcementrelease announcement/a for a full list of changes and please help us by a href=http://bugs.kde.org/ title=Bugzillareporting bugs/a.br / br / As with any sunset, tomorrow is a new day. And once 2.2.0 has been released, we can start over, improving on Amarok 2.2 and slowly start thinking about 2.3 and how to make it even better.br / br / br /
    分类: Planet Amarok

    A-Team at OpenExpo, Wintertur, Switzerland

    Sven Krohlas - September 22, 2009 - 14:11
    As usualy: if you want to see the latest developments in git master and talk to the developers of your favorite media player: join us at a href=http://www.openexpo.ch/openexpo-2009-winterthur/OpenExpo in Winterthur/a, Switzerland. Oh, and of course we have Amarok shirts with us. :)
    分类: Planet Amarok

    Preparing for another conference: OpenExpo in Winterthur next week!

    Myriam Schweingruber - September 20, 2009 - 21:38

    oe-logo_solo_05
    It’s this time of the year again where I prepare for attending OpenExpo in Winterthur. This important Free Software even is held on September 23 & 24 in Winterthur, Switzerland.
    This year I helped organizing more than one booth: Amarok, KDE and the Ubuntu/Kubuntu booth of the Swiss Team. While Mark and Sven will handle the Amarok booth, showing the upcoming version 2.2 of your preferred music player, I will share my time at both the KDE and the Ubuntu/Kubuntu one, presenting the latest KDE 4.3.1, using Kubuntu 9.04 (unless I find some time to install a preview of the upcoming Karmic Koala before). Not alone, of course, as I will have a lot of helping hands from Andi, Adriaan, Eckhart and Pascal for KDE, and Daniel, Dirk, Erwin and Roman at the Swiss Team booth :-)

    分类: Planet Amarok

    getting closer

    Lydia Pintscher - September 17, 2009 - 14:25

    Slightly delayed due to server problems we’ve released the second beta version of Amarok 2.2.
    Please read the release notes, test it, report bugs and send patches (I might give away cookies for patches ;-) ).

    分类: Planet Amarok

    identi.ca got it right

    Lydia Pintscher - September 12, 2009 - 23:39

    Social media like Twitter, Facebook, digg and co. are all about the conversation. They are more fun and actually more useful when you have people to interact with. After all it’s called social media, right?

    Now people have discussed why Twitter is better than identi.ca and the other way around. So Twitter obviously has the advantage of being comparatively big and mainstream at the moment. And this certainly has its advantages like being able to interact with a lot more people who so far have not (and maybe never will) discovered identi.ca.

    Identi.ca on the other hand has the advantage of being Free Software and connecting a lot of Free Software people. However that is not the only and maybe not even the biggest advantage of it. No, actually its biggest advantage is enabling communication. Let me explain.

    Twitter has @-replies. You use them to address people in the messages you send (like this: @foo I don’t agree with what you just said). Not too long ago Twitter decided to not show those @-replies your contacts send to other people in your main timeline but only when you visit their pages. So when one of the people I follow addresses someone else but me I will generally not see this. There are a few good reasons for Twitter to do this which I will not go into right now. However the problem with this is that you are missing big parts of very interesting message exchanges. The even bigger problem is however that it is close to impossible to find the @-replies someone got. Why is this a problem? Say someone asks his Twitter followers how they like a movie that just came out to decide if it is worth going to the cinema or not. You are about to go as well and would like to read what people answer him? Well tough luck. You’ll need to jump trough hoops and use the twitter search to search for his nickname and will probably get a lot of useless stuff there mixed in the useful things. Identi.ca on the other hand gives a tab to view all replies a user received so you can easily see what people replied to an interesting question or comment. Identi.ca goes even further. You get a “show in context”-link that tries to thread the whole conversation around a certain topic. It is pretty awesome and accurate. You can see who replied what to whom. Check it out!

    One feature Twitter is lacking completely is groups. They are addressed with !groupname. Groups are an awesome way to communicate with a larger group of people you do not know but share a common interest with. There is no good way in Twitter to do this (no, hashtags don’t count). Groups can for example be used to make announcements or to get feedback from people also interested in topic X. They are probably the most powerful microblogging mechanism out there because they easily enable communication in large groups without much hassle. You simply join the group and then put !groupname in the message whenever you have something to share with the group. On Twitter (unless you are one of those people followed by a lot of people) your best chance of getting an important message read by a lot of people is to have it reposted (retweeted) by one of the influential people who are followed by a huge crowd. And then you still can’t be sure to reach the people you actually want to reach. One could say identi.ca’s groups make this whole process more democratic.

    Summary: Twitter is a simple tool and being simple is a big part of the things that made it popular and successful. It however encourages communication from one to a few selected people who are following you. Identi.ca on the other hand encourages communication between a lot of people who don’t necessarily need to follow each other and thereby empowers people if they choose to use it that way. This makes it slightly more complicated for someone who starts using it though. So the question is: How does one explain groups in an easy and comprehensible way?

    (In case you have no idea what this is all about check out my Social Media Guide For Free Software Projects for an introduction.)

    分类: Planet Amarok

    The Future of Game Development in KDE

    Dan Leinir Turthra Jensen - September 8, 2009 - 20:27
    Do you want to go to Qt Developer Days in Munich, October 12th to 14th? If so, read on!br / br / Traditionally, game development in KDE has happened much like how you would develop any other application: You start out with an idea, then you boot up your vi/emacs/kdevelop or whichever other coding tool you use, and you start hacking together your game logic. Later on, or during this, you team up with a graphics artist, and maybe a sound artist, and you all work together to create a pretty, well sounding game. Now, we have seen in KDE 4 that this actually works.br / br / However, there is a fly in the ointment. One of those big, blue ones that just won't go away when you swat at it.br / br / First, of course, the graphics people and the sound people at some point have to start pestering the programmer to change their code so that their work can fit into the game better. Unless they know a little code, they have to rely on the coder to change which pieces of graphic and sound are loaded and played when and where. This makes it difficult for the sound guy to time his sounds so they fire at the right time, and for the graphics guy to time his animations so they play at the right time.br / br / But more than that, however, you have the problem that every time you start writing a game, you as a programmer end up rewriting the same code again and again. You write an input handler, you write a simple (or not) playing field, you write your gameloop, you write a structure to manage each of the objects in your game... Why is it that this needs to happen? Why can you not simply start up a tool, and start writing your game immediately?br / br / In other worlds, you have a number of tools to assist you in your task when you want to create a game. In the Windows and MacOS worlds you have tools like a href="http://www.yoyogames.com/make"Game Maker/a and a href="http://unity3d.com/"Unity 3D/a, and in our own world we have... Not a single thing. The closest thing we have is KDevelop 4 which makes some things easy for us, but even that is just a generic IDE, it is not something really geared to making games, and most importantly: You could never give a graphics artist or a sound artist KDevelop 4 without risking them curling up in a small ball and making unpleasant squeaky noises, something which is not particularly conducive to getting a game made.br / br / So, today i offer you the potential for a brand new scene, a new world: A world in which KDE ends up taking the indie games scene with a storm.br / br / Today, i announce: bGluon Creator/b.br / br / Based on a href="http://gluon.tuxfamily.org/"the Gluon project/a's heavy legwork, the powerful systems inside KDevelop 4 and an investigation into workflows, Gluon Creator is a project which will aim at creating a tool designed specifically for creating games, which is useable by all the artists that make up the team behind them: Graphics, sound, level designers, game designers, coders and all others involved in the process.br / br / The connection this has with DevDays? Simple: Nokia has gracioucly offered to sponsor up to 15 people attending Qt Developer Days in Munich*, and in connection with this it was suggested that a developer's sprint should happen the weekend leading up to DevDays, in the style of those held for the KOffice, Amarok, KDevelop and other teams. The topic of this sprint would then, is my suggestion, be the initial creation and investigation into what would be needed for Gluon Creator to happen.br / br / So: To attend Qt Developer Days 2009 in Munich and the sprint leading up to it, get in touch with me, either by commenting on this entry, or by emailing me directly at admin@leinir.dk - please don't hesitate! And remember, just because you are not a coder does not mean you won't be useful here!br / br / *: Yup, there's one in San Francisco as well, however the sprint there will have a different focus, and i'm only sporadically involved with that one anyway and will not be going img src="http://amarok.kde.org/blog/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" /
    分类: Planet Amarok

    it’s all clear now

    Lydia Pintscher - September 4, 2009 - 19:13

    We’re happy to release the first beta of Amarok 2.2. It comes with many goodies like playlist sorting, UMS device support, the ability to customize the program layout to your liking and much more. For details please read the release announcement and this nice review.

    Enjoy rocking :)

    Oh and don’t forget to send feedback, bug reports and patches (and maybe some cookies and hugs?) so we can get it in perfect shape for release in about a month.

    Paros, Greece

    分类: Planet Amarok

    Qt for S60 Still Bogged Down By Symbian

    Alejandro Wainzinger - September 2, 2009 - 09:07
    Qt for S60 has brought the simplicity and power of Qt to Symbian phones, but there are still a few corner cases which are hurting, and one of those is the camera, whose code is still heavily tied to old Symbian cruft.divbr //divdivSymbian's code for cameras returns captured images as CFbsBitmaps. Don't even begin to guess what CFbs stands for, you'll just end up crying "why, why!?" Luckily Qt for S60 provides a function which converts CFbsBitmaps to QPixmaps, but it seems that the image capture is faulty, even though if at any point you take an image from the viewfinder and convert it it turns out fine./divdivbr //divdivSo I decided to debug to see if the CFbsBitmap returned from the camera's viewfinder on capture was the source of the problems, and not Qt's conversion function./divdivbr //divdivAfter an hour or so of Googling (tm) and messing around in the Nokia forums in dead ends, I've found this wonderful snippet of code to save the CFbsBitmap to a file to see if that's the case (http://discussion.forum.nokia.com/forum/showthread.php?p=636992). (Note: CFbsBitmap's Save() function merely saves the binary CFbsBitmap to a file, unopenable by anybody other than Symbian, and thus useless):/divdivbr //divdiv------------------------------------------------/divbr /_LIT(KFileName, "c:\\1.bmp");br /_LIT8(KMime, "image/bmp");br /RFsamp; fs = CEikonEnv::Static()-FsSession();br /CImageEncoder* encoder = CImageEncoder::FileNewL(fs, KFileName(), KMime(), CImageEncoder::EOptionAlwaysThread);br /TRequestStatus status = KRequestPending;br /encoder-Convert(amp;status, *bitmap);br /User::WaitForRequest(status);br /delete encoder;br /User::LeaveIfError(status.Int());divbr //divdiv------------------------------------------------/divdivbr //divdivLet's break this monster down:/divdiv· _LIT8 is one of Symbian's ass-backwards ways of declaring a "string" for example a string called KMimeType with value "image/bmp"/divdiv· RFs is a file session, which is basically a guy that manages accesses to files, and here we pull out the manager for the application using CEikonEnv (again, don't ask)/divdiv· Then we create an encoder to change the CFbsBitmap into a real bitmap and save it to a file with the rest of this wonderful piece of code/divdivbr //divdivThe Qt equivalent of this is:/divdivbr //divdivQPixmap *pix:/divdivpix.save( "somewhere.format" );/divdivbr //divdivWhy was this so hard to program into Symbian!? If you're going to put a function to save the raw binary of a CFbsBitmap to a file, why not a truly encoded one?/divdivbr //divdivEvery day I code in Symbian, I feel a piece of my logical mind get torn to pieces./divdivbr //divdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1504418270400156450-4354472287614195773?l=awainzin-foss.blogspot.com' alt='' //div
    分类: Planet Amarok

    New 4.3.0 thingies in Macports

    Orville Bennett - August 31, 2009 - 02:07
    pSome kindly soul has updated KDE 4.3.0 in macports (jeremy, not me). Some other kindly soul has updated the dependencies for amarok-devel in macports (yup, me). Maybe one day (hopefully, before 2.2 is actually out) Amarok itself will also be updated./p
    分类: Planet Amarok

    Inline metadata editing in the playlist

    Nikolaj Hald Nielsen - August 20, 2009 - 20:43
    One of the features from Amarok 1 that has so far been missing from Amarok 2, is the ability to edit track metadata directly in the playlist. While it might sound surprising that such a seemingly simple and oft requested feature should take so long to implement, the extremely flexible nature of the Amarok 2 playlist made it quite tricky to get right.br / br / Recently I decided to have a go at it, and after a few false starts, I think I finally finally made it work. So as of today, cliking on an already selected item in the playlist makes it go into edit mode where (some of) the visible fields can be edited (subject to a few rules about which pieces of metadata it makes sense to manually edit). br / br / The hard part here was to generate editors that fits whatever layout the playlist is setup to use. Below are screenshots of inline editing with 2 different layouts. The look of the edit boxes could possibly do with a little tweaking, but the functionality is pretty solid.br / br / a class='serendipity_image_link' href='http://amarok.kde.org/blog/uploads/inlineediting1.png'!-- s9ymdb:220 --img class=serendipity_image_center width=300 height=273 style=border: 0px; padding-left: 5px; padding-right: 5px; src=http://amarok.kde.org/blog/uploads/inlineediting1.serendipityThumb.png alt= //abr / br / a class='serendipity_image_link' href='http://amarok.kde.org/blog/uploads/inlineediting2.png'!-- s9ymdb:221 --img class=serendipity_image_center width=300 height=228 style=border: 0px; padding-left: 5px; padding-right: 5px; src=http://amarok.kde.org/blog/uploads/inlineediting2.serendipityThumb.png alt= //abr / br / As the attentive reader will note, this also allows changing track ratings directly in the playlist.br / br / Look for this to arrive in an Amarok 2.2 near you.
    分类: Planet Amarok

    FrOSCon 2009

    Sven Krohlas - August 19, 2009 - 09:58
    If you want to meet some developers of your favorite music player in real life, shake hands with Mike and have a look at all the wonderful changes in git master for Amarok 2.2: a href=http://froscon.org/Visit us at FrOSCon/a, this weekend in Sankt Augustin, Germany (near Cologne/Bonn). We will be at booth 45 together with KDE, Kubuntu and Qt Software. See you there!
    分类: Planet Amarok

    GSoC Status Update August/3 (final one)

    Sven Krohlas - August 17, 2009 - 17:08
    In this last week new test classes were added to the framework, namely tests for: ul liMeta::M3UPlaylist/li liMeta::XSPFPlaylist/li liPlaylistFileProvider/li liSqlUserPlaylistProvider/li liTimecodeTrackProvider/li /ul Also the tests for DirectoryLoader finally work. The solution was to leave the usual design of tests behind in this case and start testing with QTest::qExec() not in the constructor but in a special slot that gets connected to the loaders finished() signal. So this is now a good template for tests that test actions taking part in other threads. Also some more test data has been added and older tests have been polished a bit.br/ br/ So in the end we have a fast test framework with currently 18 test classes. Adding more tests is not hard, a a href=http://amarok.kde.org/wiki/Unit_Testingguide to using and writing Amarok unit tests/a has just been added our wiki. Tell me if anything is unclear there.
    分类: Planet Amarok

    Amarok 2: Universal Mass Storage Device Support Here

    Alejandro Wainzinger - August 16, 2009 - 14:02
    a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vlB73cxVKVI/SogZrY-bwKI/AAAAAAAAAKo/uenUgNkoJ2M/s1600-h/ums2.png"img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 243px;" src="http://3.bp.blogspot.com/_vlB73cxVKVI/SogZrY-bwKI/AAAAAAAAAKo/uenUgNkoJ2M/s400/ums2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5370570788868702370" //abr /Ok, so you can now do the usual with UMS devices that you can with other devices. Due to some issues with Solid detection in Amarok, to make sure your device is found you must:divbr //divdiv- create a file ".is_audio_player" at the root of your device/divdiv- start Amarok/divdiv- the device should show up next to the local collection/divdiv- right-click it and click "read device"/divdivbr //divdivThen it should parse, and you're ready to go. You can copy and delete files from outside of Amarok, and Amarok should update accordingly. Copying and deleting from within Amarok, and editing track details also works./divdivbr //divdivOPTIONAL:/divdivIf you want to set a music folder on your device, then put this in your ".is_audio_player" file:/divdivbr //divdivaudio_folder=musicfolder/divdivbr //divdiv... where "musicfolder" is a relative path from the mountpoint of the device, so this would set the folder to: /media/yourdevicemountpoint/musicfolder/divdivbr //divdivNOTES:/divdiv- reading of the device is not done automatically right now since we don't want unpleasant surprises for people with huge external hard drives that happen to be mounted/divdiv- yes, the ability to set custom device paths and mountpoints will be coming, but not just yet/divdiv- yes, support for multiple music folders on the device is planned/divdiv- no, artwork isn't yet supported/divdiv- no, saving playlists isn't yet supported/divdivbr //divdivAnd... bug reports are now welcome, so test away!/divdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1504418270400156450-1677325529893276744?l=awainzin-foss.blogspot.com' alt='' //div
    分类: Planet Amarok

    social media guide for free software projects

    Lydia Pintscher - August 16, 2009 - 00:17

    Lately more and more people come to me with questions like “What does $randomsocialmediaterm mean?” or “How does $socialmediasite work?” or “How do I do this on $socialmediasite?“. It seems people start to understand that social media can be a huge thing for free software projects but don’t really know where to start or where to look for help.

    So I sat down for a few hours and wrote the Social Media Guide For Free Software Projects. Download it and find out how social media can help your project stay in touch with your users and make it rock even more. Learn about digg, Twitter, identi.ca, Linked.in and more. The guide includes basic intros to different sites as well as advanced tips for how to deal with social media in general.

    Enjoy and please leave feedback for the next version of the guide :)

    分类: Planet Amarok

    amarok_forum-improve()

    Lydia Pintscher - August 15, 2009 - 13:41

    When the KDE forum team started they came to me asking what to do about the Amarok forum. It was fairly active and working ok. So we decided to keep it and just link to it from forum.kde.org so people looking there would find it. Lately the forum software was causing more and more problems though and we are low on moderators as well. Luckily since they started the KDE forum team has done an amazing job, making the KDE forum so much better than the Amarok one.

    I’m happy to announce that we moved the Amarok forum to the official KDE forum at forum.kde.org to  enjoy a better forum, reduce maintainance and reduce the number of needed accounts for KDE websites.

    All content and account data have been migrated. Migration of attachments and avatars is still in progress. Some nicks conflicted. If you can’t log in with your nick try your email address. If you want nicks changed/merged in this case please get in touch with me or the KDE forum team in #kde-forum on freenode.

    Thanks to the KDE forum team for handling migration and Jeff for helping on the Amarok side.

    Now go and enjoy a much improved Amarok forum :)

    分类: Planet Amarok

    Magnatune.com and Amarok: Integration of favorite and recommendation features

    Nikolaj Hald Nielsen - August 13, 2009 - 08:08
    Today I want to write a bit about some of the stuff that is made possible by me working on both a href=http://http://www.youtube.com/watch?v=z1suvKLGbJkMagnatune.com/a and Amarok.br / br / On Magnatune.com, we have recently added a number of features to make the memberships more attractive. One of these features (which has actually been around for a while now) is a personal list of favorite albums for each member. On each album page, there is a small button that adds the album to the list of favoritesbr / br / a class='serendipity_image_link' href='http://amarok.kde.org/blog/uploads/Magnatune.comaddalbumtofavorites.png'!-- s9ymdb:217 --img class=serendipity_image_center width=300 height=290 style=border: 0px; padding-left: 5px; padding-right: 5px; src=http://amarok.kde.org/blog/uploads/Magnatune.comaddalbumtofavorites.serendipityThumb.png alt= //abr / br / Clicking this button adds the album to the favorites page (and in a nifty little trick, the button gives feedback and changes to a link to the favorites page). The favorite page look something like this:br / br / a class='serendipity_image_link' href='http://amarok.kde.org/blog/uploads/Magnatune.comfavorites.png'!-- s9ymdb:218 --img class=serendipity_image_center width=300 height=300 style=border: 0px; padding-left: 5px; padding-right: 5px; src=http://amarok.kde.org/blog/uploads/Magnatune.comfavorites.serendipityThumb.png alt= //abr / br / Besides some basic editing (removing albums form the list) it also provides direct download links (for download members) and an option to start a flash player containing all these albums. Based on the data we now have about peoples favorites, I just pushed our latest feature live this morning. This new page provides personal recommendations based on what a member has in their list of favorites, as well as any previous downloads.br / br / a class='serendipity_image_link' href='http://amarok.kde.org/blog/uploads/Magnatune.comrecommendations.png'!-- s9ymdb:219 --img class=serendipity_image_center width=288 height=300 style=border: 0px; padding-left: 5px; padding-right: 5px; src=http://amarok.kde.org/blog/uploads/Magnatune.comrecommendations.serendipityThumb.png alt= //abr / br / As one of the main complaints that I often hear about Magnatune.com is that it is hard to discover new music based on what you already like, hopefully this will help a little. The feature is currently only available for paying members, but that might change in the future.br / br / So, that is the Magnatune.com side of things, and how, you ask does all this relate to Amarok?br / br / If we go back to the release of Amarok 2.1.0, one of the things I had been working on was something called Amarok URLs. These are basically URLs that Amarok triggers on and that can cause Amarok to do any number of different things. While their use in 2.1 was quite limited, one of the main ideas behind them was to make it possible to integrate html pages, possibly generated elsewhere, that can make Amarok perform certain actions.br / br / Using such urls, the Magnatune service in Amarok 2.2 will fully support the membership favorites and recommendations features. I could spend the next few pages describing how exactly this works from a user perspective, but I think I will just throw a video your way! img src=http://amarok.kde.org/blog/templates/default/img/emoticons/smile.png alt=:-) style=display: inline; vertical-align: bottom; class=emoticon /br / br / As always, note that this is very new code and there may be obvious bugs shown in the video. The most obvious is that it needs to be simple to get back the the Magnatune service front page, but I am working on a solution for that one.br / br / object width=425 height=344param name=movie value=http://www.youtube.com/v/z1suvKLGbJkhl=enfs=1/paramparam name=allowFullScreen value=true/paramparam name=allowscriptaccess value=always/paramembed src=http://www.youtube.com/v/z1suvKLGbJkhl=enfs=1 type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344/embed/objectbr / a href=http://www.youtube.com/watch?v=z1suvKLGbJkdirect link/a if aggregations breaks the embedded vid (or if you prefer to watch in higher quality)br / br / So this is what I have implemented so far. In essence it is pretty basic stuff, but it shows of what is possible when integrating online content into Amarok 2.br / br /
    分类: Planet Amarok

    GSoC Status Update August/2

    Sven Krohlas - August 10, 2009 - 12:27
    This status update might be a bit boring as basically all there is to say: we have lots of new tests. Namely the following classes are new to the testsuite (most of them pass successfully): ul liExpressionParser/li liQStringx/li liMetaFile::Track/li liMetaCue::CueFileItem/li liMetaCue::Track/li liMeta::MultiTrack/li liMeta::Track/li liMeta::PLSPlaylist/li /ul Also some bugs were found and some of them even fixed along the way. Still I have no clue how to correctly test DirectoryLoader. Next are the other Playlist-classes in the Meta namespace for M3U and XSPF files.
    分类: Planet Amarok
    聚合内容