diff options
Diffstat (limited to 'PACKAGE')
-rw-r--r-- | PACKAGE/debian/changelog | 71 | ||||
-rw-r--r-- | PACKAGE/debian/compat | 1 | ||||
-rw-r--r-- | PACKAGE/debian/control | 21 | ||||
-rw-r--r-- | PACKAGE/debian/copyright | 103 | ||||
-rw-r--r-- | PACKAGE/debian/doc-base | 10 | ||||
-rw-r--r-- | PACKAGE/debian/lynx-dev.lintian-overrides | 15 | ||||
-rw-r--r-- | PACKAGE/debian/menu | 2 | ||||
-rw-r--r-- | PACKAGE/debian/mime | 2 | ||||
-rw-r--r-- | PACKAGE/debian/postinst | 27 | ||||
-rw-r--r-- | PACKAGE/debian/prerm | 12 | ||||
-rwxr-xr-x | PACKAGE/debian/rules | 195 | ||||
-rw-r--r-- | PACKAGE/debian/source/format | 1 | ||||
-rw-r--r-- | PACKAGE/debian/watch | 4 | ||||
-rw-r--r-- | PACKAGE/lynx-curses.iss | 12 | ||||
-rw-r--r-- | PACKAGE/lynx-curssl.iss | 14 | ||||
-rw-r--r-- | PACKAGE/lynx-default.iss | 11 | ||||
-rw-r--r-- | PACKAGE/lynx-newssl.iss | 14 | ||||
-rw-r--r-- | PACKAGE/lynx-oldssl.iss | 14 | ||||
-rw-r--r-- | PACKAGE/lynx-slang.iss | 13 | ||||
-rw-r--r-- | PACKAGE/lynx.iss | 604 | ||||
-rw-r--r-- | PACKAGE/lynx.nsi | 241 | ||||
-rw-r--r-- | PACKAGE/lynx.spec | 137 | ||||
-rw-r--r-- | PACKAGE/version.iss | 9 |
23 files changed, 1533 insertions, 0 deletions
diff --git a/PACKAGE/debian/changelog b/PACKAGE/debian/changelog new file mode 100644 index 0000000..048e3cf --- /dev/null +++ b/PACKAGE/debian/changelog @@ -0,0 +1,71 @@ +lynx-dev (2.9.0) unstable; urgency=high + + * new release + + -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 14 Jan 2024 17:15:53 -0500 + +lynx-dev (2.8.8dev.16) unstable; urgency=high + + * changes for dev.16 + + -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 30 Apr 2013 04:32:34 -0400 + +lynx-dev (2.8.8dev.15) unstable; urgency=high + + * changes for dev.15 + + -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 08 Nov 2012 17:39:36 -0500 + +lynx-dev (2.8.8dev.14) unstable; urgency=high + + * fix regression in dev.13 + + -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 22 Aug 2012 06:22:28 -0400 + +lynx-dev (2.8.8dev.13) unstable; urgency=low + + * changes for dev.13 + + -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 07 Jul 2012 10:55:34 -0400 + +lynx-dev (2.8.8dev.12) unstable; urgency=low + + * changes for dev.12 + + -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 22 Feb 2012 20:23:20 -0500 + +lynx-dev (2.8.8dev.11) unstable; urgency=low + + * changes for dev.11 + + -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 15 Feb 2012 18:43:49 -0500 + +lynx-dev (2.8.8dev.10) unstable; urgency=low + + * changes for dev.10 + + -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 06 Oct 2011 18:19:01 -0400 + +lynx-dev (2.8.8dev.9) unstable; urgency=low + + * changes for dev.9 + + -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 27 Apr 2011 19:38:05 -0400 + +lynx-dev (2.8.8dev.8) unstable; urgency=low + + * changes for dev.8 + + -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 19 Dec 2010 18:49:04 -0500 + +lynx-dev (2.8.8dev.7) unstable; urgency=low + + * changes for dev.7 + + -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 01 Nov 2010 17:32:06 -0400 + +lynx-dev (2.8.8dev.6) unstable; urgency=low + + * add build-script for testing, adapted from Debian lynx-cur package. + + -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 18 Sep 2010 07:14:46 -0400 diff --git a/PACKAGE/debian/compat b/PACKAGE/debian/compat new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/PACKAGE/debian/compat @@ -0,0 +1 @@ +10 diff --git a/PACKAGE/debian/control b/PACKAGE/debian/control new file mode 100644 index 0000000..1875ece --- /dev/null +++ b/PACKAGE/debian/control @@ -0,0 +1,21 @@ +Source: lynx-dev +Section: web +Priority: optional +Maintainer: Thomas E. Dickey <dickey@invisible-island.net> +Homepage: https://invisible-island.net/lynx/ +Build-Depends: debhelper (>= 7), dpatch, po-debconf, libncursesw5-dev, zlib1g-dev, gettext, libgnutls-dev, sharutils, telnet, openssh-client, libbsd-dev, libidn11-dev +Standards-Version: 3.8.2 + +Package: lynx-dev +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Provides: www-browser, news-reader +Recommends: mime-support +Description: Text-mode WWW Browser with NLS support (development version) + Lynx is a fully-featured World Wide Web (WWW) client for users running + cursor-addressable, character-cell display devices. It is very fast and easy + to use. It will display HTML documents containing links to files residing on + the local system, as well as files residing on remote systems running Gopher, + HTTP, FTP, WAIS, and NNTP servers. + . + This package contains a development version of lynx. diff --git a/PACKAGE/debian/copyright b/PACKAGE/debian/copyright new file mode 100644 index 0000000..0a4f461 --- /dev/null +++ b/PACKAGE/debian/copyright @@ -0,0 +1,103 @@ +Upstream source https://lynx.invisible-island.net/current/ + +Current maintainer: Thomas Dickey <dickey@invisible-island.net> + +------------------------------------------------------------------------------- + +Copyright 1997-2023,2024 Thomas E. Dickey +Copyright (C) 1995 University of Kansas. + +Most of the content of the lynx release (and corresponding copyright) is +the work of developers on the lynx-dev mailing list, who have agreed to +distribute their work under the terms and conditions of the GNU General +Public License (Version 2). Note that the License text after the terms +and conditions is advisory in nature, and contains neither terms nor +conditions. You may choose to follow that advice. + +Any licensing questions should be directed to the mailing list: + + lynx-dev@nongnu.org + +or to the maintainer (Thomas E. Dickey): + + dickey@invisible-island.net + +------------------------------------------------------------------------------- + +Files: aclocal.m4 +License: other-BSD +Copyright: 1997-2023,2024 by Thomas E. Dickey + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of the above listed + copyright holder(s) not be used in advertising or publicity pertaining + to distribution of the software without specific, written prior + permission. + + THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE + LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Files: install-sh +Copyright: 1994 X Consortium +License: other-BSD + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- + TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of the X Consortium shall not + be used in advertising or otherwise to promote the sale, use or other deal- + ings in this Software without prior written authorization from the X Consor- + tium. + + FSF changes to this file are in the public domain. + + Calling this script install-sh is preferred over install.sh, to prevent + `make' implicit rules from creating a file called install from it + when there is no Makefile. + + This script is compatible with the BSD install script, but was written + from scratch. It can only install one file at a time, a restriction + shared with many OS's install programs. + +Files: debian/* +Copyright: 2010-2019,2020 Thomas E. Dickey +License: other-BSD + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of the above listed + copyright holder(s) not be used in advertising or publicity pertaining + to distribution of the software without specific, written prior + permission. + + THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE + LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +On Debian systems, the complete text of the GNU General +Public License can be found in '/usr/share/common-licenses/GPL-2' diff --git a/PACKAGE/debian/doc-base b/PACKAGE/debian/doc-base new file mode 100644 index 0000000..ef651b7 --- /dev/null +++ b/PACKAGE/debian/doc-base @@ -0,0 +1,10 @@ +Document: lynx-dev +Title: Debian Lynx Manual +Author: Michael Grobe <grobe@ukans.edu> et al. +Abstract: This manual describes what lynx-dev is + and how it can be used on Debian systems. +Section: Network/Web Browsing + +Format: HTML +Index: /usr/share/doc/lynx-dev/help_dir/lynx_help_main.html.gz +Files: /usr/share/doc/lynx-dev/help_dir/*.html.gz diff --git a/PACKAGE/debian/lynx-dev.lintian-overrides b/PACKAGE/debian/lynx-dev.lintian-overrides new file mode 100644 index 0000000..9b0aa40 --- /dev/null +++ b/PACKAGE/debian/lynx-dev.lintian-overrides @@ -0,0 +1,15 @@ +# This is intentional because it is referenced from the documentation. +lynx-dev: extra-license-file usr/share/doc/lynx-dev/COPYING + +lynx-dev: national-encoding usr/share/doc/lynx-dev/test/ALT88592.html +lynx-dev: national-encoding usr/share/doc/lynx-dev/test/iso-8859-1.html +lynx-dev: national-encoding usr/share/doc/lynx-dev/test/iso-8859-2.html + +# These are a known problem with lintian: +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=891301 +lynx-dev: privacy-breach-generic usr/share/doc/lynx-dev/test/ALT88592.html [<link rev="owner" href="http://mail.gnu.org/mailman/listinfo/lynx-dev/">] (http://mail.gnu.org/mailman/listinfo/lynx-dev/) +lynx-dev: privacy-breach-generic usr/share/doc/lynx-dev/test/bad-html.html [<link rev="owner" href="http://mail.gnu.org/mailman/listinfo/lynx-dev/">] (http://mail.gnu.org/mailman/listinfo/lynx-dev/) +lynx-dev: privacy-breach-generic usr/share/doc/lynx-dev/test/cp-1252.html [<link rev="owner" href="http://mail.gnu.org/mailman/listinfo/lynx-dev/">] (http://mail.gnu.org/mailman/listinfo/lynx-dev/) +lynx-dev: privacy-breach-generic usr/share/doc/lynx-dev/test/cp-1252a.html [<link rev="owner" href="http://mail.gnu.org/mailman/listinfo/lynx-dev/">] (http://mail.gnu.org/mailman/listinfo/lynx-dev/) +lynx-dev: privacy-breach-generic usr/share/doc/lynx-dev/test/iso-8859-2.html [<link rev="owner" href="http://mail.gnu.org/mailman/listinfo/lynx-dev/">] (http://mail.gnu.org/mailman/listinfo/lynx-dev/) +lynx-dev: privacy-breach-generic usr/share/doc/lynx-dev/test/iso-8859-2a.html [<link rev="owner" href="http://mail.gnu.org/mailman/listinfo/lynx-dev/">] (http://mail.gnu.org/mailman/listinfo/lynx-dev/) diff --git a/PACKAGE/debian/menu b/PACKAGE/debian/menu new file mode 100644 index 0000000..6421345 --- /dev/null +++ b/PACKAGE/debian/menu @@ -0,0 +1,2 @@ +?package(lynx-dev):needs="text" section="Applications/Network/Web Browsing"\ + title="Lynx-dev" command="lynx-dev" diff --git a/PACKAGE/debian/mime b/PACKAGE/debian/mime new file mode 100644 index 0000000..4777956 --- /dev/null +++ b/PACKAGE/debian/mime @@ -0,0 +1,2 @@ +text/html; /usr/bin/lynx -force_html %s; needsterminal; description=HTML Text; nametemplate=%s.html; priority=3 +text/html; /usr/bin/lynx -dump -force_html %s; copiousoutput; description=HTML Text; nametemplate=%s.html; priority=2 diff --git a/PACKAGE/debian/postinst b/PACKAGE/debian/postinst new file mode 100644 index 0000000..89955d4 --- /dev/null +++ b/PACKAGE/debian/postinst @@ -0,0 +1,27 @@ +#! /bin/sh +# postinst script for lynx + +set -e + +PRI=50 +ALT=lynx +PKG=lynx-dev + +BINDIR=/usr/bin +MANDIR=/usr/share/man/man1 + +if [ $1 != "upgrade" ] +then + + update-alternatives \ + --install \ + $BINDIR/$ALT $ALT \ + $BINDIR/$PKG $PRI \ + --slave $MANDIR/$ALT.1.gz $ALT.1.gz \ + $MANDIR/$PKG.1.gz + +fi + +#DEBHELPER# + +exit 0 diff --git a/PACKAGE/debian/prerm b/PACKAGE/debian/prerm new file mode 100644 index 0000000..a79bf38 --- /dev/null +++ b/PACKAGE/debian/prerm @@ -0,0 +1,12 @@ +#! /bin/sh +# prerm script for lynx + +set -e + +if [ $1 != "upgrade" ]; then + update-alternatives --remove lynx /usr/bin/lynx-dev +fi + +#DEBHELPER# + +exit 0 diff --git a/PACKAGE/debian/rules b/PACKAGE/debian/rules new file mode 100755 index 0000000..908ed5e --- /dev/null +++ b/PACKAGE/debian/rules @@ -0,0 +1,195 @@ +#!/usr/bin/make -f +# $LynxId: rules,v 1.19 2024/01/15 01:16:07 tom Exp $ + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +PKG_SUFFIX = -dev + +PACKAGE := $(shell dpkg-parsechangelog| \ + sed -n 's/^Source: \(.*\)$$/\1/p') + +docdir := /usr/share/doc/$(PACKAGE) +helpdir := $(docdir)/help_dir + +DSTDIR := $(CURDIR)/debian/$(PACKAGE) +DOCDIR := $(DSTDIR)$(docdir) + +CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) +CFLAGS := $(shell dpkg-buildflags --get CFLAGS) +LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) +DEBOP=--enable-debug +else +DEBOP= +endif + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +# This package adds the following not in Debian lynx-cur: +# --enable-htmlized-cfg +# --enable-local-docs +# --with-cfg-path + +configure: configure-stamp +configure-stamp: + dh_testdir + + CPPFLAGS="$(CPPFLAGS)" \ + CFLAGS="$(CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + env cf_cv_SYSTEM_MAIL=/usr/sbin/sendmail \ + COMPRESS=/usr/bin/compress \ + BZIP2=/bin/bzip2 \ + UNZIP=/usr/bin/unzip \ + ZIP=/usr/bin/zip \ + LIBS="-lbsd" \ + ./configure \ + --host=$(DEB_HOST_GNU_TYPE) \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --program-suffix=$(PKG_SUFFIX) \ + --prefix=/usr \ + --libexecdir=\$${prefix}/lib \ + --mandir=\$${prefix}/share/man \ + --sysconfdir=/etc/$(PACKAGE) \ + --with-cfg-path=/etc/$(PACKAGE):$(docdir)/samples \ + --localstatedir=/var \ + --disable-rpath-hack \ + --libdir=/etc/$(PACKAGE) \ + --enable-8bit-toupper \ + --enable-cgi-links \ + --enable-change-exec \ + --enable-charset-choice \ + --enable-cjk \ + --enable-default-colors \ + --enable-exec-links \ + --enable-exec-scripts \ + --enable-externs \ + --enable-font-switch \ + --enable-forms-options \ + --enable-gzip-help \ + --enable-htmlized-cfg \ + --enable-internal-links \ + --enable-ipv6 \ + --enable-chinese-utf8 \ + --enable-japanese-utf8 \ + --enable-justify-elts \ + --enable-kbd-layout \ + --enable-local-docs \ + --enable-nested-tables \ + --enable-nls \ + --enable-nsl-fork \ + --enable-partial \ + --enable-persistent-cookies \ + --enable-prettysrc \ + --enable-read-eta \ + --enable-scrollbar \ + --enable-source-cache \ + --enable-syslog \ + --enable-warnings \ + --with-gnutls=/usr \ + --with-screen=ncursesw6dev \ + --with-textdomain=$(PACKAGE) \ + --without-included-gettext \ + ${DEBOP} + + $(MAKE) preinstall \ + docdir=$(docdir) \ + helpdir=$(helpdir) + + touch configure-stamp + +build: build-stamp +build-stamp: configure-stamp + dh_testdir + + $(MAKE) \ + docdir=$(docdir) \ + helpdir=$(helpdir) + + touch build-stamp + +clean: + dh_testdir + dh_testroot + + [ ! -f Makefile ] || $(MAKE) clean + + rm -f configure-stamp build-stamp install-stamp \ + config.cache config.h config.status config.log makefile + + rm -f *.o lynx + + dh_clean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_prep + dh_installdirs + + $(MAKE) install \ + DESTDIR=$(CURDIR)/debian/$(PACKAGE) \ + docdir=$(docdir) \ + helpdir=$(helpdir) + + touch install-stamp + +install: install-indep install-arch +install-indep: + +install-arch: + dh_testdir + dh_testroot + dh_prep -s + dh_installdirs -s + + $(MAKE) install-full \ + DESTDIR=$(DSTDIR) \ + docdir=$(docdir) \ + helpdir=$(helpdir) + + cd $(DOCDIR) && rm -f COPY*.asc CHANGES + +# Build architecture-independent files here. +binary-indep: build install +# No binary-indep target. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_lintian + dh_installdebconf + dh_installdocs + dh_installmenu + dh_installmime + dh_installexamples + dh_installchangelogs CHANGES + dh_install + dh_link + dh_strip + dh_compress -XCOPY -X.lss + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install install-stamp diff --git a/PACKAGE/debian/source/format b/PACKAGE/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/PACKAGE/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/PACKAGE/debian/watch b/PACKAGE/debian/watch new file mode 100644 index 0000000..f833931 --- /dev/null +++ b/PACKAGE/debian/watch @@ -0,0 +1,4 @@ +version=3 + +opts=passive https://invisible-island.net/lynx/archives/lynx-cur\.tgz \ + debian uupdate diff --git a/PACKAGE/lynx-curses.iss b/PACKAGE/lynx-curses.iss new file mode 100644 index 0000000..7710893 --- /dev/null +++ b/PACKAGE/lynx-curses.iss @@ -0,0 +1,12 @@ +; $LynxId: lynx-curses.iss,v 1.6 2018/03/14 08:34:56 tom Exp $
+;
+; This is an installer for the "color-style" flavor of Lynx.
+;
+; The script assumes environment variables have been set, e.g., to point to
+; data which is used by the installer (see "lynx.lss" for details).
+
+#define NoScreenDll
+#define SetupBaseName "lynx-cs"
+#define SourceExeName "lynx-cs.exe"
+
+#include "lynx.iss"
diff --git a/PACKAGE/lynx-curssl.iss b/PACKAGE/lynx-curssl.iss new file mode 100644 index 0000000..3182257 --- /dev/null +++ b/PACKAGE/lynx-curssl.iss @@ -0,0 +1,14 @@ +; $LynxId: lynx-curssl.iss,v 1.1 2022/12/29 00:38:46 tom Exp $
+;
+; This is an installer for Lynx built with "current" OpenSSL (3.0.x).
+;
+; The script assumes environment variables have been set, e.g., to point to
+; data which is used by the installer (see "lynx.lss" for details).
+
+#define NoScreenDll
+#define SslGlob1 "'libssl-3*.dll'"
+#define SslGlob2 "'libcrypto-3*.dll'"
+#define SetupBaseName "lynx-curssl"
+#define SourceExeName "lynx-curssl.exe"
+
+#include "lynx.iss"
diff --git a/PACKAGE/lynx-default.iss b/PACKAGE/lynx-default.iss new file mode 100644 index 0000000..f39b9b5 --- /dev/null +++ b/PACKAGE/lynx-default.iss @@ -0,0 +1,11 @@ +; $LynxId: lynx-default.iss,v 1.1 2018/03/13 09:10:08 tom Exp $
+;
+; This is an installer for the "default" flavor of Lynx.
+;
+; The script assumes environment variables have been set, e.g., to point to
+; data which is used by the installer (see "lynx.lss" for details).
+
+#define NoScreenDll
+#define SourceExeName "lynx-default.exe"
+
+#include "lynx.iss"
diff --git a/PACKAGE/lynx-newssl.iss b/PACKAGE/lynx-newssl.iss new file mode 100644 index 0000000..fb57286 --- /dev/null +++ b/PACKAGE/lynx-newssl.iss @@ -0,0 +1,14 @@ +; $LynxId: lynx-newssl.iss,v 1.7 2024/01/15 21:35:29 tom Exp $
+;
+; This is an installer for Lynx built with "new" OpenSSL (1.1.x).
+;
+; The script assumes environment variables have been set, e.g., to point to
+; data which is used by the installer (see "lynx.lss" for details).
+
+#define NoScreenDll
+#define SslGlob1 "'libssl-3*.dll'"
+#define SslGlob2 "'libcrypto-3*.dll'"
+#define SetupBaseName "lynx-newssl"
+#define SourceExeName "lynx-newssl.exe"
+
+#include "lynx.iss"
diff --git a/PACKAGE/lynx-oldssl.iss b/PACKAGE/lynx-oldssl.iss new file mode 100644 index 0000000..92575d2 --- /dev/null +++ b/PACKAGE/lynx-oldssl.iss @@ -0,0 +1,14 @@ +; $LynxId: lynx-oldssl.iss,v 1.6 2024/01/15 21:35:19 tom Exp $
+;
+; This is an installer for Lynx built with "old" OpenSSL (before 1.1.x).
+;
+; The script assumes environment variables have been set, e.g., to point to
+; data which is used by the installer (see "lynx.lss" for details).
+
+#define NoScreenDll
+#define SslGlob1 "'libssl-1*.dll'"
+#define SslGlob2 "'libcrypto-1*.dll'"
+#define SetupBaseName "lynx-oldssl"
+#define SourceExeName "lynx-oldssl.exe"
+
+#include "lynx.iss"
diff --git a/PACKAGE/lynx-slang.iss b/PACKAGE/lynx-slang.iss new file mode 100644 index 0000000..e5a8185 --- /dev/null +++ b/PACKAGE/lynx-slang.iss @@ -0,0 +1,13 @@ +; $LynxId: lynx-slang.iss,v 1.3 2018/03/14 08:34:56 tom Exp $
+;
+; This is an installer for the "color-style" flavor of Lynx.
+;
+; The script assumes environment variables have been set, e.g., to point to
+; data which is used by the installer (see "lynx.lss" for details).
+
+#define NoScreenDll
+#define SetupBaseName "lynx-sl"
+#define SourceExeName "lynx-slang.exe"
+#define ScreenDllName "wslang32.dll"
+
+#include "lynx.iss"
diff --git a/PACKAGE/lynx.iss b/PACKAGE/lynx.iss new file mode 100644 index 0000000..2353067 --- /dev/null +++ b/PACKAGE/lynx.iss @@ -0,0 +1,604 @@ +; $LynxId: lynx.iss,v 1.41 2024/01/15 23:28:41 tom Exp $
+; vile:ts=4 sw=4 notabinsert fk=8bit
+;
+; This is the BASE script for different flavors of the installer for Lynx.
+; It can be overridden to select different source-executables (and their associated
+; screen library, e.g., pdcurses or slang).
+;
+; The script assumes environment variables have been set, e.g., to point to
+; data which is used by the installer:
+;
+; LYNX_BINDIR - directory containing lynx.exe (or different names)
+; LYNX_DLLSDIR - directory containing curses or slang dlls.
+; LYNX_DOCSDIR - files and subdirectories installed from Unix with "make install-doc"
+; LYNX_HELPDIR - files and subdirectories installed from Unix with "make install-help"
+
+#include "version.iss"
+
+#ifndef MyAppExeName
+#define MyAppExeName "lynx.exe"
+#endif
+
+#if Ver < 0x5060100
+#define MySendTo '{sendto}\' + myAppName + '.lnk'
+#else
+#define MySendTo '{usersendto}\' + myAppName + '.lnk'
+#endif
+#define MyQuickLaunch '{userappdata}\Microsoft\Internet Explorer\Quick Launch\' + myAppName + '.lnk'
+
+#ifndef SourceExeName
+#define SourceExeName "lynx-default.exe"
+#endif
+
+#ifndef NoScreenDll
+#ifndef ScreenDllName
+#define ScreenDllName "pdcurses.dll"
+#endif
+#endif
+
+#ifndef BzipDllName
+#define BzipDllName "libbz2.dll"
+#endif
+
+#ifndef ZlibDllName
+#define ZlibDllName "zlib1.dll"
+#endif
+
+#ifndef BzipExeName
+#define BzipExeName "bzip2.exe"
+#endif
+
+#ifndef GzipExeName
+#define GzipExeName "gzip.exe"
+#endif
+
+#ifndef SetupBaseName
+#define SetupBaseName "lynx"
+#endif
+
+#ifndef BinsSrcDir
+#define BinsSrcDir GetEnv("LYNX_BINDIR")
+#if BinsSrcDir == ""
+#define BinsSrcDir "..\bin"
+#endif
+#endif
+
+#ifndef DllsSrcDir
+#define DllsSrcDir GetEnv("LYNX_DLLSDIR")
+#if DllsSrcDir == ""
+#define DllsSrcDir "..\bin"
+#endif
+#endif
+
+#ifndef DocsSrcDir
+#define DocsSrcDir GetEnv("LYNX_DOCSDIR")
+#if DocsSrcDir == ""
+#define DocsSrcDir "..\docs"
+#endif
+#endif
+
+#ifndef HelpSrcDir
+#define HelpSrcDir GetEnv("LYNX_HELPDIR")
+#if HelpSrcDir == ""
+#define HelpSrcDir "..\lynx_help"
+#endif
+#endif
+
+[Setup]
+AppName={#MyAppName}
+#emit 'AppVersion=' + LYNX_VERSION
+#emit 'VersionInfoDescription=Setup for "' + MyAppName + '"'
+#emit 'VersionInfoVersion=' + LYNX_VERSION
+AppVerName={#MyAppVerName}
+AppPublisher={#MyAppPublisher}
+AppCopyright=© 1997-2023,2024, Thomas E. Dickey
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+DefaultDirName={pf}\{#MyAppName}
+DefaultGroupName={#MyAppName}
+AllowNoIcons=yes
+LicenseFile=..\COPYHEADER
+InfoBeforeFile=..\README
+OutputDir=..\PACKAGE\lynx-setup
+#emit 'OutputBaseFilename=' + SetupBaseName + LYNX_VERSION + '-setup'
+Compression=lzma
+SolidCompression=yes
+PrivilegesRequired=none
+SetupLogging=no
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+
+[Components]
+Name: main; Description: The Lynx executable; types: full custom compact
+Name: explorer; Description: Windows Explorer integration; types: full custom
+
+[Tasks]
+Name: for_all_users; Description: Install for all users on this machine; GroupDescription: Configuration Settings; Components: main; Check: isGuru; Flags: unchecked
+Name: register_vars; Description: Use registry for environment variables; GroupDescription: Configuration Settings; Components: main; Flags: unchecked
+Name: use_sendto; Description: Add Send To Entry; GroupDescription: Windows Explorer; Components: explorer; Flags: unchecked
+Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Components: main; Flags: unchecked
+Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Components: main; Flags: unchecked
+
+
+[Dirs]
+Name: "{app}\doc"
+Name: "{app}\doc\samples"
+Name: "{app}\doc\test"
+Name: "{app}\help"
+Name: "{app}\help\keystrokes"
+Name: "{app}\icon"
+
+[Files]
+#emit 'Source: "' + BinsSrcDir + '\' + SourceExeName + '"; DestDir: "{app}"; DestName: ' + MyAppExeName + '; AfterInstall: myPostExecutable; Flags: ignoreversion'
+#ifndef NoScreenDll
+#emit 'Source: "' + DllsSrcDir + '\' + ScreenDllName + '"; DestDir: "{app}"; DestName: ' + ScreenDllName + '; Flags: ignoreversion'
+#endif
+#emit 'Source: "' + DllsSrcDir + '\' + BzipExeName + '"; DestDir: "{app}"; DestName: ' + BzipExeName + '; Flags: ignoreversion'
+#emit 'Source: "' + DllsSrcDir + '\' + GzipExeName + '"; DestDir: "{app}"; DestName: ' + GzipExeName + '; Flags: ignoreversion'
+#emit 'Source: "' + DocsSrcDir + '\*.*"; DestDir: "{app}\doc"; Flags: '
+#emit 'Source: "' + DocsSrcDir + '\samples\*.*"; DestDir: "{app}\doc\samples"; Flags: '
+#emit 'Source: "' + DocsSrcDir + '\test\*.*"; DestDir: "{app}\doc\test"; Flags: '
+#emit 'Source: "' + HelpSrcDir + '\*.*"; DestDir: "{app}\help"; Flags: '
+#emit 'Source: "' + HelpSrcDir + '\keystrokes\*.*"; DestDir: "{app}\help\keystrokes"; Flags: '
+
+; some of these data files are from an earlier installer by Claudio Santambrogio
+Source: "..\lynx.cfg"; DestDir: "{app}" ; AfterInstall: myCustomCfg; Flags: ignoreversion
+Source: "..\lynx.man"; DestDir: "{app}"
+Source: "..\samples\*.lss"; DestDir: "{app}"
+Source: "..\samples\home.htm"; DestDir: "{app}"
+Source: "..\samples\jumps.htm"; DestDir: "{app}"
+Source: "..\samples\lynx-demo.cfg"; DestDir: "{app}"
+Source: "..\samples\lynx.bat"; DestDir: "{app}"
+Source: "..\samples\lynx.ico"; DestDir: "{app}\icon"
+Source: "..\samples\lynx_bookmarks.htm"; DestDir: "{app}"
+Source: "..\samples\oldlynx.bat"; DestDir: "{app}"
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+
+[Icons]
+Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
+Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
+Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
+
+[Run]
+Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppName}}"; Flags: nowait postinstall skipifsilent
+
+[UninstallDelete]
+Type: files; Name: {app}\.lynx_cookies
+Type: dirifempty; Name: {app}
+#emit 'Type: files; Name: ' + mySendTo
+#emit 'Type: files; Name: ' + myQuickLaunch
+
+[Code]
+#emit 'const MY_APP_NAME = ''{app}\' + myAppProg + '.exe'';'
+
+
+function isGuru(): Boolean;
+begin
+ Result := isAdminLoggedOn();
+end;
+
+function environRootKey(): Integer;
+begin
+ Result := HKEY_CURRENT_USER;
+end;
+
+function appKey(): string;
+begin
+ Result := 'Software\Lynx';
+end;
+
+function envSubKey(): string;
+begin
+ Result := 'Environment';
+end;
+
+function appSubKey(): string;
+begin
+ Result := appKey() + '\' + envSubKey();
+end;
+
+function envSysKey(): string;
+begin
+ Result := 'System\CurrentControlSet\Control\Session Manager\Environment';
+end;
+
+// Set the environment variable ValueName.
+procedure addVarToEnv(const RootKey: Integer; const SubKeyName, ValueName, toAdd: String);
+var
+ Updated : string;
+begin
+ Updated := ExpandConstant(toAdd);
+ RegWriteStringValue(RootKey, SubKeyName, ValueName, Updated);
+ Log('Added ' + toAdd + ' to ' + ValueName);
+ // MsgBox('addVarToEnv: ' #13#13 + ValueName + '="' + Updated + '"', mbInformation, MB_OK)
+end;
+
+// Remove the given environment variable ValueName.
+function removeVarFromEnv(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;
+var
+ Current : string;
+begin
+ Result := False;
+ if RegQueryStringValue(RootKey, SubKeyName, ValueName, Current) then
+ begin
+ RegDeleteValue(RootKey, SubKeyName, ValueName);
+ Result := True;
+ Log('Removed ' + ValueName);
+ // MsgBox('removeVarFromEnv: ' #13#13 + ValueName + '="' + Current + '"', mbInformation, MB_OK)
+ end;
+end;
+
+function selectedVarsRootKey(): Integer;
+begin
+ if isTaskSelected('for_all_users') then
+ Result := HKEY_LOCAL_MACHINE
+ else
+ Result := HKEY_CURRENT_USER;
+end;
+
+function selectedVarsSubKey(): String;
+begin
+ if isTaskSelected('for_all_users') then
+ begin
+ if isTaskSelected('register_vars') then
+ Result := appSubKey()
+ else
+ Result := envSysKey();
+ end else
+ begin
+ if isTaskSelected('register_vars') then
+ Result := appSubKey()
+ else
+ Result := envSubKey();
+ end;
+end;
+
+procedure addAnyVariable(const ValueName, newValue: String);
+begin
+ addVarToEnv(selectedVarsRootKey(), selectedVarsSubKey(), ValueName, NewValue);
+end;
+
+// FIXME: should only remove if it matches the installer's value
+procedure removeAnyVariable(const ValueName: String);
+begin
+ removeVarFromEnv(HKEY_CURRENT_USER, envSubKey(), ValueName);
+ removeVarFromEnv(HKEY_CURRENT_USER, appSubKey(), ValueName);
+ removeVarFromEnv(HKEY_LOCAL_MACHINE, appSubKey(), ValueName);
+ removeVarFromEnv(HKEY_LOCAL_MACHINE, envSysKey(), ValueName);
+end;
+
+// http://www.delphidabbler.com/articles?article=12
+procedure AddSendTo();
+begin
+ CreateShellLink(
+#emit 'ExpandConstant(''' + MySendTo + '''),'
+#emit '''SendTo link for ' + myAppName + ''','
+ ExpandConstant(MY_APP_NAME), // program
+ '', // option(s) will be followed by pathname
+ '', // no target directory
+ '', // no icon filename
+ -1, // no icon index
+ SW_SHOWNORMAL);
+end;
+
+procedure AddQuickLaunch();
+begin
+ CreateShellLink(
+#emit 'ExpandConstant(''' + MyQuickLaunch + '''),'
+#emit '''SendTo link for ' + myAppName + ''','
+ ExpandConstant(MY_APP_NAME), // program
+ '', // option(s) will be followed by pathname
+ '', // no target directory
+ '', // no icon filename
+ -1, // no icon index
+ SW_SHOWNORMAL);
+end;
+
+// This is called after installing the executable.
+procedure myPostExecutable();
+var
+ Keypath : String;
+ AppDir : String;
+begin
+ Keypath := appKey();
+ AppDir := ExpandConstant('{app}');
+ Log('Setting registry key "' + Keypath + '" to "' + AppDir + '"');
+ if not RegWriteStringValue(selectedVarsRootKey(), Keypath, '', AppDir) then
+ Log('Failed to set key');
+
+ if isTaskSelected('use_sendto') then
+ begin
+ AddSendTo();
+ Log('** added Send-To link');
+ end;
+
+ if isTaskSelected('quicklaunchicon') then
+ begin
+ AddQuickLaunch();
+ Log('** added Quick-launch link');
+ end;
+end;
+
+// This is called after installing the lynx.cfg file.
+procedure myCustomCfg();
+var
+ AppDir : String;
+ CfgFile : String;
+begin
+ AppDir := ExpandConstant('{app}');
+ CfgFile := AppDir + '\lynx.cfg';
+
+ addAnyVariable('LYNX_CFG', CfgFile);
+ Log('** set LYNX_CFG=' + CfgFile);
+
+ SaveStringToFile(CfgFile, 'HELPFILE:' + AppDir + '/help/Lynx_help_main.html.gz' + #10, True);
+ SaveStringToFile(CfgFile, 'COLOR_STYLE:' + AppDir + '/lynx.lss' + #10, True);
+
+ SaveStringToFile(CfgFile, 'CHMOD_PATH:' + #10, True);
+ SaveStringToFile(CfgFile, 'COPY_PATH:' + #10, True);
+ SaveStringToFile(CfgFile, 'MKDIR_PATH:' + #10, True);
+ SaveStringToFile(CfgFile, 'MV_PATH:' + #10, True);
+ SaveStringToFile(CfgFile, 'RMDIR_PATH:' + #10, True);
+ SaveStringToFile(CfgFile, 'RM_PATH:' + #10, True);
+ SaveStringToFile(CfgFile, 'TOUCH_PATH:' + #10, True);
+
+ Log('** customized ' + CfgFile);
+
+ if isTaskSelected('use_sendto') then
+ begin
+ AddSendTo();
+ Log('** added Send-To link');
+ end;
+end;
+
+function CleanupMyKey(const theRootKey: Integer): Boolean;
+var
+ Path : String;
+ Value : String;
+begin
+ Result := False;
+ if RegQueryStringValue(theRootKey, appKey(), '', Value) then
+ begin
+ if Value <> '' then
+ begin
+ Result := True;
+ Log('Deleting value of "' + appKey() + '" = "' + Value + '"');
+ if not RegDeleteValue(theRootKey, appKey(), '') then
+ Log('Failed to delete value');
+
+ Path := appKey() + '\Environment';
+ Log('Checking for subkey "' + Path + '"');
+ if RegValueExists(theRootKey, Path, '') then
+ begin
+ if RegDeleteKeyIncludingSubkeys(theRootKey, Path) then
+ Log('Deleted key "' + Path + '"')
+ else
+ Log('Failed to delete key "' + Path + '"');
+ end;
+
+ if RegDeleteKeyIfEmpty(theRootKey, appKey()) then
+ Log('Deleted key "' + appKey() + '"')
+ else
+ Log('Failed to delete key "' + appKey() + '"');
+ end
+ end
+end;
+
+#ifdef SslGlob1
+#emit "const SslGlob1 = " + SslGlob1 + ";"
+#emit "const SslGlob2 = " + SslGlob2 + ";"
+var
+ SslDirPage : TInputFileWizardPage;
+ SslLibraryPath : String;
+
+function DirContains(const PathList: string; const PathItem: string): Boolean;
+var
+ myList : string;
+ myItem : string;
+ myPart : string;
+ offset : integer;
+begin
+ Result := False;
+ myList := Uppercase(PathList);
+ myItem := Uppercase(RemoveBackslashUnlessRoot(PathItem));
+ offset := Pos(myItem, myList);
+ if offset <> 0 then
+ begin
+ myPart := Copy( myList, offset + Length(myItem), Length(myList) );
+ if ( Length(myPart) = 0 ) or ( Pos(';', myPart) = 1 ) or ( Pos('\;', myPart) = 1 ) then
+ begin
+ Result := True;
+ end;
+ end;
+end;
+
+function PathCat(const head, tail: string): string;
+begin
+ Result := RemoveBackslashUnlessRoot(head) + '\' + tail;
+end;
+
+procedure CopyFromTo(const source, target, name: string);
+var
+ FailExists : Boolean;
+ Status: Boolean;
+begin
+ Log('Copy from: ' + PathCat(source, name));
+ Log('Copy to: ' + PathCat(target, name));
+ FailExists := False;
+ Status := FileCopy(PathCat(source, name), PathCat(target, name), FailExists);
+ if not Status then
+ begin
+ MsgBox('Failed to copy ' + name, mbError, MB_OK);
+ Abort();
+ end;
+end;
+
+procedure ReallyDelete(const fullPath: string);
+begin
+ if FileExists( fullpath ) then
+ begin
+ if DeleteFile( fullPath ) then
+ Log( '...successful' )
+ else
+ begin
+ MsgBox('Failed to delete ' + fullPath, mbError, MB_OK);
+ end;
+ end;
+end;
+
+procedure DeleteAppFile(const name: string);
+var
+ AppDir : string;
+ fullPath : string;
+ findRec : TFindRec;
+begin
+ AppDir := ExpandConstant('{app}');
+ fullPath := PathCat( AppDir, name );
+ Log( 'Deleting ' + fullPath );
+ if Pos('*', fullPath) <> 0 then
+ begin
+ if FindFirst(fullPath, findRec) then
+ begin
+ ReallyDelete( PathCat( AppDir, findRec.name ) );
+ while FindNext( findRec ) do
+ ReallyDelete( PathCat( AppDir, findRec.name ) );
+ end
+ end
+ else
+ begin
+ ReallyDelete( fullPath );
+ end;
+end;
+
+function checkSslDir(): Boolean;
+begin
+ Result := True;
+ SslLibraryPath := Trim( SslDirPage.Values[0] );
+ if ( Length( SslLibraryPath ) = 0 ) or ( not FileExists( SslLibraryPath ) ) then
+ begin
+ MsgBox('No SSL library found', mbError, MB_OK)
+ Result := False;
+ end;
+end;
+
+procedure copySslDlls();
+var
+ SslDirectory : String;
+ SslFilename : String;
+ TargetDir : String;
+begin
+ Log('Copying SSL DLLs');
+ SslDirectory := ExtractFilePath(SslLibraryPath);
+
+ // If the directory is not already in the PATH, copy the DLLs to
+ // the application directory.
+ if DirContains( GetEnv('PATH'), SslDirectory) then
+ Log( 'PATH contains SSL directory' )
+ else
+ begin
+ TargetDir := ExpandConstant('{app}');
+ CreateDir(TargetDir);
+ if DirExists(TargetDir) then
+ begin
+ SslFilename := Lowercase( ExtractFileName( SslLibraryPath ) );
+ CopyFromTo( SslDirectory, TargetDir, SslFilename );
+ Log( 'comparing: ' + SslFilename + ' to ' + SslGlob1 );
+ if CompareText( SslFilename, SslGlob1 ) = 0 then
+ // old-ssl is literal, new is a glob...
+ CopyFromTo( SslDirectory, TargetDir, SslGlob2 )
+ else
+ // new-ssl matches "libssl-x-x-z", s/libssl/libcrypto/
+ SslFilename := 'libcrypto' + Copy(SslFilename, 7, Length(SslFilename));
+ CopyFromTo( SslDirectory, TargetDir, SslFilename );
+#ifdef RuntimeBundle
+ // older releases of OpenSSL bundled the Visual Studio runtime
+ SslFilename := SslDirectory + '\' + 'msvcr120.dll' ;
+ if FileExists(SslFilename) then
+ begin
+ CopyFromTo( SslDirectory, TargetDir, 'msvcr120.dll' );
+ end
+#endif
+ end
+ else
+ begin
+ MsgBox( 'Cannot create application directory', mbError, MB_OK )
+ Abort();
+ end
+ end;
+ Log('done - Copying SSL DLLs');
+end;
+
+procedure RegisterPreviousData(PreviousDataKey: Integer);
+begin
+ SetPreviousData( PreviousDataKey, 'SSL PATH', SslLibraryPath );
+end;
+
+function NextButtonClick(CurPageId: integer): Boolean;
+begin
+ Result := True;
+ if CurPageId = SslDirPage.Id then
+ begin
+ Result := checkSslDir();
+ end;
+end;
+
+procedure CurStepChanged(CurStep: TSetupStep);
+begin
+ if CurStep = ssInstall then
+ begin
+ CopySslDlls();
+ end;
+end;
+
+procedure InitializeWizard();
+var
+ myGlob: string;
+begin
+ // Create a page to locate the SSL library
+ SslDirPage := CreateInputFilePage(wpSelectDir,
+ 'Select SSL Library Location',
+ 'Where is the SSL library located?',
+ 'Select it from the directory, then click Next.');
+
+ myGlob := 'SSL dll|' + SslGlob1;
+ Log( 'search for SSL libraries ' + myGlob );
+ SslDirPage.Add( 'Locate SSL library:', myGlob, '*.dll' );
+ SslDirPage.Values[0] := GetPreviousData( 'SSL PATH', '' );
+end;
+#endif
+
+// On uninstall, we do not know which registry setting was selected during install, so we remove all.
+procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
+begin
+ case CurUninstallStep of
+ usUninstall:
+ begin
+ Log('CurUninstallStepChanged:' + 'Uninstall is about to start.')
+ // ...insert code to perform pre-uninstall tasks here...
+#ifdef SslGlob1
+ DeleteAppFile( SslGlob1 );
+ DeleteAppFile( SslGlob2 );
+ DeleteAppFile( 'msvcr120.dll' );
+#endif
+ end;
+ usPostUninstall:
+ begin
+ removeAnyVariable('LYNX_CFG');
+ {
+ If we don't find the settings in the current user, try the local machine.
+ The setup program cannot pass the all-users flag to the uninstaller, so we
+ have to try both.
+ }
+ Log('Checking current-user registry key');
+ if not CleanupMyKey(HKEY_CURRENT_USER) then
+ begin
+ Log('Checking local-machine registry key');
+ CleanupMyKey(HKEY_LOCAL_MACHINE);
+ end;
+
+ Log('CurUninstallStepChanged:' + 'Uninstall just finished.');
+ end;
+ end;
+end;
diff --git a/PACKAGE/lynx.nsi b/PACKAGE/lynx.nsi new file mode 100644 index 0000000..7071db2 --- /dev/null +++ b/PACKAGE/lynx.nsi @@ -0,0 +1,241 @@ +; $LynxId: lynx.nsi,v 1.63 2024/01/07 11:13:00 tom Exp $
+; Script originally generated with the Venis Install Wizard, but customized.
+; The Inno Setup script is preferred; but this can be built via cross-compiling.
+
+; Define the application name
+!define APPNAME "Lynx"
+!define EXENAME "lynx.exe"
+
+!define VERSION_EPOCH "2"
+!define VERSION_MAJOR "9"
+!define VERSION_MINOR "0"
+!define VERSION_LEVEL "1013"
+!define VERSION_PATCH "dev.13"
+
+!define SUBKEY "Lynx"
+
+!define INSTALL "Lynx - web browser"
+!define VERSION "${VERSION_EPOCH}.${VERSION_MAJOR}.${VERSION_MINOR}${VERSION_PATCH}"
+
+; Main Install settings
+Name "${INSTALL}"
+InstallDir "$PROGRAMFILES\${INSTALL}"
+InstallDirRegKey HKLM "Software\${SUBKEY}" "$INSTDIR\bin"
+OutFile "NSIS-Output\${APPNAME}-${VERSION}-setup.exe"
+
+CRCCheck on
+SetCompressor /SOLID lzma
+
+VIAddVersionKey ProductName "${SUBKEY}"
+VIAddVersionKey CompanyName "https://invisible-island.net/lynx"
+VIAddVersionKey LegalCopyright "© 1997-2023,2024, Thomas E. Dickey"
+VIAddVersionKey FileDescription "Lynx Installer (MinGW)"
+VIAddVersionKey FileVersion "${VERSION}"
+VIAddVersionKey ProductVersion "${VERSION}"
+VIAddVersionKey Comments "This installer was built with NSIS and cross-compiling to MinGW."
+VIAddVersionKey InternalName "setup-${APPNAME}-${VERSION}.exe"
+VIProductVersion "${VERSION_EPOCH}.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_LEVEL}"
+
+; adapted from http://nsis.sourceforge.net/Readme_Page_Based_on_MUI_License_Page
+!macro MUI_EXTRAPAGE_README UN TheFile
+ !define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)"
+ !insertmacro MUI_${UN}PAGE_LICENSE "${TheFile}"
+!macroend
+!define ReadmeRun "!insertmacro MUI_EXTRAPAGE_README"
+!macro MUI_PAGE_README TheFile
+ ${ReadmeRun} "" "${TheFile}"
+!macroend
+
+; Modern interface settings
+!include "MUI.nsh"
+
+!define MUI_ABORTWARNING
+!define MUI_FINISHPAGE_RUN "$INSTDIR\${EXENAME}"
+
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_LICENSE "..\COPYHEADER"
+!insertmacro MUI_PAGE_README "..\README"
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_PAGE_FINISH
+
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+; Set languages (first is default language)
+!insertmacro MUI_LANGUAGE "English"
+!insertmacro MUI_RESERVEFILE_LANGDLL
+
+!define LYNX_CFG "lynx.cfg"
+
+InstType "Full" ; SectionIn 1
+InstType "Typical" ; SectionIn 2
+InstType "Minimal" ; SectionIn 3
+
+Section "${APPNAME}" Section1
+
+ SectionIn 1 2 3
+
+ ; Set Section properties
+ SetOverwrite on
+
+ ; Set Section Files and Shortcuts
+ SetOutPath "$INSTDIR"
+ File /oname=${EXENAME} ".\bin\*${EXENAME}"
+ File ".\bin\bzip2.exe"
+ File ".\bin\gzip.exe"
+ File ".\bin\*.dll"
+
+ ; TODO: bzip2.exe, gzip.exe, *.dll
+
+ CreateShortCut "$DESKTOP\${APPNAME}.lnk" "$INSTDIR\${EXENAME}"
+ CreateShortCut "$SENDTO\${APPNAME}.lnk" "$INSTDIR\${EXENAME}"
+ CreateDirectory "$SMPROGRAMS\${INSTALL}"
+ CreateShortCut "$SMPROGRAMS\${INSTALL}\${INSTALL}.lnk" "$INSTDIR\${EXENAME}"
+ CreateShortCut "$SMPROGRAMS\${INSTALL}\${APPNAME} - Help.lnk" "$INSTDIR\help\lynx_help_main.html"
+ CreateShortCut "$SMPROGRAMS\${INSTALL}\Uninstall.lnk" "$INSTDIR\uninstall.exe"
+
+ File ".\share\lynx_doc\samples\*.lss"
+
+ ; preinstall lynx.cfg as a temporary file
+ File /oname=${LYNX_CFG} ".\etc\${LYNX_CFG}"
+
+ ; at install-time, append our customization
+ FileOpen $0 "${LYNX_CFG}" a
+ FileSeek $0 0 END
+ FileWrite $0 "HELPFILE:$INSTDIR\help\Lynx_help_main.html.gz$\n"
+ FileWrite $0 "COLOR_STYLE:$INSTDIR\opaque.lss$\n"
+ FileWrite $0 "CHMOD_PATH:$\n"
+ FileWrite $0 "COPY_PATH:$\n"
+ FileWrite $0 "MKDIR_PATH:$\n"
+ FileWrite $0 "MV_PATH:$\n"
+ FileWrite $0 "RMDIR_PATH:$\n"
+ FileWrite $0 "RM_PATH:$\n"
+ FileWrite $0 "TOUCH_PATH:$\n"
+ FileClose $0
+
+ File "..\samples\lynx.bat"
+ File "..\samples\lynx-demo.cfg"
+ File "..\samples\oldlynx.bat"
+
+ File "..\samples\jumps.htm"
+ File "..\samples\home.htm"
+ File "..\samples\lynx_bookmarks.htm"
+
+ SetOutPath "$INSTDIR\icon"
+ File "..\samples\lynx.ico"
+
+ SetOutPath "$INSTDIR\tmp"
+
+SectionEnd
+
+Section "documentation" Section2
+
+ SectionIn 1 2
+
+ ; Set Section properties
+ SetOverwrite on
+
+ ; Set Section Files and Shortcuts
+ SetOutPath "$INSTDIR"
+ File "..\lynx.man"
+
+ SetOutPath "$INSTDIR\doc"
+ File ".\share\lynx_doc\CHANGES*.*"
+ File ".\share\lynx_doc\COPY*.*"
+ File ".\share\lynx_doc\PROBLEM*.*"
+ File ".\share\lynx_doc\README*.*"
+
+ SetOutPath "$INSTDIR\help"
+ File ".\share\lynx_help\*.*"
+
+ SetOutPath "$INSTDIR\help\keystrokes"
+ File ".\share\lynx_help\keystrokes\*.*"
+
+SectionEnd
+
+Section "samples" Section3
+
+ SectionIn 1
+
+ ; Set Section properties
+ SetOverwrite on
+
+ ; Set Section Files and Shortcuts
+ SetOutPath "$INSTDIR\doc\samples"
+ File ".\share\lynx_doc\samples\*.*"
+
+ SetOutPath "$INSTDIR\doc\test"
+ File ".\share\lynx_doc\test\*.*"
+
+SectionEnd
+
+Section -FinishSection
+
+ WriteRegStr HKLM "Software\${SUBKEY}" "" "$INSTDIR"
+ WriteRegStr HKLM "Software\${SUBKEY}" "Environment" ""
+ WriteRegStr HKLM "Software\${SUBKEY}\Environment" "LYNX_CFG" "$INSTDIR\${LYNX_CFG}"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" "DisplayName" "${INSTALL} ${VERSION}"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" "UninstallString" "$INSTDIR\uninstall.exe"
+ WriteUninstaller "$INSTDIR\uninstall.exe"
+
+SectionEnd
+
+; Modern install component descriptions
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section1} "${SUBKEY}"
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Documentation"
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Samples and Test-files."
+!insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+;Uninstall section
+Section Uninstall
+
+ ;Remove from registry...
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}"
+ DeleteRegKey HKLM "SOFTWARE\${SUBKEY}"
+
+ ; Delete self
+ Delete "$INSTDIR\uninstall.exe"
+
+ ; Delete Shortcuts
+ Delete "$DESKTOP\${APPNAME}.lnk"
+ Delete "$SENDTO\${APPNAME}.lnk"
+ Delete "$SMPROGRAMS\${INSTALL}\${INSTALL}.lnk"
+ Delete "$SMPROGRAMS\${INSTALL}\${APPNAME} - Help.lnk"
+ Delete "$SMPROGRAMS\${INSTALL}\Uninstall.lnk"
+
+ ; Clean up application
+ Delete "$INSTDIR\${EXENAME}"
+ Delete "$INSTDIR\doc\samples\*.*"
+ Delete "$INSTDIR\doc\test\*.*"
+ Delete "$INSTDIR\doc\*.*"
+ Delete "$INSTDIR\help\keystrokes\*.*"
+ Delete "$INSTDIR\help\*.*"
+ Delete "$INSTDIR\icon\*.*"
+ Delete "$INSTDIR\tmp\*.*"
+ Delete "$INSTDIR\bzip2.exe"
+ Delete "$INSTDIR\gzip.exe"
+ Delete "$INSTDIR\*.bat"
+ Delete "$INSTDIR\*.cfg"
+ Delete "$INSTDIR\*.dll"
+ Delete "$INSTDIR\*.htm"
+ Delete "$INSTDIR\*.man"
+ Delete "$INSTDIR\*.lss"
+ Delete "$INSTDIR\*.tmp"
+
+ ; Remove remaining directories
+ RMDir "$SMPROGRAMS\${INSTALL}"
+ RMDir "$INSTDIR\doc\samples"
+ RMDir "$INSTDIR\doc\test"
+ RMDir "$INSTDIR\doc"
+ RMDir "$INSTDIR\help\keystrokes"
+ RMDir "$INSTDIR\help"
+ RMDir "$INSTDIR\icon"
+ RMDir "$INSTDIR\tmp"
+ RMDir "$INSTDIR\"
+
+SectionEnd
+
+; eof
\ No newline at end of file diff --git a/PACKAGE/lynx.spec b/PACKAGE/lynx.spec new file mode 100644 index 0000000..a11a9a0 --- /dev/null +++ b/PACKAGE/lynx.spec @@ -0,0 +1,137 @@ +# $LynxId: lynx.spec,v 1.72 2024/01/15 11:47:26 tom Exp $ +Summary: A text-based Web browser +Name: lynx-dev +Version: 2.9.0 +Release: 1 +License: GPLv2 +Group: Applications/Internet +Source: lynx%{version}.tgz +URL: https://lynx.invisible-island.net +Provides: webclient >= 0.0 +Provides: text-www-browser >= 0.0 + +# Fedora: +BuildRequires: openssl-devel, pkgconfig, ncurses-devel >= 5.3-5, +BuildRequires: zlib-devel, gettext +BuildRequires: libidn-devel +# BuildRequires: bzip2-devel + +# SuSE: +# BuildRequires: libbz2-devel + +Requires: gzip, bzip2, tar, zip, unzip + +%description +Lynx is a fully-featured World Wide Web (WWW) client for users running +cursor-addressable, character-cell display devices. It is very fast and easy +to use. It will display HTML documents containing links to files residing on +the local system, as well as files residing on remote systems running Gopher, +HTTP, FTP, WAIS, and NNTP servers. + +%define lynx_doc %{_defaultdocdir}/%{name} +%define lynx_etc %{_sysconfdir}/%{name} + +%prep + +%define debug_package %{nil} +%setup -q -n lynx%{version} + +%build +%configure \ + --target %{_target_platform} \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --program-suffix=-dev \ + --datadir=%{lynx_doc} \ + --libdir=%{lynx_etc} \ + --mandir=%{_mandir} \ + --sysconfdir=%{lynx_etc} \ + --with-cfg-path=%{lynx_etc}:%{lynx_doc}/samples \ + --with-textdomain=%{name} \ + --enable-8bit-toupper \ + --enable-cgi-links \ + --enable-change-exec \ + --enable-charset-choice \ + --enable-cjk \ + --enable-default-colors \ + --enable-exec-links \ + --enable-exec-scripts \ + --enable-externs \ + --enable-font-switch \ + --enable-forms-options \ + --enable-gzip-help \ + --enable-htmlized-cfg \ + --enable-internal-links \ + --enable-ipv6 \ + --enable-chinese-utf8 \ + --enable-japanese-utf8 \ + --enable-justify-elts \ + --enable-kbd-layout \ + --enable-local-docs \ + --enable-nested-tables \ + --enable-nls \ + --enable-nsl-fork \ + --enable-partial \ + --enable-persistent-cookies \ + --enable-prettysrc \ + --enable-read-eta \ + --enable-scrollbar \ + --enable-source-cache \ + --enable-syslog \ + --enable-warnings \ + --with-screen=ncursesw6dev \ + --with-ssl +make \ + docdir=%{lynx_doc} + +%install +rm -rf $RPM_BUILD_ROOT +chmod -x samples/mailto-form.pl + +make install-full \ + DESTDIR=$RPM_BUILD_ROOT \ + docdir=%{lynx_doc} + +cat >>$RPM_BUILD_ROOT%{lynx_etc}/lynx.cfg <<EOF +DEFAULT_INDEX_FILE:http://www.google.com/ +LOCALE_CHARSET:TRUE +EOF + +strip $RPM_BUILD_ROOT%{_bindir}/%{name} + +%find_lang %{name} + +%files -f %{name}.lang +%defattr(-,root,root,-) +%{_bindir}/%{name} +%{_mandir}/*/* +%{lynx_doc}/* +%config(noreplace) %{lynx_etc}/*.cfg +%config(noreplace) %{lynx_etc}/*.lss + +%changelog + +* Mon Jan 15 2024 Thomas E. Dickey +- simplified tarball name + +* Sun Jan 07 2024 Thomas E. Dickey +- use rpm #find_lang macro for configuring language files +- use noreplace flag for *.cfg and *.lss config files +- remove obsolete #clean section + +* Tue Mar 29 2022 Thomas E. Dickey +- add brotli compression + +* Sat Jul 31 2021 Thomas E. Dickey +- align configure-options with Debian package, removing some which are not + needed because they correspond to the default settings. + +* Thu May 17 2018 Thomas E. Dickey +- use "ncursesw6dev", reflecting renaming of ncurses test-packages to avoid + conflict with new packages in Fedora. + +* Mon Mar 12 2018 Thomas E. Dickey +- rename to "lynx-dev", add a few dependencies where package names are same. + +* Fri Sep 17 2010 Thomas E. Dickey +- initial version. diff --git a/PACKAGE/version.iss b/PACKAGE/version.iss new file mode 100644 index 0000000..e3fe613 --- /dev/null +++ b/PACKAGE/version.iss @@ -0,0 +1,9 @@ +; version used for Inno Setup files.
+
+#define LYNX_VERSION "2.9.0"
+
+#define MyAppProg "Lynx"
+#define MyAppName "Lynx - web browser"
+#define MyAppPublisher "Thomas E Dickey"
+#define MyAppURL "https://invisible-island.net/lynx"
+#define MyAppVerName "Lynx " + LYNX_VERSION
|