Hi,

On Wed, Sep 19, 2018 at 5:21 AM stecdose <stecd...@gmail.com> wrote:
>
> I don't know which is the best place for this message. As it is about
> development I stick to freedos-devel. Is it ok to also send to
> freedos-user, because in the end it will affect users when used. And
> maybe users have suggestions for easy usage ;)
> Or would it be better to wait until I have something to release and then
> put another message on freedos-user without the dev related stuff?

General discussion, even without working prototype, is probably still
okay for freedos-user. But of course having something concrete to
point to (and test) can be better, but don't procrastinate "forever"
(common pitfall!) just because everything isn't 100% perfect yet.

Personally, I think general discussion is okay here on freedos-devel
too, but some (very few) here get a bit grumpy with too many "useless"
posts. So try to minimize theoretical discussions that don't have
working code. (But practical software questions are probably okay.)

In other words, do whatever you want, and don't worry. Someone (not
me) might complain, but you are free to ignore them. Constructive
criticism is rare, but we don't have a lot of users or developers
either. You're not killing anyone with your text, so who really cares?
As long as it's DOS-related, it's probably cool.

(I'm no authority, so defer to them, but in general it's very lax around here.)

> I am in progress of making a floppy disk distribution of FreeDOS. I am
> not totally ready to publish it and more and more questions arise, this
> is why I write here, before doing all the work to the end and then
> realize it was the wrong way ;)

I mirrored my own floppy .img (MetaDOS) to iBiblio. I've made others
in the past. Mine was intentionally minimal to expand upon, not meant
to be full "BASE" or anything else but a starting point. Almost all
others (including previous ones of mine) are outdated, abandoned,
buggy, and don't have full sources. Hence they're hard to find,
unreliable, and not recommended by any of us directly. To be mirrored
to SourceForge or iBiblio (or most places, presumably also Github),
you need to be "open source" (OSI) or "Free/libre" Software (GPL, BSD,
etc), aka FOSS.

> Mainly I want encouragement or a "hey, this is not going to work like
> this!". The section "Desc. of Installer / Please comment" describes the
> installation process. I want you guys to comment on that. Do you have
> any suggestions on this procedure? The whole mail is spotted with
> questions and assumptions. I want answers and corrections ;)

Okay, I'll try.

> # why?
>
> I don't need FreeDOS on computers that have a CD-drive, for these I use
> more unix-like OSes (minix, linux, *bsd).

Well, a lot of modern computers don't have optical drives anymore
anyways. But CDs can be useful (esp. old DOS games), but I personally
rarely do that. (Most gamers prefer DOSBox, e.g. Pixelmusement/ADG.)

Oh, almost forgot, CD holds more (obviously), hence unofficial distros
like Mateusz's Svarog386:

* http://svarog386.sourceforge.net/

AFAIK, not all of it is "open source", but he didn't want to be
restricted to that (for practical reasons). But you still need to be
extremely careful about licensing (if not for your own sake, then for
your audience's sake).

> I use it on 2 single board
> computers, an old laptop that has no CD, no LAN. I have searched for
> floppy images and found a post on mailing list or a bug, which I can't
> find right now to link it here, that asks for floppy images. Someone
> (maybe Jim Hall?) answered that it is possible but due to lack of demand
> and man-power no one has made it.

A "full" floppy distro is not urgent, no, because most people can roll
their own. Besides, who wants to lug around dozens of floppies? Even
modern computers don't have floppy drives anymore and prefer bootable
USB. I personally do have a USB floppy drive but haven't used it much
lately. Honestly, few ever used my MetaDOS (or even older ones like
BARE_DOS), but I had hoped that those would provide some kind of help
for such floppy users. So it's not totally dire, there's at least
"some" images out there (that aren't totally illegal like bootleg
MS-DOS/Win9x floppies, ugh.)

> # What is it?
>
> It is *not* a full blown FreeDOS installation. It is a base-system+self
> written installer that fits on one single floppy disk.

Which is more reasonable to maintain, obviously.

> Installer has the
> ability to "install additional disks". This menu-entry will, if
> selected, wait for floppy change and then execute a .bat file on this
> disk. This makes it very easy for users to build their own custom
> additional disks.
> For example a file commander (like VC) in a zip file on a disk, can be
> copied and unpacked by this bat to disk.

Okay, but let me stop you right here: VC (presumably Volkov Commander)
is ancient. Maybe the last beta was "freeware", but there are many
better alternatives (that have sources), e.g. Doszip Commander or
old/classic DOS Navigator 1.51. Granted, you probably like it for
being small, but that alone isn't (necessarily) a perfect reason to
include it.

It's not wrong to use proprietary software, but it does add an extra
burden regarding licensing, which is always a pain. Sure, you can
probably "get away" with being very sloppy (and most people do/are),
but it doesn't help end users very much. A little extra care is good.
("An ounce of prevention is worth a pound of cure.") I know you're
aware of this, but it's truly something that can hamper any project,
and I don't want you to get accidentally caught up in any dumb worries
that aren't directly related to your personal goals. Software is
indeed meant to be used, but license woes can ruin any other good work
that you do. All it takes is one bad apple to spoil the whole bunch.
Please be careful.

> # Screenshots
> As my message was too big with screenshots, I have uploaded em here:
> https://raw.githubusercontent.com/spacerace/snippets/master/screenshots/dosinst/di02.png

That particular one won't display, has errors (according to Firefox ESR 52.7.1).

> These screenshots were taken using dosbox on linux.

BTW, they had a very minor refresh recently (0.74-2), preparing for
0.75 eventually.

> # Description of Installer / Please comment
>
> It is a menu based design, rather than the step-by-step design like
> MS-DOS installer uses. I wanted to have this for most flexibility and
> easy usage.
> As you can see on screenshots I have implemented it with these steps:
> * Setup Keyboard
> * Setup HDD (executes fdisk, asks for executing format C:, asks for sys C:)
> * Configure (Date, Time, DOS-Folder, xcdrom, ctmouse, himem, emm386)

1). Date/Time can probably be done with SNTP (or whatever, I haven't
used it lately). I know you said "no LAN", but with packet driver it
can be convenient. IIRC, mTCP and Mateusz's port of PicoTCP both
support it:    http://picosntp.sf.net/

