Darktable portable version (win10)

This is possible, and probably not too difficult. However, I would only start such a project if it is officially accepted and supported by the DT developers, as I do not want to create some “parallel build” that conflicts with the official ones…

3 Likes

Yeah, that makes sense. It should effectively “take priority”, since other options’ behaviors may depend on whether that flag is toggled.

Why is that? I guess they’re not doing exec, right? Couldn’t a combination of --configdir, --datadir, --library, and --tmpdir do enough (assuming the other variables are set properly by default at installation)?

Alternatively, there must be buffers where the values of those variables are stored. Right now, they’re presumably initialized to their default values. If we pre-populate those based on whether it’s a portable build, then it should “just work”, right? Or am I missing something with respect to places darktable writes?

Hmm…looking at the manpage at least, there don’t seem to be any environment variables? But yes, I agree that any environment variables that need to be used should be set by the program itself.

1 Like

@Carmelo_DrRaw I agree. Could being the operative word. :slight_smile:

Because app’s starting other app’s don’t always allow for cmdline options.

The env’s needed are:
CAMLIBS
IOLIBS
MAGICK_HOME

This is already done in the version @st.raw linked to earlier. But there’s no option in that version yet, it’s hard coded.

Ah, I see. I wonder if allowing for setting the config dir (and other dirs) through environment variables (e.g. DARKTABLE_CONFIG_DIR and similar) might be helpful? That way, portable mode would just have to toggle the environment variables.

No, that’d just over complicate the issue.

It just needs an option file that’s loaded before anything else is done. This file could also be used for cmdline options amongst other things.

1 Like

Hi,

I’ve created some sort of portable version of darktable from 2.7 dev version (darktable-2.7.0+1423~ga63dd508e-win64). Just unpack zip file and click on darktable shortcut in unpacked directory (portable version download).
I have tested it on my Windows 7 notebook and Win 10 desktop and it works without any issues. But bear in mind that it will try to search previous darktable databases in users folder or create new when there is no database file. So as you see it is not a full portable version, because it relies on database located in users directory.

I’m a big fan of portable apps. I use https://portableapps.com/ a lot for a lot of different stuff. It appears that sifecobin2hood has created an old version of DarkTable. https://portableapps.com/node/57365
Maybe we could talk him/her into working on the new version under the portable apps format. Almost any app can be created into a portable version with their solution.

If you’d like the maintainer of the portable app to create a new version, you should ask them to do so. That person should probably be involved in the project as a packager, as they’ll have to provide support for that specific build. The darktable team doesn’t really have the manpower to provide support for older versions.

Half way back to topic, after lots of research I got something working now.

Firstly, my main aim wasn’t making darktable portable, but rather have two versions run on my Win10 PC - release 2.6.2 plus the latest 2.7.x DEV version.

I did install the 2.7.0 exe on an external HDD. That works fine, but when you start it it asks you if you want to convert the data.db to the latest version - if you say ‘‘yes’’ then 2.6.2 won’t start.

So what I did, I created a TXT file that I called dt2.7.0.1945.bat, just to remind me what version I run without actually opening it. Then in the dt2.7.0.1945.bat I wrote:

start /d “G:\Cam_Stuff\darktable\dt-270oct\darktable\bin” darktable.exe --library G:\Cam_Stuff\darktable\dt-270oct\darktable\userdata\portable.db --configdir G:\Cam_Stuff\darktable\dt-270oct\darktable\userdata\config

The data.db will now sit in the \config\ folder.

If the folder not exist they will be created. Of course your USB driver letter need to stay the same to make it work. If you want to add comments to your *.bat file you do the after a REM.

Not sure it’s really portable, but now I can open 2.6.2 and 2.7.0 on the same PC

I think configdir is enough…that should put both the library and data db in your specified folder…there are separate command lines to locate either the library or the data.db files …configdir will also keep the keyboardrc file etc located there as well…

1 Like

Hello, I was wondering if there is or will be a new version for Win10 portable archive of darktable? I have tried the 2.40 but it did not worked. I wanted to try it without installing it and then unistalling as it is not clean in Windows. Thank you.

So far nobody has provided a portable binary.

Ah, OK. Thank you.
I thought it is not so hard to have a zip arhive. Many programs have such a zip file beside the installer. Blender has this too.
Even with less features it would be great. I think.
Maybe someday. Thank you

Someone who has a demand should start doing the stuff. If this ‚someone‘ doesn’t exist, it won’t be made…

The problem now is that we have only one or two developers supporting windows. So its hard enough to keep up with bug fixes and testing and producing the regular installer.

It seems that we have quite a few windows users, but none of them are interested in helping. So nothing gets done.

Just install it. Zip the folder. Delete the installation, expand the zipped folder where you want it - and create a matching *.bat.

No idea how it is under windows, but under Linux, parts of darktable itself are spread over several directories:

  • executables in /usr/bin
  • libraries in /usr/lib64/darktable
  • data in /usr/share/darktable

And then there are the dependencies, (libraries like lensfun, with their proper data), and possibly expected user data under /home/<user>. Blender was given as an example.
But blender has surprisingly few depencies, and those are mostly system libraries present on any (linux) system. darktable has many more dependencies. On the flip side, the blender executable is about 10× larger than darktable (including its specific libraries)

Of course it might be possilble to create a zip with all that’s needed. But it’s not just “zip the folder”, nor “unzip where you want”.

OK. Now I understand that it is not easy to do it as a portable zipped folder. I will have to try RawTherapee and others.
Installing files all over the systems makes it more cluttered and harder to clean by uninstallers. Registry files in Windows only grow by each installed program and is never compressed back by uninstalling them. This is why I prefer the programs that do work by unpacking a zip file.
I am not a programmer so cannot help other then suggesting.
If I could, I would do it so that it gets unpacked from zip archive and then for some features provide separate links to install each and all of the dependencies that are needed.
It is also true that Inkscape and Krita have some similar files in their folders so maybe putting them in the system would make them available to all programs and get the new programs smaller. Yet they can be unpacked, even from the installer file, and use as they are. Darktable installer cannot be unpacked.
Anyway, thank you all for your information.

i know requesting admin rights can be a pain, but why not simply ask an admin to install it for you? if it’s part of your job and you want to use it for that then ask your manager to make it happen