rzander / ruckzuck

software package manager for windows
https://ruckzuck.tools
Microsoft Public License
222 stars 20 forks source link

Creating new packages (software items) #136

Closed vertigo220 closed 1 year ago

vertigo220 commented 3 years ago

This is meant for the community as a whole, so hopefully a user with experience with this can help, as I'd rather not waste Roger's time with it.

I was going to try creating packages for some of the software I use in the hopes of expanding RuckZuck's library and making it more useful, but after looking into it a bit it appears it's probably a lot more involved than I thought. I imagined/hoped it would be as simple as providing a url with some variables, e.g. example.com/standardized_appname{version}.exe, and it would just be able to adapt to new updates that way, but it appears you not only have to provide the exact version in the detection script, but possibly in the URL and FileName, as well as the hash, AND the current version (Product Version), which of course could be anything. So does a separate one need to be created for every single version, and does a separate one have to be created for every old version (Product Version)?

rzander commented 3 years ago

As every vendor can handle package versions differently, it's not possible to find a command ruleset.

As a result, you have to create a separate package for every version... Maybe in 15years, when everything is running in a container without registry it becomes more simple... ;-)

vertigo220 commented 3 years ago

Another program I've been trying out is Ketarin, which uses an interesting approach to solve at least some of these issues. You give it a site and use a text search, with or without regex, to find the version number, etc, and assign it to a variable, then use the created variables to define the download URL and/or filename. Essentially, it allows for a once and done setup to find the newest version every time without having to manually update everything. It seems like combining that program with this one would lead to a very powerful and much more efficient manager. Granted, I'm still learning both, and so I'm not sure just how much it would help, but it seems clear it would reduce the workload a good bit. I'd recommend checking it out.

rzander commented 3 years ago

Look at this example: https://cdn.ruckzuck.tools/rest/v2/getsoftwares?shortname=Citrix%20Workspace It does parse the website for a download URL...

vertigo220 commented 3 years ago

Hard for me to make sense of that, but it looks like it's searching for a specific version, vs parsing the website for the current version then using that to identify and download it. My point, and maybe I'm misunderstanding how RuckZuck works here, is that it doesn't seem like a separate rule should be necessary for each version. The install script would be the same regardless of version, so it seems one rule should be able to be created that finds the latest version and, if it's newer than the installed version, downloads it and runs the installer. This is what Ketarin does, and from what I gather RuckZuck can't do it, otherwise it wouldn't be necessary to create a new package for each version. If that's correct, it seems it would make it a lot easier to maintain if such an ability were added, and if it's not correct, then I don't understand why it's necessary to make a new package each time.

amartin253 commented 1 year ago

Not sure if this is the right place to post this or if I should create a new issue but I am having trouble creating a new package. I am trying to add Logi Tune to the repo but whenever I attempt to upload I get the attached error and I am not sure why. It appears that everything is in place as it should be. Please let me know if I am overlooking something @rzander

Screen Shot 2022-10-26 at 11 38 38 PM
rzander commented 1 year ago

Your “Installation Script” is using the Parameter “/?”... which is definitely wrong and must be replaced with a parameter for a silent installation….