2). XCDROM is ancient and replaced by UIDE.

3). HIMEM and EMM386 are ancient and replaced by HIMEMX and JEMM386.

4). CTMouse ... be sure to use latest 2.1b4 (unless you have a good
reason). I'm not the maintainer, but I still need to fix that package
one day. (It uses non-free tools, e.g. COM2EXE.COM, which is not
needed, a simple debug script can replace it).

> Due to "it was too complex and is not needed by me up to now" I have
> fixed every possible drive-selection for destination to C, for source to
> A. I have never needed something else, if you think else, please write back.

I haven't tried lately, but I did make a bootable USB (via RUFUS) and
used PLoP Boot Manager (floppy) on my old P4 machine. That made the
USB "read-only", but at least it let me boot USB (which holds more
files, obviously) on such an unsupported machine (no BIOS support for
USB). That made the boot drive "C:" instead of "A:" for normal
bootable floppy. So, in essence, I automatically determine at bootup
and "set BOOT=..." the appropriate drive letter ('a' or 'c' or
whatever). Then I just use "%BOOT%" instead of hardcoded drive letter.

> # Packages
> I have taken the base-packages (zips) and removed everything
> unneccessary in these, only leaving the bins in zip. These packages are
> on disk right now:

A lot of those will never be used except in rare cases by 0.01% of
people. So I personally wouldn't even include them. Sure, Jim (and
others) demand compatibility, which is fine, but if no one actually
needs or wants or uses it, why bother? Unless you're trying to be
"official" or something, it's not worth the effort.

> EXE2BIN
> RECOVER

For instance, just for example, these two, I think anybody who needs
them can find them already. Seriously, they are not very useful by
themselves. And there are others that are rarely used too (APPEND?).

> They makes 1.240k in total. cdrom driver is still missing on floppy (not
> worked on this yet).

UIDE.SYS is probably the only available driver for such optical drives
that includes sources. You may wish to try that (with SHSUCDX or
similar). But it's unmaintained, so don't email the author (please)!

> # size
>
> The installer's size right now is at ~30k (bin size), I use upx to
> compress it for floppy distribution, which makes a ~60%-sized binary. If
> upx causes any problems, I won't stick to it.
> Do you know about common problems with upx? For example something like
> "It does not work at all on a 286". As 286-486 are the main desired
> targets of this floppy it would be a pity, having a not-working installer...

I doubt many are still using 286s (whereas I know several still use
486s). I'm not against it, but it's somewhat impractical to demand 286
compatibility. In theory, we should be careful, but in practice it's
almost a lost cause. Again, I'm sympathetic, but it's only worth
worrying about "for fun" rather than an absolute mandate. 386/DPMI
(e.g. DJGPP) really is extremely popular and too good to ignore
(mostly).

