saramibreak / DiscImageCreator

This is the disc (CD, GD, DVD, HD-DVD, BD, GC/Wii, XBOX, XBOX 360) and disk (Floppy, MO, USB etc) image creation tool
http://forum.redump.org/topic/10483/discimagecreator/
Apache License 2.0
530 stars 45 forks source link

Better packaging of the Linux version. #134

Closed maxz closed 1 year ago

maxz commented 2 years ago

Is your feature request related to a problem? Please describe. There are two minor changes to the packaging process which would make the experience of updating to a new DIC version more pleasant: Including a version number in the archive name like the Windows version already has it and marking executables in the tar archive as executable.

Also two more intrusive (non backward compatible) changes: Changing the structure of the archive so that it does extract everything into a DiscImageCreator directory instead of the current directory, as is proper archive etiquette and changing the names of the executables.

I already checked the files in the repository so that I could submit a pull request, but your deployment code does not seem to be included.

Describe the solution you'd like After building the new version of the binaries and before tarring them, you should set their executable bit for all executables, e.g. with chmod a+x *.out. This will be preserved by the tar archive.

Add the current version number to the .tar.gz archive's name as you already do with the Windows version's .zip, so that the filename would look e.g. like DiscImageCreator_20220606_linux.tar.gz. This would make storing old versions easier since I would not have to modify the file names myself anymore.

Ensure that the files are not untared into the current directory but into a fitting structure. This is proper archive etiquette. So say your build directory is DiscImageCreator and you are currently in it, you could use tar -czf ../DiscImageCreator.tar.gz ../DiscImageCreator to properly pack it. When someone then unpacks the archive, it will create (or use) the DiscImageCreator directory and place all the files in there.

An additional bonus to make the binaries a bit more idiomatic would be to drop the .out extension, so to just call them DiscImageCreator_linux, EccEdc_linuxand DVDAuth_linux or even better: DiscImageCreator, EccEdcand DVDAuth.

It would be more idiomatic yet to have lower case names with components separated by hyphens, e.g. disc-image-creator, ecc-edcand dvd-auth, but that might go too far in this case and having a name like DiscImageCreator would already be an improvement over the current situation.

Describe alternatives you've considered Alternatively I could obviously just keep doing these things myself.

saramibreak commented 2 years ago

with chmod a+x *.out. This will be preserved by the tar archive.

When someone then unpacks the archive, it will create (or use) the DiscImageCreator directory and place all the files in there.

I tried it on #139.

maxz commented 2 years ago

Nice. I just took a look at the test archive linked in that issue and you implemented those two parts exactly as I had intended. It works great.

So the other two parts left to make it perfect would be the version number in the archive name and the names of the executables. If you could also change those things and add everything to your permanent deployment process, it would be golden. The version number in the archive name would be really, really helpful. The changed executables names would be more of a cherry on top, but not strictly necessary.

maxz commented 2 years ago

Great packaging changes so far. Thanks. The release 20220707 covers everything but the renamed executables.

Are you intending to still change those or would you rather keep them as they currently are? If you intend to change them but are stuck somewhere in the process, do you need any help?

maxz commented 1 year ago

I guess you want to keep the current names since you did not comment any further. Rather than keeping the issue open indefinitely, I'm closing it now.