Jump to content

Open Mod Manager


sedenion

Recommended Posts

1 hour ago, sedenion said:

 

You allready can do that, the "Context" paradigam, which is totaly independant config file and folder tree, was designed for that. You can even move what is called a "Location" from a context to another simply by moving the subfolder from one "Context" folder to another... The config files are all in XML, editable through text editor, this was designed to be really open and versatile... Please try the software, check out how that work, and tell me what do you need in addition...
 


As i said, you already can do that, except for some global parameters saved in %APPDATA%, which are the options you can see in the menu "Edit > Manager options"... Tell me if you really need these options to be "portable"... We may imagine transfert some of theses options to the Context config...

 

 

Thanks again for the detailed feedback and for the suggestions.

That sounds good to me, so no need to waste your energy for a portable mode 🙂

 

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

And here it is, the 0.9.6 Pre-Release.

This is a pre-release because I made a LOT of changes and correction in code, and it may emerge some new bugs I does not have spotted.

Download installer here : https://github.com/sedenion/OpenModMan/releases/tag/0.9.6

As I let know in the teaser, the new Network repository feature is here and operationnal. The repository creators can use the Repository Editor (Tools menu) to create the Repository definition (xml) file to host in theire web server.

The repository file must be served by a web server either in HTTP or HTTPS.

In the Reopository editor, you will spot the parameter "Download path", this is the relative path (folder) from the Repository "base address" where the software will search for files for download. For example, you want to create a repository nammed "DCS" in your web server:

- Let assume you have a web server at th adress http://www.example.org
- You create a Repository with the default Download path "files/" and you save your repository file as "DCS.xml"
- You upload this file where you want in your server, for example, in the "mods" subfolder, so the xml file will be available on your server at the adress: http://www.example.org/mods/DCS.xml

In this case, you must upload packages (Mods) files in a "files" subfolder within the "mods" subfolder, so a package will be available for download at the adress: http://www.example.org/mods/files/My_Package.omp

Then you now have to give the right informations to people so they can configure your Repository in the software, according informations above, the coordinates of your repository will be: 
Base Address : http://www.example.org/mods
Name : DCS

Remind that URL are case sensitives... 


Edited by sedenion
layout
  • Like 1
Link to comment
Share on other sites

One word about dependencies...

 

You probably seen (but not tested) that Open Mod Manager support dependency mechanism for the packages. This mechanism equally work for downloads. This mean that, if a package to be downloaded have some declared dependencies, the software will seek (recursively) within all remotes packages (of the current target Location) for dependency packages to download and will automatically add it to download stack.

 

This mechanism allow repository creators (and packages creators) to create "dummy packages" that does not embed nor install anything but have only a list of dependencies. By requesting to download such package, the software will automatically download all dependencies packages (this will work for installation too). This can be used for example for people who want to provide a single package easy to spot, to download, name it "The Big Package Compilation Of My Squadron" that will download all packages defined as dependecies at once.

 

How to define dependencies ? You have to create a package (either empty or not) and adding dependencies, checking the "Has dependencies" checkbox. The dependencies values are other package's "identity". You can read the "Identity" of a package in the package details dialog (right click on package, View details). This is simply the raw package filename without the file extension. For example, suppose a package filename My_super_Package_v2.3.zip, its Identity will be My_super_Package_v2.3 this is as simple as that... Notice that since version string is part of the filename, the identity of a package depend on its version (in cas its version is defined)...  Notice also that all is case sensitive.

  • Like 1
Link to comment
Share on other sites

Thanks for the work on repositories !
I'll have a look.

Zip - VEAF :pilotfly:

 

If you want to learn, talk and fly with french-speaking friends, the Virtual European Air Force is here for you ! Meet us on our Discord and our forum

If you're a mission creator, you may want to check the VEAF Mission Creation Tools (and its GitHub repository) a set of open-source scripts and tools that make creating a dynamic mission a breeze !

Link to comment
Share on other sites

I understand that I can make "overlapping" packages.

 

Is there a way to make the opposite, packages which are designated as being mutually exclusive?

 

For example, if I had a number of background images for the main menu, it would make no sense to have OvGME put one BG into place, and then replace the first BG with the second, and the second with the third, etc.

 

What would make sense would be to have all these backgrounds grouped together so that only one can be implemented at a time.

 

This is just an example; not something I have, but I do have a bunch of VRScene setups: Main menu hangar

When you hit the wrong button on take-off

hwl7xqL.gif

System Specs.

