diff options
-rw-r--r-- | php-drush-drush.spec | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/php-drush-drush.spec b/php-drush-drush.spec new file mode 100644 index 0000000..301acd9 --- /dev/null +++ b/php-drush-drush.spec @@ -0,0 +1,193 @@ +# Awaiting the following issue fixes from upstream: +# * PEAR license file (http://drupal.org/node/1643680) +# * PEAR role="doc" (http://drupal.org/node/1643660) +# * PEAR role="test" (http://drupal.org/node/1643676) +# * PEAR extra files (http://drupal.org/node/1772518) +# * drush.bat (http://drupal.org/node/1704986) + +%{!?__pear: %{expand: %%global __pear %{_bindir}/pear}} +%{!?pear_metadir: %global pear_metadir %{pear_phpdir}} + +%global pear_channel pear.drush.org +%global pear_name drush + +# Tests are only run with rpmbuild --with tests +# Lot of failures, need investigation +%global with_tests %{?_with_tests:1}%{!?_with_tests:0} + +Name: php-drush-%{pear_name} +Version: 5.8.0 +Release: 2%{?dist} +Summary: Command line shell and Unix scripting interface for Drupal + +Group: Development/Libraries +License: GPLv2+ +URL: http://www.drush.org +Source0: http://%{pear_channel}/get/%{pear_name}-%{version}.tgz + +Provides: php-pear(%{pear_channel}/%{pear_name}) = %{version} +Provides: drupal6-drush = %{version}-%{release} +Obsoletes: drupal6-drush < %{version}-%{release} + +BuildArch: noarch +BuildRequires: php-pear(PEAR) +BuildRequires: php-channel(%{pear_channel}) +BuildRequires: help2man +%if %{with_tests} +BuildRequires: php-pear(pear.phpunit.de/PHPUnit) >= 3.5 +%endif + +Requires: php-cli >= 5.2 +Requires: php-channel(%{pear_channel}) +Requires: php-pear(PEAR) +Requires: php-pear(Console_Table) +Requires: git >= 1.7 +Requires(post): %{__pear} +Requires(postun): %{__pear} +# phpci requires +Requires: php-ctype +Requires: php-date +Requires: php-dom +Requires: php-fileinfo +Requires: php-hash +Requires: php-iconv +Requires: php-json +Requires: php-mysql +Requires: php-mysqli +Requires: php-pcre +Requires: php-pdo +Requires: php-pgsql +Requires: php-posix +Requires: php-reflection +Requires: php-simplexml +Requires: php-spl + +%description +Drush is a command line shell and Unix scripting interface for Drupal. If +you are unfamiliar with shell scripting, reviewing the documentation for your +shell (e.g. man bash) or reading an online tutorial (e.g. search for "bash +tutorial") will help you get the most out of Drush. + +Drush core ships with lots of useful commands for interacting with code like +modules/themes/profiles. Similarly, it runs update.php, executes sql queries +and DB migrations, and misc utilities like run cron or clear cache. + +Works with Drupal 6, Drupal 7, and usually Drupal 8. + + +%prep +%setup -q -c + +# Update package.xml for files identified with role="php" +# instead of role="test": +# - tests/ +# NOTE: Ran before role="doc" update because role="doc" update will +# overwrite some of these test roles (specifically tests/*.txt) +# *** Upstream issue: http://drupal.org/node/1643676 +sed '/name="tests\//s/role="php"/role="test"/' \ + -i package.xml + +# Update package.xml for files identified with role="php" +# instead of role="doc": +# - *.txt +# - docs/ +# - examples/ +# *** Upstream issue: http://drupal.org/node/1643660 +sed -e '/name="[^"]*\.txt"/s/role="php"/role="doc"/' \ + -e '/name="docs\//s/role="php"/role="doc"/' \ + -e '/name="examples\//s/role="php"/role="doc"/' \ + -i package.xml + +# Remove .travis.yml and .gitignore files from package.xml +# *** Upstream issue: http://drupal.org/node/1772518 +sed -e '/.travis.yml/d' \ + -e '/.gitignore/d' \ + -i package.xml + +# Remove drush.bat +# *** Upstream issue: http://drupal.org/node/1704986 +sed -e '/<file.*name="drush.bat"/,/<\/file>/d' \ + -e '/<install.*drush.bat/d' \ + -i package.xml + +# Fix rpmlint "W: wrong-file-end-of-line-encoding +# /usr/share/doc/pear/drush/examples/sandwich.txt" +sed 's/\r//' -i %{pear_name}-%{version}/examples/sandwich.txt +sed '/examples\/sandwich.txt/s/md5sum="[^"]*"//' -i package.xml + +# package.xml is version 2.0 +mv package.xml %{pear_name}-%{version}/%{name}.xml + + +%build +# Build man page +cd %{pear_name}-%{version} +sed -e 's#@pear_directory@/drush#`dirname -- "$0"`#' \ + -e 's#@php_bin@#%{_bindir}/php#' \ + drush > drush-help2man +chmod +x drush-help2man +help2man --no-info ./drush-help2man > drush.1 + + +%install +cd %{pear_name}-%{version} +%{__pear} install --nodeps --packagingroot %{buildroot} %{name}.xml + +# Clean up unnecessary files +rm -rf %{buildroot}%{pear_metadir}/.??* + +# Fix some file permissions +chmod a+x %{buildroot}%{pear_phpdir}/%{pear_name}/drush.php +chmod a+x %{buildroot}%{pear_phpdir}/%{pear_name}/drush.complete.sh +chmod a+x %{buildroot}%{pear_testdir}/%{pear_name}/tests/runner.php + +# Install XML package description +mkdir -p %{buildroot}%{pear_xmldir} +install -pm 644 %{name}.xml %{buildroot}%{pear_xmldir} + +# Install man page +mkdir -p %{buildroot}%{_mandir}/man1 +cp -p drush.1 %{buildroot}%{_mandir}/man1/ + + +%check +%if %{with_tests} + cd %{pear_name}-%{version}/tests + %{_bindir}/phpunit . +%else +: Tests skipped, missing '--with tests' option +%endif + + +%post +%{__pear} install --nodeps --soft --force --register-only \ + %{pear_xmldir}/%{name}.xml >/dev/null || : + + +%postun +if [ $1 -eq 0 ] ; then + %{__pear} uninstall --nodeps --ignore-errors --register-only \ + %{pear_channel}/%{pear_name} >/dev/null || : +fi + + +%files +%doc %{pear_docdir}/%{pear_name} +%doc %{_mandir}/man1/drush.1* +%{pear_xmldir}/%{name}.xml +%{pear_phpdir}/%{pear_name} +%{pear_testdir}/%{pear_name} +%{_bindir}/drush* + + +%changelog +* Sun Mar 17 2013 Shawn Iwinski <shawn.iwinski@gmail.com> 5.8.0-2 +- Removed drush.bat +- Fixed rpmlint wrong-file-end-of-line-encoding warning +- Added man page + +* Tue Nov 27 2012 Shawn Iwinski <shawn.iwinski@gmail.com> 5.8.0-1 +- Updated to upstream version 5.8.0 + +* Thu Nov 8 2012 Shawn Iwinski <shawn.iwinski@gmail.com> 5.7.0-1 +- Initial package |