summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlookshe <github@lookshe.org>2020-12-15 08:33:27 +0100
committerlookshe <github@lookshe.org>2020-12-15 08:33:27 +0100
commit5267f8fd768cf7ac8e99403f7e120cb8e7237e21 (patch)
tree98ab3291a194e711408daa62e7111d587efb453b
parent8bcca628c5a073894f7755fea30eeec27cb7ca00 (diff)
initial php 8.0, imagick not compatible (https://github.com/Imagick/imagick/pull/334)php8.0
-rw-r--r--php-8.0-opt/.build.Dockerfile.swpbin0 -> 20480 bytes
-rw-r--r--php-8.0-opt/README.md18
-rw-r--r--php-8.0-opt/TODO.md6
-rw-r--r--php-8.0-opt/build.Dockerfile193
-rw-r--r--php-8.0-opt/copy.Dockerfile14
-rw-r--r--php-8.0-opt/out/.gitignore2
6 files changed, 233 insertions, 0 deletions
diff --git a/php-8.0-opt/.build.Dockerfile.swp b/php-8.0-opt/.build.Dockerfile.swp
new file mode 100644
index 0000000..91ca300
--- /dev/null
+++ b/php-8.0-opt/.build.Dockerfile.swp
Binary files differ
diff --git a/php-8.0-opt/README.md b/php-8.0-opt/README.md
new file mode 100644
index 0000000..b75bca7
--- /dev/null
+++ b/php-8.0-opt/README.md
@@ -0,0 +1,18 @@
+## PHP 8.0 for Debian Wheezy
+
+PHP 8.0 as .deb file for installation in /opt and all dependencies as .deb files.
+
+### Build
+
+Build is done inside Debian Wheezy docker with
+```
+DOCKER_BUILDKIT=1 docker build --file build.Dockerfile --tag lookshe/php-8.0-opt-build .
+```
+
+### Get installation files
+
+To copy the .deb files out of build container run
+```
+DOCKER_BUILDKIT=1 docker build --file copy.Dockerfile --output out .
+```
+
diff --git a/php-8.0-opt/TODO.md b/php-8.0-opt/TODO.md
new file mode 100644
index 0000000..7e03426
--- /dev/null
+++ b/php-8.0-opt/TODO.md
@@ -0,0 +1,6 @@
+## ToDo
+
+- correct depencies in .deb files
+ - checkinstall --provides
+ - checkinstall --requires
+
diff --git a/php-8.0-opt/build.Dockerfile b/php-8.0-opt/build.Dockerfile
new file mode 100644
index 0000000..29e6e5c
--- /dev/null
+++ b/php-8.0-opt/build.Dockerfile
@@ -0,0 +1,193 @@
+FROM debian/eol:wheezy
+
+ENV MAIN_PREFIX_NO_ROOT opt/php-8.0
+ENV MAIN_PREFIX /$MAIN_PREFIX_NO_ROOT
+ENV DEP_PREFIX $MAIN_PREFIX/dependencies
+ENV PACKAGE_NAME php-8.0.0-opt
+
+RUN apt-get update \
+ && apt-get install -y \
+ curl \
+ build-essential \
+ net-tools \
+ autoconf \
+ pkg-config \
+ wget \
+ libkrb5-dev \
+ libssl-dev \
+ libsqlite3-dev \
+ libbz2-dev \
+ libpng12-dev libjpeg8-dev \
+ libfreetype6-dev \
+ libc-client-dev \
+ libpq-dev \
+ libxslt1-dev \
+ checkinstall \
+ zlib1g-dev \
+ libtool \
+ bison \
+ libgmp-dev \
+ libtidy-dev \
+ libgd2-xpm-dev \
+ libmagickwand-dev \
+ libmagickcore-dev \
+ python-dev \
+ libldap2-dev
+RUN wget https://curl.se/download/curl-7.73.0.tar.gz
+RUN tar xzf curl-7.73.0.tar.gz
+RUN cd curl-7.73.0 \
+ && ./configure --prefix=$DEP_PREFIX \
+ && make \
+ && make install \
+ && checkinstall -y --pkgname $PACKAGE_NAME-libcurl
+RUN curl https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.9.10/libxml2-v2.9.10.tar.gz > libxml2-v2.9.10.tar.gz
+RUN tar xzf libxml2-v2.9.10.tar.gz
+RUN cd libxml2-v2.9.10 \
+ && ./autogen.sh --prefix=$DEP_PREFIX \
+ && make \
+ && make install \
+ && checkinstall -y --pkgname $PACKAGE_NAME-libxml2
+RUN wget https://cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
+RUN tar xzf cmake-2.8.12.1.tar.gz
+RUN cd cmake-2.8.12.1 \
+ && ./bootstrap \
+ && make \
+ && make install
+RUN wget https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.6.tar.gz -O libjpeg-turbo-2.0.6.tar.gz
+RUN tar xzf libjpeg-turbo-2.0.6.tar.gz
+RUN cd libjpeg-turbo-2.0.6 \
+ && mkdir build \
+ && cd build \
+ && cmake -DCMAKE_INSTALL_PREFIX=$DEP_PREFIX -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_STATIC=FALSE -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib .. \
+ && make \
+ && checkinstall -y --pkgname $PACKAGE_NAME-libjpeg-turbo --pkgversion 1
+RUN ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
+RUN wget https://web.mit.edu/kerberos/dist/krb5/1.17/krb5-1.17.2.tar.gz
+RUN tar xzf krb5-1.17.2.tar.gz
+RUN cd krb5-1.17.2/src \
+ && ./configure --prefix=$DEP_PREFIX \
+ && make \
+ && checkinstall -y --pkgname $PACKAGE_NAME-krb5 --pkgversion 1
+RUN wget https://github.com/unicode-org/icu/releases/download/release-50-2/icu4c-50_2-src.tgz
+RUN tar xzf icu4c-50_2-src.tgz
+RUN cd icu/source/ \
+ && ./configure --prefix=$DEP_PREFIX \
+ && make \
+ && checkinstall -y --pkgname $PACKAGE_NAME-icu --pkgversion 1
+RUN wget https://github.com/kkos/oniguruma/archive/v6.9.6.tar.gz
+RUN tar xzf v6.9.6.tar.gz
+RUN cd oniguruma-6.9.6 \
+ && autoreconf -vfi \
+ && ./configure --prefix=$DEP_PREFIX \
+ && make \
+ && checkinstall -y --pkgname $PACKAGE_NAME-oniguruma
+RUN wget https://libzip.org/download/libzip-0.11.2.tar.gz
+RUN tar xzf libzip-0.11.2.tar.gz
+# in this case checkinstall only works after "make install"
+RUN cd libzip-0.11.2 \
+ && ./configure --prefix=$DEP_PREFIX \
+ && make \
+ && make install \
+ && checkinstall -y --pkgname $PACKAGE_NAME-libzip
+RUN wget https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.gz
+RUN tar xzf libgd-2.1.1.tar.gz
+RUN cd libgd-2.1.1 \
+ && ./configure --prefix=$DEP_PREFIX \
+ && make \
+ && checkinstall -y --pkgname $PACKAGE_NAME-libgd
+RUN curl https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz > libsodium-1.0.18.tar.gz
+RUN tar xzf libsodium-1.0.18.tar.gz
+RUN cd libsodium-1.0.18 \
+ && ./configure --prefix=$DEP_PREFIX \
+ && make \
+ && checkinstall -y --pkgname $PACKAGE_NAME-libsodium
+RUN wget https://www.php.net/distributions/php-8.0.0.tar.gz
+RUN tar xzf php-8.0.0.tar.gz
+RUN cd php-8.0.0 \
+ && PKG_CONFIG_PATH=$DEP_PREFIX/lib/pkgconfig ./configure \
+ --prefix=$MAIN_PREFIX \
+ #--with-libdir=/lib/x86_64-linux-gnu \
+ #--disable-rpath \
+ --enable-static \
+ --enable-bcmath \
+ --enable-calendar \
+ --enable-exif \
+ --enable-fpm \
+ --enable-ftp \
+ --enable-gd \
+ --enable-intl \
+ --enable-mbstring \
+ --enable-pcntl \
+ --enable-pdo \
+ --enable-shmop \
+ --enable-soap \
+ --enable-sockets \
+ --enable-sysvsem \
+ --enable-sysvshm \
+ --enable-zip \
+ --with-bz2 \
+ --with-config-file-path=$MAIN_PREFIX/etc \
+ --with-config-file-scan-dir=$MAIN_PREFIX/etc/conf.d \
+ --with-curl \
+ --with-external-gd \
+ --with-freetype \
+ --with-gettext \
+ --with-gmp \
+ --with-imap \
+ --with-imap-ssl \
+ --with-jpeg \
+ --with-kerberos \
+ --with-ldap=shared \
+ --with-mhash \
+ --with-mysql-sock=/var/run/mysqld/mysqld.sock \
+ --with-mysqli \
+ --with-openssl \
+ --with-pdo-mysql \
+ --with-pdo-sqlite \
+ --with-pear \
+ --with-sodium \
+ --with-sqlite3 \
+ --with-tidy \
+ --with-xmlrpc \
+ --with-xpm \
+ --with-xsl \
+ --with-zip \
+ --with-zlib \
+ && make
+RUN cd php-8.0.0 \
+ && mkdir -p $MAIN_PREFIX_NO_ROOT/etc/conf.d \
+ && cp php.ini-production $MAIN_PREFIX_NO_ROOT/etc/php.ini \
+ && sed -i -E 's/^short_open_tag =.+$/short_open_tag = On/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
+ && sed -i -E 's/^expose_php =.+$/expose_php = Off/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
+ && sed -i -E 's/^memory_limit =.+$/memory_limit = 256M/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
+ && sed -i -E 's/^;?date\.timezone =.*$/date.timezone = Europe\/Berlin/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
+ && sed -i -E 's/^mail\.add_x_header =.+$/mail.add_x_header = On/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
+ && echo zend_extension=opcache.so > $MAIN_PREFIX_NO_ROOT/etc/conf.d/opcache.ini \
+ && echo $MAIN_PREFIX_NO_ROOT/etc/php.ini >> files_to_add \
+ && echo $MAIN_PREFIX_NO_ROOT/etc/conf.d/opcache.ini >> files_to_add \
+ && checkinstall -y --pkgname $PACKAGE_NAME --include files_to_add
+RUN cd /php-8.0.0/ext \
+ && wget https://github.com/Imagick/imagick/archive/3.4.4.tar.gz \
+ && tar xzf 3.4.4.tar.gz \
+ && cd imagick-3.4.4 \
+ && $MAIN_PREFIX/bin/phpize \
+ && ./configure --with-php-config=$MAIN_PREFIX/bin/php-config \
+ && make
+RUN cd /php-8.0.0/ext/imagick-3.4.4 \
+ && mkdir -p $MAIN_PREFIX_NO_ROOT/etc/conf.d \
+ && echo extension=imagick.so > $MAIN_PREFIX_NO_ROOT/etc/conf.d/imagick.ini \
+ && echo $MAIN_PREFIX_NO_ROOT/etc/conf.d/imagick.ini >> files_to_add \
+ && checkinstall -y --pkgname $PACKAGE_NAME-imagick --include files_to_add
+RUN cd /php-8.0.0/ext \
+ && wget https://github.com/krakjoe/apcu/archive/v5.1.19.tar.gz \
+ && tar xzf v5.1.19.tar.gz \
+ && cd apcu-5.1.19 \
+ && $MAIN_PREFIX/bin/phpize \
+ && ./configure --with-php-config=$MAIN_PREFIX/bin/php-config \
+ && make
+RUN cd /php-8.0.0/ext/apcu-5.1.19 \
+ && mkdir -p $MAIN_PREFIX_NO_ROOT/etc/conf.d \
+ && echo extension=apcu.so > $MAIN_PREFIX_NO_ROOT/etc/conf.d/apcu.ini \
+ && echo $MAIN_PREFIX_NO_ROOT/etc/conf.d/apcu.ini >> files_to_add \
+ && checkinstall -y --pkgname $PACKAGE_NAME-apcu --include files_to_add
+
diff --git a/php-8.0-opt/copy.Dockerfile b/php-8.0-opt/copy.Dockerfile
new file mode 100644
index 0000000..07efd0c
--- /dev/null
+++ b/php-8.0-opt/copy.Dockerfile
@@ -0,0 +1,14 @@
+FROM lookshe/php-8.0-opt-build AS build-stage
+
+FROM scratch AS export-stage
+COPY --from=build-stage /php-8.0.0/php-8.0.0-opt_8.0.0-1_amd64.deb .
+COPY --from=build-stage /libzip-0.11.2/php-8.0.0-opt-libzip_0.11.2-1_amd64.deb .
+COPY --from=build-stage /icu/source/php-8.0.0-opt-icu_1-1_amd64.deb .
+COPY --from=build-stage /oniguruma-6.9.6/php-8.0.0-opt-oniguruma_6.9.6-1_amd64.deb .
+COPY --from=build-stage /libgd-2.1.1/php-8.0.0-opt-libgd_2.1.1-1_amd64.deb .
+COPY --from=build-stage /libjpeg-turbo-2.0.6/build/php-8.0.0-opt-libjpeg-turbo_1-1_amd64.deb .
+COPY --from=build-stage /krb5-1.17.2/src/php-8.0.0-opt-krb5_1-1_amd64.deb .
+COPY --from=build-stage /php-8.0.0/ext/imagick-3.4.4/php-8.0.0-opt-imagick_3.4.4-1_amd64.deb .
+COPY --from=build-stage /php-8.0.0/ext/apcu-5.1.19/php-8.0.0-opt-apcu_5.1.19-1_amd64.deb .
+COPY --from=build-stage /libsodium-1.0.18/php-8.0.0-opt-libsodium_1.0.18-1_amd64.deb .
+
diff --git a/php-8.0-opt/out/.gitignore b/php-8.0-opt/out/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/php-8.0-opt/out/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore