Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Raise minimum Perl version to 5.14.1
and fill out WHATSNEW document with recent changes.
  • Loading branch information
jonjensen committed Sep 18, 2018
1 parent 7e36bbb commit bf1afaa
Show file tree
Hide file tree
Showing 17 changed files with 95 additions and 178 deletions.
4 changes: 1 addition & 3 deletions .travis.yml
@@ -1,15 +1,13 @@
language: perl
perl:
- "5.8.9"
- "5.10"
- "5.12"
- "5.14"
- "5.16"
- "5.18"
- "5.20"
- "5.22"
- "5.24"
- "5.26"
- "5.28"
sudo: false
services:
- mysql
Expand Down
34 changes: 2 additions & 32 deletions Makefile.PL
Expand Up @@ -17,7 +17,7 @@ use File::Basename;
use File::Find;
use Data::Dumper;
use Cwd;
require 5.008_005;
require 5.014_001;

use strict;

Expand Down Expand Up @@ -312,33 +312,12 @@ sub initialize {
chomp($uid = <UID>);
close UID;
}
#warn "Got past open UID file , uid=$uid user=$>\n";

$Global::TryingThreads = $Config{usethreads}
|| $Config{useithreads}
|| $Config{use5005threads};

if($Global::TryingThreads and $] < 5.008_008 and ! -f '_allow_threads') {
print <<EOF;
It is not recommended that you run Interchange with a thread-enabled
perl older than version 5.8.8, which you have called this installer with.
Either rerun with
/path/to/non-threaded/perl Makefile.PL
or accept the possible problems that come with running on an experimental
software system.
EOF

my $ans = my_prompt("Do you want to try running with threads? ", 'n');
exit if $ans !~ /^\s*y/i;
open(THR, ">_allow_threads")
or die "Can't write allow threads file: $!\n";
print THR "I agree not to hold anyone but myself responsible for the results of running an experimental system.\n";
close THR;
}

#warn "Got past open UID file , uid=$uid user=$>\n";

