forked from armatronic/php-ibm_db2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.sh
More file actions
executable file
·179 lines (147 loc) · 5.15 KB
/
package.sh
File metadata and controls
executable file
·179 lines (147 loc) · 5.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#!/bin/bash
initialdir=`pwd`;
echo "Build and package php-ibm_db2";
echo "operating in dir: `pwd`";
echo "Creating artifact directory";
mkdir -vp $initialdir/package-artifacts;
distrocodename=`cat /etc/lsb-release | grep DISTRIB_CODENAME | cut -d'=' -f2`;
if [ "$distrocodename" == "trusty" ];
then
echo "Running on Ubuntu 14.04 Trusty";
echo "Installing newer build toolchain";
apt-get update;
apt-get -y install software-properties-common python-software-properties;
add-apt-repository ppa:ubuntu-toolchain-r/test -y;
apt-get update;
export CPPFLAGS="-DSIZEOF_LONG_INT=8";
apt-get -y install gcc-5 g++-5 libgss3;
if [ $? -ne 0 ];
then
echo "unable to installed updated toolchain";
exit 1;
fi
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5;
fi
# What package versions are we using?
# For 7.1 use the old versions: for 7.4 use newer
phpver=`php -v | head -n1 | awk '{print $2}' | cut -d'.' -f1-2`;
if [ $phpver == '7.1' ]; then
ibmdb2ver='1.9.9';
db2odbcver='11.1';
elif [ $phpver == '7.4' ]; then
# TODO upload newer ibm_db2 for PHP drivers to repo.schoolbox.com.au
# The drivers are currently publicly available at:
# https://pecl.php.net/package/ibm_db2
ibmdb2ver='2.0.8';
# TODO upload newer DB2 ODBC CLI drivers to repo.schoolbox.com.au
# (I think the most recent version is 11.5.4, as that is the most recent version
# available in the IBM Data Server Driver Package, as found on
# https://epwt-www.mybluemix.net/software/support/trial/cst/programwebsite.wss?siteId=853)
# (There is an older driver 11.1.4.4 currently publicly available at:
# https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/)
db2odbcver='11.5.4';
# TODO consider using this script to build PDO_IBM package
# (not installable via `pecl install pdo_ibm`: may be compiled from source,
# downloadable from https://pecl.php.net/package/PDO_IBM)
pdoibmver='1.3.6';
else
echo "Build and package script only supports PHP 7.1 and 7.4";
exit 1;
fi
echo "Downloading ibm_db2 for php";
cd $initialdir;
wget https://repo.schoolbox.com.au/ibm_db2-$ibmdb2ver.tgz;
if [ $? -ne 0 ];
then
echo "Tarball download failed: ibm_db2-$ibmdb2ver.tgz";
exit 1;
fi
if [ -f ibm_db2-$ibmdb2ver.tgz ];
then
tar xzvf ibm_db2-$ibmdb2ver.tgz -C /opt;
else
echo "Missing ibm_db2-$ibmdb2ver.tgz"
exit 1;
fi
echo "Downloading ibm_odbc_cli";
cd $initialdir;
mkdir -vp /opt/ibm;
wget https://repo.schoolbox.com.au/ibm_data_server_driver_for_odbc_cli_linuxx64_v$db2odbcver.tar.gz;
if [ $? -ne 0 ];
then
echo "Tarball download failed: ibm_data_server_driver_for_odbc_cli_linuxx64_v$db2odbcver.tar.gz";
exit 1;
fi
if [ -f ibm_data_server_driver_for_odbc_cli_linuxx64_v$db2odbcver.tar.gz ];
then
tar xzvf ibm_data_server_driver_for_odbc_cli_linuxx64_v$db2odbcver.tar.gz -C /opt;
else
echo "Missing ibm_data_server_driver_for_odbc_cli_linuxx64_v$db2odbcver.tar.gz"
ls -lR;
exit 1;
fi
mv -v /opt/clidriver /opt/ibm/sqllib;
echo "Exporting environment variables";
export IBM_DB_HOME=/opt/ibm/sqllib;
export IBM_DB_DIR=/opt/ibm/sqllib;
export IBM_DB_LIB=/opt/ibm/sqllib/lib;
echo "IBM_DB_HOME: $IBM_DB_HOME";
echo "IBM_DB_DIR: $IBM_DB_DIR";
echo "IBM_DB_LIB: $IBM_DB_LIB";
echo "Compiling driver from source";
cd /opt/ibm_db2-$ibmdb2ver;
echo "For php version: $phpver";
echo "phpize";
phpize=`phpize`;
echo "$phpize";
zendapi=`echo "$phpize" | grep 'Zend Module Api No:' | cut -d':' -f2 | awk '{print $1}'`;
echo "Zend API: $zendapi";
echo "configure php-ibm_db2";
./configure -with-IBM_DB2=/opt/ibm/sqllib;
echo "make php-ibm_db2";
make;
echo "make install php-ibm_db2";
make install;
echo "modules"
ls -lR modules;
phpibmdb2dir=`pwd`;
# Create directories for completing the build
builddir="$initialdir/build-dir-`date -I`";
rm -fR $builddir;
mkdir -vp $builddir;
cd $builddir;
cleanver=`echo "$ibmdb2ver" | cut -d'-' -f1`;
ibmdb2ver="$cleanver";
mkdir php$phpver-ibmdb2-$ibmdb2ver;
cp -v /usr/lib/php/$zendapi/ibm_db2.so php$phpver-ibmdb2-$ibmdb2ver/;
cp -v $initialdir/php-ibm_db2-package/extra/* php$phpver-ibmdb2-$ibmdb2ver/;
cp -vR /opt/ibm/sqllib php$phpver-ibmdb2-$ibmdb2ver/;
tar czvf php$phpver-ibmdb2_$ibmdb2ver.orig.tar.gz php$phpver-ibmdb2-$ibmdb2ver;
cp -vfR $initialdir/php-ibm_db2-package/debian php$phpver-ibmdb2-$ibmdb2ver/;
cd php$phpver-ibmdb2-$ibmdb2ver;
mv -v debian/phpX.Y-ibmdb2.install debian/php$phpver-ibmdb2.install;
mv -v debian/phpX.Y-ibmdb2.links debian/php$phpver-ibmdb2.links;
sed -i "s/X\.Y/$phpver/g" debian/*;
sed -i "s/YYYYMMDD/$zendapi/g" debian/*;
sed -i "s/DISTROCODENAME/$distrocodename/g" debian/*;
sed -i "s/IBM_DB2VER/$ibmdb2ver/g" debian/*;
# Build!
debuild -i -I -us -uc;
if [ $? -ne 0 ];
then
echo "Build failed";
exit 1;
fi
echo "Copy deb files to package-artifacts";
cp -vf ../*.deb $initialdir/package-artifacts;
echo "Artifact List: `readlink -f $initialdir/package-artifacts/`";
ls -lhR $initialdir/package-artifacts/;
echo "Creating package tarball";
cd $initialdir;
tar czvf php$phpver-ibm_db2-package.tar.gz package-artifacts;
if [ $? -ne 0 ];
then
echo "Unable to tarball packages";
exit 1;
fi
cp -v php$phpver-ibm_db2-package.tar.gz $initialdir/package-artifacts/;