I will use Clementine when it becomes portable

768 views
Skip to first unread message

Gourmand

unread,
Apr 1, 2011, 7:47:48 AM4/1/11
to Clementine Music Player
At home I listen music rarely. More often when I'm guesting somewhere.
I'd prefer have Clementine on flash-mem and use it as my favorite
player on somebody's computer.

Keiran Halcyon

unread,
Apr 2, 2011, 7:15:41 AM4/2/11
to Clementine Music Player

Gourmand

unread,
Apr 2, 2011, 9:18:09 AM4/2/11
to Clementine Music Player
Me already wrote there. I just want that authors pay more attention to
this feature.

Keiran Halcyon

unread,
Apr 3, 2011, 4:08:55 AM4/3/11
to Clementine Music Player
There are four authors and 450 feature requests.

P.

Gourmand

unread,
Apr 3, 2011, 1:21:50 PM4/3/11
to Clementine Music Player
With Qt this can be made almost "free of charge". Just store settings/
data in folder where executable exists. And static executables must be
linked. That's all. I made 2 applications with Qt and both are
automatically portable.

Aluísio Augusto Silva Gonçalves

unread,
Apr 3, 2011, 6:41:11 PM4/3/11
to clementi...@googlegroups.com
I am currently working in a portable version of Clementine for PortableApps.com. You can test it at http://portableapps.com/node/27418.

Keiran Halcyon

unread,
Apr 4, 2011, 6:07:41 AM4/4/11
to Clementine Music Player
Then write a patch for Clementine. We'll be glad to use it.

P.

Gourmand

unread,
Apr 4, 2011, 6:51:19 AM4/4/11
to Clementine Music Player
On 4 апр, 02:41, Aluísio Augusto Silva Gonçalves <eu.a...@gmail.com>
wrote:
> I am currently working in a portable version of Clementine for
> PortableApps.com <http://portableapps.com/>. You can test it athttp://portableapps.com/node/27418.

Looks like it is working... You'd better join these branches in main
project. This automatically will apply all newest additions to
portable version.

Keiran Halcyon

unread,
Apr 5, 2011, 3:02:58 AM4/5/11
to Clementine Music Player
Could you tell us something more about it?

P.

On 4 Kwi, 00:41, Aluísio Augusto Silva Gonçalves <eu.a...@gmail.com>
wrote:
> I am currently working in a portable version of Clementine for

Aluísio Augusto Silva Gonçalves

unread,
Apr 5, 2011, 4:55:28 PM4/5/11
to clementi...@googlegroups.com
Right now, it uses a launcher to handle backup of local registry keys and directories, and to change references to the current drive in the database. However, I see that some parts (settings and DB) can be easily changed to use a more portable location. I will see if I can contribute with some patches still this week.


On Tuesday, April 5, 2011 4:02:58 AM UTC-3, Keiran Halcyon wrote:
Could you tell us something more about it?

P.

On 4 Kwi, 00:41, Aluísio Augusto Silva Gonçalves <eu....@gmail.com>

Gourmand

unread,
Apr 20, 2011, 4:27:55 PM4/20/11
to Clementine Music Player
Aluisio, didn't you try make portable Clementine statically linked? I
don't see WebKit libs in package - that means even with Qt 4.7.x
static linkage is possible. 53 MBytes is not a SIZE for computer's
HDD. But for flash memory this could be significant. Static must be
much smaller.

Aluísio Augusto Silva Gonçalves

unread,
Apr 20, 2011, 6:19:24 PM4/20/11
to clementi...@googlegroups.com
A few days ago, I tried to cross-compile Clementine using the guide, and got the same link error as the guy of Feb 17, 2011 (last comment).
Once I be able to successfully build it, I will try to link it statically.

Gourmand

unread,
May 1, 2011, 11:43:44 AM5/1/11
to Clementine Music Player
But what the hell it tries to do on the first run???
I downloaded ClementinePortable_0.7.1_Development_Test_2.paf.exe from
link before. It unpacked to folder ClementinePortable as I requested.
There is ClementinePortable.exe which looks like proper application.

