> On Sep 5, 2022, at 12:03 AM, Paul Dufresne via Freedos-devel > <[email protected]> wrote: > > Is there a process that will take the files in SOURCE/(PKG)/ and make them a > SOURCES.ZIP file?
The answer to that is… Yes, no, sort-of, not really. > I explore a bit and saw that some packages are just source files (not > compressed)... and some packages have sources.zip. > So I begin to think that there is nothing special that produce SOURCES.ZIP > files... and so, that would means my source files should be > 8.3 compatible (for fdnpkg to accept them). While there are several ways of doing things, to see how we are currently packaging programs, the “exploring” you should look at the latest release media. Not packages from previous install media or other places like the online repository or “FreeDOS packages” provided by 3rd parties. > Using zip -k (yeah... I was using my GUI Zip archive... that was causing > incompatibility with fdnpkg... but install zip that I believe will be > compatible) that coerce > long file names to compatible DOS filenames and that check for conflicts with > truncated files... I could generate 8.3 ok files... but with very very > annoying and dangerous > efforts (any change risk to make the code not to compile I think). > > Remember... source code for DJGPP packages are source code used on Linux > (mostly)... so they were not designed with 8.3 filenames... and could even > contains some unicode sometimes.. I think. > > Also, some are very big like: > http://www.delorie.com/pub/djgpp/current/v2gnu/gcc1220s.zip > <http://www.delorie.com/pub/djgpp/current/v2gnu/gcc1220s.zip> > which is 116 Mb zipped. (For this particular case I proposed a separate > source package: https://gitlab.com/FreeDOS/devel/dj_gcc/-/issues/1 > <https://gitlab.com/FreeDOS/devel/dj_gcc/-/issues/1>) > > So my intention goes toward in most cases, to just include the zip files > dowloaded from DJGPP (renamed SOURCES.ZIP ... or not renamed... unsure about > that). > > This message is mostly a ... does it seems an appropriate decision? The FreeDOS GItLab Archive is where packages for the OS and Online Download/Update repository are staged. The RBE (Release build Environment) pulls each of those projects down, does some verification, minor processing and compresses them for inclusion in an OS release. The compression portion of that process has several actions it performs. It will compress all sources to preserve long file names and possible case-specific files. It will also check the remaining files in other directories to verify they are 8.3 compatible. If LFN files exist in those directories, the are compressed by section (top most sub-directory) into a embedded LFNFILES.ZIP archive. For several reasons, this is not a perfect solution. It is just a compromise that hopefully causes the fewest problems for end users. Eventually, there are a couple additional things that will probably be done to make LFNs in FreeDOS more user friendly. For example, the package could include some LFN related information in the metadata file. Like has LFN sources, LFN files, or possible needs LFN support to work at all. Requiring LFN to work at all is a bad idea for DOS applications. Additionally, future versions of FDIMPLES could uses such flags and alert the user when LFN support is recommended (and not being used) before a package is installed. When working with the FreeDOS GitLab Archive (whenever possible), all archives within a package should be extracted. The utilities used by the RBE and elsewhere will deal with LFNs and what/how things get compressed automatically. As for testing packages that get may be added to the FreeDOS GitLab Archive included, I have not got around to adding the functionality to the fdvcs.sh utility. Mostly, that is because I haven’t had the time or motivation. So, I keep using a much older separate tool that does things in a slightly different way than those in the RBE. But, the old tool is “close-enough” and is what gets used when sending things to the Online Download Repository. In the meantime, I’ve added the old package compression utility that I still use when making updates for the Repositories to the PDK (Package Development Kit) under the https://gitlab.com/FreeDOS/OS/pkgdevel/-/tree/main/tools/obsolete <https://gitlab.com/FreeDOS/OS/pkgdevel/-/tree/main/tools/obsolete> directory. *** DO NOT *** run it on your packages git (or any other VCS) working directory. It will strip out all of the VCS data during compression. Since filename collisions are almost guaranteed when things are stored in the root of a package, any files there are stripped out as well. It is easy to use and is for macOS and Linux. Simply copy your files to a new directory and run the tool with that path as a parameter. It excepts multiple paths and wildcards. So for example you have a dozen DGJPP packages you what to check, you could copy them and run “fdpkg.sh dj*” :-) Jerome
_______________________________________________ Freedos-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freedos-devel
