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