diff options
-rw-r--r-- | Makefile | 4 | ||||
-rwxr-xr-x | find-lang.sh | 192 | ||||
-rw-r--r-- | php-horde-Horde-Perms.spec | 108 |
3 files changed, 275 insertions, 29 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..13af741 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile + diff --git a/find-lang.sh b/find-lang.sh new file mode 100755 index 0000000..cfd3be9 --- /dev/null +++ b/find-lang.sh @@ -0,0 +1,192 @@ +#!/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 <wlestes@uncg.edu> + +#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 <arekm@pld-linux.org> +# * merge PLD changes, kde, all-name (mkochano,pascalek@PLD) +# 1999-10-19 Artur Frysiak <wiget@pld-linux.org> +# * added support for GNOME help files +# * start support for KDE help files + +usage () { +cat <<EOF + +Usage: $0 TOP_DIR PACKAGE_NAME [prefix] + +where TOP_DIR is +the top of the tree containing the files to be processed--should be +\$RPM_BUILD_ROOT usually. TOP_DIR gets sed'd out of the output list. +PACKAGE_NAME is the %{name} of the package. This should also be +the basename of the .mo files. the output is written to +PACKAGE_NAME.lang unless \$3 is given in which case output is written +to \$3. +Additional options: + --with-gnome find GNOME help files + --with-kde find KDE help files + --with-qt find Qt translation files + --with-man find localized man pages + --all-name match all package/domain names + --without-mo do not find locale files +EOF +exit 1 +} + +if [ -z "$1" ] ; then usage +elif [ $1 = / ] ; then echo $0: expects non-/ argument for '$1' 1>&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-Perms.spec b/php-horde-Horde-Perms.spec index 7ea027c..6a8ea1c 100644 --- a/php-horde-Horde-Perms.spec +++ b/php-horde-Horde-Perms.spec @@ -1,60 +1,100 @@ +%{!?pear_metadir: %global pear_metadir %{pear_phpdir}} %{!?__pear: %{expand: %%global __pear %{_bindir}/pear}} -%global pear_name Horde_Perms +%global pear_name Horde_Perms +%global pear_channel pear.horde.org Name: php-horde-Horde-Perms -Version: 1.0.7 +Version: 2.0.0 Release: 1%{?dist} Summary: Horde Permissions System Group: Development/Libraries License: LGPLv2+ URL: http://pear.horde.org -Source0: http://pear.horde.org/get/%{pear_name}-%{version}.tgz +Source0: http://%{pear_channel}/get/%{pear_name}-%{version}.tgz +# /usr/lib/rpm/find-lang.sh from fedora 16 +Source1: find-lang.sh +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch -BuildRequires: php-pear(PEAR) >= 1.7.0 +BuildRequires: php-pear +BuildRequires: php-channel(%{pear_channel}) +BuildRequires: gettext +# To run unit tests +BuildRequires: php-pear(%{pear_channel}/Horde_Test) >= 2.0.0 +BuildRequires: php-pear(%{pear_channel}/Horde_Group) >= 2.0.0 + Requires(post): %{__pear} Requires(postun): %{__pear} -Provides: php-pear(pear.horde.org/%{pear_name}) = %{version} -Requires: php-pear(pear.horde.org/Horde_Db) < 2.0.0 -Requires: php-pear(pear.horde.org/Horde_Exception) < 2.0.0 -Requires: php-pear(pear.horde.org/Horde_Group) < 2.0.0 -Requires: php-pear(pear.horde.org/Horde_Util) < 2.0.0 -Requires: php-pear(pear.horde.org/Horde_Translation) < 2.0.0 -Requires: php-pear(PEAR) >= 1.7.0 -BuildRequires: php-channel(pear.horde.org) -Requires: php-channel(pear.horde.org) +Requires: php(language) >= 5.3.0 +Requires: php-channel(%{pear_channel}) +Requires: php-pear(%{pear_channel}/Horde_Db) >= 2.0.0 +Conflicts: php-pear(%{pear_channel}/Horde_Db) >= 3.0.0 +Requires: php-pear(%{pear_channel}/Horde_Exception) >= 2.0.0 +Conflicts: php-pear(%{pear_channel}/Horde_Exception) >= 3.0.0 +Requires: php-pear(%{pear_channel}/Horde_Group) >= 2.0.0 +Conflicts: php-pear(%{pear_channel}/Horde_Group) >= 3.0.0 +Requires: php-pear(%{pear_channel}/Horde_Util) >= 2.0.0 +Conflicts: php-pear(%{pear_channel}/Horde_Util) >= 3.0.0 +Requires: php-pear(%{pear_channel}/Horde_Translation) >= 2.0.0 +Conflicts: php-pear(%{pear_channel}/Horde_Translation) >= 3.0.0 +# Optionnal +Requires: php-pear(%{pear_channel}/Horde_Tree) >= 2.0.0 +Conflicts: php-pear(%{pear_channel}/Horde_Tree) >= 3.0.0 + +Provides: php-pear(%{pear_channel}/%{pear_name}) = %{version} + %description The Perms package provides an interface to the Horde permissions system. -%prep -%setup -q -c -[ -f package2.xml ] || mv package.xml package2.xml -mv package2.xml %{pear_name}-%{version}/%{name}.xml -# Create a "localized" php.ini to avoid build warning -cp /etc/php.ini . -echo "date.timezone=UTC" >>php.ini +%prep +%setup -q -c -T +tar xif %{SOURCE0} cd %{pear_name}-%{version} +# Don't install .po and .pot files +# Remove checksum for .mo, as we regenerate them +sed -e '/%{pear_name}.po/d' \ + -e '/Horde_Other.po/d' \ + -e '/%{pear_name}.mo/s/md5sum=.*name=/name=/' \ + ../package.xml >%{name}.xml + %build cd %{pear_name}-%{version} -# Empty build section, most likely nothing required. + +# Regenerate the locales +for po in $(find locale -name \*.po) +do + msgfmt $po -o $(dirname $po)/$(basename $po .po).mo +done %install cd %{pear_name}-%{version} -PHPRC=../php.ini %{__pear} install --nodeps --packagingroot $RPM_BUILD_ROOT %{name}.xml +%{__pear} install --nodeps --packagingroot %{buildroot} %{name}.xml # Clean up unnecessary files -rm -rf $RPM_BUILD_ROOT%{pear_phpdir}/.??* +rm -rf %{buildroot}%{pear_metadir}/.??* # Install XML package description -mkdir -p $RPM_BUILD_ROOT%{pear_xmldir} -install -pm 644 %{name}.xml $RPM_BUILD_ROOT%{pear_xmldir} +mkdir -p %{buildroot}%{pear_xmldir} +install -pm 644 %{name}.xml %{buildroot}%{pear_xmldir} + +%if 0%{?fedora} > 13 +%find_lang %{pear_name} +%else +sh %{SOURCE1} %{buildroot} %{pear_name} +%endif + + +%check +cd %{pear_name}-%{version}/test/$(echo %{pear_name} | sed -e s:_:/:g) +phpunit -d date.timezone=UTC AllTests.php + %post %{__pear} install --nodeps --soft --force --register-only \ @@ -63,18 +103,28 @@ install -pm 644 %{name}.xml $RPM_BUILD_ROOT%{pear_xmldir} %postun if [ $1 -eq 0 ] ; then %{__pear} uninstall --nodeps --ignore-errors --register-only \ - pear.horde.org/%{pear_name} >/dev/null || : + %{pear_channel}/%{pear_name} >/dev/null || : fi -%files +%files -f %{pear_name}-%{version}/%{pear_name}.lang +%defattr(-,root,root,-) %doc %{pear_docdir}/%{pear_name} %{pear_xmldir}/%{name}.xml %{pear_phpdir}/Horde/Perms %{pear_phpdir}/Horde/Perms.php -%{pear_datadir}/Horde_Perms -%{pear_testdir}/Horde_Perms +%{pear_testdir}/%{pear_name} +# own locales (non standard) directories, .mo own by find_lang +%dir %{pear_datadir}/%{pear_name} +%dir %{pear_datadir}/%{pear_name}/locale +%dir %{pear_datadir}/%{pear_name}/locale/* +%dir %{pear_datadir}/%{pear_name}/locale/*/LC_MESSAGES +%{pear_datadir}/%{pear_name}/migration + %changelog +* Sat Nov 3 2012 Remi Collet <RPMS@FamilleCollet.com> - 2.0.0-1 +- Update to 2.0.0 for remi repo + * Thu Jun 21 2012 Nick Bebout <nb@fedoraproject.org> - 1.0.7-1 - Upgrade to 1.0.7 |