mixxx icon indicating copy to clipboard operation
mixxx copied to clipboard

Add option for portable installation

Open mixxxbot opened this issue 2 years ago • 6 comments

Reported by: gj23 Date: 2017-11-11T21:30:51Z Status: In Progress Importance: Wishlist Launchpad Issue: lp1731689


Portable installations of mixxx are very convenient. 
Windows 8.1 x64; i5 4th gen CPU.

mixxxbot avatar Aug 23 '22 00:08 mixxxbot

Commented by: gj23 Date: 2017-11-20T22:37:56Z


For what it's worth, the following workaround has been successful for me on x64 installs:
1). Install the portable version of Mixxx from https://portableapps.com/node/23093
2). Install the latest x64 beta of 2.1
3). Copy the contents of the beta folder into the portable folder, for example copy c:\program files\Mixxx to A:\MixxxPortable\App\Mixxx\

My point is that whatever existing code allows Mixxx 2.0 to run as portable seems to be sufficient to run 2.1 as portable.

mixxxbot avatar Aug 23 '22 00:08 mixxxbot

Commented by: sblaisot Date: 2018-01-28T13:17:10Z


We have everything needed to launch Mixxx as a portable application, using command line parameters --resourcePath and --settingsPath.

My plan here is to add a portable launchscript for windows, Linux and MacOSX using these options to launch Mixxx using only "locale" resources (i.e. inside the current working directory) and update the build system to produce zip/tgz files with portable installation.

mixxxbot avatar Aug 23 '22 00:08 mixxxbot

Commented by: sblaisot Date: 2018-01-28T16:10:44Z


Resources are automatically taken from a res subdirectory if it exists in the same location than the Mixxx executable.

For settings, it would be better to detect in some way (executable name ?) if we are running in portable mode and change default to a settings subdirectory in the same location than the mixxx executable. This way, we need no launcher and no option and have only one binary.

mixxxbot avatar Aug 23 '22 00:08 mixxxbot

Commented by: sblaisot Date: 2018-08-15T23:37:59Z


https://github.com/mixxxdj/mixxx/pull/1780

mixxxbot avatar Aug 23 '22 00:08 mixxxbot

Hello there! o)

@sblaisot

For settings, it would be better to detect in some way (executable name ?) if we are running in portable mode and..

I think the more common thing is a flag file in the directory of the executable, like "portable.ini"? It does not need to contain anything, but could be used to specify directory/config-file locations or other settings to make life even more easy in portable mode.

I wonder what all this "mixxx-" folder prefix talk was about, was it because on Linux the mixxx executable does not have its own directory? Or was it just to help people who extract Mixxx into the wrong folder? A single folder in the root of the archive should take care of this, other than that I would find folders prefixed with "mixxx-" in the Mixxx application folder quite unusual, what other kind of folders are to be expected in a Mixxx application folder?

Now on to why I'm here: I wanted to ask what the status of the portable mode is. I read through the related issues linked here, but still can't make out if this is implemented or not. I then thought, well.. just try for yourself and find out, but..

image

It can't get the installer to run now. It complains about a higher version being present already (I might have tried a beta in the past?). From my point of view, the installer and distribution of Mixxx should default to "portable" mode, so I can run the installer as often as I want. If I was a DJ and I wanted to try another Mixxx version, I would cry out loud if the new (beta?) version messes with my existing and working version (which actually happened to me, please read on..).

Traktor also screws with the current and fine working version installed, when trying a beta version. I think that's just a totally unnecessary pain in the rear. Am I supposed to use a "beta version" laptop or a dozen different users / profiles on my OS for testing different versions? Logging in and out or maybe even using VMs is not handy at all.

How many DJs share their laptop / computer with other people, who also need to run the same Mixxx binary? As a DJ I would prefer every software I use to be as portable as can be (just think of USB thumb drive DJs). Storing resources and settings into specific home, user or system locations makes sense whenever many people share a single computer with a lot of huge software packages. If you, as DJ are the only person working on that laptop it barely makes sense, don't you think? If you like to pull of a DJ set by just plugging your USB thumb drive somewhere, containing a portable Mixxx installation and music, you should be able to to that by default (I think o).

Well, I'm not a DJ, but I prefer portable installations any day as well. If you tinker with a lot of devices and maybe test-drive or install a lot of PC hardware, it is very convenient to just copy over a bunch of folders which include application binaries and settings or profiles and the machine is ready to be used within minutes.

I like the linux app images because of that, user data and config files can go directly into a set of sidecar folders, next to the app image binary. This is portable mode in (near) perfection. Unfortunately a lot of applications still put hard coded paths to the users home folder in their config files. I could scream whenever I see that, such a config file will never be portable of course.

Recently, I customized the type-/javascript definition for the controller I'm using with Mixxx (on Windows). After having installed another Mixxx, it seems this customization was overwritten, outch! Surely my fault not using a different name or something, but also a nice example of why Mixxx should keep it "portable" by default and don't mess with what's already there. This is, unless I tell the installer to update a specific installation (an existing Mixxx "portable" folder).

That said, you guys do an amazing job with Mixxx! o) Software is hard, I'm some kind of a dev myself, so I can see what you are dealing with here - not to mention specific math and "physics" about audio mixing and sound science. Hats off! o)

Maybe some points I made make sense to you as well? I would like to hear your opinion if you find the time.

Thanks again and have a nice weekend! o)

tbone2k-git avatar May 08 '24 23:05 tbone2k-git

I think the more common thing is a flag file in the directory of the executable, like "portable.ini"?

In case windows the current solution is to setup a *.lnk file with a all required commend line parameters set. The drawback is that you will pollute you local user settings path when you double click the *.exe itself. So a portable.ini seems to be a good counter measurement for this.

Do you have interest to contribute that? It should be a good first and straight forward task.

I wonder what all this "mixxx-" folder prefix talk was about, was it because on Linux the mixxx executable does not have its own directory? Or was it just to help people who extract Mixxx into the wrong folder?

Mixxx will run form any folder. It is just the question where the user settings will be stored in the default potable case. Maybe in the sub-folder of the app dir?

Now on to why I'm here: I wanted to ask what the status of the portable mode is. I read through the related issues linked here, but still can't make out if this is implemented or not. I then thought, well.. just try for yourself and find out, but..

A portable installation is already possible but it is not a once stop shop right now. Once the logic around portable.ini is in place we may add an option to the installer to install the portable.ini

If I was a DJ and I wanted to try another Mixxx version, I would cry out loud if the new (beta?) version messes with my existing and working version (which actually happened to me, please read on..).

You should ALWAYS have a backup. Even with a potable installation side by side with the fixed installation you may start the wrong and mess up your good library.

If you like to pull of a DJ set by just plugging your USB thumb drive somewhere, containing a portable Mixxx installation and music, you should be able to to that by default (I think o).

There is unfortunately a big risk loosing you database when running it form a removable device. I originally had my Mixxx preferences folder with my music files on an external HDD. And it happens not only once that my db was corrupted. Today I copy it to the local HDD before the gig and back after it. This is probably something we need to "fix" if we allow an easy portable installation.

daschuer avatar May 09 '24 11:05 daschuer