this is incomplete

NOTE: Version numbering has been simplified.  1.5.7 is the version after
1.5.0pre6.  It is still a development version - releases with odd numbered 
middle parts (NN in x.NN.x) are development versions, like Perl or Linux.

If migrating from 1.5.7, see README.1.5.8 instead

If migrating from 1.5.0pre6, see README.1.5.7 instead

install JSON
install DBD::Pg 1.32, 1.41 or later (not 1.40) (or, if you're using a Perl version before 5.6, you could try installing DBD::Pg 1.22 with this patch and commenting out the "use DBD::Pg 1.32" at the top of DBIx/DBSchema/DBD/Pg.pm)
install DBIx::DBSchema 0.26
install Net::SSH 0.08
install HTML::Widgets::SelectLayers 0.05

- If using Apache::ASP, add PerlSetVar RequestBinaryRead Off and PerlSetVar IncludesDir /your/freeside/document/root/ to your Apache configuration and make sure you are using Apache::ASP minimum version 2.55.
- In httpd.conf, change <Files ~ \.cgi> to  <Files ~ (\.cgi|\.html)>
- In httpd.conf, change AddHandler perl-script .cgi or SetHandler perl-script to AddHandler perl-script .cgi .html

install NetAddr::IP, Chart::Base, Locale::SubCountry, Text::CSV_XS, 
Spreadsheet::WriteExcel, IO-stringy (IO::Scalar), Frontier::RPC
(Frontier::RPC2), MIME::Entity (MIME-tools) and IPC::Run3


INSERT INTO msgcat ( msgnum, msgcode, locale, msg ) VALUES ( 20, 'svc_external-id', 'en_US', 'External ID' );
INSERT INTO msgcat ( msgnum, msgcode, locale, msg ) VALUES ( 21, 'svc_external-title', 'en_US', 'Title' );

DROP INDEX cust_bill_pkg1;

On recent Pg versions:

ALTER TABLE cust_main ALTER COLUMN payinfo varchar(512) NULL;
ALTER TABLE h_cust_main ALTER COLUMN payinfo varchar(512) NULL;

Or on older Pg versions that don't support altering columns directly:
(write me)

On recent Pg versions:

ALTER TABLE svc_forward ALTER COLUMN srcsvc DROP NOT NULL;
ALTER TABLE h_svc_forward ALTER COLUMN srcsvc DROP NOT NULL;
ALTER TABLE svc_forward ALTER COLUMN dstsvc DROP NOT NULL;
ALTER TABLE h_svc_forward ALTER COLUMN dstsvc DROP NOT NULL;
ALTER TABLE cust_main ALTER COLUMN zip DROP NOT NULL;
ALTER TABLE h_cust_main ALTER COLUMN zip DROP NOT NULL;

Or on Pg versions that don't support DROP NOT NULL (tested on 7.1 and 7.2 so far):
UPDATE pg_attribute SET attnotnull = FALSE WHERE ( attname = 'srcsvc' OR attname = 'dstsvc' ) AND ( attrelid = ( SELECT oid FROM pg_class WHERE relname = 'svc_forward' ) OR attrelid = ( SELECT oid FROM pg_class WHERE relname = 'h_svc_forward' ) );
UPDATE pg_attribute SET attnotnull = FALSE WHERE ( attname = 'zip' ) AND ( attrelid = ( SELECT oid FROM pg_class WHERE relname = 'cust_main' ) OR attrelid = ( SELECT oid FROM pg_class WHERE relname = 'h_cust_main' ) );

If you created your database with a version before 1.4.2, dump database, edit:
- cust_main and h_cust_main: increase otaker from 8 to 32
- cust_main and h_cust_main: change ss from char(11) to varchar(11) ( "character(11)" to "character varying(11)" )
- cust_credit and h_cust_credit: increase otaker from 8 to 32
- cust_pkg and h_cust_pkg: increase otaker from 8 to 32
- cust_refund and h_cust_refund: increase otaker from 8 to 32
- domain_record and h_domain_record: increase reczone from 80 to 255
- domain_record and h_domain_record: change rectype from char to varchar ( "character(5)" to "character varying(5)" )
- domain_record and h_domain_record: increase recdata from 80 to 255
then reload

mandatory again:

make install-perl-modules to install the new libraries and CLI utilities
run "freeside-upgrade username" to create the remaining new tables and columns

optionally:

CREATE INDEX cust_main6 ON cust_main ( daytime );
CREATE INDEX cust_main7 ON cust_main ( night );
CREATE INDEX cust_main8 ON cust_main ( fax );
CREATE INDEX cust_main9 ON cust_main ( ship_daytime );
CREATE INDEX cust_main10 ON cust_main ( ship_night );
CREATE INDEX cust_main11 ON cust_main ( ship_fax );
CREATE INDEX agent2 ON agent ( disabled );
CREATE INDEX part_bill_event2 ON part_bill_event ( disabled );
CREATE INDEX cust_pay4 ON cust_pay (_date);
CREATE INDEX part_referral1 ON part_referral ( disabled );
CREATE INDEX part_pkg2 ON part_pkg ( promo_code );
CREATE INDEX h_part_pkg2 ON h_part_pkg ( promo_code );

apache - fix  sections to include .html also