import from review #928196

This commit is contained in:
Remi Collet 2013-07-01 16:16:41 +02:00
parent 7e003e9cdc
commit f4472fd0e3
6 changed files with 357 additions and 0 deletions

1
.gitignore vendored
View File

@ -0,0 +1 @@
/apcu-4.0.1.tgz

17
apcu-panel.conf Normal file
View File

@ -0,0 +1,17 @@
# APC Control Panel
Alias /apcu-panel /usr/share/apcu-panel
<Directory /usr/share/apcu-panel>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>

23
apcu.conf.php Normal file
View File

@ -0,0 +1,23 @@
<?php
define('USE_AUTHENTICATION',1); // Use (internal) authentication - best choice if
// no other authentication is available
// If set to 0:
// There will be no further authentication. You
// will have to handle this by yourself!
// If set to 1:
// You need to change ADMIN_PASSWORD to make
// this work!
define('ADMIN_USERNAME','apc'); // Admin Username
define('ADMIN_PASSWORD','password'); // Admin Password - CHANGE THIS TO ENABLE!!!
// (beckerr) I'm using a clear text password here, because I've no good idea how to let
// users generate a md5 or crypt password in a easy way to fill it in above
//define('DATE_FORMAT', "d.m.Y H:i:s"); // German
//define('DATE_FORMAT', "d/m/Y H:i:s"); // French
define('DATE_FORMAT', 'Y/m/d H:i:s'); // US
define('GRAPH_SIZE',200); // Image size
//define('PROXY', 'tcp://127.0.0.1:8080');

72
apcu.ini Normal file
View File

@ -0,0 +1,72 @@
; Enable APCu extension module
extension = apcu.so
; This can be set to 0 to disable APCu
apc.enabled=1
; Setting this enables APCu for the CLI version of PHP
; (Mostly for testing and debugging).
;apc.enable_cli=0
; Sets the path to text files containing caches to load from disk upon
; initialization of APCu. preload_path should be a directory where each
; file follows $key.data where $key should be used as the entry name
; and the contents of the file contains serialized data to use as the value
; of the entry.
;apc.preload_path=
; The size of each shared memory segment, with M/G suffixe
;apc.shm_size=32M
; The number of seconds a cache entry is allowed to idle in a slot in case
; this cache entry slot is needed by another entry.
;apc.ttl=0
; The number of seconds that a cache entry may remain on the
; garbage-collection list.
;apc.gc_ttl=3600
; If you begin to get low on resources, an expunge of the cache
; is performed if it is less than half full. This is not always
; a suitable way of determining if an expunge of the cache
; should be per apc.smart allows you to set a runtime configuration
; value which is used to determine if an expunge should be run
; if (available_size < apc.smart * requested_size)
;apc.smart=0
; A "hint" about the number variables expected in the cache.
; Set to zero or omit if you are not sure;
;apc.entries_hint=4096
; The mktemp-style file_mask to pass to the mmap module
apc.mmap_file_mask=/tmp/apc.XXXXXX
; On very busy servers whenever you start the server or
; modify files you can create a race of many processes
; all trying to cache the same data at the same time.
; By default, APCu attempts to prevent "slamming" of a key.
; A key is considered "slammed" if it was the last key set,
; and a context other than the current one set it ( ie. it
; was set by another process or thread )
;apc.slam_defense=1
; Defines which serializer should be used
; Default is the standard PHP serializer.
;apc.serializer='default'
; use the SAPI request start time for TTL
;apc.use_request_time=1
; Enables APCu handling of signals, such as SIGSEGV, that write core files
; when signaled. APCu will attempt to unmap the shared memory segment in
; order to exclude it from the core file
;apc.coredump_unmap=0
; RFC1867 File Upload Progress hook handler
;apc.rfc1867=0
;apc.rfc1867_prefix =upload_
;apc.rfc1867_name=APC_UPLOAD_PROGRESS
;apc.rfc1867_freq=0
;apc.rfc1867_ttl=3600

243
php-pecl-apcu.spec Normal file
View File

