Is there a documentation about packaging archives for DIM ?
Hello,
I ask because I'm writting a Bash script to be able to create such archives and I want to avoid various pitfalls that could lead to problems for people using the archives I'm creating.
I know products are sold on Daz Store to take care of it, but most are for Windows and I don't see myself using them enough to justify buying them.
Does someone know if there is documentation somewhere about the requirement of an archive packaged to allow DIM to install what's inside it ? Or a list of the special characters that must to be escaped in Manifest.dsx (like '&' replaced by '&'), ?
I opened a couple of them from my library and they seem to be standard zip archives, with a simple structure:
- A Content directory with the various files needed by a product to work in Daz (including the metadata stored in the file in /Runtime/Support)
- A Manifest.dsx file
- A Supplement.dsx
Is that the case or is there some hidden requirements somewhere (to use a similar example: epub files are zip archives but with a special twist: their first file must to be named mimetype must to be uncompressed) I may have missed?
Comments
http://docs.daz3d.com/doku.php/public/software/install_manager/referenceguide/tech_articles/start
@Elor
I have a Python module to do this you might be interested in - https://github.com/Omniflux/gendazpack
Thank you
Hello,
It looks interesting, but I don't know how to use Python. While I learned a bit of Python a couple of years ago, I never used it and have since forgotten what I learned back then.
I tried to find a video about using Poetry but I have mostly found videos about using it while creating a project, not using it to launch someonelse's project.
If you have one that you find good, I'm all ears :)
Assuming you have a recent version of Python installed, which is likely if you are writing for Bash, you can try
pip install gendazpack
The Manifest is standard XML. There are a number of characters that need to be escaped depending on their location. Lookup XML escaping rules for details. It's best to use a library to do this, although I'm not sure which can be called from a shell script.
Look at this freeware:
https://sharecg.com/v/88851/related/10/Software-and-Tools/Install-Manager-Package-Maker-Version-2
It creates files that can be installed with DIM.
I have Python 3.13, installed with Homebrew afair but didn't think a pip package was available. But now (after installing pip from homebrew because apparently it was necessary) I have gendazpack installed Thank you!
As for what can be launched from a shell script ? I think anything as long as it has a CLI.
Apparently, there is mainly 5 characters that may appear in the name of a product that need to be escaped (other caracthers have to be from what I read, but I don't think I'm supposed to see them in the name of a product) and I have already a function based on Bash Parameters expansion to take care of escaping characters: I'll adjust it and see how it goes, comparing the result of your program and from my script to see if I missed something.
I forgot about it, thank you! I'll keep it in mind but I prefer to work on my Mac.
Hello,
I finished the first version of my Shell script, corrected a bug that made DIM a bit angry (a missing " in Supplement.dsx ) and now as far as I can see in its log, DIM seems happy to install the package I created.
So, the main question: if DIM doesn't raise any error during the installation process and if everything is where it should be in Daz Studio (either in the Content Library or in the Smart Library), loading without raising any visible error (I didn't check the log yet), does it mean the packages produced are ready to be shared (when the licence of the packaged products allows it of course) without any risk for someonelse's computer ? Or is there some traps somewhere I may have missed ?
A secondary question: are some people willing to test one of the produced package once I set the finished touch to the documentation (to give the proper attribution to the person who was nice enough to share the original model under a CC-BY licence, which require attribution) ?