> 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

Reply via email to