Hello,

On at 2024-11-25 15:13 -0500, Jerome Shidel via Freedos-devel wrote:
Hi,

On Nov 25, 2024, at 1:39 PM, E. C. Masloch via Freedos-devel <freedos-devel@lists.sourceforge.net <mailto:freedos-devel@lists.sourceforge.net>> wrote:

On at 2024-11-16 01:59 -0500, Jerome Shidel via Freedos-devel wrote:
Hi All,
As we are most likely approaching the release of FreeDOS 1.4 in the very near future, we are coming to the point where we will begin to look at the monthly Interim Test Release builds of the operating system as Release Candidates. At that point any large or complex changes will no longer be made until after the next OS release. T2412 may be the final Interim build and T2501 could very well be the first Release Candidate. Since T2411, there have only been a couple suggestions for changes. Mostly in regards to reducing the size of a couple packages. Eric and I updated several of those packages to save some space on the install media. Likewise, yesterday a I updated BWBasic to version 3.30 that dropped a couple days ago. Including, UPX compression of the binary which will cut its installed size roughly in half. Are there any general or package groups changes anyone would like to see made before we move from Interim Builds to Release Candidates?

I have two points to add:

1. It seems that lDebug is still not included in the interim builds. I checked the FullUSB [1] and BonusCD [2] images and didn't find an lDebug package in either. (Besides, I found that it was difficult to find the links for downloading the interim build. The freedos.org <http://freedos.org> website doesn't seem to point to them anywhere, so I had to look at the mailing list announcement [3] to find the links.) It would most likely go to the DEVEL section. FreeDOS Debug is included in BASE but I don't think lDebug should go there.

I certain this was simply an oversight. Possibly from all the the package, group and media shuffling. We have a version of lDebug in the FreeDOS GitLab Archive for it to be included. However, it was missing from the various lists of packages and the report generated by the RBE.

Therefore, I added it to the appropriate package list. It will be included on both the BonusCD and FullUSB media user the DEVEL group in the next Interim Test Build (T2412).

That's good news. Albeit, I didn't mean it necessarily should go onto the BonusCD. I just expected that it should *at least* be in FullUSB or BonusCD. If there's space on the LiveCD or LegacyCD instead, what about those?

It will be great when the RBE4 is ready and replaces the current version. Under the RBE3, it is very easy not notice an unintentionally excluded package. The RBE4 operates in a completely different manner. It would be very difficult for such an omission to slip through on an OS or Interim build. The RBE4 will even be capable of detecting an excluded available package. Most likely, I will have put up a warning message to the builder when that is going to happen. Unfortunately, that is something which just isn’t possible under the RBE3.

It is another one of those “features” that have motivated me to start working on the RBE4. That work is coming along nicely. But, it is a big long-term project and will be a while before it can replace the current RBE3.

I'm looking forward to it!

Relatedly, I am about to finish the next release, lDebug release 9 [4]. It will likely be done prior to the new year. It includes some bugfixes and a bunch of new Extensions for lDebug (ELDs). I just added a DCO7 (Debugger Common Options) flag to avoid a crash when loading the debugger as a device driver (in CONFIG.SYS or using a patched DEVLOAD) and specifying a flat binary file on the device command line. I'm considering to default enable the immediate assembler (inspired by D86) and the Heatshrink compression of help pages before the release. Further, this updates the lDOS boot32 loader included in instsect.com <http://instsect.com> to the FSIBOOT5 revision, the latest and greatest.

I think that T2501 will possibly be FreeDOS 1.4-RC1.

When RC1 is release, there will be a semi-freeze on packages. Basically, bug fix mode. All BASE and other packages critical to the OS will only be updated to fix bugs. There will be no more updates any large or complex packages. Updating, packages like FPC are very time consuming and easy to make mistakes.

Updating things like lDebug are easy to do and are not critical to the OS. So, I do not see an issue with provide a limited number of such updates to some packages after RC1.

But when RC2 is released (possibly T2502), a full freeze will go into effect. No more updates. Only important bug fixes to critical OS packages.

Understood.

2. I think that the UPX binaries shipped by FreeDOS are linked with the NRV compressor library, which is nonfree and closed source. This is obviously not desirable.

I am not saying you are wrong. Or, there is no problem. But, I would like to get some clarification.

The UPX site[5] states:

• free: UPX is distributed with full source code under the terms of the GNU General Public License v2+; either under the pure GPLv2+, or (at your option) under the GPLv+2 with special exceptions and restrictions granting the free usage for all binaries including commercial programs as stated in the UPX License Agreement

