From 85e9e96e9dd35531d03188768b667a8e29c8aaea Mon Sep 17 00:00:00 2001 From: Mike Heins Date: Tue, 1 Sep 1998 00:00:00 -0500 Subject: [PATCH] MiniVend 3.11 --- INSTALL | 49 +- MANIFEST | 50 +- Makefile.PL | 162 +- README | 339 +++ README-win.txt | 187 ++ README.OS | 88 + WHATSNEW | 940 +++++++ configure.bat | 2 +- configure.htm | 12 + dist/README | 10 +- dist/README-win.txt | 8 +- dist/README.OS | 2 +- dist/WHATSNEW | 65 + dist/admin/catalog.cfg | 37 + dist/admin/etc/profiles | 97 + dist/admin/mv_admin.cfg | 276 ++ dist/admin/pages/cancel.html | 41 + dist/admin/pages/failed.html | 77 + dist/admin/pages/flypage.html | 85 + dist/admin/pages/hintfile.html | 62 + dist/admin/pages/include/address_form | 53 + dist/admin/pages/include/base_dir_form | 47 + dist/admin/pages/include/cat_dir_form | 91 + dist/admin/pages/include/catname_form | 28 + dist/admin/pages/include/summary | 95 + dist/admin/pages/menu.html | 93 + dist/admin/pages/reconfig_results.html | 51 + dist/admin/pages/seefile.html | 5 + dist/admin/pages/special/noproduct.html | 14 + dist/admin/pages/special/notfound.html | 13 + dist/admin/pages/special/violation.html | 19 + dist/admin/products/database.asc | 5 + dist/admin/products/directive.asc | 2 + dist/admin/products/locale.asc | 2 + dist/admin/products/products.asc | 45 + dist/admin/products/wizard.asc | 12 + dist/admin/session/.empty | 0 dist/admin/subs.cfg | 277 ++ dist/bin/autosplit | 13 - dist/bin/dump | 3 +- dist/bin/expire | 2 +- dist/bin/expireall | 78 + dist/bin/localize | 2 +- dist/bin/makecat | 498 +++- dist/bin/minivend | 308 ++- dist/bin/offline | 2 +- dist/bin/start | 13 +- dist/bin/start_inet | 6 +- dist/bin/start_unix | 6 +- dist/configure.pl | 102 +- dist/error.log | 1 - dist/manifest | 16 +- dist/minivend.cfg.dist | 57 +- dist/simple/catalog.cfg | 92 +- dist/simple/config/.empty | 1 - dist/simple/etc/order.number | 2 - dist/simple/html/index.html | 4 +- dist/simple/html/nav.html | 51 - dist/simple/html/ord/basket.html | 134 - dist/simple/html/toc.html | 51 - dist/simple/images/browse.gif | Bin 413 -> 384 bytes dist/simple/images/browse_up.gif | Bin 0 -> 413 bytes dist/simple/images/checkout.gif | Bin 0 -> 2037 bytes dist/simple/images/checkout_up.gif | Bin 0 -> 2163 bytes dist/simple/images/contents.gif | Bin 2374 -> 1953 bytes dist/simple/images/contents_up.gif | Bin 0 -> 2374 bytes dist/simple/images/details.gif | Bin 1574 -> 1294 bytes dist/simple/images/details_up.gif | Bin 0 -> 1574 bytes dist/simple/images/home.gif | Bin 2318 -> 2138 bytes dist/simple/images/home_up.gif | Bin 0 -> 2318 bytes dist/simple/images/ordernow.gif | Bin 2293 -> 1862 bytes dist/simple/images/ordernow_up.gif | Bin 0 -> 2293 bytes dist/simple/images/search.gif | Bin 1725 -> 1509 bytes dist/simple/images/search_up.gif | Bin 0 -> 1725 bytes dist/simple/locale.fr_FR | 78 - dist/simple/pages/browse.html | 16 +- dist/simple/pages/browse1.html | 24 +- dist/simple/pages/buttonbar.html | 8 +- dist/simple/pages/canceled.html | 26 +- dist/simple/pages/catalog.html | 42 +- dist/simple/pages/flypage.html | 12 +- dist/simple/pages/help/sec_faq.html | 2 +- dist/simple/pages/help/security.html | 2 +- dist/simple/pages/new_account.html | 18 +- dist/simple/pages/ord/basket.html | 66 +- dist/simple/pages/ord/checkout.html | 99 +- dist/simple/pages/ord/receipt.html | 2 +- dist/simple/pages/quantity.html | 8 +- dist/simple/pages/rand1.html | 4 +- dist/simple/pages/rand2.html | 4 +- dist/simple/pages/rand3.html | 4 +- dist/simple/pages/rand4.html | 4 +- dist/simple/pages/rand5.html | 4 +- dist/simple/pages/results.html | 12 +- dist/simple/pages/special/badsearch.html | 2 +- dist/simple/pages/special/canceled.html | 2 +- dist/simple/pages/special/cc_not_valid.html | 2 +- dist/simple/pages/special/confirmation.html | 29 + dist/simple/pages/special/control.html | 166 ++ dist/simple/pages/special/failed.html | 4 +- dist/simple/pages/special/interact.html | 2 +- dist/simple/pages/special/missing.html | 2 +- dist/simple/pages/special/needfield.html | 2 +- dist/simple/pages/special/nomatch.html | 2 +- dist/simple/pages/special/noproduct.html | 2 +- dist/simple/pages/special/notfound.html | 2 +- dist/simple/pages/special/order_security.html | 2 +- dist/simple/pages/special/reconfig.html | 2 +- dist/simple/pages/special/sec_faq.html | 2 +- dist/simple/pages/special/security.html | 2 +- dist/simple/pages/special/violation.html | 2 +- dist/simple/pages/srchform.html | 87 +- dist/simple/products/locale.asc | 184 ++ dist/simple/products/pricing.asc | 20 +- dist/simple/products/ups_zone.asc | 153 ++ dist/simple/reconfig | 2 +- dist/simple/session/.empty | 1 - dist/simple/tmp/PageCache/.empty | 1 - dist/simple/tmp/SearchCache/.empty | 1 - dist/src/mvctl.c | 2 +- dist/src/tlink.c | 2 +- dist/src/tlink.pl | 2 +- dist/src/vlink.c | 2 +- dist/src/vlink.pl | 2 +- {dist/simple/html => doc}/bullet.gif | Bin {dist/simple/html => doc}/frtoc.html | 0 doc/intro.html | 4 +- doc/maxivend.html | 1420 ++++++++++ {dist/simple/html => doc}/minivend.html | 2298 +++++++++++++---- doc/nav.html | 55 + doc/toc.html | 55 + extra/File/CounterFile.pm | 4 +- extra/File/Spec/Unix.pm | 4 +- extra/HTML/Entities.pm | 4 +- extra/URI/URL.pm | 936 +++++++ lib/Vend/Config.pm | 122 +- lib/Vend/Data.pm | 289 ++- lib/Vend/Glimpse.pm | 28 +- lib/Vend/Http.pm | 8 +- lib/Vend/Interpolate.pm | 384 ++- lib/Vend/MakeCat.pm | 110 +- lib/Vend/Order.pm | 370 ++- lib/Vend/PageBuild.pm | 6 +- lib/Vend/Parse.pm | 113 +- lib/Vend/Parser.pm | 2 +- lib/Vend/Scan.pm | 109 +- lib/Vend/Search.pm | 84 +- lib/Vend/Server.pm | 405 ++- lib/Vend/Session.pm | 26 +- lib/Vend/Table/DBI.pm | 6 +- lib/Vend/Table/DB_File.pm | 9 +- lib/Vend/Table/GDBM.pm | 9 +- lib/Vend/Table/Import.pm | 12 +- lib/Vend/Table/InMemory.pm | 6 +- lib/Vend/Table/Msql.pm | 6 +- lib/Vend/TextSearch.pm | 35 +- lib/Vend/UserDB.pm | 58 +- lib/Vend/Util.pm | 230 +- 158 files changed, 11186 insertions(+), 2025 deletions(-) create mode 100644 README create mode 100644 README-win.txt create mode 100644 README.OS create mode 100644 WHATSNEW create mode 100644 configure.htm create mode 100644 dist/admin/catalog.cfg create mode 100644 dist/admin/etc/profiles create mode 100644 dist/admin/mv_admin.cfg create mode 100644 dist/admin/pages/cancel.html create mode 100644 dist/admin/pages/failed.html create mode 100644 dist/admin/pages/flypage.html create mode 100644 dist/admin/pages/hintfile.html create mode 100644 dist/admin/pages/include/address_form create mode 100644 dist/admin/pages/include/base_dir_form create mode 100644 dist/admin/pages/include/cat_dir_form create mode 100644 dist/admin/pages/include/catname_form create mode 100644 dist/admin/pages/include/summary create mode 100644 dist/admin/pages/menu.html create mode 100644 dist/admin/pages/reconfig_results.html create mode 100644 dist/admin/pages/seefile.html create mode 100644 dist/admin/pages/special/noproduct.html create mode 100644 dist/admin/pages/special/notfound.html create mode 100644 dist/admin/pages/special/violation.html create mode 100644 dist/admin/products/database.asc create mode 100644 dist/admin/products/directive.asc create mode 100644 dist/admin/products/locale.asc create mode 100644 dist/admin/products/products.asc create mode 100644 dist/admin/products/wizard.asc create mode 100644 dist/admin/session/.empty create mode 100644 dist/admin/subs.cfg delete mode 100644 dist/bin/autosplit create mode 100644 dist/bin/expireall delete mode 100644 dist/simple/etc/order.number delete mode 100644 dist/simple/html/nav.html delete mode 100644 dist/simple/html/ord/basket.html delete mode 100644 dist/simple/html/toc.html create mode 100644 dist/simple/images/browse_up.gif create mode 100644 dist/simple/images/checkout.gif create mode 100644 dist/simple/images/checkout_up.gif create mode 100644 dist/simple/images/contents_up.gif create mode 100644 dist/simple/images/details_up.gif create mode 100644 dist/simple/images/home_up.gif create mode 100644 dist/simple/images/ordernow_up.gif create mode 100644 dist/simple/images/search_up.gif delete mode 100644 dist/simple/locale.fr_FR create mode 100644 dist/simple/pages/special/confirmation.html create mode 100644 dist/simple/pages/special/control.html create mode 100644 dist/simple/products/locale.asc create mode 100644 dist/simple/products/ups_zone.asc rename {dist/simple/html => doc}/bullet.gif (100%) rename {dist/simple/html => doc}/frtoc.html (100%) create mode 100644 doc/maxivend.html rename {dist/simple/html => doc}/minivend.html (89%) create mode 100644 doc/nav.html create mode 100644 doc/toc.html create mode 100644 extra/URI/URL.pm diff --git a/INSTALL b/INSTALL index 765ecf2b..a335a4e7 100644 --- a/INSTALL +++ b/INSTALL @@ -2,6 +2,10 @@ I N S T A L L A T I O N +IMPORTANT NOTE: The installation procedure has changed, we hope for the + better. Please read this even if you have installed + MiniVend before. + We IMPLORE you to read all of the verbiage below. We know how most of us are, so we put the install procedure up here, but if you have problems please read all of this file, PLUS the MiniVend documentation @@ -9,7 +13,8 @@ in doc/minivend.html. Also, please check out the official MiniVend FAQ at http://www.minivend.com/minivend/faq/ before you call for help. And send your system, Perl, and Minivend information, VERSIONS AND ALL! -IMPORTANT NOTE: If you don't give evidence of having read and +IMPORTANT NOTE: The installation procedure has changed, we hope for the + better. If you don't give evidence of having read and heeded the above heartfelt plea, your email may well be ignored. Caveat Emptor. @@ -17,7 +22,7 @@ IMPORTANT NOTE: If you don't give evidence of having read and WINDOWS INSTALLATION -------------------- - Obtain the self-extracting executable minivend-3.10.exe + Obtain the self-extracting executable minivend-3.11.exe and double-click on it. IMPORTANT NOTE: If you get the message "Bad command or file name" @@ -25,10 +30,10 @@ WINDOWS INSTALLATION on your machine or is not in your path. Go to http://www.perl.com and install the *standard* 5.004 version (AKA the Gurusamy Sarathy port). MiniVend will not work with the ActiveState 5.003 port; it - appears to work well with the "Merge" port. + appears to work well with the ActiveState 5.005 "Merge" port. If you already have the CYGWIN.DLL executable or plan on using the - Perl link CGI, you can download the file minivend-3.10-nodll.exe + Perl link CGI, you can download the file minivend-3.11-nodll.exe and do the same. The defaults are set for Microsoft Personal Web Server on Win95 -- @@ -46,23 +51,28 @@ WINDOWS INSTALLATION Some features are untested in the Windows version, and it can be considered a beta. + If you have installed the MIME::Base64 and URI::URL (from libwww) + modules, then there is a new interface that is available for + a GUI-like catalog configuration. It should run automatically + upon a new installation. + UNIX INSTALLATION ------------------ Here is the short version: - gzip -dc minivend-3.10.tar.gz | tar xvf - - cd minivend-3.10 + gzip -dc minivend-3.11.tar.gz | tar xvf - + cd minivend-3.11 ./configure Long version with comments: # Unzip and untar the file -- if you have GNU tar, you can substitute - # 'tar xzf minivend-3.10.tar.gz' - gzip -dc minivend-3.10.tar.gz | tar xvf - + # 'tar xzf minivend-3.11.tar.gz' + gzip -dc minivend-3.11.tar.gz | tar xvf - # Change directory to the one that was created # - cd minivend-3.10 + cd minivend-3.11 # If you have trouble with picking up the wrong Perl version, # try '/dir/where/perl/is/perl Makefile.PL @@ -115,6 +125,13 @@ Long version with comments: # bin/start +The new catalog installer is at: + + http://the.configured.host:7786/mv_admin + +NOTE: The MiniVend server must be running to use the installer. + We attempt to make this automatic on Windows. 8-) + That should be it. If you have problems, please do what is asked above, and pretty please reference the web site. And @@ -141,15 +158,13 @@ Key things that people sometimes don't understand: space. They are in the catalog directory of the catalog that is in question. - -- The highly interpolative nature of MiniVend and HTML tags - means that interpolation order, not page position order, - is often important when using the OLD tag syntax. - - When using the NEW page syntax, tags are interpreted in - the order they appear on the page. + -- When using the NEW page syntax, the default in this version, + tags are interpreted in the order they appear on the page. - It is strongly recommended that you move to the new syntax, - as MiniVend 4.0 will be removing many of the old tags. + -- It is strongly recommended that you move to the new syntax, + as MiniVend 4.0 will be removing many of the old tags. If you + have pages that will be too much trouble to move, use + [compat][/compat] for now, but even that will go away. -- The first thing to do in setting up a custom MiniVend catalog is to define the database. Everything with MiniVend stems diff --git a/MANIFEST b/MANIFEST index 69631b3f..1f9a976a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -9,17 +9,43 @@ UPGRADE WHATSNEW configure configure.bat +configure.htm dist/README dist/README-win.txt dist/README.OS dist/WHATSNEW -dist/bin/autosplit +dist/admin/catalog.cfg +dist/admin/etc/profiles +dist/admin/mv_admin.cfg +dist/admin/pages/cancel.html +dist/admin/pages/failed.html +dist/admin/pages/flypage.html +dist/admin/pages/hintfile.html +dist/admin/pages/include/address_form +dist/admin/pages/include/base_dir_form +dist/admin/pages/include/cat_dir_form +dist/admin/pages/include/catname_form +dist/admin/pages/include/summary +dist/admin/pages/menu.html +dist/admin/pages/reconfig_results.html +dist/admin/pages/seefile.html +dist/admin/pages/special/noproduct.html +dist/admin/pages/special/notfound.html +dist/admin/pages/special/violation.html +dist/admin/products/database.asc +dist/admin/products/directive.asc +dist/admin/products/locale.asc +dist/admin/products/products.asc +dist/admin/products/wizard.asc +dist/admin/session/.empty +dist/admin/subs.cfg dist/bin/buildtree dist/bin/check dist/bin/checkstat.sh dist/bin/compact dist/bin/dump dist/bin/expire +dist/bin/expireall dist/bin/htpasswd.pl dist/bin/ifdef dist/bin/localize @@ -45,17 +71,10 @@ dist/manifest dist/minivend.cfg.dist dist/simple/catalog.cfg dist/simple/config/.empty -dist/simple/etc/order.number dist/simple/etc/order.profiles dist/simple/etc/report dist/simple/etc/search.profiles -dist/simple/html/bullet.gif -dist/simple/html/frtoc.html dist/simple/html/index.html -dist/simple/html/minivend.html -dist/simple/html/nav.html -dist/simple/html/ord/basket.html -dist/simple/html/toc.html dist/simple/images/00-0011.jpg dist/simple/images/00-341.jpg dist/simple/images/00-342.jpg @@ -68,19 +87,26 @@ dist/simple/images/artstore.gif dist/simple/images/bg.gif dist/simple/images/blue_pap.gif dist/simple/images/browse.gif +dist/simple/images/browse_up.gif dist/simple/images/button_y.gif +dist/simple/images/checkout.gif +dist/simple/images/checkout_up.gif dist/simple/images/contents.gif +dist/simple/images/contents_up.gif dist/simple/images/details.gif +dist/simple/images/details_up.gif dist/simple/images/home.gif +dist/simple/images/home_up.gif dist/simple/images/new.gif dist/simple/images/ordernow.gif +dist/simple/images/ordernow_up.gif dist/simple/images/staircase.jpg dist/simple/images/redball.gif dist/simple/images/search.gif +dist/simple/images/search_up.gif dist/simple/images/tshirt.gif dist/simple/images/undercon.gif dist/simple/images/web_srch.gif -dist/simple/locale.fr_FR dist/simple/pages/browse.html dist/simple/pages/browse1.html dist/simple/pages/buttonbar.html @@ -106,6 +132,8 @@ dist/simple/pages/results.html dist/simple/pages/special/badsearch.html dist/simple/pages/special/canceled.html dist/simple/pages/special/cc_not_valid.html +dist/simple/pages/special/confirmation.html +dist/simple/pages/special/control.html dist/simple/pages/special/failed.html dist/simple/pages/special/interact.html dist/simple/pages/special/missing.html @@ -136,6 +164,7 @@ dist/simple/products/NextDayAirSaver.csv dist/simple/products/accessories.asc dist/simple/products/country.asc dist/simple/products/inventory.asc +dist/simple/products/locale.asc dist/simple/products/pricing.asc dist/simple/products/products.asc dist/simple/products/salestax.asc @@ -158,8 +187,10 @@ dist/src/tlink.pl dist/src/vlink.c dist/src/vlink.pl dist/userdb.cfg +doc/bullet.gif doc/frtoc.html doc/intro.html +doc/maxivend.html doc/minivend.html doc/nav.html doc/toc.html @@ -171,6 +202,7 @@ extra/File/Spec/VMS.pm extra/File/Spec/Win32.pm extra/HTML/Entities.pm extra/IniConf.pm +extra/URI/URL.pm lib/Vend/Cart.pm lib/Vend/Config.pm lib/Vend/Data.pm diff --git a/Makefile.PL b/Makefile.PL index 041ddd7c..61b7511e 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -26,7 +26,7 @@ my @mods_to_get; my $Lock_troubles; my $Windows; -$VERSION = '3.10'; +$VERSION = '3.11'; # See if we have the CPAN module my $Cpan = 0; @@ -80,6 +80,8 @@ if($TermRead) { }; } +my $ActiveState; + if($Config{osname} eq 'solaris') { eval { require 5.004 or require File::Lock }; if($@) { @@ -94,13 +96,33 @@ elsif($Config{osname} =~ /win32/i) { if($@) { print <{makepl_arg} = "INSTALLPRIVLIB=$libdir/lib INSTALLARCHLIB=$libdir/lib INSTALLSITELIB=$libdir/lib INSTALLMAN1DIR=none INSTALLMAN3DIR=none INSTALLSITEARCH=$libdir/lib INSTALLDIRS=perl"; - return install($module); + $CPAN::Config->{keep_source_where} = "$libdir/src" + unless -w $CPAN::Config->{keep_source_where}; + $CPAN::Config->{cpan_home} = "$libdir/src" + unless -w $CPAN::Config->{cpan_home}; + $CPAN::Config->{build_dir} = "$libdir/src" + unless -w $CPAN::Config->{build_dir}; + return CPAN::install($module); } sub initialize { @@ -319,7 +355,7 @@ EOF } $realdir ||= $mvdir[0]; $realdir=my_prompt("Where is your MiniVend to be installed? ",$realdir); - + print "\n"; $realdir =~ s:[\\/]\s*$::; $X{INSTALLARCHLIB} = "$realdir/lib"; $X{INSTALLPRIVLIB} = "$realdir/lib"; @@ -328,11 +364,46 @@ EOF $X{INSTALLDIRS} = "perl"; if($Windows) { + ACTIVEGET: { + last ACTIVEGET unless @mods_to_get; + unless( -f "_active_tried" or ! $ActiveState) { + print <_active_tried" and close TMP; + active_get(@mods_to_get); + } + } + my $dosdir = $realdir; + $dosdir =~ s:/:\\:g; open(WINBAT, ">configure2.bat") or die "create configure2.bat: $!\n"; print WINBAT <; @@ -477,6 +565,9 @@ EOF for(@extra_lib_files) { push @files, "lib/$_"; } + for(@extra_doc_files) { + push @files, $_; + } $ = 0; if($Windows) { my $dll_source = "win/cygwin.dll"; @@ -570,15 +661,32 @@ EOF File::Copy::copy('win/POSIX.pm', 'lib/POSIX.pm') or die "File::Copy::copy error 'win/POSIX.pm': $!\n"; - File::Copy::copy('Start MiniVend Server.pif', 'dist') - or die "File::Copy::copy error 'Start MiniVend Server.pif': $!\n"; - File::Copy::copy('Make MiniVend Catalog.pif', 'dist') - or die "File::Copy::copy error 'Make MiniVend Catalog.pif': $!\n"; + @winfiles = grep m:^lib/:, @files; + eval { + File::Copy::copy('Start MiniVend Server.pif', 'dist') + or die "File::Copy::copy error 'Start MiniVend Server.pif': $!\n"; + File::Copy::copy('Make MiniVend Catalog.pif', 'dist') + or die "File::Copy::copy error 'Make MiniVend Catalog.pif': $!\n"; + push @winfiles, 'Start MiniVend Server.pif'; + push @winfiles, 'Make MiniVend Catalog.pif'; + }; + if ($@) { + my $windir = $realdir; + $windir =~ s:/:\\:g; + print < "MiniVend", + "DISTNAME" => "minivend", "MAN1PODS" => {}, - "dist" => { SUFFIX => ".gz", DIST_DEFAULT => 'all tardist', - COMPRESS => "gzip -9f", ZIP_FLAGS => '-pr9' }, + "dist" => { + CI => "ci -l -t-Initial", + SUFFIX => ".gz", + DIST_DEFAULT => 'all tardist', + COMPRESS => "gzip -9f", + ZIP_FLAGS => '-pr9', + }, VERSION_FROM => "dist/bin/minivend", EXE_FILES => [], CONFIGURE => \&initialize, diff --git a/README b/README new file mode 100644 index 00000000..816ce8cd --- /dev/null +++ b/README @@ -0,0 +1,339 @@ +# MiniVend V3.11 +# +# Copyright 1996-1998 by Michael J. Heins +# +# Based on Vend 0.2 +# Copyright 1995 by Andrew M. Wilcox +# +# Portions from Vend 0.3 +# Copyright 1995,1996 by Andrew M. Wilcox +# +# This program is free software; you can redistribute it +# and/or modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, +# USA. + +Welcome to MiniVend, originally based on Vend. This program is +completely unsupported, without warranty of any kind. The author is +interested in problems, suggestions, or comments, but does not have time +to offer free individual support in most cases. See the MiniVend website at +http://www.minivend.com/minivend/ for more information. + + IMPORTANT NOTE: MiniVend 3.11 requires Perl 5.004 or higher. + (It will probably work with 5.003 on some UNIX systems and *may* + work with Perl 5.002 -- IF you comment out any lines which + contain "use locale;". Neither are supported.) + +The information you need is in the following files: + + README Copyright info, roadmap to installation + and pointers to support system + + Copying Your MiniVend license -- please read. + + INSTALL Installation instructions + + README.OS OS-specific information, if any + + doc/ The MiniVend documentation. + + WHATSNEW Change information for all versions in this + version family. + + MANIFEST List of all core distribution files. + +Major files/directories in the distribution: + + configure + configure.bat + Makefile.PL The installation scripts. Try typing "./configure" + or "configure" to install. + + dist/ The distribution files, exclusive of library + modules. Includes: + + minivend.cfg.dist Distribution minivend.cfg + simple/ The simple demo application. + bin/ Executables including scripts + src/ C and Perl code for CGI links + + doc/ The documentation. + + lib/ The library modules needed to run MiniVend. + + win/ Windows-specific files + +-------------------------------------------------------------- + + M I N I V E N D + + MiniVend is a full-featured electronic catalog system (commonly known + as a shopping cart) with online ordering capability. It is designed to + provide an interface complete with SSL security and full database + support. + + MiniVend is freely-redistributable under the GNU General Public + License -- you can download it via FTP. + + MiniVend 3.0 Features + + * Users maintain a "shopping cart" for ordered items + * Multiple independent or shared catalogs allow one server + to run many storefronts or a "mall" + * SSL support means secure and practical credit card ordering + * PGP support for secure off-site mailing of orders + * Catalogs can be of almost unlimited size with excellent + performance + * Multi-server mode for very high capacity on systems with + sufficient memory + * Cookie support allows browsers to leave catalog and come + back without losing session state + * Complete addressable database support with virtually + unlimited rows and columns + * Complete SQL support including ODBC + * Many, many, other features + + Powerful search capability + + * One-click scan and search -- build a whole search in a single HREF + * Versatile built-in text search + * Complete Glimpse interface + * Fast binary search + * Range searching, numeric and alphanumeric + * Search sorting with reverse, numeric and case-insensitive options + * Independent field search selection and return + * Search any file, build results from any database + + Complete control of appearance + + * Full frames support + * Catalog pages automatically selected -- either built + "on the fly" from the database or pre-made for popular items + * The on-the-fly page is selectable from the database + * Embedded Perl and conditional HTML allow complex and + flexible catalog pages to be completely built from + the database + + Flexible Ordering Process + + * Multi-level order screens with configurable field + verification + * Multiple shopping carts per catalog, allows both buy + and sell operations + * Shipping calculation, mixed modes, with UPS table lookup + * Sales tax calculation, with fully independent non-taxable + item and taxed shipping + * PGP encryption of credit card information or + the entire emailed order + * Fully-configurable discounts with coupons or + across-the-board discounts + * Fully-configurable quantity pricing + * Fully-configurable item price adjustments + * Sophisticated back end order entry capability including CyberCash(R) + * Full client-side imagemap support, including frame targets and form + submits + * Fully configurable order reports and receipts + + Easy Administration + + * Automated installation and configuration + * Runs under Perl 5.004, Windows, and almost any UNIX + * Designed to be secure + * Offline database builds + * Static page build option for high performance + * Works well with all browsers + + +------------------------------------------------------------------- + + D E M O + +There is a simple demo application included. + +To install the demo, go to the MiniVend installation directory +and run: + + bin/makecat simple + +Follow the prompts and after restarting the MiniVend server you +should be able to access the demo catalogs. + +------------------------------------------------------------------- + + A V A I L A B I L I T Y + A N D + C O M P A T I B I L I T Y + +MiniVend has been well-tested on Solaris 2, SunOS, Linux, HP-UX, +BSDI, FreeBSD, and OSF/Alpha. It also reportedly runs on SCO, +AIX, and other Unix ports. It should work on any UNIX or Win32 +OS with Perl 5.004 or higher. It may run with Perl 5.003 or +Perl 5.002, but the author disavows all responsibility for +the results. + +IMPORTANT NOTE FOR WINDOWS: MiniVend will NOT run with the +ActiveState port, otherwise known as 5.003 build 1XX. It +REQUIRES, repeat REQUIRES, the standard version Perl 5.004. See +http://www.perl.com/ for information on how to obtain it. + +Windows does not support fork(), so the server runs in the +foreground. You need the DB_File module for best results, +and that is not included in the standard distribution. You can +get it at http://www.perl.com/CPAN-local (or any CPAN archive) +in the ports/win32/Standard/x86/ directory. + +BSDI and FreeBSD are known to have problems with Perl socket +code, which MiniVend relies heavily upon. You will probably +need to run in INET/TLINK mode instead of UNIX/VLINK mode. + +------------------------------------------------------------- + + I N S T A L L A T I O N + +WINDOWS INSTALLATION +-------------------- + + Obtain the self-extracting executable minivend-3.11.exe + and double-click on it. You MUST already have Perl 5.004 + INSTALLED and in your PATH. + + Alternatively, you can unzip the file yourself and run + "setup". + +UNIX INSTALLATION +------------------ +Here is the short version: + + gzip -dc minivend-3.11.tar.gz | tar xvf - + cd minivend-3.11 + ./configure + +More information is in the file INSTALL. + +-- WHEN IN DOUBT, RE-START THE SERVER. It won't take but a few + seconds, and changes in configurable options don't take effect + until it is done. You may even change a page and not see the + effect until the server is restarted. + +------------------------------------------------------------- + + D O C U M E N T A T I O N + +The documentation is in 2 files in the doc/ subdirectory of +the main MiniVend directory: + + toc.html Table of contents + minivend.html Main documentation file + +These files will be copied to the same HTML directory as +the simple demo gateway files -- they would normally +be referenced as: + + http:/www.yourserver.com/simple/toc.html + +------------------------------------------------------------- + + K N O W N P R O B L E M S + +RedHat Linux 5.0: + RedHat Linux 5.0 has a bad Perl distribution that causes + problems with POSIX. The real solution is to obtain the + latest.tar.gz file from CPAN and build a new Perl. Here + is the script to do that once you have obtained the + latest.tar.gz file: + + tar xzf latest.tar.gz + cd perl5.004* + perl -pi.dist -e \ + "s:/ bsd / /:/ net / /' | sed -e 's/ bsd / c g /:; \ + s/^#(POSIX_cflags)/POSIX_cflags/" \ + hints/linux.sh + ./Configure -des && make test + + That should get you a Perl which passes make test + one hundred percent and that works with MiniVend and + other programs which use the POSIX library. After + you have verified the "make test" passes fully + you should of course su to root and "make install". + + This may soon be corrected by the Perl porters or by + RedHat, so bear in mind this is time-sensitive. The above + works well as of Jun. 3, 1998. + +IRIX, Solaris, Digital UNIX: + The server may not terminate immediately, + as the select() call blocks signals. It + will stop at the next request, or at the + end of the occasional houskeeping + cycle, set by the directive HouseKeeping in + minivend.cfg. Set to less than 10 to achieve + decent response. + +BSDI, FreeBSD: + The BSDI library code is not safely re-entrant + when used in combination with signals, so no + signals are sent during server usage. This is + transparent to the user. + + MiniVend may not as of this writing work with + BSDI 3.0 in UNIX mode, so you should use the INET + mode and the tlink program. This is the catalog + configurator default. + + If the kernel parameter CHILD_MAX is not configured + above the default of 40, expect problems. Same with + SO_MAXCONN and some other kernel parameters. + +Solaris: + If you are trying to run with Perl 5.003, which is + NOT recommended, you must use the File::Lock + module -- flock() emulation in Perl 5.003 does not + work properly, and fcntl() locking must be used. + This version of MiniVend includes File::Lock, + and attempts to install it. + + Solaris 2.4 has problems with UNIX-domain sockets + and you can expect problems. Bottom line is that + I will not support Solaris releases before 2.5, nor + Perl before 5.004. + + You may not use OrderCounter when running Perl + 5.003 and Solaris. + + If you have Perl 5.004 you can disregard File::Lock. + + It is STRONGLY RECOMMENDED that you update to Perl 5.004 + when running on Solaris. + +Windows: + This is a new port, and just a few things don't work the + same as UNIX. See the README-win.txt file for more information. + +--------------------------------------------------------------------- + +I, the author, am very interested in learning your problems with +MiniVend, and am interested in clarifying the documentation for +future improvements. I am not much interested in BEING your +documentation, though, unless you pay well and promptly. Please +send kudos, comments, questions, and complaints to: + + mikeh@minivend.com + +Note that I receive thousands of emailed questions per year and cannot +answer them all. The more research you do on your own the more likely +I am to respond. Helpful suggestions and real bug reports are almost +always acknowledged. + +Good luck with MiniVend! + diff --git a/README-win.txt b/README-win.txt new file mode 100644 index 00000000..a9dc5a0b --- /dev/null +++ b/README-win.txt @@ -0,0 +1,187 @@ +# MiniVend V3.11 +# +# Copyright 1996-1998 by Michael J. Heins +# +# Largely based on Vend 0.2 +# Copyright 1995 by Andrew M. Wilcox +# +# Portions from Vend 0.3 +# Copyright 1995,1996 by Andrew M. Wilcox +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +------------------------------------------------------------- + M I N I V E N D O N W I N D O W S + + System Requirements: + + * Windows 95, 98 or Windows NT. Tested on Windows 95 OSR2 + and NT 4.0 workstation. + + * Perl 5.004 for Win32 or higher -- accept no substitutes. THIS + PROGRAM WILL RUN ON NO EARLIER VERSION OF PERL. PERIOD. It + will not run on the ActiveState port build 3xx series; it + does appear to run very well with the "Merge" of the build + 500 series. The version you probably want is also variously + known as the "CORE", "Standard", or "Gurusamy Sarathy" version. + + * Web server. Almost any that has CGI capability + should work. Tested on Microsoft Personal Web Server, + NT IIS, and OmniHTTPD. + + * Memory, memory, memory -- best guess is that things + will not run well on less than 32 MB of RAM, but your + mileage may vary. I don't trust the Windows system + performance indicator, as it indicates 86% free RAM on + my machine with 32M while MiniVend is running. I find + it hard to believe. That is the smallest RAM machine + I have, and MV ran fine on it -- it is a 486DX/100. + + IMPORTANT NOTE: + + If you use the Windows notepad or other editor which + willy-nilly adds carriage returns, and you edit + configuration files that may contain Perl code, or + that use EOF markers, or have data, you may have to + remove carriage returns before running MiniVend. If + you have problems, perform the following commands from the + DOS prompt: + + perl -npi.bak -e "s:\r::g" + + The error "illegal character \015" would be an indication + of this problem. + + There are also reports that using DOS edit causes problems + with profiles. + + Prior to Installation: + + 1. Make sure Perl 5.004 is fully installed. Perl 5.004 + is mandatory -- you can get it at: + + http://www.perl.com/CPAN/ports/win32/Standard/x86/ + + A list of CPAN sites is always available at: + + http://www.perl.com/CPAN + + 2. From the same place you obtained Perl 5.004, get the + DB_File module, latest version of which is 1.54 + at this writing. Install it according to the + instructions in the README.NOW file. + + If you have the ActiveState Perl 5.005, it should + work OK once you use the PPM (find it in your + /perl/5.005XX/bin/ppm.pl) and get the following + modules: + + DB_File + MIME-Base64 + libwww + + The last two are to allow the new internal HTTP + server to work and provide a semi-GUI installation. + + MiniVend might run without OK without DB_File, but + the user database will not be persistent and there + will be other anomalies. + + 3. Obtain and install BLAT if you wish to + send emailed orders. + + http://gepasi.dbs.aber.ac.uk/softw/Blat.html + + Adjust the catalog.cfg parameter SendMailProgram + according to the path that you install it at -- MiniVend + should find it if it is in your path, and append the + right options. An example of a SendMailProgram: + + SendMailProgram blat - -t + + (You must run 'blat -install' before it will work. Try + testing blat from the command line if your order is + not sent.) + + Installation: + + 1. Download the minivend-3.11.exe distribution file + and run it in the normal Windows fashion. + + ( If you don't want to execute the self-extracting ZIP file, + then you can obtain the standard minivend-3.11.tar.gz file and + install that instead. ) + + You will have to obtain the CYGWIN.DLL file if you want to + use TLINK.EXE as your link CGI. The standard distribution .EXE + file has it included -- the minivend-3.11-nodll.exe file + eliminates it. + + 2. Select a directory to install MiniVend in -- it defaults + to /mvend on the default hard drive but you may put it anywhere. + + 3. You will need to know where your Web document root and + CGI directories are located. The defaults are set for + Microsoft personal web server. + + 4. If your catalog is for testing purposes, you can + use the server name "127.0.0.1". If you want the catalog + to be accessible from the outside world, you will have + to enter a valid IP address or server name. + + 5. MiniVend will run as a service if you set it up with + srvany.exe or a similar program. Because the server + is single-tasked, it is recommended that you set up + a system agent to shut down the MV server, expire the + session database, and restart at least once per day. + (Expiration will always be needed to prevent the DBM files + or session directories from getting too big, and possible + memory leaks in Safe.pm make this a good idea anyway.) + + 6. Be careful of long-running searches -- because the server + will not handle multiple simultaneous requests as it does + on UNIX, searches will hold off user access. It is recommended + that you break your results pages into small (less than the + default 50-result) chunks by setting mv_matchlimit. + +------------------------------------------------------------- + + W I N D O W S D I F F E R E N C E S + + * ODBC works fine, but you will need to have the + DBI::ODBC module properly installed. DBI also works + with MS SQL Server according to user reports. + + * No fork() on Windows means that only one server + can run at a time. This means multiple requests + will be queued. In any case, lack of file locking + would mean big problems for multiple servers. Perl's + threading is too experimental to do the work required + to make MV thread-safe. + + * Some of the support scripts will not work, and some + might not behave as in the documentation. In particular, + the expire script must not be run while the server + is running, as no file locking is available. + + * You will need to hit Ctrl-C twice to stop the server + with some ports of Perl. If you can't stop the server, + close the DOS box. + + * Memory leaks in the Safe.pm module may mean that + you will need to restart the server due to running + out of memory. It is recommended that you shutdown + and restart at least once a day. + diff --git a/README.OS b/README.OS new file mode 100644 index 00000000..3598279f --- /dev/null +++ b/README.OS @@ -0,0 +1,88 @@ +# MiniVend V3.11 +# +# Copyright 1996-1998 by Michael J. Heins +# + + M I S C E L L A N E O U S + O S N O T E S + +OS Recommended DBM Tested on Notes +-------- ----------------- ------------ ----------------------- +Linux GDBM 2.0.x & up This is what MiniVend is + developed on -- all features + should work normally. + + IMPORTANT NOTE FOR REDHAT 5.0: + If MiniVend fails "make test" this usually means that the POSIX + library is broken on the distributed Perl. You can update + Perl or define the environment variable MINIVEND_BADPOSIX to 1. + See the README file under "K N O W N P R O B L E M S" + + +Windows 95 DB_File ????? MiniVend may not stand up + well for high-use + catalogs. Server will not stop + from the keyboard, you must close + the DOS window to stop (unless + you get the GNU toolset or + use the ActiveState "Merge"). + + +Windows NT DB_File ????? Some features of MiniVend + will not work, mostly in + support scripts. MiniVend + will run as a service. + + +FreeBSD DB_File 2.1.0, 2.1.5 Many users run MiniVend on + this OS. You need Perl 5.004, + not the broken developement + version that comes with many + distributions. + + +BSDI DB_File 2.1, 3.0 Many users run MiniVend on + this OS. The vlink UNIX mode + will not work with V3.x but + tlink/INET works fine. You + need Perl 5.004 -- the + 5.003_02 that comes with 3.x + probably will not work. + + +Solaris 2 GDBM 2.4,2.5 Many users run MiniVend on + this OS, no known problems + once you get it going. + Problems with installation + are usually due to poor or + missing development tools. + +SunOS 4.1.x DB_File 4.1.x Some users run MiniVend on + this OS, no known problems. + + +DEC/OSF, aka GDBM 3.0 Some users run MiniVend on +Digital UNIX this OS, no known problems. + + +IRIX GDBM 5.3,6.2 Server may be difficult to + stop for re-configuration, + setting HouseKeeping value to + 10 or less is recommended. No + other known problems provided + you have good development + tools. + + +HP/UX - 10.1 A few users, may be some + trouble with vlink/tlink + compilation. + + +SCO - 3.2 Should work fine as of 3.05 + +AIX - 4.1 Reported to work with little + difficulty + +UNIXware - 2.1 Should work fine as of 3.05 + diff --git a/WHATSNEW b/WHATSNEW new file mode 100644 index 00000000..3bff4f5f --- /dev/null +++ b/WHATSNEW @@ -0,0 +1,940 @@ + + W H A T ' S N E W + +MiniVend 3.11 is a major release enhancing many aspects of installation, +product pricing, secure authorization, searching, and database updates. + + * New experimental internal HTTP server means very fast + request handling direct from the browser, and built-in + internal security for admin tasks and protected catalog + pages. Will authorize users from the add-in userdb database + or any other MiniVend database. Supports crypt, minimal + access logging. + + This internal HTTP server is not meant for production use. + It may have difficulty with MS Internet Explod^Her. + + * New catalog configuration "wizard" and admin interface + built in. The installation should be a one-step + operation, completely automatic providing you have + the MIME::Base64 and URI::URL modules. + + * New mv_admin catalog implements HTTP-based reconfiguration + from a central place. Tags provided for you to gate it + for individual users. + + * CPAN module installation improved. + + * The makecat script now can be completely run from the command + line, no interactive steps necessary. Values can be partially + filled in from the command line and you will be prompted + for the rest. A "guess" mode returns a reference as a + string guessing certain parameters from the ones you + supply. And you can do a --nocopy test run to check the + results before you actually copy the files. + + Unfortunately the only documentation is the usage message. + + * Makecat program adds catalogs to a running server. + + * German error messages added to error locale file (thanks to + Karsten Mueller). + + * New CommonAdjust price setting scheme allows chained + conditional lookups in pricing, shipping, and taxing. Added + mv_price attribute for easy setting of prices in embedded + Perl. Added [discount-subtotal] tag which will reliably give + an item subtotal with discounts applied. New mv_discount + attribute allows individual line item discounts. + + * TemplateDir (both local and global) allows missing + pages to "fall back" to other places. This allows + a catalog distribution that might only contain one + or two pages. + + * Added LocaleDatabase, VariableDatabase, and DbDatabase; + these allow setting of the Locale, Variable, and Database + directives from a database table. This will allow maintenance + improvements (they still only change value on startup or + reconfigure.) + + LocaleDatabase is implemented in the demo. + + * Added support for CyberCash 3 (thanks to Gunnar Hellekson), + AUTHORIZE.NET, and PAYMENTNOW.COM. + + * New [goto LABEL] and [label LABEL] allow chunks of a + page to be skipped. + + * DB_File databases can be automatically compacted with + the expire program; a standalone "compact" script is + also provided. + + * Added PIDcheck global directive to allow monitoring of + "hung" processes. This should make MiniVend more reliable + especially in combination with Glimpse searching. + + * Text search engine now will combine binary searching with + database-based searches. New mv_search_map allows reliable + coordinated searchspecs even with empty search specifications. + + * Fixed multi-page sorting problems that were in MiniVend + since 3.00. + + * Added new WideOpen directive so that catalogs can individually + be set to tolerate no IP address qualification. It is named + that because that is what you will be; you should not use this + if you ever store unencrypted credit cards (or other sensitive + info). It is also recommend that you shorten your expire time + to a small number of hours, maybe even 1 or 2. + + * Added new FallbackIP directive to allow quasi-cookie capability + by IP address and browser id string. Use if you have lots of + users who don't take/give cookies. Suggest also that expire + times be made short, though two users would have to have the + same exact browser string and IP address. It will work with + cookies if they have them. + + * Added va=var=value parameter to one-click search so you + can set a value with a link. + + * Allow deletes with form database maintenance (mv_data_*). + Added mv_data_decode to gate HTML::Entities decoding of data; + this will allow easy and reliable display of multi-line fields + in a