Spoiler
System board: MSI X670E ACE Memory: 64GB DDR5-6000 G.Skill Ripjaw System disk: Crucial P5 M.2 2TB
CPU: AMD Ryzen 7 7800X3D PSU: Corsair HX1200 PSU Monitor: ASUS MG279Q, 27"
CPU cooling: Noctua NH-D15S Graphics card: MSI RTX 3090Ti SuprimX VR: Oculus Rift CV1
 
Link to comment
Share on other sites

6 minutes ago, Captain Orso said:

I understand that I can make "overlapping" packages.


As many as you want, but this is not the main purpose of dependency mechanism (if it was what you though about)

 

14 minutes ago, Captain Orso said:

Is there a way to make the opposite, packages which are designated as being mutually exclusive?

 

For example, if I had a number of background images for the main menu, it would make no sense to have OvGME put one BG into place, and then replace the first BG with the second, and the second with the third, etc.

 

Nop, no exclusion mechanism implemented at this stage. The user is responsible of uninstalling irrelevant or overlapping packages as he want/should. He is however warned that a package is overlapped/overwritten by another. In your example above, we assume three mods that overwrite the same file (the background image file), then, the user is responsible to choose what mod he want to be finally enabled... He could install all of them, overlapping the next over the previous, in order to finish with the one he want to be "active", but as you suggested, this would be a nonsense.

 

Link to comment
Share on other sites

2 hours ago, Habu_69 said:

Win 10 virus protection refuses download due to detected virus:

Trojan:Win32/FormBook.AVP!MTB

 

False positive?

 