We do not build UPX from source. We use the official pre-compiled versions they provide on GitHub[6].

Also if I understand you correctly, you are referring to the UPX binaries themselves and not the binaries compressed with UPX.

Right, the depacker that UPX includes in binaries it has compressed is considered a type of linking the compressed program with UPX. There's a GNU GPL exception in the UPX license [7] for this that is applied to UPX, to allow usage without making the program to compress affected by UPX's copyleft.

About my concern, the *compression* part of UPX, this is what the "upx -V" command of the latest build on ibiblio.org [8] displays:

E:\>upx -V
upx 4.0.2
NRV data compression library 0.84
UCL data compression library 1.03
zlib data compression library 1.2.13.1-motley
LZMA SDK version 4.43
Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2023 Laszlo Molnar
Copyright (C) 2000-2023 John F. Reiser
Copyright (C) 2002-2023 Jens Medoch
Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
Copyright (C) 1999-2006 Igor Pavlov
UPX comes with ABSOLUTELY NO WARRANTY; for details type 'upx -L'.
E:\>

The page for NRV [9] is now very small, it just says:

> NRV data compression library
>
> Discontinued - superseded by our stunning LZO Professional Plus technology.

An older revision of this page [10] as linked by the english Wikipedia [11] is longer, but also does not list NRV as FLOSS in any way:

NRV generic data compression library
Not Really Vanished, the next-generation data compression library, is the 
flagship of our embedded data compression technology for small devices.
NRV introduces the paradigm of generic programming into the world of data 
compression. It does this by orthogonally decoupling concepts like memory, 
models, filters, coders, algorithms and implementations. Furthermore all 
details can be fine-tuned by using so-called policy classes.
NRV is written in C++ and consists of a huge number of template classes. For 
systems which lack a recent C++ compiler (like some embedded systems) it can 
get translated into ANSI C by a special compiler frontend.
If you are unfamiliar with this concept, you can view the generic decomposition 
as an extremely powerful preprocessor which preserves type safety and value 
semantics.
The latest version is still build 1.183, which runs very stable for quite some 
time. On the development side our focus has shifted to the LZO Professional 
technology since.

The license cell in the Wikipedia page's info box [11] lists the UPX license as "GPL with exception for compressed executables,[1] proprietary for compression algorithm in binary distributions[2]". The link "2" in this blurb goes to the "README.SRC" file in their repo [12], which reads in its foreword:

  The precompiled UPX versions are linked against the NRV compression
  library instead of the UCL library. Using the same compression algorithms,
  NRV achieves a better compression ratio. NRV is not publicly
  available, though, and probably never will be.

(The next paragraph after this contains some fluff related to NRV being closed source.)

Your link to the upx.github.io landing page [5] is indeed confusing on this matter, as it states "free: UPX is distributed with full source code under the terms of the GNU General Public License v2+". That about the "full source code" is in my opinion not true when the default builds ship with the closed source NRV.

Briefly, if the default builds use NRV, you want to have an UPX-UCL build (using the FLOSS UCL library for compression rather than the closed source NRV). Unfortunately I don't recall whether I have a DJGPP build environment on our server, so I cannot at this time provide builds like I do for a few programs [13].

I did want to bring up the UPX-NRV problem for a while however. Perhaps someone can provide UPX-UCL builds before the FreeDOS 1.4 release.

Regards,
ecm


[7]: https://upx.github.io/upx-license.html
[8]: https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/devel/upx/4.0.2/
[9]: http://www.oberhumer.com/products/nrv/
[10]: https://archive.ph/20120909151357/http://www.oberhumer.com/products/nrv/
[11]: https://en.wikipedia.org/wiki/UPX
[12]: https://github.com/upx/upx/blob/3757579ffc6fa8710b4b7a1055529fea9dcaf149/README.SRC
[13]: https://pushbx.org/ecm/web/#projects-subsection-otherbuilds


[5] https://upx.github.io/ <https://upx.github.io/>
[6] https://github.com/upx/upx/releases <https://github.com/upx/upx/releases>


[1]: https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/test/FDT2411-FullUSB.zip <https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/test/FDT2411-FullUSB.zip> [2]: https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/test/FDT2411-BonusCD.zip <https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/test/FDT2411-BonusCD.zip> [3]: https://sourceforge.net/p/freedos/mailman/message/58836419/ <https://sourceforge.net/p/freedos/mailman/message/58836419/> [4]: https://pushbx.org/ecm/doc/ldebug.htm#news-r9 <https://pushbx.org/ecm/doc/ldebug.htm#news-r9>



_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to