In FreeDOS 1.0, most packages were in the same directory
structure of the same main FreeDOS directory. I do like
that approach. Note that it was not extreme in that: For
example Arachne, FBC, Emacs, GS, Lynx OpenXP, Pacific C,
Pegasus Mail and Setedit all had their own directories,
because they are big and have many files. Also for games
it was the case that they all had their own subdirectory
of a single GAMES directory. For the GAMES, there is no
need (imho) to have them reachable in PATH and for thee
other mentioned parts, they sometimes had batch files in
the common freedos BIN directory to start them, which is
also a nice idea.
For the general packaging, I like this structure, all in
subdirectories of the common freedos directory:
- appinfo (one file per package in there: I do NOT like
having a packages directory with many one-file subdirs)
- bin (one or few files per package, in PATH, and maybe
drivers, not in path, to keep device drivers separate)
- doc (one directory per package, yet very few files,
maybe could be NAME.txt w/o dir when onle one file?)
- help (one file per package per language, fixed naming
scheme, HTMLHELP in a subdirectory or separate place)
- nls (one file per package per language, if available,
often no file for English when that is a fallback in
the binary, although good for translations to have it)
- source (one directory per package, only installed for
those packages where I want to use sources, not all!)
- temp (could also be outside the freedos install tree)
Note that CPI / CPX and translations of ctmouse and the
fortune cookie file (etc.) have their own directories,
so for example BIN does not get clobbered by them. If
many apps had extra files, one could also consider a
tree with VAR name-of-package subdirectories, or SHARE
name-of-package, but it feels too un-DOS to do it often.
Note that this is just about FreeDOS and things which are
part of the distro. I keep my own files in many other dir
trees, e.g. one for arkade games, one for board games, or
one per programming language, with sources, compilers and
compiled projects as subdirectory trees. Other examples
are a directory for batch files, another non-FreeDOS BIN
directory, paint software, info software, audio things...
Even on a separate drive are self-made sources, collected
demos, books, texts, pictures, audio, Windows things...
So far for answering
> 'how people store their stuff on FreeDOS'.
for my case :-)
> 1. use %DOSDIR% for FreeDOS system, and other variables for other kind
> of software (eg. %APPSDIR%, %GAMESDIR%, etc). This will require to store
> an additional flag/marker somewhere to know what the package contains
> (system stuff, games, or what).
To me it is okay that games end up in dosdir / games, simply being
packaged like that. I can still move them by hand later, of course.
> 2. Make the packager scan the filelist of the packages, and make it
> understand that whenever a file begins with 'games/' it's meaning in
> fact %GAMESDIR%, whenever it sees 'apps/, it redirects to %APPSDIR%
It could do that, but that is not necessary either. On the distro
(and on the web) you can just keep the ZIP packages for each of
the categories in separate directories, while they can still unzip
into the same places. For example I would NOT want apps with few
files to unzip into separate diretories, I would just want their
binaries in BIN already many other FreeDOS binaries are :-) There
is no need to split them, they all come from one distro and will
all be free and (all?) open source :-)
> 2b. To avoid troubles in future, we could say that everything that
> starts with 'dosdir/' is redirected to %DOSDIR%, and anything else will
> be caught by the packager that will tell the user it got an unknown
> kind of package. This however will break FreeDOS 1.0 packages.
I would not do that. If you really are worried about splitting
packages, a very simple answer is to give the user for EACH of
them the chance to manually select another directory to install
to. This is what the user can do by manually unzipping anyway.
The installer could do for example the following: For each of
the CATEGORIES (as per directory where the zips are, NO MATTER
what is inside the zips directory structure wise) the user gets
asked if they should be installed into 1. the dosdir or 2. one
directory chosen by the user or whether 3. the user should get
asked for EACH package in which directory it should be. This
will make it easy to install BASE in dosdir, GAMES in games and
pack one directory for each package for, say, COMPILERS...
> Maybe there are other neat solutions that I am unaware of. Tell me.
Maybe I could give some inspiration :-)
> Another question: how are you storing your files on your FreeDOS
> systems? As far as I'm concerned, I usually store games in a separate
> directory, and other stuff under a 'programs' directory. But maybe other
> categories would be needed? (like 'devel', 'emulator', etc...?)
I like storing things from the FreeDOS distro in one place, although
having a games SUBdirectory there is useful, while storing all OTHER
stuff separately, which is probably what many other users do, too.
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
Freedos-user mailing list