[ANN] Custom 0.8-1 Released

Luke Kenneth Casson Leighton lkcl@lkcl.net
Sun, 25 Jan 2004 12:52:07 +0000

Custom 0.8-1

	custom is an e-commerce solution for small to medium-sized
	businesses that provides:
	- a customisable web front-end for customers and
	  Point-of-Sale staff to place orders
	- for warehouse staff to manage stock
	- for accountants and sales staff to manage and generate invoices
	- for purchasing managers to keep track of suppliers and
	  competitive pricing.



OS Requirements

	Custom is a pure Python application with no critical OS
	Therefore it is entirely your choice as to what OS you use,
	but it must obviously run python (see http://python.org).
	Python is known to run on GNU/Linux, all version of Unix,
	all the BSDs, BEOS, MAC/OS 10, and many others.

Software Requirements

	This package requires or uses some additional software
	packages, which can all be obtained as RPMs, Debian
	Packages or compiled from Source if you feel the need.
	At each site, RPMs, DEBs and source are all typically
	available for download.

	You will need:

	- An up-to-date web server capable of SSL (if you need it)
	  and also capable of running CGI-bin scripts.  e.g. Apache2

	- Python 2.1 or greater

	- the pysqldb package version 0.6 or greater


		- MySQL client libraries

		- Andy Dustman's MySQLdb package (requires MySQL client)


		- Pysxqmll (a Python / MS-SQL / XML client for MS-SQL 2000)
		(http://sf.net/projects/pysxqmll) [what a stupid name.]

	- The mxDateTime and DateTime packages 

	- PyCrypto version 1.9a1 or greater

	- Python HTML-TMPL (generates HTML from templates)

	In case you were wondering, PostgreSQL and SAPdb are under
	investigation to be added into the database abstraction
	system that custom uses.

	custom uses some features in the SocketServer class that
	were introduced in Python 2.1.

	If you wish to stick with Python 2.0, you may wish to
	copy over the SocketServer.py file from the distribution
	of Python 2.1 or greater, and use that (making sure that
	you back up your original SocketServer.py file!)

Debian install

	It's a lot easier if you are using Debian: here is a list of
	the package names.  It'll be even easier once the Debian
	packaging is released.

	- python-crypto
	- python-egenix-mxdatetime
	- python-mysqldb
	- python-htmltmpl
	- apache or apache2
	- python-pysqldb

	If you install the three python packages using apt-get or dselect,
	that should be enough to pull in all the dependencies
	(including Python 2.3 and MySQL) except for python-pysqldb which
	you will likely still need to manually download from


	You must also install MySQL or MS-SQL 2000 on a server,
	where you may wish to install the SQL server on a
	separate system.

	If you do so, as noted above you will need to put the
	MySQL or MS-SQL client libraries onto the Custom Server.

	For various reasons, a high-availability cluster pair is
	recommended for your SQL system.

	You WILL be able to run the Back Office program monitord.py,
	on a HA cluster, because it is designed to cope with several
	concurrent copies of monitord.py running off the same SQL
	monitord.py is smart enough to lock the job scheduling table
	in the SQL database before taking a scheduled job out of
	the queue, so if running a SQL cluster it must obviously
	support table locking - you need to check!

Optional requirements

	A barcode scanning device, such as those available from
	Worth Data (www.pcbarcode.com) that reads EAN and other
	barcodes and pretends to be a USB keyboard, proves to
	be very useful.

	If you are using the Linux kernel under GNU/Linux,
	install the full HID USB device module and the Input
	Device and Keyboard support modules.
	If compiling your own kernel, make sure that the following
	are enabled (check the .config file) before running
	'make modules':


	Do not be fooled into installing the partial HID USB
	keyboard device (CONFIG_USB_KBD) on its own, because
	it won't work, you MUST install the full HID support.


	- Create website to describe custom [done 29dec2002]

	- Create user documentation [started 29dec2002]

	- Move as much administration into SQL as possible