But it tries create a bunch of files:

$TMP\nsrB5E.tmp\registry.dll
$TMP\nsrB5E.tmp\newadvsplash.dll
$TMP\nsrB5E.tmp\System.dll

That was blocked by COMODO Defense System.

THIS HELL LOOKS LIKE A TROYAN INSTALLATION!

Gourmand

unread,
May 1, 2011, 11:58:46 AM5/1/11
to Clementine Music Player
And after attempt to run portable I cannot use common release. It
starts but doesn't play - on each track it says plugins OGG and MP3
are not properly installed. Looks like it damaged path in registry.
Reinstall doesn't help.

David Sansome

unread,
May 1, 2011, 12:07:36 PM5/1/11
to clementi...@googlegroups.com
Try removing the gst-registry files in C:\Users\You\.config\Clementine

Generally I wouldn't advise using these wrappers or launchers to make
clementine portable - it's open source, if someone wants to do it
properly they can submit a patch - anything else is unlikely to work
well.

David

Gourmand

unread,
May 1, 2011, 2:55:45 PM5/1/11
to Clementine Music Player
Removing files helps. Installed Clementine works well. But portable
from PortableApps looks dangerous because of suspicious files
installation.

Aluísio Augusto Silva Gonçalves

unread,
May 1, 2011, 3:56:20 PM5/1/11
to clementi...@googlegroups.com
The launcher is written using NSIS, a language mainly oriented for the creation of installers, but that can be used for general-purpose scripting (see this thread).
Those files are all NSIS plugins, related to (respectively) Windows Registry manipulation, splash screens, and Win32 API access.

Aluísio Augusto Silva Gonçalves

unread,
May 1, 2011, 3:58:50 PM5/1/11
to clementi...@googlegroups.com

Gourmand

unread,
May 1, 2011, 5:43:53 PM5/1/11
to Clementine Music Player
Sorry but why any installer needed for *portable* version? I thought
Clementine.exe should run from any folder without additional launcher.
Please explain this.

Aluísio Augusto Silva Gonçalves

unread,
May 1, 2011, 5:54:22 PM5/1/11
to clementi...@googlegroups.com
This is what the launcher does:
  • Saves settings (HKCU\Software\Clementine\Clementine) (fixed in my patch - see above)
  • Saves databases (%UserProfile%\.Config\Clementine) (fixed in my patch)
  • Fixes drive letters in the songs database (%UserProfile%\.Config\Clementine\Clementine.db)

Gourmand

unread,
May 2, 2011, 7:21:41 AM5/2/11
to Clementine Music Player
But the fact that it writes to local storage makes Clementine *not
portable*. Does not matter what it writes exactly. Portable version
must write only to the storage where it runs from. This time I must
warn owner of computer that program writes something to it. And if
owner uses some protection software - he will forbid me using any
programs on his computer forever. After he will see attempt to install
System.dll and newadvsplash.dll (WHAT??? "new advertisement splash"???
GO OUT FROM MY COMPUTER!)

I won't use your "portable" Clementine. Question is up again - really
portable Clementine needed.

Aluísio Augusto Silva Gonçalves

unread,
May 2, 2011, 10:33:34 AM5/2/11
to clementi...@googlegroups.com
If you read my replies in this thread, you'll see that I'm working on making Clementine natively portable, but I'm unable to cross-compile it succesfully. By now, the launcher takes care of correctly backing up and restoring the local settings upon exit, and it will even restore them if the computer crashes while it's running.

Regarding those DLLs, the launcher is not installing them, it's extracting them from itself to Windows temporary files directory. They're removed on a successful exit.

Gourmand

unread,
May 2, 2011, 2:50:14 PM5/2/11
to Clementine Music Player
You have tried make Clementine with cross-compiler to further link it
statically, haven't you? But static linkage doesn't directly relate to
portability. It just reduces size of distribution. Why not make
portable dynamically linked version for Windows on the Windows? This
requires some rework of Clementine code - at least to save it's
settings not to the registry but in INI-format file. QSettings class
inherited object being created like this:

