From 0a05e18613f9e860c6eff01b473b3822259a882b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 15 Jan 2013 14:43:12 +0100 Subject: patch for http://bugs.horde.org/ticket/11958 : Allow to run unit tests for a not installed component --- Horde_Translation-except.patch | 28 ++++++ find-lang.sh | 192 --------------------------------------- php-horde-Horde-Translation.spec | 48 +++++----- 3 files changed, 50 insertions(+), 218 deletions(-) create mode 100644 Horde_Translation-except.patch delete mode 100755 find-lang.sh diff --git a/Horde_Translation-except.patch b/Horde_Translation-except.patch new file mode 100644 index 0000000..176033b --- /dev/null +++ b/Horde_Translation-except.patch @@ -0,0 +1,28 @@ +From 64f3fd80a8f084d2d305274bed8d60a9fd2bb5fd Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Tue, 15 Jan 2013 13:45:43 +0100 +Subject: [PATCH] dont raise exception when running unit tests + +--- + framework/Translation/lib/Horde/Translation/Handler/Gettext.php | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/framework/Translation/lib/Horde/Translation/Handler/Gettext.php b/framework/Translation/lib/Horde/Translation/Handler/Gettext.php +index f0d460f..0b44861 100644 +--- a/framework/Translation/lib/Horde/Translation/Handler/Gettext.php ++++ b/framework/Translation/lib/Horde/Translation/Handler/Gettext.php +@@ -40,7 +40,10 @@ class Horde_Translation_Handler_Gettext implements Horde_Translation_Handler + public function __construct($domain, $path) + { + if (!is_dir($path)) { +- throw new InvalidArgumentException("$path is not a directory"); ++ // dont raise exception when running unit tests (for not installed package) ++ if (!isset($_SERVER['argv'][0]) || !strpos($_SERVER['argv'][0], 'phpunit')) { ++ throw new InvalidArgumentException("$path is not a directory"); ++ } + } + $this->_gettext = function_exists('_'); + if (!$this->_gettext) { +-- +1.7.10 + diff --git a/find-lang.sh b/find-lang.sh deleted file mode 100755 index cfd3be9..0000000 --- a/find-lang.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/bin/sh -#findlang - automagically generate list of language specific files -#for inclusion in an rpm spec file. -#This does assume that the *.mo files are under .../locale/... -#Run with no arguments gets a usage message. - -#findlang is copyright (c) 1998 by W. L. Estes - -#Redistribution and use of this software are hereby permitted for any -#purpose as long as this notice and the above copyright notice remain -#in tact and are included with any redistribution of this file or any -#work based on this file. - -# 2004-06-20 Arkadiusz Miƛkiewicz -# * merge PLD changes, kde, all-name (mkochano,pascalek@PLD) -# 1999-10-19 Artur Frysiak -# * added support for GNOME help files -# * start support for KDE help files - -usage () { -cat <&2 -elif [ ! -d $1 ] ; then - echo $0: $1: no such directory - exit 1 -else TOP_DIR="`echo $1|sed -e 's:/$::'`" -fi -shift - -if [ -z "$1" ] ; then usage -else NAME=$1 -fi -shift - -GNOME=# -KDE=# -QT=# -MAN=# -MO= -MO_NAME=$NAME.lang -ALL_NAME=# -NO_ALL_NAME= - -while test $# -gt 0 ; do - case "${1}" in - --with-gnome ) - GNOME= - shift - ;; - --with-kde ) - KDE= - shift - ;; - --with-qt ) - QT= - shift - ;; - --with-man ) - MAN= - shift - ;; - --without-mo ) - MO=# - shift - ;; - --all-name ) - ALL_NAME= - NO_ALL_NAME=# - shift - ;; - * ) - MO_NAME=${1} - shift - ;; - esac -done - -find $TOP_DIR -type f -o -type l|sed ' -s:'"$TOP_DIR"':: -'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3: -'"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3: -s:^\([^%].*\):: -s:%lang(C) :: -/^$/d' > $MO_NAME - -find $TOP_DIR -type d|sed ' -s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%dir \1: -'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/.\+\):: -'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) \1\2: -'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%dir \1: -'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\):: -'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2: -s:%lang(.*) .*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*:: -s:^\([^%].*\):: -s:%lang(C) :: -/^$/d' >> $MO_NAME - -find $TOP_DIR -type d|sed ' -s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'$\):%dir \1: -'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+$\):%dir \1: -s:^\([^%].*\):: -/^$/d' >> $MO_NAME - -find $TOP_DIR -type f|sed ' -s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\)\.omf\):%lang(\2) \1: -'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1: -s:^[^%].*:: -s:%lang(C) :: -/^$/d' >> $MO_NAME - -KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null` -if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then -find $TOP_DIR$KDE3_HTML -type d|sed ' -s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\):: -'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3: -'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\):: -'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: -s:^\([^%].*\):: -s:%lang(C) :: -/^$/d' >> $MO_NAME -fi - -KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null` -if [ x"$KDE4_HTML" != x -a -d "$TOP_DIR$KDE4_HTML" ]; then -find $TOP_DIR$KDE4_HTML -type d|sed ' -s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\):: -'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3: -'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\):: -'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: -s:^\([^%].*\):: -s:%lang(C) :: -/^$/d' >> $MO_NAME -fi - -find $TOP_DIR -type f -o -type l|sed ' -s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$QT"'s:\(.*/'"$NAME"'_\([a-zA-Z]\{2\}\([_@].*\)\?\)\.qm$\):%lang(\2) \1: -'"$ALL_NAME$QT"'s:\(.*/[^/_]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1: -'"$ALL_NAME$QT"'s:\(.*/[^/_]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1: -'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1: -'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1: -s:^[^%].*:: -s:%lang(C) :: -/^$/d' >> $MO_NAME - -find $TOP_DIR -type d|sed ' -s:'"$TOP_DIR"':: -'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\):: -'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1/*: -s:^\([^%].*\):: -s:%lang(C) :: -/^$/d' >> $MO_NAME - -find $TOP_DIR -type f -o -type l|sed ' -s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*: -s:^\([^%].*\):: -s:%lang(C) :: -/^$/d' >> $MO_NAME - -if ! grep -q / $MO_NAME; then - echo "No translations found for ${NAME} in ${TOP_DIR}" - exit 1 -fi -exit 0 diff --git a/php-horde-Horde-Translation.spec b/php-horde-Horde-Translation.spec index 463d9be..312deac 100644 --- a/php-horde-Horde-Translation.spec +++ b/php-horde-Horde-Translation.spec @@ -8,15 +8,16 @@ Name: php-horde-Horde-Translation Version: 2.0.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Horde translation library Group: Development/Libraries License: LGPLv2+ URL: http://pear.horde.org Source0: http://%{pear_channel}/get/%{pear_name}-%{version}.tgz -# /usr/lib/rpm/find-lang.sh from fedora 16 -Source1: find-lang.sh + +# See https://github.com/horde/horde/pull/27 +Patch0: %{pear_name}-except.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch @@ -36,7 +37,7 @@ Requires: php(language) >= 5.3.0 Requires: php-gettext Requires: php-spl -Provides: php-pear(%{pear_channel}/Horde_Translation) = %{version} +Provides: php-pear(%{pear_channel}/%{pear_name}) = %{version} %description @@ -48,11 +49,15 @@ tar xif %{SOURCE0} cd %{pear_name}-%{version} +%patch0 -p3 -b .old + # Don't install .po and .pot files # Remove checksum for .mo, as we regenerate them +# Remove checksum for patched files sed -e '/%{pear_name}.po/d' \ -e '/Horde_Other.po/d' \ -e '/%{pear_name}.mo/s/md5sum=.*name=/name=/' \ + -e '/Gettext.php/s/md5sum=.*name=/name=/' \ ../package.xml >%{name}.xml @@ -77,16 +82,6 @@ rm -rf %{buildroot}%{pear_metadir}/.??* mkdir -p %{buildroot}%{pear_xmldir} install -pm 644 %{name}.xml %{buildroot}%{pear_xmldir} -%if 0%{?fedora} > 13 -%find_lang %{pear_name} -%find_lang Horde_Other -%else -sh %{SOURCE1} %{buildroot} %{pear_name} -sh %{SOURCE1} %{buildroot} Horde_Other -%endif -cat Horde_Other.lang >> %{pear_name}.lang -cat %{pear_name}.lang - %check %if %{with_tests} @@ -111,26 +106,27 @@ if [ $1 -eq 0 ] ; then fi -%files -f %{pear_name}-%{version}/%{pear_name}.lang +%files %defattr(-,root,root,-) -# own locales (non standard) directories, .mo own by find_lang %{pear_xmldir}/%{name}.xml %dir %{pear_phpdir}/Horde %{pear_phpdir}/Horde/Translation %{pear_phpdir}/Horde/Translation.php -%doc %{pear_docdir}/Horde_Translation -# own locales (non standard) directories, .mo own by find_lang -%dir %{pear_testdir}/Horde_Translation -%dir %{pear_testdir}/Horde_Translation/Horde -%dir %{pear_testdir}/Horde_Translation/Horde/Translation -%dir %{pear_testdir}/Horde_Translation/Horde/Translation/locale -%dir %{pear_testdir}/Horde_Translation/Horde/Translation/locale/de -%dir %{pear_testdir}/Horde_Translation/Horde/Translation/locale/de/LC_MESSAGES -%{pear_testdir}/Horde_Translation/Horde/Translation/*.php -%{pear_testdir}/Horde_Translation/Horde/Translation/phpunit.xml +%doc %{pear_docdir}/%{pear_name} +%dir %{pear_testdir}/%{pear_name} +%dir %{pear_testdir}/%{pear_name}/Horde +%dir %{pear_testdir}/%{pear_name}/Horde/Translation +%dir %{pear_testdir}/%{pear_name}/Horde/Translation/locale +%lang(de) %{pear_testdir}/%{pear_name}/Horde/Translation/locale/de +%{pear_testdir}/%{pear_name}/Horde/Translation/*.php +%{pear_testdir}/%{pear_name}/Horde/Translation/phpunit.xml %changelog +* Tue Jan 15 2013 Remi Collet - 2.0.1-2 +- patch for http://bugs.horde.org/ticket/11958 + Allow to run unit tests for a not installed component + * Mon Nov 19 2012 Remi Collet - 2.0.1-1 - Update to 2.0.1 for remi repo -- cgit