summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--266.patch69
-rw-r--r--php-snuffleupagus.spec16
2 files changed, 77 insertions, 8 deletions
diff --git a/266.patch b/266.patch
new file mode 100644
index 0000000..3271e39
--- /dev/null
+++ b/266.patch
@@ -0,0 +1,69 @@
+From 1e152059e17a50f95d739cdcf22dc499bb3ec7ad Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Thu, 13 Dec 2018 08:08:55 +0100
+Subject: [PATCH] use php script, get rid of python for test suite
+
+---
+ scripts/upload_validation.php | 45 +++++++++++++++++++++
+ src/tests/config/upload_validation_real.ini | 2 +-
+ 2 files changed, 46 insertions(+), 1 deletion(-)
+ create mode 100755 scripts/upload_validation.php
+
+diff --git a/scripts/upload_validation.php b/scripts/upload_validation.php
+new file mode 100755
+index 0000000..71f83e6
+--- /dev/null
++++ b/scripts/upload_validation.php
+@@ -0,0 +1,45 @@
++#!/usr/bin/env php
++<?php
++
++function check($filename) {
++
++ $whitelist = ['ECHO', 'RETURN', 'PHP', 'NOP'];
++
++ $out = [];
++ $ret = 0;
++ $cmd = [
++ PHP_BINARY,
++ "-d", "vld.active=1",
++ "-d", "vld.execute=0",
++ "-d", "extension=vld.so",
++ "-d", "vld.format=1",
++ "-d", "vld.col_sep=@",
++ "-d", "log_errors=0",
++ "-d", "error_log=/dev/null",
++ $filename,
++ '2>&1',
++ ];
++ exec(implode(' ', $cmd), $out, $ret);
++ if ($ret) {
++ printf("Error: %d\n", $ret);
++ return 2;
++ }
++ foreach($out as $line) {
++ $sp = explode('@', $line);
++ if (count($sp) < 5) {
++ continue;
++ }
++ $opcode = $sp[4]; // # ,line, #, EIO, op, fetch, ext, return, operands
++ if ($opcode && !in_array($opcode, $whitelist)) {
++ printf("Upload_validation: Found an opcode: %s\n", $opcode);
++ return 1;
++ }
++ }
++ return 0;
++}
++
++if ($_SERVER['argc'] != 2) {
++ die("Usage: {$_SERVER['argv']['0']} file_to_test.php\n");
++}
++exit(check($_SERVER['argv']['1']));
++
+diff --git a/src/tests/config/upload_validation_real.ini b/src/tests/config/upload_validation_real.ini
+index 6463466..690e9bf 100644
+--- a/src/tests/config/upload_validation_real.ini
++++ b/src/tests/config/upload_validation_real.ini
+@@ -1 +1 @@
+-sp.upload_validation.script("../scripts/upload_validation.py").enable();
++sp.upload_validation.script("../scripts/upload_validation.php").enable();
diff --git a/php-snuffleupagus.spec b/php-snuffleupagus.spec
index d08f0f2..0a3e139 100644
--- a/php-snuffleupagus.spec
+++ b/php-snuffleupagus.spec
@@ -35,7 +35,7 @@ Version: 0.4.0
%if 0%{?gh_date}
Release: 1%{gh_date}.%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
%else
-Release: 3%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 4%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
%endif
License: LGPLv3
Group: Development/Languages
@@ -43,17 +43,12 @@ URL: https://github.com/%{gh_owner}/%{gh_project}
Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{pkg_name}-%{version}-%{gh_short}.tar.gz
Patch0: https://patch-diff.githubusercontent.com/raw/nbs-system/snuffleupagus/pull/242.patch
+Patch1: https://patch-diff.githubusercontent.com/raw/nbs-system/snuffleupagus/pull/266.patch
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?scl_prefix}php-devel > 7
BuildRequires: pcre-devel
# For tests/upload_validation_real.phpt
-%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8
-%global python %{_root_bindir}/python3
-%else
-%global python %{_root_bindir}/python
-%endif
-BuildRequires: %{python}
BuildRequires: %{?scl_prefix}php-vld
#BuildRequires: gdb
#BuildRequires: php-debuginfo
@@ -100,6 +95,7 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO
%prep
%setup -q -n %{gh_project}-%{gh_commit}
%patch0 -p1 -b .pr242
+%patch1 -p1 -b .pr266
cd src
# Sanity check, really often broken
@@ -176,7 +172,7 @@ install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
rm src/tests/stream_wrapper.phpt
%endif
-sed -e 's:#!/usr/bin/python:#!%{python}:' -i scripts/upload_validation.py
+sed -e 's:#!/usr/bin/env php:#!%{__php}:' -i scripts/upload_validation.php
cd src
: Minimal load test for NTS extension
@@ -225,6 +221,10 @@ REPORT_EXIT_STATUS=1 \
%changelog
+* Thu Dec 13 2018 Remi Collet <remi@remirepo.net> - 0.4.0-4
+- drop dependency on python, test build for
+ https://github.com/nbs-system/snuffleupagus/pull/266
+
* Tue Dec 4 2018 Remi Collet <remi@remirepo.net> - 0.4.0-3
- EL-8 build