Uploading DJGPP files
|Author: ||DJ Delorie|
|Created: ||Thu Feb 18 15:21:31 1999|
|Updated: ||Thu Apr 27 09:29:09 2000|
How to properly package up your software and send it to the right
place so that it can be part of the official DJGPP FTP mirroring
OK, this document is going to contain a number of rules and
suggestions that will make my life easier. After all, I'm the one
you'll be sending these files to (email@example.com). So, read on and
follow as many rules as you can.
These instructions are ONLY for DJGPP files!
Check your system and the files you're packaging for viruses with a
recent virus scanner. I do this too, but don't rely on me!
Send stuff to ftp://ftp.delorie.com/incoming/
Please use zip, not tar/gz.
Please make sure the file you upload uses lower case letters.
Please make sure the *contents* of your file (the files within the
zip) are lower case. Some people (like me) unzip them under Unix.
Exception: If you use mixed-case on purpose, that's OK. I'm just
trying to avoid zips that unintentionally have nothing but upper case.
The name of the zip you upload should be composed of your initials, a
few letters for the package name, and a version. For example, I use
"djdev202.zip" for "dj" (me), "dev" (the development kit), and "202"
(version 2.02). Exception: if you port a public package, like a GNU
package, that you didn't write, don't put your initials on it.
Example: bison is "bsn125b.zip". Also: if you have separate zips for
sources vs binaries, add "s" to the source zip and "b" to the binary
Your file names must be valid DOS 8.3 filenames.
The zip should be unzippable on a DOS 8.3 system. Exception: if your
sources require long file names (i.e. egcs), and you're uploading both
sources and binaries in separate zips, only the binary zips need be
8.3-clean. It would be nice if the files passed the "doschk" filter
(available in any FSF ftp archive) so that users not using Win95 can
safely unzip your zip. Exceptions for packages that are expected to
only work under Win95 with LFN=Y.
If you wrote the package yourself, your zip should unzip itself into a
subdirectory, preferably contrib/zipname (i.e. djfoo123 should unzip
into contrib/djfoo). In any case, expect users to just do "unzip
djfoo123.zip" from the main djgpp directory (c:/djgpp in most cases) -
you wouldn't want them to corrupt their installation, would you?
Ports of common apps, like gnu programs, should unpack themselves into
"normal" directories: programs and shell scripts into bin/, object
libraries into lib/, include files into include/, Info files into
info/, man pages into man/, etc.
If you installed your files into your own subdirectory, your includes
and libraries should normally be in your directory also, not installed
in the main DJGPP include/lib directories. Your documentation can
tell the user what to do to build with your stuff. Exception: if you
install your includes into a subdirectory under include, so that (for
example) <mystuff/foo.h> works, and you know the library won't
conflict with any others in the lib directory, you can install them
Man pages should be formatted. To produce formatted pages, download
and install the DJGPP port of Groff and run "groff -man" on every
unformatted man page.
Include a file called "README" in the top of your directory (like
contrib/djfoo/README) that says: What the package is, what it does,
how to build/install/use it, where the official and most up-to-date
version and/or web page is, and the email address of the maintainer.
If this is a ported GNU package, the DJGPP-specific README file should
go into gnu/PACKAGE-NAME directory, where PACKAGE-NAME is the name of
Please upload only the source if you at all can. I don't have to
check sources for viruses, and it saves a lot of disk space and
download times. Exceptions for common or hard to build applications.
No exceptions for toolkits please, as users have to be able to build
*anyway*, might as well build the toolkit too.
All zips must include manifest files - these are files like
manifest/djfoo123.mft and manifest/djfoo123.ver. The mft file
contains a list of files installed when you unzipped the zip, and can
be used to uninstall it (rm @manifest/djfoo123.mft). The ver file
contains a short (one line is best) description of the package,
including the full version number, like "DJ's Foo version 1.23".
It's a good idea to add DSM files to your zip file also (to be
installed as manifest/djfoo123.dsm), as we're moving toward making
those required for installation. The FTP sites have a dsm-spec.txt
you can refer to, or you can visit the Zippo home page at
Make sure you upload in binary format. Double check the file size
after you send it to me.
After you upload, send email to me (firstname.lastname@example.org) telling me that
it's there and where on the servers it should be put (v2apps, v2tk,
etc) and what to put in 00_index.txt.
I prefer that you wait until I've put it in place, and you've
downloaded and VERIFIED the file, before sending an announcement.
Send email to email@example.com announcing that it's in
Simtel. Note the location in the djgpp tree, like "v2tk/djfoo123.zip"
(I'll edit it if I put it elsewhere). The djgpp-announce list is
moderated, so I won't send it along until I've actually uploaded it.