Browse files

Initial import of changed Challenger with UI instead of Minimate.

  • Loading branch information...
0 parents commit 5550c3ad9fbef4e473d902625e777b6497f445a9 @perusionmike perusionmike committed May 26, 2000
Showing with 14,505 additions and 0 deletions.
  1. +9 −0 .cvsignore
  2. +340 −0 LICENSE
  3. +762 −0 MANIFEST
  4. +46 −0 MANIFEST.SKIP
  5. +737 −0 Makefile.PL
  6. +211 −0 README
  7. +198 −0 README.rpm
  8. +197 −0 SPECS/minivend-4.04.spec
  9. +56 −0 SPECS/minivend-docs-4.04.spec
  10. +566 −0 WHATSNEW
  11. +105 −0 configure
  12. +1 −0 dist/barry/.cvsignore
  13. +461 −0 dist/barry/catalog.cfg
  14. +1 −0 dist/barry/config/.empty
  15. +63 −0 dist/barry/config/additional_fields
  16. +72 −0 dist/barry/config/additional_help
  17. +9 −0 dist/barry/config/copyright
  18. +126 −0 dist/barry/config/leftside
  19. +49 −0 dist/barry/config/logobar
  20. +7 −0 dist/barry/config/menubottom
  21. +10 −0 dist/barry/config/no_left
  22. +6 −0 dist/barry/config/no_right
  23. +13 −0 dist/barry/config/precopy_commands
  24. +41 −0 dist/barry/config/rightside
  25. +2 −0 dist/barry/config/standard_defs
  26. +97 −0 dist/barry/etc/log_transaction
  27. +101 −0 dist/barry/etc/mail_receipt
  28. +29 −0 dist/barry/etc/profiles.login
  29. +95 −0 dist/barry/etc/profiles.order
  30. +283 −0 dist/barry/etc/receipt.html
  31. +95 −0 dist/barry/etc/report
  32. +1 −0 dist/barry/html/.empty
  33. +483 −0 dist/barry/html/index.html
  34. BIN dist/barry/images/99button.gif
  35. BIN dist/barry/images/KHS.soft99.jpg
  36. BIN dist/barry/images/KHS.team99.jpg
  37. BIN dist/barry/images/RST.381R.jpg
  38. BIN dist/barry/images/SRAM.90brakes.jpg
  39. BIN dist/barry/images/aardvarkbackground.gif
  40. BIN dist/barry/images/admin/b-configure2.gif
  41. BIN dist/barry/images/admin/b-help2.gif
  42. BIN dist/barry/images/admin/b-items2.gif
  43. BIN dist/barry/images/admin/b-orders2.gif
  44. BIN dist/barry/images/admin/b-pages2.gif
  45. BIN dist/barry/images/admin/b-regenerate2.gif
  46. BIN dist/barry/images/admin/b-statistics2.gif
  47. BIN dist/barry/images/admin/back.sm.gif
  48. BIN dist/barry/images/admin/bluedot.gif
  49. BIN dist/barry/images/admin/cleardot.gif
  50. BIN dist/barry/images/admin/coinlogo.jpg
  51. BIN dist/barry/images/admin/curve_left.gif
  52. BIN dist/barry/images/admin/curve_right.gif
  53. BIN dist/barry/images/admin/delete.gif
  54. BIN dist/barry/images/admin/greendot.gif
  55. BIN dist/barry/images/admin/icon_config.gif
  56. BIN dist/barry/images/admin/icon_help.gif
  57. BIN dist/barry/images/admin/icon_item.gif
  58. BIN dist/barry/images/admin/icon_orders.gif
  59. BIN dist/barry/images/admin/icon_pages.gif
  60. BIN dist/barry/images/admin/icon_regen.gif
  61. BIN dist/barry/images/admin/icon_regen_anim.gif
  62. BIN dist/barry/images/admin/icon_stats.gif
  63. BIN dist/barry/images/admin/plus.gif
  64. BIN dist/barry/images/admin/red_logo.gif
  65. BIN dist/barry/images/admin/reddot.gif
  66. BIN dist/barry/images/admin/tallyman_logo.gif
  67. BIN dist/barry/images/admin/tan_logo.gif
  68. BIN dist/barry/images/admin/widgets.gif
  69. BIN dist/barry/images/aspen.gif
  70. BIN dist/barry/images/avid.arch50.jpg
  71. BIN dist/barry/images/banner.gif
  72. BIN dist/barry/images/barbntrini.gif
  73. BIN dist/barry/images/barend.black.jpg
  74. BIN dist/barry/images/best.gif
  75. BIN dist/barry/images/buzz.jpg
  76. BIN dist/barry/images/charlesnfox.gif
  77. BIN dist/barry/images/chrono.deepV.jpg
  78. BIN dist/barry/images/comp.bars.jpg
  79. BIN dist/barry/images/comp.bb.jpg
  80. BIN dist/barry/images/comp.brakes.jpg
  81. BIN dist/barry/images/comp.casette.jpg
  82. BIN dist/barry/images/comp.chain.jpg
  83. BIN dist/barry/images/comp.cranks.jpg
  84. BIN dist/barry/images/comp.der.jpg
  85. BIN dist/barry/images/comp.ends.jpg
  86. BIN dist/barry/images/comp.grips.jpg
  87. BIN dist/barry/images/comp.headest.jpg
  88. BIN dist/barry/images/comp.hubs.jpg
  89. BIN dist/barry/images/comp.levers.jpg
  90. BIN dist/barry/images/cream.gif
  91. BIN dist/barry/images/custom.gif
  92. BIN dist/barry/images/dirk_anim_blue_trn.gif
  93. BIN dist/barry/images/george.gif
  94. BIN dist/barry/images/go.gif
  95. BIN dist/barry/images/housefelt.gif
  96. BIN dist/barry/images/jurassic.gif
  97. BIN dist/barry/images/kore.elite.stem.jpg
  98. BIN dist/barry/images/lp.barends.jpg
  99. BIN dist/barry/images/lp.braids.big.jpg
  100. BIN dist/barry/images/lp.braids.jpg
  101. BIN dist/barry/images/lp.team.jpg
  102. BIN dist/barry/images/man.99sxti.GIF
  103. BIN dist/barry/images/manhattan.gif
  104. BIN dist/barry/images/mystery.gif
  105. BIN dist/barry/images/newsubtitle.gif
  106. BIN dist/barry/images/newtitle.gif
  107. BIN dist/barry/images/next.gif
  108. BIN dist/barry/images/oklahoma.gif
  109. BIN dist/barry/images/panaracer.mach.gif
  110. BIN dist/barry/images/pedal.jpg
  111. BIN dist/barry/images/racing.gif
  112. BIN dist/barry/images/rf.lpcrank.jpg
  113. BIN dist/barry/images/rf.system.jpg
  114. BIN dist/barry/images/river.gif
  115. BIN dist/barry/images/shimano.pedal.434.JPG
  116. BIN dist/barry/images/shimano.pedal.jpg
  117. BIN dist/barry/images/shimano.xtr.jpg
  118. BIN dist/barry/images/shoebox.gif
  119. BIN dist/barry/images/shoeleather.gif
  120. BIN dist/barry/images/smallamex.png
  121. BIN dist/barry/images/smalldisc.png
  122. BIN dist/barry/images/smallmc.png
  123. BIN dist/barry/images/smallvisa.png
  124. BIN dist/barry/images/spinergy.spox.jpg
  125. BIN dist/barry/images/standard_images/btab-l.gif
  126. BIN dist/barry/images/standard_images/btab-r.gif
  127. BIN dist/barry/images/standard_images/cleardot.gif
  128. BIN dist/barry/images/standard_images/order.gif
  129. BIN dist/barry/images/standard_images/tab-l.gif
  130. BIN dist/barry/images/standard_images/tab-r.gif
  131. BIN dist/barry/images/standard_images/topfade.gif
  132. BIN dist/barry/images/starwars.gif
  133. BIN dist/barry/images/sub.banner.brand.gif
  134. BIN dist/barry/images/sub.banner.gif
  135. BIN dist/barry/images/sub.banner.home.gif
  136. BIN dist/barry/images/subnav_e.gif
  137. BIN dist/barry/images/subnav_et_bran.gif
  138. BIN dist/barry/images/subnav_et_cat.gif
  139. BIN dist/barry/images/subnav_et_home.gif
  140. BIN dist/barry/images/subtitle.gif
  141. BIN dist/barry/images/tam0013f.jpg
  142. BIN dist/barry/images/tam0013t.gif
  143. BIN dist/barry/images/tam0014t.gif
  144. BIN dist/barry/images/tam0015t.gif
  145. BIN dist/barry/images/terry.men.gif
  146. BIN dist/barry/images/tire.conti.gif
  147. BIN dist/barry/images/title.gif
  148. BIN dist/barry/images/top.banner.gif
  149. BIN dist/barry/images/topright.gif
  150. BIN dist/barry/images/topright.top.gif
  151. BIN dist/barry/images/ttl-db-ranked.gif
  152. BIN dist/barry/images/women.gif
  153. BIN dist/barry/images/wtb.ssk.gif
  154. BIN dist/barry/images/xtr.cassette.jpg
  155. BIN dist/barry/images/xtrcrank.jpg
  156. BIN dist/barry/images/zinn.gif
  157. +13 −0 dist/barry/mysql/area.mysql
  158. +15 −0 dist/barry/mysql/cat.mysql
  159. +11 −0 dist/barry/mysql/country.mysql
  160. +11 −0 dist/barry/mysql/inventory.mysql
  161. +27 −0 dist/barry/mysql/orderline.mysql
  162. +19 −0 dist/barry/mysql/pricing.mysql
  163. +25 −0 dist/barry/mysql/products.mysql
  164. +15 −0 dist/barry/mysql/shipping.mysql
  165. +53 −0 dist/barry/mysql/transactions.mysql
  166. +57 −0 dist/barry/mysql/userdb.mysql
  167. +1 −0 dist/barry/orders/.empty
  168. +14 −0 dist/barry/pages/about.html
  169. +393 −0 dist/barry/pages/account.html
  170. +88 −0 dist/barry/pages/action/get_password.html
  171. +136 −0 dist/barry/pages/browse.html
  172. +169 −0 dist/barry/pages/browse1.html
  173. +43 −0 dist/barry/pages/canceled.html
  174. +18 −0 dist/barry/pages/contact.us.html
  175. +34 −0 dist/barry/pages/deliver.html
  176. +12 −0 dist/barry/pages/examples/test_banner.html
  177. +86 −0 dist/barry/pages/feedback.html
  178. +77 −0 dist/barry/pages/flypage.html
  179. +35 −0 dist/barry/pages/index.html
  180. +14 −0 dist/barry/pages/last_search.html
  181. +107 −0 dist/barry/pages/login.html
  182. +21 −0 dist/barry/pages/logout.html
  183. +71 −0 dist/barry/pages/multi/b_address.html
  184. +177 −0 dist/barry/pages/multi/basket.html
  185. +214 −0 dist/barry/pages/multi/checkout.html
  186. +183 −0 dist/barry/pages/multi/final.html
  187. +5 −0 dist/barry/pages/multi/nobasket.html
  188. +84 −0 dist/barry/pages/multi/shipping.html
  189. +254 −0 dist/barry/pages/new_account.html
  190. +355 −0 dist/barry/pages/news.html
  191. +15 −0 dist/barry/pages/no_cookie.html
  192. 0 dist/barry/pages/nothing.html
  193. +142 −0 dist/barry/pages/ord/basket
  194. +251 −0 dist/barry/pages/ord/basket.html
  195. +578 −0 dist/barry/pages/ord/checkout.html
  196. +5 −0 dist/barry/pages/ord/nobasket.html
  197. +20 −0 dist/barry/pages/privacy.html
  198. +82 −0 dist/barry/pages/quantity.html
  199. +194 −0 dist/barry/pages/query/check_orders.html
  200. +183 −0 dist/barry/pages/query/order_detail.html
  201. 0 dist/barry/pages/reconfig/.access
  202. +5 −0 dist/barry/pages/reconfig/.access_gate
  203. +63 −0 dist/barry/pages/reconfig/do_download.html
  204. +95 −0 dist/barry/pages/reconfig/do_upload.html
  205. +16 −0 dist/barry/pages/reconfig/reconfig.html
  206. +110 −0 dist/barry/pages/reconfig/upload.html
  207. +74 −0 dist/barry/pages/results.html
  208. +219 −0 dist/barry/pages/shoes.html
  209. +76 −0 dist/barry/pages/special/feedback.html
  210. +46 −0 dist/barry/pages/special/needfield.html
  211. +34 −0 dist/barry/pages/splash.html
  212. +261 −0 dist/barry/pages/srchform.html
  213. +82 −0 dist/barry/pages/subcat.html
  214. +11 −0 dist/barry/pages/view_page.html
  215. +14 −0 dist/barry/pgsql/area.pgsql
  216. +16 −0 dist/barry/pgsql/cat.pgsql
  217. +12 −0 dist/barry/pgsql/country.pgsql
  218. +10 −0 dist/barry/pgsql/inventory.pgsql
  219. +28 −0 dist/barry/pgsql/orderline.pgsql
  220. +20 −0 dist/barry/pgsql/pricing.pgsql
  221. +25 −0 dist/barry/pgsql/products.pgsql
  222. +16 −0 dist/barry/pgsql/shipping.pgsql
  223. +51 −0 dist/barry/pgsql/transactions.pgsql
  224. +61 −0 dist/barry/pgsql/userdb.pgsql
  225. +152 −0 dist/barry/products/2ndDayAir.csv
  226. +152 −0 dist/barry/products/2ndDayAirAM.csv
  227. +151 −0 dist/barry/products/3DaySelect.csv
  228. +151 −0 dist/barry/products/3DaySelectRes.csv
  229. +153 −0 dist/barry/products/450.csv
  230. +151 −0 dist/barry/products/Ground.csv
  231. +151 −0 dist/barry/products/GroundComm.csv
  232. +151 −0 dist/barry/products/GroundRes.csv
  233. +152 −0 dist/barry/products/NextDayAir.csv
  234. +152 −0 dist/barry/products/NextDayAirSaver.csv
  235. +5 −0 dist/barry/products/area.txt
  236. +8 −0 dist/barry/products/banner.txt
  237. +9 −0 dist/barry/products/cat.txt
  238. +197 −0 dist/barry/products/country.txt
  239. +29 −0 dist/barry/products/inventory.txt
  240. +26 −0 dist/barry/products/locale.txt
  241. +4 −0 dist/barry/products/minimate.asc
  242. +14 −0 dist/barry/products/mv_metadata.asc
  243. +1 −0 dist/barry/products/orderline.txt
  244. +30 −0 dist/barry/products/pricing.txt
  245. +34 −0 dist/barry/products/products.txt
  246. +1 −0 dist/barry/products/salestax.asc
  247. +78 −0 dist/barry/products/shipping.asc
  248. +17 −0 dist/barry/products/shipping.txt
  249. +183 −0 dist/barry/products/state.txt
  250. +1 −0 dist/barry/products/transactions.txt
  251. +153 −0 dist/barry/products/ups_zone.asc
  252. +4 −0 dist/barry/products/userdb.txt
  253. +4 −0 dist/barry/products/variable.txt
  254. +1 −0 dist/barry/session/.empty
  255. +14 −0 dist/barry/special_pages/badsearch.html
  256. +17 −0 dist/barry/special_pages/canceled.html
  257. +20 −0 dist/barry/special_pages/cc_not_valid.html
  258. +14 −0 dist/barry/special_pages/confirmation.html
  259. +20 −0 dist/barry/special_pages/failed.html
  260. +60 −0 dist/barry/special_pages/interact.html
  261. +15 −0 dist/barry/special_pages/missing.html
  262. +47 −0 dist/barry/special_pages/needfield.html
  263. +12 −0 dist/barry/special_pages/nomatch.html
  264. +15 −0 dist/barry/special_pages/noproduct.html
  265. +14 −0 dist/barry/special_pages/notfound.html
  266. +24 −0 dist/barry/special_pages/order_security.html
  267. +12 −0 dist/barry/special_pages/reconfig.html
  268. +138 −0 dist/barry/special_pages/sec_faq.html
  269. +32 −0 dist/barry/special_pages/security.html
  270. +72 −0 dist/barry/special_pages/violation.html
  271. +1 −0 dist/barry/tmp/.empty
  272. +1 −0 dist/barry/upload/.empty
  273. +110 −0 dist/basic/catalog.cfg
  274. +1 −0 dist/basic/config/.empty
  275. +55 −0 dist/basic/config/additional_fields
  276. +38 −0 dist/basic/config/additional_help
  277. +97 −0 dist/basic/etc/log_transaction
  278. +101 −0 dist/basic/etc/mail_receipt
  279. +22 −0 dist/basic/etc/profiles.login
  280. +95 −0 dist/basic/etc/profiles.order
  281. +59 −0 dist/basic/etc/receipt.html
  282. +101 −0 dist/basic/etc/report
  283. +1 −0 dist/basic/html/.empty
  284. +58 −0 dist/basic/html/index.html
  285. BIN dist/basic/images/00-0011.jpg
  286. BIN dist/basic/images/00-0011a.png
  287. BIN dist/basic/images/00-341.jpg
  288. BIN dist/basic/images/00-342.jpg
  289. BIN dist/basic/images/00-343.jpg
  290. BIN dist/basic/images/19-203.jpg
  291. BIN dist/basic/images/19-204.jpg
  292. BIN dist/basic/images/21-221.jpg
  293. BIN dist/basic/images/34-101.png
  294. BIN dist/basic/images/chair_car.jpg
  295. BIN dist/basic/images/clear.gif
  296. BIN dist/basic/images/golconde.jpg
  297. BIN dist/basic/images/illumined_pleasures.jpg
  298. BIN dist/basic/images/irises.jpg
  299. BIN dist/basic/images/lastsupp.jpg
  300. BIN dist/basic/images/logo.png