@ -0,0 +1,243 @@
%{!?php_inidir: %{expand: %%global php_inidir %{_sysconfdir}/php.d}}
%{!?php_incldir: %{expand: %%global php_incldir %{_includedir}/php}}
%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}}
%global pecl_name apcu
%global with_zts 0%{?__ztsphp:1}
Name: php-pecl-apcu
Summary: APC User Cache
Version: 4.0.1
Release: 1%{?dist}
Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
Source1: %{pecl_name}.ini
Source2: %{pecl_name}-panel.conf
Source3: %{pecl_name}.conf.php
License: PHP
Group: Development/Languages
URL: http://pecl.php.net/package/APCu
BuildRequires: php-devel
BuildRequires: php-pear
Requires(post): %{__pecl}
Requires(postun): %{__pecl}
Requires: php(zend-abi) = %{php_zend_api}
Requires: php(api) = %{php_core_api}
Obsoletes: php-apcu < 4.0.0-1
Provides: php-apcu = %{version}
Provides: php-apcu%{?_isa} = %{version}
Provides: php-pecl(apcu) = %{version}
Provides: php-pecl(apcu)%{?_isa} = %{version}
# Same provides than APC, this is a drop in replacement
Conflicts: php-pecl-apc < 4
Provides: php-apc = %{version}
Provides: php-apc%{?_isa} = %{version}
Provides: php-pecl-apc = %{version}
Provides: php-pecl-apc%{?_isa} = %{version}
Provides: php-pecl(APC) = %{version}
Provides: php-pecl(APC)%{?_isa} = %{version}
# Filter private shared
%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$}
%{?filter_setup}
%description
APCu is userland caching: APC stripped of opcode caching in preparation
for the deployment of Zend OPcache as the primary solution to opcode
caching in future versions of PHP.
APCu has a revised and simplified codebase, by the time the PECL release
is available, every part of APCu being used will have received review and
where necessary or appropriate, changes.
Simplifying and documenting the API of APCu completely removes the barrier
to maintenance and development of APCu in the future, and additionally allows
us to make optimizations not possible previously because of APC's inherent
complexity.
APCu only supports userland caching (and dumping) of variables, providing an
upgrade path for the future. When O+ takes over, many will be tempted to use
3rd party solutions to userland caching, possibly even distributed solutions;
this would be a grave error. The tried and tested APC codebase provides far
superior support for local storage of PHP variables.
%package devel
Summary: APCu developer files (header)
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: php-devel%{?_isa}
#Obsoletes: php-pecl-apc-devel
%description devel
These are the files needed to compile programs using APCu.
%package -n apcu-panel
Summary: APCu control panel
Group: Applications/Internet
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Requires: mod_php, httpd, php-gd
#Obsoletes: apc-panel
%description -n apcu-panel
This package provides the APCu control panel, with Apache
configuration, available on http://localhost/apcu-panel/
%prep
%setup -qc
mv %{pecl_name}-%{version} NTS
cd NTS
# Sanity check, really often broken
extver=$(sed -n '/#define PHP_APC_VERSION/{s/.* "//;s/".*$//;p}' php_apc.h)
if test "x${extver}" != "x%{version}"; then
: Error: Upstream extension version is ${extver}, expecting %{version}.
exit 1
fi
cd ..
%if %{with_zts}
# duplicate for ZTS build
cp -pr NTS ZTS
%endif
%build
cd NTS
%{_bindir}/phpize
%configure --with-php-config=%{_bindir}/php-config
make %{?_smp_mflags}
%if %{with_zts}
cd ../ZTS
%{_bindir}/zts-phpize
%configure --with-php-config=%{_bindir}/zts-php-config
make %{?_smp_mflags}
%endif
%install
# Install the NTS stuff
make -C NTS install INSTALL_ROOT=%{buildroot}
install -D -m 644 %{SOURCE1} %{buildroot}%{php_inidir}/%{pecl_name}.ini
# Install the ZTS stuff
%if %{with_zts}
make -C ZTS install INSTALL_ROOT=%{buildroot}
install -D -m 644 %{SOURCE1} %{buildroot}%{php_ztsinidir}/%{pecl_name}.ini
%endif
# Install the package XML file
install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
# Install the Control Panel
# Pages
install -d -m 755 %{buildroot}%{_datadir}/apcu-panel
sed -e s:apc.conf.php:%{_sysconfdir}/apcu-panel/conf.php:g \
NTS/apc.php >%{buildroot}%{_datadir}/apcu-panel/index.php
# Apache config
install -D -m 644 -p %{SOURCE2} \
%{buildroot}%{_sysconfdir}/httpd/conf.d/apcu-panel.conf
# Panel config
install -D -m 644 -p %{SOURCE3} \
%{buildroot}%{_sysconfdir}/apcu-panel/conf.php
%check
cd NTS
# Check than both extensions are reported (BC mode)
%{_bindir}/php -n -d extension_dir=modules -d extension=apcu.so -m | grep 'apcu'
%{_bindir}/php -n -d extension_dir=modules -d extension=apcu.so -m | grep 'apc$'
# Upstream test suite
TEST_PHP_EXECUTABLE=%{_bindir}/php \
TEST_PHP_ARGS="-n -d extension_dir=$PWD/modules -d extension=%{pecl_name}.so" \
NO_INTERACTION=1 \
REPORT_EXIT_STATUS=1 \
%{_bindir}/php -n run-tests.php
%if %{with_zts}
cd ../ZTS
%{__ztsphp} -n -d extension_dir=modules -d extension=apcu.so -m | grep 'apcu'
%{__ztsphp} -n -d extension_dir=modules -d extension=apcu.so -m | grep 'apc$'
TEST_PHP_EXECUTABLE=%{__ztsphp} \
TEST_PHP_ARGS="-n -d extension_dir=$PWD/modules -d extension=%{pecl_name}.so" \
NO_INTERACTION=1 \
REPORT_EXIT_STATUS=1 \
%{__ztsphp} -n run-tests.php
%endif
%post
%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
%postun
if [ $1 -eq 0 ] ; then
%{pecl_uninstall} %{pecl_name} >/dev/null || :
fi
%files
%doc NTS/{NOTICE,LICENSE,README.md}
%{pecl_xmldir}/%{name}.xml
%config(noreplace) %{php_inidir}/%{pecl_name}.ini
%{php_extdir}/%{pecl_name}.so
%if %{with_zts}
%{php_ztsextdir}/%{pecl_name}.so
%config(noreplace) %{php_ztsinidir}/%{pecl_name}.ini
%endif
%files devel
%{php_incldir}/ext/%{pecl_name}
%if %{with_zts}
%{php_ztsincldir}/ext/%{pecl_name}
%endif
%files -n apcu-panel
%defattr(-,root,root,-)
# Need to restrict access, as it contains a clear password
%attr(750,apache,root) %dir %{_sysconfdir}/apcu-panel
%config(noreplace) %{_sysconfdir}/apcu-panel/conf.php
%config(noreplace) %{_sysconfdir}/httpd/conf.d/apcu-panel.conf
%{_datadir}/apcu-panel
%changelog
* Tue Apr 30 2013 Remi Collet <remi@fedoraproject.org> - 4.0.1-1
- Update to 4.0.1
- add missing scriptlet
- fix Conflicts
* Thu Apr 25 2013 Remi Collet <remi@fedoraproject.org> - 4.0.0-2
- fix segfault when used from command line
* Wed Mar 27 2013 Remi Collet <remi@fedoraproject.org> - 4.0.0-1
- first pecl release
- rename from php-apcu to php-pecl-apcu
* Tue Mar 26 2013 Remi Collet <remi@fedoraproject.org> - 4.0.0-0.4.git4322fad
- new snapshot (test before release)
* Mon Mar 25 2013 Remi Collet <remi@fedoraproject.org> - 4.0.0-0.3.git647cb2b
- new snapshot with our pull request
- allow to run test suite simultaneously on 32/64 arch
- build warning free
* Mon Mar 25 2013 Remi Collet <remi@fedoraproject.org> - 4.0.0-0.2.git6d20302
- new snapshot with full APC compatibility
* Sat Mar 23 2013 Remi Collet <remi@fedoraproject.org> - 4.0.0-0.1.git44e8dd4
- initial package, version 4.0.0

View File

@ -0,0 +1 @@
994de4335eb2967c006aa9ca185876fa apcu-4.0.1.tgz