UPX? Don't forget "--8086" since it will be 286 (actually, 186) "only"
otherwise. Being incompatible saves a very few bytes (eight?) in the
stub, which isn't worth saving (cluster size wastes that much
anyways). The other caveat is that LZMA isn't default for 16-bit, so
you'll have to explicitly use "--lzma". That is due to speed, not
size, concerns. But it won't be noticeable except on truly ancient
machines or if the .EXE is really huge (like various DJGPP-compiled
things). IIRC, "upx -V" itself (when LZMA-compressed) was very slow on
a 486. (Also, UPX'd DJGPP COFF stuff runs slower under NTVDM, but I
don't guess that matters for you.) Otherwise, don't worry.

> # the smallest unzip?
>
> The smallest unzip tool I could find is pkunzip. As this is not free, is
> there another, very small!, unzipper? Is there another compression
> method, that would give me better results that does not neet DPMI or is
> 300k in size - this wouldn't be a step forward. pkunzip comes in less
> than 30k.
> As DPMI is limited to half of the machines, this distribution is
> intended for, it is not an option.

DPMI can work on 286s, e.g. old Borland (Pascal?) tools. But yeah, 386
is more popular. No, PKUNZIP is not freeware, only shareware (last I
heard), thus probably not good enough for Github (but who knows, I
don't actively use that). Info-Zip has a 16-bit UNZIP.EXE, but it's
not smaller. I would still recommend Info-Zip, though, just to not
worry about licensing.

There's also others, of course, but I can't think of any obviously
superior tool, except maybe UNTAR (which also supports .gz):

* http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/util/unix/tar/

So UNTARDOS.EXE is 22 kb, but you can presumably UPX that to half
that. Granted, that's less DOS friendly, but it's still a good
alternative if you're creating your own compressed archives and only
need unpacking.

> # Tested
>
> I do not own any older (8086/88, 286, 386) machines, I am going to set
> up a few PCEM-machines...

Joris' old Retro emulator (Java) tried to mimic 8086, I think. Better
than nothing. But honestly it's rarely worth worrying about (except
"for fun", in theory). I'm no expert (ask Jim Leonard or Mike Brutman
or Mike Chambers), but there were only a few quirks worth worrying
about regarding a true 8086 versus a clone or successor. So if it
works on later machines, it's 99% guaranteed to work on 8086 (assuming
you don't do anything "bad", of course).

> # Disks
>
> I've never seen any 2.88MB floppy out in the wild, so I decided to use
> 1.44MB. 1.7MB formatted floppies are tricky to get an image on it with
> USB-floppies, if not impossible. Any suggestions or should i stick to
> 1.44MB disks for maximum compatiblity?

Stick to 1.44 MB unless forced otherwise. It's fairly common and
standard. I haven't seen anybody ask for 720 kb floppies, but in
theory that might be nice. (Someone said emulators support that too,
but I never wasted time finding out.)

> # what license for installer?
>
> What license do you guys suggest? I want to keep away people trying to
> make money, but I don't want any further restrictions.

Is that really a worry? They might just do it anyways, regardless of
license, esp. if their host country allows such. Or maybe they can get
away with it, who knows. So it's not worth worrying, IMO. Maybe just
keep it simple (GPLv2+)? But don't let me imply that you can't do
otherwise. I don't really understand your goals (or worries) here.
Maybe I'm too naive.

> Also I want to keep the right to do a fork with a new license in a few
> years. For example, if someone wants to buy this software to legally
> remove copyright messages, I want to be able to offer under a new,
> custom, license, assuming that I am still the only rights-holder.

You should be able to dual license at a later date, yes, if you're the
copyright owner.

> # where is this leading to?
>
> I want to make such a distribtion for FD1.2, also for upcoming releases.
> I want to make additional disks (like explained above) (dev-tools,
> disk-utils, networking, games, ...   splitted it categories like these)

Good luck! You'll need it!

> # Hosting
>
> As I assume, this is not going to be something official and supported I
> think I will release it on my github account along with some
> documentation to it.
> Any other suggestions?

Make sure to learn exactly what Github allows to be legally uploaded
there. If they forbid "shareware", then you have to be careful about
that. There's a lot of old shareware lying around, and some people are
very sloppy about licensing. Just play it safe. I know I'm repeating
myself, but it's just not worth wasting all your time and having
everything thrown out due to one mistake. Maybe you don't want or care
about mirrors, but software that isn't mirrored is often lost to the
ages. I hate software that isn't well preserved.

> # toolchain
> As I've read on the mailing list, somewhere in past people were
> complaining about non-free tools. I am using Borland C++ 3.1 for a few
> reasons:
>
> * I do the development on an 486 Laptop with 8MB RAM and 80x25
> Text/640*480 GFX, it has to work on this old machine.

You can always develop on one toolset but remain compatible with
others. So try to keep most of your code "standard" or quasi-portable
(or at least isolate non-portable stuff to separate
modules/units/files).

> * There is no text mode IDE that has syntax highlighting, online help
> (go to a keyword, press CTRL-F1, you're directly at it's documentation)
> and debugger, that works as good as BCPP3.