It seem the problem come most from the installer software (NSIS), which apparently often produce false positive security alert ( https://nsis.sourceforge.io/NSIS_False_Positives )... For the binaries (of the software, not the installer) the 64-bit binary does not throw any security alert, the 32-bit binary throw a security alert by "MaxSecure"...

Here are VirusTotal results:


64-bit installer (which is actually compiled in 32-bit I think):
https://www.virustotal.com/gui/file/526960e9d28f9d4652480934c5635f1338f06c1b81d74fbd9286ce5ee66049bd/detection

64-bit binary:
https://www.virustotal.com/gui/file/f4d95adb87cd02d6d28f6780668c2608e165a258f48216adee37cbd63283697b/detection
 

32-bit installer:
https://www.virustotal.com/gui/file/fa9971f9bb5a5ae40151b6504f2309b7e8e749b330b14a28ce9809b8e5af2326/detection

32-bit binary:
https://www.virustotal.com/gui/file/073f87c0228beabdce2b7e4c88da71664787736abbe745e9826b36ba6f07328f/detection

I think I can say with pretty good confidence that this is a false positive. For this release I changed the installer's compression algorithm to LZMA (which give better ratio), maybe this is where the problem come from, I will test with other compressors when I have some time.


Edited by sedenion
  • Like 1
Link to comment
Share on other sites

Bitdefender has no issues, neither at download, nor when scanning for viruses.

  • Like 1

When you hit the wrong button on take-off

hwl7xqL.gif

System Specs.

Spoiler
System board: MSI X670E ACE Memory: 64GB DDR5-6000 G.Skill Ripjaw System disk: Crucial P5 M.2 2TB
CPU: AMD Ryzen 7 7800X3D PSU: Corsair HX1200 PSU Monitor: ASUS MG279Q, 27"
CPU cooling: Noctua NH-D15S Graphics card: MSI RTX 3090Ti SuprimX VR: Oculus Rift CV1
 
Link to comment
Share on other sites

56 minutes ago, sedenion said:

Ok, somes news about VirusTotal, it seam the NSIS setup that I created from Windows have strange IP tranfic. To be sure I recreated all installers from Linux. I will investigate this further.


Ok, I think I foud the source of the "strange" trafic detected by the VirusTotal sandbox. It appear to be in fact the link to fsf.org that lie in the license text which is displayed by the setup. I guess the sandbox emulated a click to the link, pointing to the FSF website which is hosted by Hurricane Electric LLC. On my side I don't have the exact same IP when I Nslookup fsf.org (I am in France, routing may be point to several IP depending request origin), but both VirusTotal "suspicious trafic" IP and FSF website points to Hurricane Electric LLC network. It appear extraordinary that both a "torjan" and the FSF.org website will be hosted by the same provider in the context of a setup file that hold a link to FSF.org... 

EDIT: New theory: the "suspicious" IP address 216.218.206.69 has a reverse DNS with shadowserver.org domain, which appear to be a kind of network security provider. I doupt any standard malware is hosted by such server... (well Windows IS a malicious software, so everything is possible). I guess this "malicious" trafic is some wierd ping reponse from IP scan attempt by VirusTotal to the fsf.org website, hosted by Electric LLC network, who probably has shadowserver.org as security network provider... maybe they work together, I don't know... anyway, the server scan-08.shadowserver.org this is obviously not a script kiddy or some crypto-hacker computer...

To be reasuring with everyone, if any "malware" lie in the installer I provide, this mean the malware is somewhere in my Windows system, which I WILL NOT TOLERATE AT ALL... This is why I spend such time and energy to verify everything... Then at this stage, after verifying almost everything, I am almost sure (95%) that all theses "virus" or "malware" alert are false positives.


Edited by sedenion
  • Like 1
Link to comment
Share on other sites

I confirm the current pre-release has numerous small GUI bugs... Context icon dispear if apply settings, Locations and Batches ordering not working properly... other I corrected and don't remember... 


Edited by sedenion
  • Like 1
Link to comment
Share on other sites

! ATTENTION ! 

 

Nothing really serious, but I made a mistake in the last releases that may induct some confusing situation in the future if I don't correct this right now. I made an error for Package and Backup specific file extensions.  The fix is already done and the new Installers are availables BUT, please follow these steps carefully before installing the new build:

  1. Uninstall all your packages for all Contexts and Locations
  2. Uninstall the previous version of Open Mod Manager
  3. Install the Open Mod Manager using the newest available installers (https://github.com/sedenion/OpenModMan/releases/tag/0.9.6)

If you created some packages with the specific .omp extension, rename them with the .ozp extension and all will be fine.

Sorry for the annoyment.


Edited by sedenion
  • Like 1
Link to comment
Share on other sites

I've created a location for my Saved Games\DCS.openbeta\ user folder.

I also created a few packages with the structure:

[livery_title] \ Liveries \ [plane_model] \ [livery_title] \ (asset files)


And I keep getting overlap warnings with a yellow X icon instead of a green checkmark if I try to install 2 liveries of the same plane model, but there is no overlap of actual asset files as far as I can tell. I'm assuming it may have to do with some of the shared path.

Overlap warning feels like it should only be if files are going to overwritten not just because they share a folder structure, but it doesn't appear that there are any files overwritten.

If it's flagging because they share a parent folder I guess the only way to resolve it would be to have a unique location for any parent folder in Saved Games\DCS.openbeta\ but that would be a very cumbersome setup.

edit: I also noticed that uninstalling the yellow X mod requires also uninstalling the green check mod.


Edited by nosebruise
  • Like 1
Link to comment
Share on other sites

8 hours ago, nosebruise said:

I've created a location for my Saved Games\DCS.openbeta\ user folder.

I also created a few packages with the structure:

[livery_title] \ Liveries \ [plane_model] \ [livery_title] \ (asset files)


And I keep getting overlap warnings with a yellow X icon instead of a green checkmark if I try to install 2 liveries of the same plane model, but there is no overlap of actual asset files as far as I can tell. I'm assuming it may have to do with some of the shared path.

Overlap warning feels like it should only be if files are going to overwritten not just because they share a folder structure, but it doesn't appear that there are any files overwritten.

If it's flagging because they share a parent folder I guess the only way to resolve it would be to have a unique location for any parent folder in Saved Games\DCS.openbeta\ but that would be a very cumbersome setup.

 

Indeed, I think your mods generate overlapping because they creates folders that does not exists in the destination. Such alert may appear as useless but the problem is not as trivial as we think:

 

A created folder (or file) at installation, should be deleted at uninstallation (in order to cleanup and restore destination initial state), and if several mods create the same folder, they mechanically "overlaps" because each of them have to delete the same folder at uninstallation. And if one is uninstalled, it will delete the path (and all files whithin) created by another and mechanically delete files of the other mod : caca-boudin. This is why "shared created folder" are actually flagged as overlapping, and invokes the uninstall sequence of all overlapping installed mods. This is to properly cleanup without damage the destination folder.

At this stage, to prevent this phenomenon you have no other alternative than previously creating the folder within the destination folder, so mods does not have to create it. But I guess this is not an option for you.

On my side, I have no easy way to prevent this except by simply ignoring folder overlapping, but in this case, mods may creates new folder within the destination that will never be deleted at uninstallation.

 

8 hours ago, nosebruise said:

edit: I also noticed that uninstalling the yellow X mod requires also uninstalling the green check mod.


precisely to restore overlapping data in the right sequence to restore destination at its initial state. In your case, this mean : deleting folder contents before deleting the parent folder. 

I will think about a less strict and restrictive overlapping control, allowing "shared folders", but this would obviously require to refactor a part of the install/uninstall process. This is not trivial.


Edited by sedenion
  • Like 1
Link to comment
Share on other sites

Ok thanks for the explanation, that makes a lot of sense.
 

Quote

At this stage, to prevent this phenomenon you have no other alternative than previously creating the folder within the destination folder, so mods does not have to create it. But I guess this is not an option for you.


It is definitely an option. I didn't realize that simply having manually created the [plane_model] folder in advance would fix my issue.

In that sense I don't think refactoring to accommodate should be a priority in any way, as that is a simple solution. But at the same time since a core principle in your approach of the project seems to be about flexibility, and people say may not know the folder structure of mods they download from a repository in advance to "make way" for it, I think it would be something to consider for a future update.

-- as a tangential sidenote and some high level feedback

Your software makes a lot of sense once you understand the principles and (unconventional) nomenclature, but it's not very obvious when you initially open it. There is a learning curve to it.

I want to set up a repository and share some mods ( DCS main install folder ) and liveries ( Saved Games folder ) with some friends, and potentially add some of my own Saved Games folders for things like Chucks Guides. I'm just getting these friends into DCS, which already has a lot of complexity so adding the additional complexity of communicating how to set up the mod manager creates more friction for them and increases information load contributing to risks of information overload and loss of interest.

What I want to do, in an attempt to reduce this overhead, is effectively give them a zip with my OpenModManager dcs structure, ie:
 

\Mods\DCSWorld\DCSworld.omc
\Mods\DCSWorld\Main Install\Main Install.oml
\Mods\DCSWorld\Main Install\Backup
\Mods\DCSWorld\Main Install\Library
\Mods\DCSWorld\Saved Games User Folder\Saved Games User Folder.oml
\Mods\DCSWorld\Saved Games User Folder\Backup
\Mods\DCSWorld\Saved Games User Folder\Library


I was going to keep the repository information in, but clear out the paths to the ( mod install endpoint ) locations in the xml files, so that all they would have to do is point to the correct install locations for their main folder and saved games folder locations and refresh the repository. ( IIRC there is an error box that complains that the path is invalid, but it would be nice to have a dialog box to input a new path in the case it's invalid, rather than having to go through the menus )

But it appears now I would also have to have them manually replicate the folder structure for the planes in order to install the liveries without running into overlap issues.

I want to point out that I appreciate the work you are putting into this and understand that, especially at this stage in development, I shouldn't expect a perfect UX, and what I'm attempting to do is accommodate for that when I send this to friends who may not be as tolerant as I am of UX friction.


Edited by nosebruise
  • Like 1
Link to comment
Share on other sites

1 hour ago, nosebruise said:

In that sense I don't think refactoring to accommodate should be a priority in any way

 

Too late 😅 Considering myself the various scenarios, I decided to limit overlapping detection to files only and implemented a stealth mechanism of created folder deletion with the cost of some more verification loops. I had to make some modifications but not that much.

 

1 hour ago, nosebruise said:

But at the same time since a core principle in your approach of the project seems to be about flexibility, and people say may not know the folder structure of mods they download from a repository in advance to "make way" for it, I think it would be something to consider for a future update.

 

That's it, this is why I guessed this was "not an option" for you to create the folder... 

 

2 hours ago, nosebruise said:

Your software makes a lot of sense once you understand the principles and (unconventional) nomenclature, but it's not very obvious when you initially open it. There is a learning curve to it.

 

I have to write the f*** manual... It is on the way, but I have hard time...
 

 

2 hours ago, nosebruise said:

I was going to keep the repository information in, but clear out the paths to the ( mod install endpoint ) locations in the xml files, so that all they would have to do is point to the correct install locations for their main folder and saved games folder locations and refresh the repository. ( IIRC there is an error box that complains that the path is invalid, but it would be nice to have a dialog box to input a new path in the case it's invalid, rather than having to go through the menus )

 

One of my early project was to allow to create some generic "game setup" mechanism that call a wizard with game specific instuction... Something like what you will do, but with more automatism and dialogs that guide user. This still in my mind, but never take time to implement it right now.

 

2 hours ago, nosebruise said:

But it appears now I would also have to have them manually replicate the folder structure for the planes in order to install the liveries without running into overlap issues.

 

Notice that overlapping are not formally an issue. The manager fully allow and handle it in a safe way. This simply throw a warning by default (warning can be disabled) and display an orange cross...

  • Like 1
Link to comment
Share on other sites

Hi,

 

You will find some manual here, I am writing it slowly...  https://github.com/sedenion/OpenModMan/wiki

Unfortunately, this is currently incomplete and very formal.  If somebody have time to do some tutorial beginners, I will be very happy to add it to this wiki.

If you have questions, subject you want to be reviewed in first, I will try to write it before...

  • Like 1
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...