ANNOUNCE: DJGPP port of Lynx 2.9.0dev.5 uploaded.

Skip to first unread message

Juan Manuel Guerrero ( [via]

Mar 24, 2020, 3:07:16 PM3/24/20
This is a port of Lynx 2.9.0dev.5 to MSDOS/DJGPP.

Lynx is a fully-featured World Wide Web (WWW) client for users running
cursor-addressable, character-cell display devices such as vt100 terminals
and vt100 emulators running on character-cell display. It will display
Hypertext Markup Language (HTML) documents containing links to files on the
local system, as well as files on remote systems running http, gopher, ftp,
wais, nntp, finger, or cso/ph/qi servers, and services accessible via logins
to telnet, tn3270 or rlogin accounts.

DJGPP specific changes.
This port is based on the current develop code of lynx (aka lynx2.9.0dev.5)
available as:

The code has been adjusted to detect at runtime if LFN support is available
or not. If LFN support is available then the original posix style file
names will be used else DOS compatible ones will be used.

The port will use cp850 as default code page instead of using iso-8859-1 as
it is in the current code. It is clear that having iso-8859-1 on plain DOS
as character set is useless as soon as spanish, german or other non-english
texts shall be displayed. You can always select another character set by
either setting the corresponding environment variable or by editing lynx.cfg

The current version of lynx requires that the HOME environment variable is
set to a writable directory or it will refuse to start. To alleviate this
situation, if HOME is not set, the current directory will be used instead
by this port version.

The port has been configured using the configure script provided by the
source package. This means that neither old DJGPP specific scripts nor
makefiles distributed by the package have been used. A lot of the porting
work has been invested in the DJGPP specific configuration scripts.

This port has been configured to be compiled with BZIP2, ZIP and PDCURSES
support. This means that if you want to recompile the preconfigured sources
you must have installed the following ports:

The port has been configured and build without NLS support enabled.
To enable this feature, the latest ports of libiconv and gettext must be
If you prefer NLS, then reconfigure the sources passing the nls flag to
the config.bat file.

The port has been configured with IDN support. Having IDN support requires
installing the iconv port. The following ports have been used:
No other versions have been tested. Linking with libidn always requires
also linking with libiconv to provide the requires character set recoding

The port has been configured with OPENSSL support. OpenSSL support requires
installing the WATT-32 port. The following ports have been used:
No other versions have been tested. To be able to use this program compiled
with OpenSSL and WATT-32 a noise source must be installed. A noise source
can be obtained as:
If for some reason you decide to reconfigure the source package, then you
will have to set the WATT_ROOT environment variable to point to the
directory where the headers and the library reside. This is:
set WATT_ROOT=/dev/env/DJDIR/net/watt

To be able to run the program, configuration files are expected to be found
at their canonical place. This is the /dev/env/DJDIR/etc directory. The
configuration files lynx.cfg and lynx.css are stored in the /etc directory
and reflect, to certain extent, the conditions during the configuration and
compilation process of this port. You may need to adjust the entries to
fit your requiriments. If lynx.cfg and lynx.css are not found at their
canonical place then the program will try to load them from the installation
directory of lynx. To run the program, a working version of wattcp.cfg is
required. This file is __NOT__ distributed with this port. That file will
reflect your network environment and hardware. It is the user's job write
one that matches his environment. As a starting point you can use the one
distributed with the WATT-32 port. Please note that the location of
wattcp.cfg must be specified by setting the WATTCP.CFG environment variable.
This can be done either in the environment, in autoexec.bat or in djgpp.env.
If the file cannot be found at any of the canonical places the program will
try to load it from the installation directory of lynx.

To be able to run the program, a DOS packet driver (PKTDRVR) is required.
This may be obtained from the card manufacturer or from one of the archives
of packet drivers (such as
Even when only browsing local files, a NULLPKT packet driver is required like The zip file can be downloaded as:

The lynx executable itself handles http:, https:, ftp:, file:, news:, nntp:
and gopher: protocols. You will need external programs if you want to access
telnet:, tn3270:, or mailto: URLs. In this case a port of kermit may be

Please note that lynx does _NOT_ support javascript at all. So nothing will
work that requires this feature. If you need this, look for a different
text web browser.

It is important to realize that this port is a _PURE_ DOS port. If for some
reason you want to use lynx under Windows, you should download a windows
port of lynx.

If you decide to use this port as stand alone program then you can set the
following environment variables to point to the required configuration
LYNX_CFG Set to the full path and filename for lynx.cfg
LYNX_LSS Set to the full path and filename for lynx.lss
WATTCP.CFG Set to the full path for the WATTCP.CFG directory
SSL_CERT_FILE Set to the full path and filename for your file of
trusted certificates
As a last resort, if the above environment variables are not set, the
program will try to load those files from its installation directory.
There is also a batch file stored in the /share/lynx_doc/samples directory
that shows how to run lynx as a stand alone application.

The DJGPP port now checks the OS version it is running on. If it is equal
or less than MSDOS 6.22 the double quotes around the file name passed to will be removed. If this is not done, refuses to start.
For OS like Win95 and above this is not necessary. is the editor
used by lynx at last resort. The program's behaviour is not changed if an
editor different from is selected in lynx.cfg.

The DJGPP port now checks if LFN support is available. If available then
files with a leading dot are allowed/supported in case that this has been
allowed by setting NO_DOT_FILES to FALSE in lynx.cfg. In all previous
versions, the setting of this value had absolute no influence in program's
behavior if compiled with DJGPP.

When connecting to a site via https, lynx will require that a file of
trusted certificates is available. It is your's responsability to create
such a file and the port will _NEVER_ provide one. This .PEM file is
created using openssl tools. Read the openssl documentation. A working
linux installation provides always one. It may be found by the name
"ca-bundle.pem" or similar. In the end it must be a file in PEM format.
Store it where you like and point to it by setting the corresponding lynx
environment variable like this:
set SSL_CERT_FILE=/dev/env/DJDIR/share/ssl/certs/ca-bundle.pem
Of course the value propossed is arbitrary and reflects the way I do it
for my own installation of lynx. A starting point for reading about how
to create your own PEM files is:
It describes how to create one using the trusted certificates provide by
the microsoft IE.

I have tested this port by trying to access all sites that are listed in:
and I have experienced no issues. I have also accessed some german and
spanish sites to check if the special native characters are correctly
displayed and I have found no issues. I have also accessed
to check if the ftp support works well and if the cvs repository can be
accessed via cvsweb interface and everthing works flawlessly. Of course,
the mail archives can also be accessed without issues.

Please note that I am not a lynx user. I have ported it as a real world
test for the OpenSSL and WATT-32 ports.

Only to make this point clear, if you want to use lynx as a stand alone
program without having to care about environment variables, copy lynx.exe,
lynx.cfg and lynx.lss into the same directory and it will work. When
copying the .PEM file it must be renamed to "cert.pem". This is mandatory
or it will not be found.

As usual, all djgpp specific files (diffs, README files, etc.) are stored
in the /djgpp directory. The sources have been configured to be build in
the "_build" directory. If for some reason it does not work for you,
delete it contents and configure from scratch again.

Please read the docs very __CAREFULLY__ to become familiar with the product.

Here is an extract of the CHANGES file showing the user visible changes from
the last port (Lynx 2.9.0dev.4) to this one:


2020-02-27 (2.9.0dev.5)
* fix gcc9 warning about sprintf in HTFTP.c -TD
* workaround for MacOS clang wrapper c99 "-W" option, in configure script -TD
* use curses_exit() from ncurses 6.2 for leak-checking -TD
* amend workaround in 2.8.6dev.19 for "-notitle" option, fixing an off-by-one
display (report by Keith Bowes) -TD
* add/adapt changes from Keith Bowes' github:
* updated eo.po
* add "-update_term_title" option
* add "-list_decoded" option to toggle feature of "-dump" option which decodes
URL-encoded links in the list of "References", from change made in
2.8.8dev.17, for Debian #398274 (prompted by patch by Hiltjo Posthuma) -TD
* modify HTAddXpand() to provide for the case when the command is a full
pathname with embedded blanks, etc., versus an expansion of an environment
variable containing parameters (report by Edward McGuire) -TD
* fix typos found with codespell -TD
* improved several configure macros, including a fix for clang
compiler-warnings, and library order when linking -TD
* remove a ruler in the user's guide that was added in 2.8.3dev.10 as a
conversion aid (report by Edward McGuire) -TD
* modify HTML DTD to allow <div> in <a> -KH
* add -socks5-proxy option (Steffen Nurpmeso)
* if --without-lss-file is used, the configured lss filename is empty and
should be ignored (report by Cory Krell) -TD
* extend table/limit in parsdate.y to 2200 (report by Ian Collier) -TD
* update eo.po, fr.po, nl.po from
* update config.guess (2019-12-21), config.sub (2019-09-11)


The port consists of the usual three packages that have been produced using
djdev205 (CVS repository code) and can be downloaded from
and mirrors as (time stamp 2020-03-21):

Lynx 2.9.0dev.5 binary, scripts and man format documentation:

Lynx 2.9.0dev.5 html format documentation and sample files:

Lynx 2.9.0dev.5 source:

Send Lynx specific bug reports to <>.
Send suggestions and bug reports concerning the DJGPP port to
comp.os.msdos.djgpp or <>.


Guerrero, Juan Manuel <>

Reply all
Reply to author
0 new messages