FreePascal (FP.EXE) works fairly well. I know that's not C/C++, but still ....
Yes, you mention RHIDE (below). That was based upon SETEDIT.
DJGPP's TexInfo ("info libc a printf") is good for a quick fix. Same
with GNU Emacs (or JED or FED or ...).

Debugger? If not RHIDE, you'll have to use standalone GDB. (Although
FP.EXE "usually", but not always, has GDB built-in as well.)

> * For me it's free as I own a legal copy and didn't have to pay for it.
> If you need, mail me off list. There are several places on the net
> sharing this software, I can point to.

DJGPP is better. There are many other good free development tools
(e.g. FBC or FPC or even SmallerC). If you direly need 16-bit,
collaborate with the GCC-IA16 developers. Or OpenWatcom, obviously.
(Even SmallerC's 16-bit memory model support still needs 386+.)

> I really don't care about using non-free tools to build free software,
> as long as people can get hands on it without much effort. It is not a
> religious question for me and please, I don't want to discuss that.

The problem is moreso proprietary code that can't be patched,
enhanced, optimized, etc. without a proprietary toolset. If you can't
even rebuild it, then it's not worth trying to fix or improve it
(almost). Again, preferring BC++ isn't wrong, but supporting other
compilers in tandem makes things much less dire. Try not to rely
exclusively on one specific compiler. For example, if code requires a
DOS-specific compiler (for ancient, pre-standard C++) that isn't
freely available, most people won't even try to debug it. Honestly,
there's just too many dialects, non-standard languages, OS- (or
cpu-)specific code, etc. It's one big mess. Standards and portability
are good things, even if slightly more work in the long run.

(TC 2.01 is freeware but can't be redistributed. It's also slightly
buggy. TC++ 1.01 used to be freeware but is only available as demo
download, also can't be redistributed.)

Seriously, having old MASM- (or TASM-) specific code makes things
*very* hard to rebuild, modify, fix, etc. HLLs should be easier, in
theory, but never are, and it's very annoying. Please be careful. It's
more important to think about source code compatibility than what
specific toolset you prefer. You can still use whatever you want, but
being able to "also" build with "Free/libre" tools can be incredibly
useful.

> If some comminuty rules or license terms would make my software totally
> incompatible to FreeDOS I am willing to rethink and change to Watcom or
> bcc/dev86. Everything is written by myself, no windowing-libs like
> TurboVISION, it should be pretty straight forward to port to another
> compiler.

OpenWatcom is "OSI approved" but FSF (and pals) hate it. That
negatively impacts DOSEMU and its inclusion in various Linux distros
(even though 99% of Linux distros, e.g. Debian or Fedora themselves,
are considered "non-free" by FSF). Still, for the most part,
OpenWatcom is the best we've got. (Most of us haven't looked into
Digital Mars much lately, but it's Boost-licensed now, so who knows.)
Oh, there's also the unfinished GCC-IA16 toolset. I would consider
BCC/Dev86 to be (mostly) "too weak", but it's barely okay if you're
extremely diligent (to avoid its flaws). Even SmallerC (can rebuild
itself) is more functional and ANSI standards compliant than BCC/Dev86
nowadays.

> And yes, I know rhide, I dont like it. It's usage and look is similar to
> Borland's, but it is not Borland. Also djgpp is so fucking slow

Use a software cache (LBACACHE or UIDE) and/or RAM disk (SHSURDRV or
RDISK). That helps a ton, esp. for DJGPP.

> and binaries are too big for usage on a floppy disk distribution.

Use Strip and/or UPX. Check the map file and avoid bloated functions
you don't need. (printf has gotten much worse in recent years.)
Maybe?? you can use old classic 2.03p2 if you don't need the bloated
symlink support.

> Also djgpp's binaries are limited to 32bit machines, not very dos-like and
> same problem as with DPMI.

386 compatibility is universal, it's rare to not have one available. I
think it's a red herring to imply that DJGPP wasn't insanely
successful. However, I'm still also heavily sympathetic to 8086 (which
turned 40 this year!), even in code (try FPC's ppcross8086!), but it's
often hard to make things work in such limitations (unless starting
from scratch).

DJGPP and DPMI have been around for (almost) 30 years! Even though
DPMI sometimes was implemented for 286s, it was the 386 where it had
most popularity. Remember that Doom (Watcom/386) and Quake (DJGPP!)
were both "extended", and that's 1993 and 1996, respectively!

> PS: I thought about writing a quick mail about the installer, but this
> message has taken 2 hours and I still have unwritten things on my mind,
> but these later.
>
> I hope for response.

Sorry if my answers were somewhat vague. I hope you continue to enjoy
your hobby and discussion here. Keep hope alive, there's always more
to do!


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

Reply via email to