Sorry, we could not display the entire diff because too many files (1,067) changed.
9 .cvsignore
@@ -0,0 +1,9 @@
+_uid
+blib
+build
+Makefile
+pm_to_blib
+build-stamp
+.cpan.tried
+install-stamp
+*.tar.gz
340 LICENSE
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
762 MANIFEST
@@ -0,0 +1,762 @@
+LICENSE
+MANIFEST
+MANIFEST.SKIP
+Makefile.PL
+README
+WHATSNEW
+configure
+dist/basic/catalog.cfg
+dist/basic/config/.empty
+dist/basic/config/additional_fields
+dist/basic/config/additional_help
+dist/basic/etc/log_transaction
+dist/basic/etc/mail_receipt
+dist/basic/etc/profiles.login
+dist/basic/etc/profiles.order
+dist/basic/etc/receipt.html
+dist/basic/etc/report
+dist/basic/html/.empty
+dist/basic/html/index.html
+dist/basic/images/00-0011.jpg
+dist/basic/images/00-0011a.png
+dist/basic/images/00-341.jpg
+dist/basic/images/00-342.jpg
+dist/basic/images/00-343.jpg
+dist/basic/images/19-203.jpg
+dist/basic/images/19-204.jpg
+dist/basic/images/21-221.jpg
+dist/basic/images/34-101.png
+dist/basic/images/chair_car.jpg
+dist/basic/images/clear.gif
+dist/basic/images/golconde.jpg
+dist/basic/images/illumined_pleasures.jpg
+dist/basic/images/irises.jpg
+dist/basic/images/lastsupp.jpg
+dist/basic/images/logo.png
+dist/basic/images/loose_hair.jpg
+dist/basic/images/magnificat.jpg
+dist/basic/images/my_gems.jpg
+dist/basic/images/okeefe1.jpg
+dist/basic/images/okeeffe6.jpg
+dist/basic/images/paul_harlequin.jpg
+dist/basic/images/pol1.jpg
+dist/basic/images/pol2.jpg
+dist/basic/images/smallamex.png
+dist/basic/images/smalldisc.png
+dist/basic/images/smallmc.png
+dist/basic/images/smallvisa.png
+dist/basic/images/tshirt.jpg
+dist/basic/images/two_fridas.jpg
+dist/basic/images/womanfan.jpg
+dist/basic/images/young_man.jpg
+dist/basic/pages/account.html
+dist/basic/pages/basket.html
+dist/basic/pages/browse.html
+dist/basic/pages/canceled.html
+dist/basic/pages/checkout.html
+dist/basic/pages/flypage.html
+dist/basic/pages/index.html
+dist/basic/pages/login.html
+dist/basic/pages/logout.html
+dist/basic/pages/menubar
+dist/basic/pages/new_account.html
+dist/basic/pages/privacy.html
+dist/basic/pages/query/check_orders.html
+dist/basic/pages/query/order_detail.html
+dist/basic/pages/results.html
+dist/basic/pages/srchform.html
+dist/basic/products/2ndDayAir.csv
+dist/basic/products/2ndDayAirAM.csv
+dist/basic/products/3DaySelect.csv
+dist/basic/products/3DaySelectRes.csv
+dist/basic/products/450.csv
+dist/basic/products/Ground.csv
+dist/basic/products/GroundComm.csv
+dist/basic/products/GroundRes.csv
+dist/basic/products/NextDayAir.csv
+dist/basic/products/NextDayAirSaver.csv
+dist/basic/products/country.txt
+dist/basic/products/inventory.txt
+dist/basic/products/minimate.asc
+dist/basic/products/mv_metadata.asc
+dist/basic/products/orderline.txt
+dist/basic/products/products.txt
+dist/basic/products/salestax.asc
+dist/basic/products/shipping.asc
+dist/basic/products/shipping.txt
+dist/basic/products/transactions.txt
+dist/basic/products/ups_zone.asc
+dist/basic/products/userdb.txt
+dist/basic/session/.empty
+dist/basic/special_pages/badsearch.html
+dist/basic/special_pages/canceled.html
+dist/basic/special_pages/cc_not_valid.html
+dist/basic/special_pages/confirmation.html
+dist/basic/special_pages/failed.html
+dist/basic/special_pages/interact.html
+dist/basic/special_pages/missing.html
+dist/basic/special_pages/needfield.html
+dist/basic/special_pages/nomatch.html
+dist/basic/special_pages/noproduct.html
+dist/basic/special_pages/notfound.html
+dist/basic/special_pages/order_security.html
+dist/basic/special_pages/reconfig.html
+dist/basic/special_pages/sec_faq.html
+dist/basic/special_pages/security.html
+dist/basic/special_pages/violation.html
+dist/basic/tmp/.empty
+dist/basic/upload/.empty
+dist/build/makecat.redhat
+dist/build/makedirs.redhat
+dist/compat/body
+dist/compat/buttonbar
+dist/compat/form_mail.cfg
+dist/compat/help
+dist/compat/random_rotate
+dist/error.log
+dist/etc/.empty
+dist/lib/UI/Primitive.pm
+dist/lib/UI/ui.cfg
+dist/lib/UI/tags/unconfigure
+dist/lib/UI/tags/rotate_file
+dist/lib/UI/tags/read_serial
+dist/lib/UI/tags/list_glob
+dist/lib/UI/tags/list_pages
+dist/lib/UI/tags/directive_value
+dist/lib/UI/tags/ifdef
+dist/lib/UI/tags/ifndef
+dist/lib/UI/tags/list_keys
+dist/lib/UI/tags/list_databases
+dist/lib/UI/tags/if_key_exists
+dist/lib/UI/tags/db_columns
+dist/lib/UI/tags/newer
+dist/lib/UI/tags/with
+dist/lib/UI/tags/row_edit
+dist/lib/UI/tags/export_database
+dist/lib/UI/tags/display
+dist/lib/UI/tags/if_sql
+dist/lib/UI/tags/substitute
+dist/lib/UI/tags/quick_table
+dist/lib/UI/tags/unlink_file
+dist/lib/UI/tags/check_upload
+dist/lib/UI/tags/rotate_database
+dist/lib/UI/tags/rotate_table
+dist/lib/UI/tags/field_label
+dist/lib/UI/tags/widget
+dist/lib/UI/tags/title_bar
+dist/lib/UI/tags/send_help
+dist/lib/UI/tags/e
+dist/lib/UI/tags/set_click
+dist/lib/UI/tags/import_fields
+dist/lib/UI/tags/global_value
+dist/lib/UI/tags/dbinfo
+dist/lib/UI/tags/set_alias
+dist/lib/UI/tags/uneval
+dist/lib/UI/tags/if_mm
+dist/lib/UI/tags/mm_value
+dist/lib/UI/tags/file_info
+dist/lib/UI/tags/write_relative_file
+dist/lib/UI/tags/version
+dist/lib/UI/tags/base_url
+dist/lib/UI/tags/mm_menu_item
+dist/lib/UI/tags/grep_mm
+dist/lib/UI/locales/de_DE.cfg
+dist/lib/UI/locales/fr_FR.cfg
+dist/lib/UI/locales/it_IT.cfg
+dist/lib/UI/locales/pt_BR.cfg
+dist/lib/UI/locales/ru_RU.cfg
+dist/lib/UI/vars/UI_STD_HEADER
+dist/lib/UI/vars/UI_STD_FOOTER
+dist/lib/UI/pages/admin/affiliates.html
+dist/lib/UI/pages/admin/ship_range.html
+dist/lib/UI/pages/admin/order_view.html
+dist/lib/UI/pages/admin/order.html
+dist/lib/UI/pages/admin/page.html
+dist/lib/UI/pages/admin/item.html
+dist/lib/UI/pages/admin/genconfig.html
+dist/lib/UI/pages/admin/genstats.html
+dist/lib/UI/pages/admin/regen.html
+dist/lib/UI/pages/admin/ship.html
+dist/lib/UI/pages/admin/group.html
+dist/lib/UI/pages/admin/quicklinks.html
+dist/lib/UI/pages/admin/error_item.html
+dist/lib/UI/pages/admin/item_edit.html
+dist/lib/UI/pages/admin/tax.html
+dist/lib/UI/pages/admin/payment.html
+dist/lib/UI/pages/admin/layout.html
+dist/lib/UI/pages/admin/dbdownload.html
+dist/lib/UI/pages/admin/matrix_edit.html
+dist/lib/UI/pages/admin/genxport.html
+dist/lib/UI/pages/admin/layoutdownload.html
+dist/lib/UI/pages/admin/layoutupload.html
+dist/lib/UI/pages/admin/matrix_create.html
+dist/lib/UI/pages/admin/format_meta.html
+dist/lib/UI/pages/admin/index.html
+dist/lib/UI/pages/admin/error.html
+dist/lib/UI/pages/admin/login.html
+dist/lib/UI/pages/admin/reconfig.html
+dist/lib/UI/pages/admin/footer
+dist/lib/UI/pages/admin/header
+dist/locale.error
+dist/minivend.cfg.dist
+dist/simple/catalog.cfg
+dist/simple/config/.empty
+dist/simple/config/additional_fields
+dist/simple/config/additional_help
+dist/simple/config/blue1/copyright
+dist/simple/config/blue1/leftside
+dist/simple/config/blue1/logobar
+dist/simple/config/blue1/menubar
+dist/simple/config/blue1/menubottom
+dist/simple/config/blue1/no_right
+dist/simple/config/blue1/only_logo
+dist/simple/config/blue1/rightside
+dist/simple/config/brown1/copyright
+dist/simple/config/brown1/leftside
+dist/simple/config/brown1/logobar
+dist/simple/config/brown1/menubar
+dist/simple/config/brown1/menubottom
+dist/simple/config/brown1/no_right
+dist/simple/config/brown1/only_logo
+dist/simple/config/brown1/rightside
+dist/simple/config/precopy_commands
+dist/simple/config/yellow1/copyright
+dist/simple/config/yellow1/leftside
+dist/simple/config/yellow1/logobar
+dist/simple/config/yellow1/menubar
+dist/simple/config/yellow1/menubottom
+dist/simple/config/yellow1/no_right
+dist/simple/config/yellow1/only_logo
+dist/simple/config/yellow1/rightside
+dist/simple/etc/log_transaction
+dist/simple/etc/mail_receipt
+dist/simple/etc/profiles.login
+dist/simple/etc/profiles.order
+dist/simple/etc/receipt.html
+dist/simple/etc/report
+dist/simple/html/.empty
+dist/simple/html/index.html
+dist/simple/images/blue1/cart.png
+dist/simple/images/blue1/go.png
+dist/simple/images/blue1/logo.png
+dist/simple/images/blue1/menu.png
+dist/simple/images/blue1/submit.png
+dist/simple/images/brown1/cart.png
+dist/simple/images/brown1/go.png
+dist/simple/images/brown1/logo.png
+dist/simple/images/brown1/menu.png
+dist/simple/images/brown1/submit.png
+dist/simple/images/clear.gif
+dist/simple/images/download.png
+dist/simple/images/items/00-0011.jpg
+dist/simple/images/items/00-0011a.png
+dist/simple/images/items/00-341.jpg
+dist/simple/images/items/00-342.jpg
+dist/simple/images/items/00-343.jpg
+dist/simple/images/items/19-203.jpg
+dist/simple/images/items/19-204.jpg
+dist/simple/images/items/21-221.jpg
+dist/simple/images/items/34-101.png
+dist/simple/images/items/chair_car.jpg
+dist/simple/images/items/golconde.jpg
+dist/simple/images/items/illumined_pleasures.jpg
+dist/simple/images/items/irises.jpg
+dist/simple/images/items/lastsupp.jpg
+dist/simple/images/items/loose_hair.jpg
+dist/simple/images/items/magnificat.jpg
+dist/simple/images/items/my_gems.jpg
+dist/simple/images/items/okeefe1.jpg
+dist/simple/images/items/okeeffe6.jpg
+dist/simple/images/items/paul_harlequin.jpg
+dist/simple/images/items/pol1.jpg
+dist/simple/images/items/pol2.jpg
+dist/simple/images/items/tshirt.jpg
+dist/simple/images/items/two_fridas.jpg
+dist/simple/images/items/womanfan.jpg
+dist/simple/images/items/young_man.jpg
+dist/simple/images/mvlogo.png
+dist/simple/images/mvlogo_dark.png
+dist/simple/images/new.png
+dist/simple/images/perl_id_313c.png
+dist/simple/images/smallamex.png
+dist/simple/images/smalldisc.png
+dist/simple/images/smallmc.png
+dist/simple/images/smallvisa.png
+dist/simple/images/yellow1/cart.png
+dist/simple/images/yellow1/go.png
+dist/simple/images/yellow1/logo.png
+dist/simple/images/yellow1/menu.png
+dist/simple/images/yellow1/submit.png
+dist/simple/mysql/area.mysql
+dist/simple/mysql/cat.mysql
+dist/simple/mysql/country.mysql
+dist/simple/mysql/inventory.mysql
+dist/simple/mysql/orderline.mysql
+dist/simple/mysql/pricing.mysql
+dist/simple/mysql/products.mysql
+dist/simple/mysql/shipping.mysql
+dist/simple/mysql/transactions.mysql
+dist/simple/mysql/userdb.mysql
+dist/simple/orders/.empty
+dist/simple/pages/about.html
+dist/simple/pages/account.html
+dist/simple/pages/action/get_password.html
+dist/simple/pages/browse.html
+dist/simple/pages/browse1.html
+dist/simple/pages/canceled.html
+dist/simple/pages/config/report_def/New.html
+dist/simple/pages/config/report_def/Orders%20by%20SKU%20-%20Short.html
+dist/simple/pages/config/report_def/Orders%20by%20SKU.html
+dist/simple/pages/config/report_def/Orders%20by%20amount.html
+dist/simple/pages/config/report_def/Products%20by%20category.html
+dist/simple/pages/config/report_def/Products%20to%20edit.html
+dist/simple/pages/config/reports/Orders%20by%20SKU%20-%20Short.html
+dist/simple/pages/config/reports/Orders%20by%20SKU.html
+dist/simple/pages/config/reports/Orders%20by%20amount.html
+dist/simple/pages/config/reports/Products%20by%20category.html
+dist/simple/pages/config/reports/Products%20to%20edit.html
+dist/simple/pages/deliver.html
+dist/simple/pages/examples/test_banner.html
+dist/simple/pages/feedback.html
+dist/simple/pages/flypage.html
+dist/simple/pages/index.html
+dist/simple/pages/last_search.html
+dist/simple/pages/login.html
+dist/simple/pages/logout.html
+dist/simple/pages/multi/b_address.html
+dist/simple/pages/multi/basket.html
+dist/simple/pages/multi/checkout.html
+dist/simple/pages/multi/final.html
+dist/simple/pages/multi/nobasket.html
+dist/simple/pages/multi/shipping.html
+dist/simple/pages/new_account.html
+dist/simple/pages/news.html
+dist/simple/pages/no_cookie.html
+dist/simple/pages/ord/basket.html
+dist/simple/pages/ord/checkout.html
+dist/simple/pages/ord/nobasket.html
+dist/simple/pages/privacy.html
+dist/simple/pages/quantity.html
+dist/simple/pages/query/check_orders.html
+dist/simple/pages/query/order_detail.html
+dist/simple/pages/reconfig/.access
+dist/simple/pages/reconfig/.access_gate
+dist/simple/pages/reconfig/do_download.html
+dist/simple/pages/reconfig/do_upload.html
+dist/simple/pages/reconfig/reconfig.html
+dist/simple/pages/reconfig/upload.html
+dist/simple/pages/results.html
+dist/simple/pages/special/feedback.html
+dist/simple/pages/special/needfield.html
+dist/simple/pages/splash.html
+dist/simple/pages/srchform.html
+dist/simple/pages/view_page.html
+dist/simple/pgsql/area.pgsql
+dist/simple/pgsql/cat.pgsql
+dist/simple/pgsql/country.pgsql
+dist/simple/pgsql/inventory.pgsql
+dist/simple/pgsql/orderline.pgsql
+dist/simple/pgsql/pricing.pgsql
+dist/simple/pgsql/products.pgsql
+dist/simple/pgsql/shipping.pgsql
+dist/simple/pgsql/transactions.pgsql
+dist/simple/pgsql/userdb.pgsql
+dist/simple/products/2ndDayAir.csv
+dist/simple/products/2ndDayAirAM.csv
+dist/simple/products/3DaySelect.csv
+dist/simple/products/3DaySelectRes.csv
+dist/simple/products/450.csv
+dist/simple/products/Ground.csv
+dist/simple/products/GroundComm.csv
+dist/simple/products/GroundRes.csv
+dist/simple/products/NextDayAir.csv
+dist/simple/products/NextDayAirSaver.csv
+dist/simple/products/area.txt
+dist/simple/products/banner.txt
+dist/simple/products/cat.txt
+dist/simple/products/country.txt
+dist/simple/products/inventory.txt
+dist/simple/products/locale.txt
+dist/simple/products/minimate.asc
+dist/simple/products/mv_metadata.asc
+dist/simple/products/orderline.txt
+dist/simple/products/pricing.txt
+dist/simple/products/products.txt
+dist/simple/products/salestax.asc
+dist/simple/products/shipping.asc
+dist/simple/products/shipping.txt
+dist/simple/products/transactions.txt
+dist/simple/products/ups_zone.asc
+dist/simple/products/userdb.txt
+dist/simple/session/.empty
+dist/simple/special_pages/badsearch.html
+dist/simple/special_pages/canceled.html
+dist/simple/special_pages/cc_not_valid.html
+dist/simple/special_pages/confirmation.html
+dist/simple/special_pages/failed.html
+dist/simple/special_pages/interact.html
+dist/simple/special_pages/missing.html
+dist/simple/special_pages/needfield.html
+dist/simple/special_pages/nomatch.html
+dist/simple/special_pages/noproduct.html
+dist/simple/special_pages/notfound.html
+dist/simple/special_pages/order_security.html
+dist/simple/special_pages/reconfig.html
+dist/simple/special_pages/sec_faq.html
+dist/simple/special_pages/security.html
+dist/simple/special_pages/violation.html
+dist/simple/tmp/.empty
+dist/simple/upload/.empty
+dist/barry/catalog.cfg
+dist/barry/config/.empty
+dist/barry/config/additional_fields
+dist/barry/config/additional_help
+dist/barry/config/precopy_commands
+dist/barry/config/leftside
+dist/barry/config/rightside
+dist/barry/config/logobar
+dist/barry/config/no_left
+dist/barry/config/no_right
+dist/barry/config/menubottom
+dist/barry/config/copyright
+dist/barry/config/standard_defs
+dist/barry/etc/log_transaction
+dist/barry/etc/mail_receipt
+dist/barry/etc/profiles.login
+dist/barry/etc/profiles.order
+dist/barry/etc/receipt.html
+dist/barry/etc/report
+dist/barry/html/.empty
+dist/barry/html/index.html
+dist/barry/images/99button.gif
+dist/barry/images/aardvarkbackground.gif
+dist/barry/images/admin/b-configure2.gif
+dist/barry/images/admin/b-help2.gif
+dist/barry/images/admin/b-items2.gif
+dist/barry/images/admin/b-orders2.gif
+dist/barry/images/admin/b-pages2.gif
+dist/barry/images/admin/b-regenerate2.gif
+dist/barry/images/admin/b-statistics2.gif
+dist/barry/images/admin/back.sm.gif
+dist/barry/images/admin/bluedot.gif
+dist/barry/images/admin/cleardot.gif
+dist/barry/images/admin/coinlogo.jpg
+dist/barry/images/admin/curve_left.gif
+dist/barry/images/admin/curve_right.gif
+dist/barry/images/admin/delete.gif
+dist/barry/images/admin/greendot.gif
+dist/barry/images/admin/icon_config.gif
+dist/barry/images/admin/icon_help.gif
+dist/barry/images/admin/icon_item.gif
+dist/barry/images/admin/icon_orders.gif
+dist/barry/images/admin/icon_pages.gif
+dist/barry/images/admin/icon_regen.gif
+dist/barry/images/admin/icon_regen_anim.gif
+dist/barry/images/admin/icon_stats.gif
+dist/barry/images/admin/plus.gif
+dist/barry/images/admin/red_logo.gif
+dist/barry/images/admin/reddot.gif
+dist/barry/images/admin/tallyman_logo.gif
+dist/barry/images/admin/tan_logo.gif
+dist/barry/images/admin/widgets.gif
+dist/barry/images/aspen.gif
+dist/barry/images/avid.arch50.jpg
+dist/barry/images/banner.gif
+dist/barry/images/smallamex.png
+dist/barry/images/smalldisc.png
+dist/barry/images/smallmc.png
+dist/barry/images/smallvisa.png
+dist/barry/images/barbntrini.gif
+dist/barry/images/barend.black.jpg
+dist/barry/images/best.gif
+dist/barry/images/buzz.jpg
+dist/barry/images/charlesnfox.gif
+dist/barry/images/chrono.deepV.jpg
+dist/barry/images/comp.bars.jpg
+dist/barry/images/comp.bb.jpg
+dist/barry/images/comp.brakes.jpg
+dist/barry/images/comp.casette.jpg
+dist/barry/images/comp.chain.jpg
+dist/barry/images/comp.cranks.jpg
+dist/barry/images/comp.der.jpg
+dist/barry/images/comp.ends.jpg
+dist/barry/images/comp.grips.jpg
+dist/barry/images/comp.headest.jpg
+dist/barry/images/comp.hubs.jpg
+dist/barry/images/comp.levers.jpg
+dist/barry/images/cream.gif
+dist/barry/images/custom.gif
+dist/barry/images/dirk_anim_blue_trn.gif
+dist/barry/images/george.gif
+dist/barry/images/go.gif
+dist/barry/images/housefelt.gif
+dist/barry/images/jurassic.gif
+dist/barry/images/KHS.soft99.jpg
+dist/barry/images/KHS.team99.jpg
+dist/barry/images/kore.elite.stem.jpg
+dist/barry/images/lp.barends.jpg
+dist/barry/images/lp.braids.big.jpg
+dist/barry/images/lp.braids.jpg
+dist/barry/images/lp.team.jpg
+dist/barry/images/man.99sxti.GIF
+dist/barry/images/manhattan.gif
+dist/barry/images/mystery.gif
+dist/barry/images/newsubtitle.gif
+dist/barry/images/newtitle.gif
+dist/barry/images/next.gif
+dist/barry/images/oklahoma.gif
+dist/barry/images/panaracer.mach.gif
+dist/barry/images/pedal.jpg
+dist/barry/images/racing.gif
+dist/barry/images/rf.lpcrank.jpg
+dist/barry/images/rf.system.jpg
+dist/barry/images/river.gif
+dist/barry/images/RST.381R.jpg
+dist/barry/images/shimano.pedal.434.JPG
+dist/barry/images/shimano.pedal.jpg
+dist/barry/images/shimano.xtr.jpg
+dist/barry/images/shoebox.gif
+dist/barry/images/shoeleather.gif
+dist/barry/images/spinergy.spox.jpg
+dist/barry/images/SRAM.90brakes.jpg
+dist/barry/images/starwars.gif
+dist/barry/images/sub.banner.brand.gif
+dist/barry/images/sub.banner.gif
+dist/barry/images/sub.banner.home.gif
+dist/barry/images/subnav_e.gif
+dist/barry/images/subnav_et_bran.gif
+dist/barry/images/subnav_et_cat.gif
+dist/barry/images/subnav_et_home.gif
+dist/barry/images/subtitle.gif
+dist/barry/images/tam0013f.jpg
+dist/barry/images/tam0013t.gif
+dist/barry/images/tam0014t.gif
+dist/barry/images/tam0015t.gif
+dist/barry/images/terry.men.gif
+dist/barry/images/tire.conti.gif
+dist/barry/images/title.gif
+dist/barry/images/top.banner.gif
+dist/barry/images/topright.gif
+dist/barry/images/topright.top.gif
+dist/barry/images/ttl-db-ranked.gif
+dist/barry/images/women.gif
+dist/barry/images/wtb.ssk.gif
+dist/barry/images/xtr.cassette.jpg
+dist/barry/images/xtrcrank.jpg
+dist/barry/images/zinn.gif
+dist/barry/images/standard_images/btab-l.gif
+dist/barry/images/standard_images/btab-r.gif
+dist/barry/images/standard_images/cleardot.gif
+dist/barry/images/standard_images/order.gif
+dist/barry/images/standard_images/tab-l.gif
+dist/barry/images/standard_images/tab-r.gif
+dist/barry/images/standard_images/topfade.gif
+dist/barry/mysql/area.mysql
+dist/barry/mysql/cat.mysql
+dist/barry/mysql/country.mysql
+dist/barry/mysql/inventory.mysql
+dist/barry/mysql/orderline.mysql
+dist/barry/mysql/pricing.mysql
+dist/barry/mysql/products.mysql
+dist/barry/mysql/shipping.mysql
+dist/barry/mysql/transactions.mysql
+dist/barry/mysql/userdb.mysql
+dist/barry/orders/.empty
+dist/barry/pages/about.html
+dist/barry/pages/account.html
+dist/barry/pages/browse.html
+dist/barry/pages/browse1.html
+dist/barry/pages/canceled.html
+dist/barry/pages/deliver.html
+dist/barry/pages/feedback.html
+dist/barry/pages/flypage.html
+dist/barry/pages/index.html
+dist/barry/pages/last_search.html
+dist/barry/pages/login.html
+dist/barry/pages/logout.html
+dist/barry/pages/new_account.html
+dist/barry/pages/news.html
+dist/barry/pages/no_cookie.html
+dist/barry/pages/privacy.html
+dist/barry/pages/quantity.html
+dist/barry/pages/results.html
+dist/barry/pages/splash.html
+dist/barry/pages/srchform.html
+dist/barry/pages/view_page.html
+dist/barry/pages/action/get_password.html
+dist/barry/pages/examples/test_banner.html
+dist/barry/pages/multi/b_address.html
+dist/barry/pages/multi/basket.html
+dist/barry/pages/multi/checkout.html
+dist/barry/pages/multi/final.html
+dist/barry/pages/multi/nobasket.html
+dist/barry/pages/multi/shipping.html
+dist/barry/pages/ord/basket.html
+dist/barry/pages/ord/checkout.html
+dist/barry/pages/ord/nobasket.html
+dist/barry/pages/ord/basket
+dist/barry/pages/query/check_orders.html
+dist/barry/pages/query/order_detail.html
+dist/barry/pages/reconfig/.access
+dist/barry/pages/reconfig/.access_gate
+dist/barry/pages/reconfig/do_download.html
+dist/barry/pages/reconfig/do_upload.html
+dist/barry/pages/reconfig/reconfig.html
+dist/barry/pages/reconfig/upload.html
+dist/barry/pages/special/feedback.html
+dist/barry/pages/special/needfield.html
+dist/barry/pages/nothing.html
+dist/barry/pages/shoes.html
+dist/barry/pages/subcat.html
+dist/barry/pages/contact.us.html
+dist/barry/pgsql/area.pgsql
+dist/barry/pgsql/cat.pgsql
+dist/barry/pgsql/country.pgsql
+dist/barry/pgsql/inventory.pgsql
+dist/barry/pgsql/orderline.pgsql
+dist/barry/pgsql/pricing.pgsql
+dist/barry/pgsql/products.pgsql
+dist/barry/pgsql/shipping.pgsql
+dist/barry/pgsql/transactions.pgsql
+dist/barry/pgsql/userdb.pgsql
+dist/barry/products/2ndDayAir.csv
+dist/barry/products/2ndDayAirAM.csv
+dist/barry/products/3DaySelect.csv
+dist/barry/products/3DaySelectRes.csv
+dist/barry/products/450.csv
+dist/barry/products/Ground.csv
+dist/barry/products/GroundComm.csv
+dist/barry/products/GroundRes.csv
+dist/barry/products/NextDayAir.csv
+dist/barry/products/NextDayAirSaver.csv
+dist/barry/products/area.txt
+dist/barry/products/banner.txt
+dist/barry/products/cat.txt
+dist/barry/products/country.txt
+dist/barry/products/inventory.txt
+dist/barry/products/locale.txt
+dist/barry/products/minimate.asc
+dist/barry/products/mv_metadata.asc
+dist/barry/products/orderline.txt
+dist/barry/products/pricing.txt
+dist/barry/products/products.txt
+dist/barry/products/salestax.asc
+dist/barry/products/shipping.asc
+dist/barry/products/shipping.txt
+dist/barry/products/transactions.txt
+dist/barry/products/ups_zone.asc
+dist/barry/products/userdb.txt
+dist/barry/products/state.txt
+dist/barry/products/variable.txt
+dist/barry/session/.empty
+dist/barry/special_pages/badsearch.html
+dist/barry/special_pages/canceled.html
+dist/barry/special_pages/cc_not_valid.html
+dist/barry/special_pages/confirmation.html
+dist/barry/special_pages/failed.html
+dist/barry/special_pages/interact.html
+dist/barry/special_pages/missing.html
+dist/barry/special_pages/needfield.html
+dist/barry/special_pages/nomatch.html
+dist/barry/special_pages/noproduct.html
+dist/barry/special_pages/notfound.html
+dist/barry/special_pages/order_security.html
+dist/barry/special_pages/reconfig.html
+dist/barry/special_pages/sec_faq.html
+dist/barry/special_pages/security.html
+dist/barry/special_pages/violation.html
+dist/barry/tmp/.empty
+dist/barry/upload/.empty
+dist/src/compile.pl
+dist/src/config.h.in
+dist/src/configure
+dist/src/mod_perl_tlink.pl
+dist/src/mvctl.c
+dist/src/syscfg.in
+dist/src/testcgi
+dist/src/tlink.c
+dist/src/tlink.pl
+dist/src/vlink.c
+dist/src/vlink.pl
+dist/usertag/bar_button
+dist/usertag/db_date
+dist/usertag/email
+dist/usertag/email_raw
+dist/usertag/loc
+dist/usertag/rand
+dist/usertag/reconfig
+dist/usertag/reconfig_time
+dist/usertag/reconfig_wait
+dist/usertag/summary
+dist/usertag/title_bar
+dist/usertag/var
+dist/usertag/xml_generator
+eg/check
+eg/checkstat.sh
+eg/compact
+eg/globalsub/signio
+eg/ifdef
+extra/Business/UPS.pm
+extra/File/CounterFile.pm
+extra/File/Spec.pm
+extra/File/Spec/OS2.pm
+extra/File/Spec/Unix.pm
+extra/File/Spec/VMS.pm
+extra/File/Spec/Win32.pm
+extra/HTML/Entities.pm
+extra/IniConf.pm
+extra/URI/URL.pm
+hints.pl
+lib/Vend/Cart.pm
+lib/Vend/Config.pm
+lib/Vend/Control.pm
+lib/Vend/Data.pm
+lib/Vend/DbSearch.pm
+lib/Vend/Document.pm
+lib/Vend/ECML.pm
+lib/Vend/Error.pm
+lib/Vend/External.pm
+lib/Vend/Glimpse.pm
+lib/Vend/Imagemap.pm
+lib/Vend/Interpolate.pm
+lib/Vend/MakeCat.pm
+lib/Vend/Misc/Static.pm
+lib/Vend/Order.pm
+lib/Vend/Page.pm
+lib/Vend/Parse.pm
+lib/Vend/Parser.pm
+lib/Vend/Scan.pm
+lib/Vend/Search.pm
+lib/Vend/Server.pm
+lib/Vend/Session.pm
+lib/Vend/SessionDB.pm
+lib/Vend/SessionFile.pm
+lib/Vend/Table/Common.pm
+lib/Vend/Table/DBI.pm
+lib/Vend/Table/DB_File.pm
+lib/Vend/Table/GDBM.pm
+lib/Vend/Table/InMemory.pm
+lib/Vend/Tagref.pm
+lib/Vend/Tags.pm
+lib/Vend/TextSearch.pm
+lib/Vend/UserDB.pm
+lib/Vend/Util.pm
+lib/perllocal.pod
+pod/mvdocs.pod
+pod/mvfaq.pod
+scripts/compile_link.PL
+scripts/config_prog.PL
+scripts/configdump.PL
+scripts/dump.PL
+scripts/expire.PL
+scripts/expireall.PL
+scripts/localize.PL
+scripts/makecat.PL
+scripts/minivend.PL
+scripts/offline.PL
+scripts/restart.PL
+scripts/update.PL
+test.pl
+win/minivend.pif
+win/setup.bat
+win/tlink.exe
46 MANIFEST.SKIP
@@ -0,0 +1,46 @@
+(^|/)_.*
+.*/session/[^.].*
+.*/session\..*
+.*/tmp/[^.].*
+.*\.bak$
+.*\.gz$
+.*,v$
+.*\.swp$
+.*\.old
+.*\.zip$
+.*_$
+.*~$
+^_.*
+^.cvs*
+.*/\.cvs*
+MANIFEST\.bak
+Makefile$
+Makefile.old$
+\.linux.warned
+\bRCS\b
+\bCVS\b
+^test/.*
+bin/.*
+blib/.*
+catalogs/[^.].*
+control/.*
+scripts/initp.PL
+scripts/.*[a-z]$
+configure.in$
+custom/.*
+dev/.*
+doc/.*[^d]
+^lib/Business.*
+^lib/File.*
+^lib/HTML.*
+^lib/URI.*
+^lib/IniConf.pm
+dist/etc/[^.].*
+run/.*
+windows/*
+work/.*
+lib/src/config.cache
+lib/src/config.h
+lib/src/config.log
+lib/src/config.status
+lib/src/syscfg
737 Makefile.PL
@@ -0,0 +1,737 @@
+use ExtUtils::MakeMaker;
+require ExtUtils::Install;
+
+BEGIN {
+ eval {
+ require FindBin;
+ chdir $FindBin::RealBin;
+ };
+}
+
+use Config;
+
+use File::Copy;
+use File::Path;
+use File::Basename;
+use File::Find;
+use Data::Dumper;
+use Cwd;
+require 5.005;
+
+use strict;
+
+use vars (qw($VERSION $DOWARN));
+
+my $TermRead;
+my $Prompt_sub;
+my @mods_to_get;
+my $Lock_troubles;
+
+$VERSION = '4.5.0';
+
+# See if we have the CPAN module
+my $Cpan = 0;
+my $CpanInit;
+eval {
+ die if $^O =~ /win32/i;
+ unless( -f ".cpan.tried") {
+ open TMP, ">.cpan.tried" and close TMP;
+ require CPAN::Config;
+ require CPAN;
+ import CPAN;
+ }
+ unlink ".cpan.tried";
+};
+unless($@) {
+ $Cpan = 1;
+}
+
+my @os_hints;
+eval {
+ # gets package 'mvhints'
+ require 'hints.pl';
+ @os_hints = mvhints::get_hints();
+};
+
+my @chown_files = qw/
+ error.log
+ etc
+ minivend.cfg
+ /;
+
+# Now we can use the libraries
+use lib './lib';
+
+
+my $origdir = fastcwd();
+
+# See if we have Term::ReadLine::Perl
+eval {
+ require Term::ReadLine;
+ require Term::ReadLine::Perl;
+ require Term::ReadKey;
+ $TermRead = 1;
+};
+unless($@) {
+ $ENV{PERL_RL} = 'Perl';
+}
+elsif ($Cpan) {
+ push @mods_to_get, 'Term::ReadKey', 'Term::ReadLine::Perl';
+}
+
+my $term;
+if($TermRead) {
+ $term = new Term::ReadLine 'MakeFile';
+ $Prompt_sub = sub {
+ my($prompt, $default) = @_;
+ $prompt .= "[$default] "
+ if defined $default && !$ENV{PERL_RL};
+ return $term->readline($prompt, $default);
+ };
+}
+
+my $Windows = $^O =~ /win32/i ? 1 : 0;
+
+sub compare_file {
+ my($first,$second) = @_;
+ return 0 unless -s $first == -s $second;
+ local $/;
+ open(FIRST, $first) or return undef;
+ open(SECOND, $second) or (close FIRST and return undef);
+ binmode(FIRST);
+ binmode(SECOND);
+ $first = '';
+ $second = '';
+ while($first eq $second) {
+ read(FIRST, $first, 1024);
+ read(SECOND, $second, 1024);
+ last if length($first) < 1024;
+ }
+ close FIRST;
+ close SECOND;
+ $first eq $second;
+}
+
+sub install_file {
+ my ($srcdir, $targdir, $filename) = @_;
+ my $srcfile = $srcdir . '/' . $filename;
+ my $targfile = $targdir . '/' . $filename;
+ my $mkdir = File::Basename::dirname($targfile);
+ my $extra;
+ my $perms;
+
+ if(! -d $mkdir) {
+ File::Path::mkpath($mkdir)
+ or die "Couldn't make directory $mkdir: $!\n";
+ }
+
+ if (! -f $srcfile) {
+ die "Source file $srcfile missing.\n";
+ }
+ else {
+ $perms = (stat(_))[2] & 0777;
+ }
+
+ if( -f $targfile and ! compare_file($srcfile, $targfile) ) {
+ open (GETVER, $targfile)
+ or die "Couldn't read $targfile for version update: $!\n";
+ while(<GETVER>) {
+ /VERSION\s+=.*?\s+([\d.]+)/ or next;
+ $extra = $1;
+ $extra =~ tr/0-9//cd;
+ last;
+ }
+ $extra = 'old' unless $extra;
+ while (-f "$targfile.$extra") {
+ $extra .= '~';
+ }
+ rename $targfile, "$targfile.$extra"
+ or die "Couldn't rename $targfile to $targfile.$extra: $!\n";
+ }
+
+ File::Copy::copy($srcfile, $targfile)
+ or die "Copy of $srcfile to $targfile failed: $!\n";
+ chmod $perms, $targfile;
+
+}
+
+sub copyright_prompt {
+
+ print <<EOF;
+
+ MiniVend V$VERSION
+
+ Copyright 1996-2000 by Michael J. Heins <mikeh\@minivend.com>
+
+ MiniVend is free under the terms of the GNU General Public License.
+
+EOF
+}
+
+sub my_prompt {
+ return $_[1] if $MV::Default{force};
+ return &$Prompt_sub(@_)
+ if defined $Prompt_sub;
+ my($pr) = shift || '? ';
+ my($def) = shift;
+ my($ans);
+
+ print $pr;
+ print "[$def] " if $def;
+ chomp($ans = <STDIN>);
+ $ans ? $ans : $def;
+}
+
+sub cpan_get {
+ my($module, $libdir, $prompt) = @_;
+
+ print <<EOF unless defined $CpanInit;
+
+Since you have the CPAN module installed and initialized,
+we can go and get optional modules that help MiniVend work a
+bit better and faster. At least we can if you are connected
+to the Internet and have one of the following on your machine:
+
+ Perl LWP libraries
+ Perl Net::FTP library
+ ncftp (a nice FTP program)
+ lynx (the text-based web browser)
+
+In case you were wondering, CPAN is a worldwide network of
+over 40 FTP sites which maintain the latest Perl software.
+If you don't know a URL to use, you can try:
+
+ ftp://ftp.cdrom.com/pub/perl/CPAN
+ ftp://ftp.funet.fi/pub/languages/perl/CPAN
+
+If you have never used CPAN before, you may want to reply NO.
+MiniVend should work anyway -- it just won't be quite as easy
+to build the demo catalogs.
+
+If you have errors during the process, don't worry. Either
+just continue on or stop the program and try again, replying
+No when prompted for CPAN.
+
+EOF
+ $prompt = "Get $module module? [yes]" unless defined $prompt;
+ my $ask = my_prompt($prompt);
+ return undef if $ask =~ /^\s*n/i;
+
+ return undef unless defined $CPAN::Config;
+ $CPAN::Config->{makepl_arg} = "INSTALLPRIVLIB=$libdir/lib INSTALLARCHLIB=$libdir/lib INSTALLSITELIB=$libdir/lib INSTALLMAN1DIR=none INSTALLMAN3DIR=none INSTALLSITEARCH=$libdir/lib INSTALLDIRS=perl";
+ $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 extra_libs {
+
+ my ($realdir) = @_;
+ # Do the extra library checks
+
+ my @extra_lib_dirs;
+ my @extra_lib_files;
+ # We will use our own version of File::CounterFile always
+ push @extra_lib_dirs, 'File';
+ push @extra_lib_files, 'File/CounterFile.pm';
+
+ eval {
+ require IniConf;
+ };
+ if ($@) {
+ push @extra_lib_files, 'IniConf.pm';
+ }
+
+
+ eval {
+ require HTML::Entities;
+ };
+ if ($@) {
+ push @extra_lib_dirs, 'HTML';
+ push @extra_lib_files, 'HTML/Entities.pm';
+ }
+
+ eval {
+ require Business::UPS;
+ };
+ if ($@) {
+ push @extra_lib_dirs, 'Business';
+ push @extra_lib_files, 'Business/UPS.pm';
+ }
+
+ eval {
+ require Storable;
+ };
+ unless ($@) {
+ my $def = 'y';
+ print <<EOF;
+
+You appear to have Raphael Manfredi's Storable module installed.
+
+This module will significantly improve your DBM storage and
+fetch times.
+
+You can reply one of:
+
+ n -- Don't use Storable
+ s -- Use for sessions only, won't break existing databases
+ y -- Use for both sessions and databases
+
+It is recommended that new installations reply YES, and that
+existing installations reply S unless there is a need for
+improved performance. Replying S will mean you have to delete all
+of your session files.
+
+If you reply YES and you use any GDBM or DB_File databases
+they will NEED TO BE REMADE for ALL CATALOGS using this
+MiniVend server instance.
+EOF
+
+ if($ENV{MINIVEND_STORABLE_DB} || -f "$realdir/_db_storable" || -f "_db_storable") {
+ $def = 'y';
+ }
+ elsif($ENV{MINIVEND_STORABLE} || -f "$realdir/_session_storable" || -f "_session_storable") {
+ $def = 's';
+ }
+ my $ask = my_prompt("Use Storable module? (y/n/s) ", $def);
+ if ($ask =~ /^\s*(y|d)/i) {
+ open(TSTORABLE, ">_db_storable")
+ or die "creat _db_storable: $!\n";
+ print TSTORABLE "REMOVE THIS FILE TO STOP USING Storable\n";
+ close TSTORABLE;
+ }
+ if ($ask =~ /^\s*(y|s)/i) {
+ open(TSTORABLE, ">_session_storable")
+ or die "creat _session_storable: $!\n";
+ print TSTORABLE "REMOVE THIS FILE TO STOP USING Storable\n";
+ close TSTORABLE;
+ }
+ }
+
+ COPYEXTRA: {
+ my $cpdir = '.';
+ mkdir $cpdir, 0777 unless -d $cpdir;
+ mkdir "$cpdir/lib", 0777 unless -d "$cpdir/lib";
+ for(@extra_lib_dirs) {
+ next if -d "$cpdir/lib/$_";
+ mkdir "$cpdir/lib/$_", 0777 or die "mkdir $cpdir/lib/$_: $!\n";
+ }
+ for(@extra_lib_files) {
+ File::Copy::copy ("extra/$_", "lib/$_")
+ or die "Couldn't copy $_: $!\n";
+ }
+ }
+}
+
+sub mk_initp {
+ my ($ref) = @_;
+ local($Data::Dumper::Terse);
+ $Data::Dumper::Terse = 1;
+ open (INITP, ">scripts/initp.pl")
+ or die "Can't write initp.pl: $!\n";
+ print INITP '$MV::Self = ';
+ print INITP Dumper($ref);
+ print INITP ";\n1;";
+ close INITP;
+}
+
+sub initialize {
+ my %X;
+ $X{INSTALLDIRS} = "perl";
+ $X{EXE_FILES} = [qw(
+ scripts/compile_link
+ scripts/config_prog
+ scripts/configdump
+ scripts/dump
+ scripts/expire
+ scripts/expireall
+ scripts/localize
+ scripts/makecat
+ scripts/minivend
+ scripts/offline
+ scripts/restart
+ scripts/update
+ )];
+ $X{PL_FILES} = {qw(
+ scripts/compile_link.PL scripts/compile_link
+ scripts/config_prog.PL scripts/config_prog
+ scripts/configdump.PL scripts/configdump
+ scripts/dump.PL scripts/dump
+ scripts/expire.PL scripts/expire
+ scripts/expireall.PL scripts/expireall
+ scripts/localize.PL scripts/localize
+ scripts/makecat.PL scripts/makecat
+ scripts/minivend.PL scripts/minivend
+ scripts/offline.PL scripts/offline
+ scripts/restart.PL scripts/restart
+ scripts/update.PL scripts/update
+ )};
+
+ if(! $MV::Default{force} and ! $MV::Default{PREFIX}) {
+ if($> == 0) {
+ $MV::Default{PREFIX} = '/usr/local/minivend';
+ }
+ else {
+ $MV::Default{PREFIX} = "$ENV{HOME}/mvend";
+ }
+ }
+ if($MV::Default{rpmbuilddir} or $MV::Default{RPMBUILDDIR}) {
+ $X{RPMBUILDDIR} = $MV::Default{rpmbuilddir} || $MV::Default{RPMBUILDDIR};
+ $MV::Default{RPMBUILDDIR} = $X{RPMBUILDDIR};
+ }
+
+ return %X if $MV::Default{nocopy};
+
+ my $uid;
+ if($> == 0 and ! $MV::Default{MINIVEND_USER} and ! $Windows) {
+ $uid = my_prompt(
+ qq{MiniVend cannot be run as root. Which user should run MiniVend? },
+ 'minivend',
+ );
+ open(UID, ">_uid")
+ or die "Can't write uid file: $!\n";
+ print UID "$uid";
+ close UID;
+ }
+ elsif (! $Windows) {
+ eval {
+ $uid = scalar getpwuid($>);
+ };
+ }
+
+ if($uid) {
+ open(UID, ">_uid")
+ or die "Can't write uid file: $!\n";
+ print UID "$uid";
+ close UID;
+ }
+ for(@Config{
+ qw/
+ archlib
+ archlibexp
+ privlib
+ privlibexp
+ sitearch
+ sitearchexp
+ sitelib
+ sitelibexp
+ /
+ })
+ {
+ die "Can't install in Perl library!\n" if $MV::Default{PREFIX} eq $_;
+ }
+
+ my $realdir;
+
+ if(! $MV::Default{final}) {
+ &copyright_prompt();
+
+ $realdir = my_prompt(
+ "Where is your MiniVend to be installed? ",
+ $MV::Default{PREFIX},
+ );
+ print "\n";
+ $realdir =~ s:[\\/]\s*$::;
+ $MV::Default{final} = $realdir if $Windows;
+ }
+ else {
+ $realdir = $MV::Default{final};
+ }
+
+ $X{INSTALLSCRIPT} = "$realdir/bin";
+ $X{INSTALLBIN} = "$realdir/bin";
+ $X{INSTALLARCHLIB} = "$realdir";
+ $X{INSTALLPRIVLIB} = "$realdir/lib";
+ if(! $MV::Default{final}) {
+ $X{INSTALLMAN1DIR} = "$realdir/doc"
+ if ! $MV::Default{INSTALLMAN1DIR};
+ $X{INSTALLMAN3DIR} = "$realdir/doc"
+ if ! $MV::Default{INSTALLMAN3DIR};
+ }
+
+ if (! -f 'pod/mvtags.pod') {
+ chdir 'lib'
+ or die "Cannot chdir to ./lib: $!\n";
+ system("$^X Vend/Tagref.pm > ../pod/mvtags.pod");
+ chdir '..'
+ or die "Cannot chdir back to ..: $!\n";
+ }
+ my @re_dir = qw( simple/download );
+ my @re_copy = qw(
+ ../pod/mvtags.pod simple/download/mvtags.pod
+ ../pod/mvdocs.pod simple/download/mvdocs.pod
+ ../pod/mvfaq.pod simple/download/mvfaq.pod
+ );
+
+ if($Windows) {
+ mk_initp(\%X);
+ my ($in, $out);
+ my $ref = delete $X{PL_FILES};
+ if(! -d 'bin') {
+ File::Path::mkpath('bin');
+ }
+ my (@f);
+ while ( ($in, $out) = each %$ref) {
+ system "$^X $in";
+ if($?) {
+ die "Error making $in into $out: $!\n";
+ }
+ my $targ = $out;
+ $targ =~ s:.*/::;
+ File::Copy::copy($out, 'bin');
+ push @f, "bin/$targ";
+ system "pl2bat.bat $out";
+ if($?) {
+ warn "PL2BAT did not succeed for $out.\n";
+ }
+ else {
+ File::Copy::copy("$out.bat", 'bin');
+ push @f, "bin/$targ.bat";
+ }
+ }
+ # Check for extra needed libraries
+ extra_libs($realdir);
+ my $wanted = sub {
+ return unless -f $_;
+ push @f, $File::Find::name;
+ };
+ File::Find::find($wanted, 'lib');
+ for (@f) {
+ install_file('.', $realdir, $_);
+ }
+ }
+ if($MV::Default{final}) {
+ $ = 0;
+ for(glob "_*") {
+ File::Copy::copy($_, $realdir);
+ }
+ open(MANI, "MANIFEST")
+ or die "No MANIFEST?\n";
+ my (@files) = <MANI>;
+ close MANI;
+ @files = grep m:^dist/:, @files;
+ chomp(@files);
+ @files = map { s:^dist/::; $_} @files;
+
+ # New install_file routine
+ chdir 'dist';
+ for (@re_dir) {
+ mkdir $_, 0777;
+ }
+ while ($_ = shift @re_copy ) {
+ my $from = $_;
+ my $to = shift @re_copy;
+ push @files, $to;
+ File::Copy::copy($from, $to);
+ }
+ for (@files) {
+ install_file('.', $realdir, $_);
+ }
+ for(@os_hints) {
+ my ($condition, $routine) = @$_;
+ unless (ref($condition) =~ /CODE/ and ref($routine) =~ /CODE/) {
+ warn <<EOF;
+OS hint condititon and routine must be code reference, is
+
+ condition: $condition
+ routine: $routine
+
+Skipping.
+EOF
+ next;
+ }
+ next unless $condition->();
+ my $odir = cwd();
+ chdir $realdir
+ or die "Cannot chdir to $realdir: $!\n";
+ $routine->();
+
+ }
+ if(-f "$realdir/_uid" and $> == 0) {
+ open(UID, "$realdir/_uid")
+ or die "Can't open uid file: $!\n";
+ my $uid = <UID>;
+ close UID;
+ $MV::Default{MINIVEND_UID} = getpwnam($uid);
+ $MV::Default{MINIVEND_GID} = getgrnam($uid);
+ for(@chown_files) {
+ chown $MV::Default{MINIVEND_UID},
+ $MV::Default{MINIVEND_GID},
+ "$realdir/$_";
+ }
+ }
+ chdir '..';
+ exit;
+ }
+
+
+ MODCHECK: {
+ last MODCHECK unless $Cpan;
+ eval {
+ require Digest::MD5;
+ };
+ push(@mods_to_get, 'Digest::MD5') if $@ and $Cpan;
+ eval {
+ require SQL::Statement;
+ };
+ push(@mods_to_get, 'SQL::Statement') if $@ and $Cpan;
+ eval {
+ require Safe::Hole;
+ };
+ push(@mods_to_get, 'Safe::Hole') if $@ and $Cpan;
+ eval {
+ require MIME::Base64;
+ };
+ push(@mods_to_get, 'MIME::Base64') if $@ and $Cpan;
+ eval {
+ require URI::URL;
+ };
+ push(@mods_to_get, 'URI::URL') if $@ and $Cpan;
+ }
+
+ local($);
+ $ = 0;
+
+ MODGET: {
+ last MODGET unless $Cpan;
+ my $odir = cwd();
+ unless (-d 'build') {
+ mkdir('build', 0777)
+ or die "Couldn't make build directory for CPAN: $!\n";
+ }
+ chdir 'build'
+ or die "Couldn't chdir to build directory for CPAN: $!\n";
+ my $mod;
+ foreach $mod (@mods_to_get) {
+ my $ok = eval { cpan_get($mod, $realdir)};
+ if (! $@) {
+ $CpanInit = 1;
+ print "\n\n";
+ }
+ else {
+ print "\a\n$mod get failed.\n\n";
+ }
+ }
+ chdir $odir
+ or die "Couldn't return to original dir $odir: $!\n";
+ }
+
+ # Check for extra needed libraries
+ extra_libs($realdir);
+
+ mk_initp(\%X);
+ delete $X{RPMBUILDDIR};
+ return \%X;
+}
+
+sub regularize {
+ for (@_) {
+ s/[\\]\n//g;
+ s/\n\s+/ /g;
+ s/\s+$//g;
+ }
+ wantarray ? @_ : $_[0];
+}
+
+sub MY::install {
+
+ my $self = shift;
+ local *install;
+ sub dont_warn {
+ \*install;
+ }
+
+ my $new = <<'EOF';
+VERBINST=0
+
+mv_install ::
+ $(PERL) Makefile.PL force final=$(INSTALLARCHLIB)
+
+install :: all pure_install doc_install mv_install
+
+EOF
+ $new .= <<EOF;
+rpm_move ::
+ \$(PERL) Makefile.PL force=1 rpmbuilddir=$MV::Default{RPMBUILDDIR} final=\$(INSTALLARCHLIB)
+
+rpm_build :: all pure_install doc_install rpm_move
+
+EOF
+ $_ = $self->MM::install;
+ s/\ninstall :.*/$new/;
+ $_;
+}
+
+ my %mv_specific = qw/
+ PREFIX 1 FORCE 1 FINAL 1 RPMBUILDDIR 1 MINIVEND_USER 1
+ /;
+ my %delete;
+ use Getopt::Long;
+ my @saveargs = @ARGV;
+ my %optctl = (
+ 'junk' => sub { 1 },
+ '<>' => sub {
+ my ($arg) = @_;
+ #warn "checking option $arg\n";
+ my ($opt, $val);
+ if($arg !~ /=/) {
+ $opt = $arg;
+ $val = 1;
+ }
+ else {
+ ($opt, $val) = split /=/, $arg, 2;
+ }
+
+ $delete{$arg} = 1 if $mv_specific{uc $opt};
+
+ $MV::Default{$opt} = $val;
+ return;
+ },
+ );
+
+ my @options = ( qw/
+ junk
+ <>
+ / );
+
+ Getopt::Long::config(qw/permute/);
+ GetOptions(\%optctl, @options)
+ or die "Bad option get\n";
+# use Data::Dumper;
+# $Data::Dumper::Terse = $Data::Dumper::Indent = 2;
+# print "ARGV: " . Dumper(\@ARGV);
+# print "OPT: " . Dumper(\%MV::Default);
+ @ARGV = grep ! $delete{$_}, @saveargs;
+
+if($Windows) {
+ &initialize;
+}
+else {
+ WriteMakefile(
+ NAME => "MiniVend",
+ MAN3PODS => {
+ 'pod/mvdocs.pod' => 'blib/man3/mvdocs.8',
+ 'pod/mvtags.pod' => 'blib/man3/mvtags.8',
+ 'pod/mvfaq.pod' => 'blib/man3/mvfaq.8',
+ },
+ DISTNAME => "minivend",
+ clean => {
+ FILES=> "lib/IniConf.pm _uid _db_storable _session_storable lib/File/CounterFile.pm scripts/initp.pl scripts/compile_link scripts/config_prog scripts/configdump scripts/dump scripts/expire scripts/localize scripts/expireall scripts/makecat scripts/minivend scripts/offline scripts/restart scripts/update dist/simple/download/mvdocs.pod dist/simple/download/mvtags.pod dist/simple/download/mvfaq.pod pod/mvtags.pod",
+ },
+
+ dist => {
+ CI => "ci -l -t-Initial",
+ SUFFIX => ".gz",
+ DIST_DEFAULT => 'all tardist',
+ COMPRESS => "gzip -9f",
+ ZIP_FLAGS => '-pr9',
+ },
+ VERSION_FROM => "scripts/minivend.PL",
+ EXE_FILES => [],
+ CONFIGURE => \&initialize,
+ );
+}
211 README
@@ -0,0 +1,211 @@
+# Minivend V4.x
+#
+# Copyright 1996-2000 by Michael J. Heins <mikeh@minivend.com>
+#
+# Originally 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., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA.
+
+Welcome to Minivend! 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/
+for more information.
+
+--------------------------------------------------------------
+
+ 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 a high-end
+ database access and retrieval system with SQL support via the Perl DBI.
+
+ A full list of its features is available at:
+
+ http://www.minivend.com/
+
+IMPORTANT NOTE: Minivend 4.0 requires, repeat REQUIRES, Perl 5.005 or Perl 5.6.
+
+The information you need is in the following files:
+
+ README Copyright info, roadmap to installation