This is a very interesting way to deal with dependencies. I'm seeing some issues, though : let's imagine fsmod-py (including its config files) is completely uninstalled from the user's computer. We have some modified mods (duplicated parent mods because children were depending on different versions of these). Then the user re-installs fs2mod-py : when it searches for installed mods, what happens ?
If two or more versions of a mod with the same name are installed (but modified mod folder name and mod.ini), what happens with fso:// links ?
This solution also assumes different checksums for parent mod VPs mean children will not be compatible, but some children mods are actually compatible with different versions of their parent mod. How do we deal with that case ? (this is only a disk space issue, I guess we don't care that much, and if we want something as reliable as possible, we should only do what the source tells us to do...)
How does it work with updates ? The previous (planned) behaviour was that adding a new source or updating a source (as long as the mods share the the same name) would enable a mod update. I guess that would be no longer the case. Here, different versions of a mod would end up installed in parallel, nothing would be updated.
Maybe real updates (instead of parallel install) should be trigger only if the mod has no current children that cannot be update from any of the current sources.
Also, it seems to make the priority mechanism useless.
Am I getting this right ?
This is getting pretty complex. (I guess that's why big package managers out there prefer to mark packages as broken instead of rewriting paths and installing deps in parallel)
I'm currently trying to understand how wxlauncher autodetects some settings like the available screen resolutions, controllers and sound devices, and how to fill our settings menu with the presets. The settings profiles part should be straightforward.
EDIT : I think this is above my level in python for now. It needs SDL and openAl dependencies. I'm reading stuff about it, but don't expect useful code from me right now. It's around lines 1421 in /code/tabs/BasicSettingsPage.cpp in wxLauncher.
EDIT 2: what do you think about pygame ? It looks like it makes using SDL much simpler :
[(1366, 768), (1360, 768), (1024, 768), (800, 600), (640, 480)]
It seems that wxlauncher code for getting the same piece of information is much more complex.
Do you think we can add a dependency on pygame ?
EDIT3: apparently pygame is outdated, and using pySDL2 would be better. It can detect joysticks, screen modes and sound cards. Pretty much all we need for the settings screen.
EDIT: pySDL2 doesn't seem to be in ubuntu repositories yet, so I'm experimenting with pygame.
Also, neither pygame or pySDL are able to list sound devices. But Qt does : http://qt-project.org/doc/qt-4.8/qaudiodeviceinfo.html
After trying this, i still can't list sound devices. Phonon example code returns me an empty list of sound cards (https://github.com/PySide/Examples/blob/master/examples/phonon/capabilities.py
). I can't find a way to install QtMultimedia for PySide and Qt4. It's nowhere to be found in ubuntu repositories.
Anyway, I have attached my daily screenshot of the html template (not a lot of changes, except it's not broken any more in webkit based browsers, and that it should look better on wide screens).
EDIT (again) : I finally got fs2mod-py to parse fs2_open.ini, currently only the graphics part.
The rest will be easier. I'll need your help to integrate it with the rest of the code !
[attachment deleted by an evil time traveler]