GETUID: {
if($> == 0 and ! $MV::Default{INTERCHANGE_USER}) {
$uid = my_prompt(
Expand Down Expand Up @@ -562,15 +541,6 @@ EOF
}
}

ALLOWTHREADS: {
unlink "$realdir/_allow_threads";
last ALLOWTHREADS unless $Global::TryingThreads;
open(THR, ">$realdir/_allow_threads")
or die "Can't write allow threads file: $!\n";
print THR "I agree not to hold anyone but myself responsible for the results of running an experimental system.\n";
close THR;
}

if($MV::Default{LSB}) {
my $d = cwd();
print "Doing LSB install...\n";
Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -98,7 +98,7 @@ The installation test script.

## Prerequisites

Interchange requires Perl 5.8.5 or later, on a Unix-like operating
Interchange requires Perl 5.14.1 or later, on a Unix-like operating
system. It is primarily used on various Linux distributions, and has
also been used on FreeBSD, OpenBSD, macOS, and other Unix variants.

Expand Down
9 changes: 6 additions & 3 deletions SPECS/interchange.spec
Expand Up @@ -18,7 +18,7 @@
Summary: Interchange web application platform
Name: interchange
Version: 5.12.0
Release: 1
Release: 2
Vendor: Interchange Development Group
Group: System Environment/Daemons
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
Expand All @@ -27,8 +27,8 @@ Packager: Jon Jensen <jon@endpoint.com>
Source0: http://www.icdevgroup.org/interchange/interchange-%{version}.tar.gz
License: GPL
Prereq: /sbin/chkconfig, /sbin/service, /usr/sbin/useradd, /usr/sbin/groupadd
BuildPrereq: perl >= 5.8.8
Requires: perl >= 5.8.8
BuildPrereq: perl >= 5.14.1
Requires: perl >= 5.14.1
Requires: perl(Safe::Hole)
Requires: perl(Set::Crontab)
Requires: interchange = %{version}-%{release}
Expand Down Expand Up @@ -381,6 +381,9 @@ fi


%changelog
* Tue Sep 18 2018 Jon Jensen <jon@endpoint.com> 5.12.0-2
- Increase minimum Perl version to 5.14.1.

* Fri Oct 27 2017 David Christensen <david@endpoint.com> 5.12.0-1
- Update for new release.

Expand Down
2 changes: 2 additions & 0 deletions UPGRADE
Expand Up @@ -7,6 +7,8 @@ Interchange is designed to be drop-in compatible in its major version.
Briefly summarized, here's what you can expect when upgrading from the
following versions:

5.12.x -- The minimum supported Perl version is now 5.14.1.

5.10.x -- A minor bug was fixed in an edge-case usage of the [area] tag which
could result in incompatibility if your code relies on the buggy
behaviour.
Expand Down
2 changes: 1 addition & 1 deletion dist/src/cpan_local_install
Expand Up @@ -7,7 +7,7 @@ use Getopt::Std;

getopts('cfd:h');

require 5.008_005;
require 5.014_001;

use vars qw/$opt_c $opt_d $opt_h $VERSION/;

Expand Down
4 changes: 2 additions & 2 deletions dist/src/mod_perl_tlink.pl
Expand Up @@ -2,7 +2,7 @@

# tlink.pl: runs as a cgi program and passes request to Interchange server
#
# Copyright (C) 2002-2008 Interchange Development Group
# Copyright (C) 2002-2018 Interchange Development Group
# Copyright (C) 1996-2002 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or
Expand All @@ -19,7 +19,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

require 5.008_005;
require 5.014_001;
use strict;
use Apache::Registry;
use Socket;
Expand Down
4 changes: 2 additions & 2 deletions dist/src/tlink.pl
Expand Up @@ -3,7 +3,7 @@
# tlink.pl: runs as a cgi program and passes request to Interchange server
# via a TCP socket
#
# Copyright (C) 2005-2008 Interchange Development Group, http://www.icdevgroup.org/
# Copyright (C) 2005-2018 Interchange Development Group, http://www.icdevgroup.org/
# Copyright (C) 1996-2002 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or
Expand All @@ -21,7 +21,7 @@
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
# MA 02110-1301 USA.

require 5.008_005;
require 5.014_001;
use strict;
use Socket;
my $LINK_TIMEOUT = 30;
Expand Down
4 changes: 2 additions & 2 deletions dist/src/vlink.pl
Expand Up @@ -3,7 +3,7 @@
# vlink.pl: runs as a cgi program and passes request to Interchange server
# via a UNIX socket

# Copyright (C) 2005-2008 Interchange Development Group, http://www.icdevgroup.org/
# Copyright (C) 2005-2018 Interchange Development Group, http://www.icdevgroup.org/
# Copyright (C) 1996-2002 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or
Expand All @@ -21,7 +21,7 @@
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
# MA 02110-1301 USA.

require 5.008_005;
require 5.014_001;
use strict;
use Socket;
my $LINK_FILE = '~@~INSTALLARCHLIB~@~/etc/socket';
Expand Down
101 changes: 64 additions & 37 deletions doc/WHATSNEW-5.12
Expand Up @@ -10,13 +10,14 @@

Interchange 5.12 not released yet

Interchange now requires Perl 5.14.1 or newer.


Installation
----
------------

* Assume that if a source code control repository is present in
the installation directory, we don't need to do the archaic .~*
file copies.
* Assume that if a source code control repository is present in the
installation directory, we don't need to do the archaic .~* file copies.


Core
Expand All @@ -28,8 +29,8 @@ Core

* Improve image uploading via the table editor.

* Improve [image] extension handling to search for lower/upper versions of file
extensions.
* Improve [image] extension handling to search for lower/uppercase versions
of file extensions.

* Add date-change "common" filter parameter.

Expand All @@ -48,7 +49,18 @@ Core

* Improved integration of CI tools for development.

* Multiple cleanups to handle more modern versions of Perl.
* Multiple cleanups and bugfixes to handle more modern versions of Perl.

* Add x_accel_expires pragma to set X-Accel-Expires header for nginx proxy caching.

* Remove non-header from BounceReferrals HTTP response headers, which
breaks output with newer Apache versions.

* Support recipient addresses in CC and BCC when using Net::SMTP.

* Make Interchange reopen debug.log/STDERR when receiving HUP signal.

* Fix race conditions in timed-build output.


Payments
Expand All @@ -61,12 +73,15 @@ Payments

* Updated Vend::Payment::PayPal to latest available version.

* Add Gateway Log feature for logging full details of payment gateway requests/responses.
(See extended section about the GatewayLog later in this document.)
* Add Gateway Log feature for logging full details of payment gateway requests/
responses. (See extended section about the GatewayLog later in this document.)


Database
--------

* Support newer versions of MySQL.

* Allow admin user to export specific tables using [backup-database] despite
current NoExportExternal setting.

Expand All @@ -81,8 +96,8 @@ Database
Assuming one has a timestamp field in the userdb table called
"update_date", this is effected by changing the configuration as:

Database userdb TIMESTAMP_FIELD update_date
Database userdb NO_UPDATE mod_time
Database userdb TIMESTAMP_FIELD update_date
Database userdb NO_UPDATE mod_time

* Add ability to return after Preload and Autoload routines.
Setting $Vend::PreloadReturn or $Vend::AutoloadReturn (i.e.
Expand All @@ -102,12 +117,12 @@ Database

If you do:

UserDB ui valref user_record
UserTag uvalue Alias data base=session key=
UserDB ui valref user_record
UserTag uvalue Alias data base=session key=

you will then be able to reference the Admin "values" with

[uvalue name]
[uvalue name]

The [if-mm] tag probably needs to be adjusted for this to work
in the admin in real life.
Expand All @@ -116,20 +131,28 @@ Database

* Update default field widths for userdb, transactions, and orderlines.

* Improve error handling/messaging when no access to database in Safe.

* Fix table editor composite key problems, both creating new and editing
existing rows.


UserDB
------

* Add "fallback_login" option, to be used with "indirect_login". If indirect fails, it will fallback
to the primary key (by default, username). This could allow users to login with email
(indirect_login = usernick), but still support login via username if they opted to use their
username instead.
* Add "fallback_login" option, to be used with "indirect_login". If
indirect fails, it will fallback to the primary key (by default,
username). This could allow users to login with email (indirect_login
= usernick), but still support login via username if they opted to use
their username instead.

* Add "promote_admin" option, to be used with "scratch". The option is set to the value of a
field name, which also has to be a "scratch" value. If that is true, and the value of the
field is true, the user will be promoted to $Vend::admin. They will not be $Vend::super.
Note that this does not gain access to the classic Interchange UI without modification,
since the login_table will not be admin (the test which is used in most cases).
* Add "promote_admin" option, to be used with "scratch". The option
is set to the value of a field name, which also has to be a "scratch"
value. If that is true, and the value of the field is true, the user
will be promoted to $Vend::admin. They will not be $Vend::super. Note
that this does not gain access to the classic Interchange UI without
modification, since the login_table will not be admin (the test which is
used in most cases).


Strap Demo Catalog
Expand All @@ -141,6 +164,9 @@ Strap Demo Catalog

* Formatting fixes on checkout pages.

* Fix broken random password number range; consistently make random
instead of using zip or phone.


Gateway Log
-----------
Expand Down Expand Up @@ -193,21 +219,22 @@ There are 3 settings a catalog manager can control when enabling gateway
logging:

* Enabled (discussed above)
Boolean to indicate that actual logging should be performed. Default
is false; thus logging must be explicitly requested. Can be set with
Route param or [charge] options "gwl_enabled", or globally with
MV_PAYMENT_GWL_ENABLED in catalog.cfg.
Boolean to indicate that actual logging should be performed. Default
is false; thus logging must be explicitly requested. Can be set with
Route param or [charge] options "gwl_enabled", or globally with
MV_PAYMENT_GWL_ENABLED in catalog.cfg.

* LogTable
Name of table to which logging should be directed. Default is
gateway_log. Can be set with Route param or [charge] option "gwl_table",
or globally with MV_PAYMENT_GWL_TABLE in catalog.cfg.
Name of table to which logging should be directed. Default is
gateway_log. Can be set with Route param or [charge] option "gwl_table",
or globally with MV_PAYMENT_GWL_TABLE in catalog.cfg.

* Source
Maps to the request_source field in the log table. Value is most
meaningful in a distributed environment, where multiple servers
running the Interchange application may be handling requests behind a
load balancer. Default value obtained from `hostname -s`. Can be set
with Route param or [charge] option "gwl_source", or globally with
MV_PAYMENT_GWL_SOURCE in catalog.cfg.

Maps to the request_source field in the log table. Value is most
meaningful in a distributed environment, where multiple servers
running the Interchange application may be handling requests behind a
load balancer. Default value obtained from `hostname -s`. Can be set
with Route param or [charge] option "gwl_source", or globally with
MV_PAYMENT_GWL_SOURCE in catalog.cfg.

(end)
4 changes: 2 additions & 2 deletions extensions/Interchange.pm
@@ -1,6 +1,6 @@
# Interchange.pm - Interchange access for Perl scripts
#
# Copyright (C) 2002-2008 Interchange Development Group
# Copyright (C) 2002-2018 Interchange Development Group
# Copyright (C) 1996-2002 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
Expand All @@ -26,13 +26,13 @@ require Exporter;
@EXPORT = qw();
@EXPORT_OK = qw();

require 5.014_001;
use strict;
use Fcntl;
use vars qw($VERSION @EXPORT @EXPORT_OK);
$VERSION = '1.6';

BEGIN {
require 5.008_005;
($Global::VendRoot = $ENV{INTERCHANGE_ROOT})
if defined $ENV{INTERCHANGE_ROOT};
($Global::CatRoot = $ENV{INTERCHANGE_CATDIR})
Expand Down

0 comments on commit bf1afaa

Please sign in to comment.