Settings::Settings( MainWindow *wparent ) :
QSettings( "yourprogram.set", QSettings::IniFormat )
{
}

automatically saves settings to the folder where your program starts
from. This works equally in all host OSes - Win, Lin, Mac.

And of course portable Clementine must create and use databases and
temporary files not on the host computer's storage but on "starting
from" storage instead. All portable Clementine files must be localized
inside it's folder on the storage. That means if I copy Clementine
from my flash memory to somebodie's flash - the copy will be complete
and consistent.

Aluísio Augusto Silva Gonçalves

unread,
May 2, 2011, 6:39:51 PM5/2/11
to clementi...@googlegroups.com
On Monday, May 2, 2011 3:50:14 PM UTC-3, Gourmand wrote:
You have tried make Clementine with cross-compiler to further link it
statically, haven't you? But static linkage doesn't directly relate to
portability. It just reduces size of distribution. Why not make
portable dynamically linked version for Windows on the Windows?
 Sincerely, I'm just following the official instructions. I'll post my patch here soon; I would appreciate if someone with a working Win32 builder could test it.

This requires some rework of Clementine code - at least to save it's
settings not to the registry but in INI-format file. QSettings class
inherited object being created like this:

Settings::Settings( MainWindow *wparent ) :
QSettings( "yourprogram.set", QSettings::IniFormat )
{
}

automatically saves settings to the folder where your program starts
from. This works equally in all host OSes - Win, Lin, Mac.
I already changed the code for the QSettings (Registry) and the databases+Jamendo+etc... (%UserProfile%\.Config). The only missing code is to strip the drive letter from the database paths (directories.path, songs.filename and playlist_items.url). I already have an idea of how to do it. 

And of course portable Clementine must create and use databases and
temporary files not on the host computer's storage but on "starting
from" storage instead. All portable Clementine files must be localized
inside it's folder on the storage. That means if I copy Clementine
from my flash memory to somebodie's flash - the copy will be complete
and consistent.
The current implementation (using a launcher) is already completely portable - even the Qt keys are deleted. You can move the installation while it's not running.

Gourmand

unread,
May 3, 2011, 2:51:11 PM5/3/11
to Clementine Music Player
> The only missing code is
> to strip the drive letter from the database paths (directories.path,
> songs.filename and playlist_items.url). I already have an idea of how to do
> it.

Why not just open all files _without_ path? Just in current folder or
relatively to current folder. When Qt-based application starts, it's
current folder by default is the same where from executable starts.
Then current folder can change but right now after start it is always
the same as for argv[0]. If you aren't sure about it - just take
argv[0] at startup, cut off application name (including .ext if
exists), then use this path to open files. This doesn't relate to path
format and drive letters.

Gourmand

unread,
May 3, 2011, 2:56:42 PM5/3/11
to Clementine Music Player
Class QFileInfo allows safely work with file names in multiplatform
applications.

Neffiff Bluffnfee

unread,
Jun 13, 2015, 2:59:13 PM6/13/15
to clementi...@googlegroups.com

 Sincerely, I'm just following the official instructions. I'll post my patch here soon; I would appreciate if someone with a working Win32 builder could test it.

Any news on this?  I saw a "portable" release in the http://builds.clementine-player.org/win32/release/ folder for a while there but they appear to have been cleared out.  Was that a track that just wasn't yielding fruit?  There was some discussion over on portablefreeware about this:

http://www.portablefreeware.com/forums/viewtopic.php?p=68764#p68764

I have a work machine that I use Clementine with via a USB drive so this is something I'm very interested in.  Thanks!

V

florian

unread,
Jun 13, 2015, 3:39:47 PM6/13/15
to clementi...@googlegroups.com
> --
> You received this message because you are subscribed to the Google
> Groups "Clementine Music Player" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to clementine-pla...@googlegroups.com
> <mailto:clementine-pla...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout.

See http://builds.clementine-player.org/win32/portable/
Reply all
Reply to author
Forward
0 new messages