From f7ae5ee83d54b1c5366329158ca3dd6780f43bd8 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Mon, 8 Jan 2018 11:11:00 +0100
Subject: import from Fedora

---
 drush-issue2065.patch |  15 ++
 drush.spec            | 388 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 403 insertions(+)
 create mode 100644 drush-issue2065.patch
 create mode 100644 drush.spec

diff --git a/drush-issue2065.patch b/drush-issue2065.patch
new file mode 100644
index 0000000..de8cebf
--- /dev/null
+++ b/drush-issue2065.patch
@@ -0,0 +1,15 @@
+diff --git a/includes/startup.inc b/includes/startup.inc
+index 693fede..fedccbf 100644
+--- a/includes/startup.inc
++++ b/includes/startup.inc
+@@ -326,8 +326,8 @@ function drush_startup($argv) {
+     }
+   }
+ 
+-  // Always use pcntl_exec if it exists.
+-  $use_pcntl_exec = function_exists("pcntl_exec");
++  // https://github.com/drush-ops/drush/issues/2065
++  $use_pcntl_exec = FALSE;
+ 
+   // If we have posix_getppid, then pass in the shell pid so
+   // that 'site-set' et. al. can work correctly.
diff --git a/drush.spec b/drush.spec
new file mode 100644
index 0000000..af9ae0a
--- /dev/null
+++ b/drush.spec
@@ -0,0 +1,388 @@
+#
+# Fedora spec file for drush
+#
+# Copyright (c) 2015-2017 Shawn Iwinski <shawn@iwin.ski>
+#
+# License: MIT
+# http://opensource.org/licenses/MIT
+#
+# Please preserve changelog entries
+#
+
+%global github_owner     drush-ops
+%global github_name      drush
+%global github_version   8.1.10
+%global github_commit    2192496b80aa9cdb0581a2d308623f950f747e94
+
+%global composer_vendor  drush
+%global composer_project drush
+
+# "php": ">=5.4.5"
+%global php_min_ver  5.4.5
+# "consolidation/annotated-command": "~2"
+%global consolidation_annotated_command_min_ver 2
+%global consolidation_annotated_command_max_ver 3
+# "consolidation/output-formatters": "~3"
+%global consolidation_output_formatters_min_ver 3
+%global consolidation_output_formatters_max_ver 4
+# "pear/console_table": "~1.3.0"
+%global pear_console_table_min_ver 1.3.0
+%global pear_console_table_max_ver 2.0
+# "phpdocumentor/reflection-docblock": "^2.0"
+%global phpdocumentor_reflection_docblock_min_ver 2.0
+%global phpdocumentor_reflection_docblock_max_ver 3.0
+# "psr/log": "~1.0"
+#     NOTE: Min version not 1.0 because autoloader required
+%global psr_log_min_ver 1.0.1
+%global psr_log_max_ver 2.0
+# "psy/psysh": "~0.6"
+%global psysh_min_ver 0.6
+%global psysh_max_ver 1.0
+# "symfony/console": "~2.7"
+# "symfony/event-dispatcher": "~2.7"
+# "symfony/finder": "~2.7"
+# "symfony/process": "2.7.*"
+# "symfony/var-dumper": "~2.7"
+# "symfony/yaml": "~2.3"
+#     NOTE: Min version not 2.7.0 because autoloader required
+%global symfony_min_ver 2.7.1
+%global symfony_max_ver 3.0
+# "webmozart/path-util": "~2"
+%global webmozart_path_util_min_ver 2
+%global webmozart_path_util_max_ver 3
+
+%global drush_dir    %{_datadir}/drush
+%global pear_channel pear.drush.org
+%global pear_name    drush
+
+%global git_min_ver  1.7
+
+# Build using "--with tests" to enable tests
+# TODO: Figure out test issues and enable by default
+%global with_tests 0%{?_with_tests:1}
+
+%{!?phpdir:  %global phpdir  %{_datadir}/php}
+
+Name:          %{composer_project}
+Version:       %{github_version}
+Release:       3%{?github_release}%{?dist}
+Summary:       Command line shell and scripting interface for Drupal
+
+Group:         Development/Libraries
+License:       GPLv2+
+URL:           http://www.drush.org/
+Source0:       https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}/%{name}-%{github_version}-%{github_commit}.tar.gz
+
+# error importing function definition for `BASH_FUNC_scl'
+# https://github.com/drush-ops/drush/issues/2065
+Patch0:        %{name}-issue2065.patch
+
+BuildArch:     noarch
+# %%{pear_phpdir} macro
+BuildRequires: php-pear
+%if %{with_tests}
+BuildRequires: git >= %{git_min_ver}
+BuildRequires: patch
+BuildRequires: php-cli
+# composer.json
+BuildRequires: php(language)                                   >= %{php_min_ver}
+BuildRequires: php-composer(consolidation/annotated-command)   <  %{consolidation_annotated_command_max_ver}
+BuildRequires: php-composer(consolidation/annotated-command)   >= %{consolidation_annotated_command_min_ver}
+BuildRequires: php-composer(consolidation/output-formatters)   <  %{consolidation_output_formatters_max_ver}
+BuildRequires: php-composer(consolidation/output-formatters)   >= %{consolidation_output_formatters_min_ver}
+BuildRequires: php-composer(pear/console_table)                <  %{pear_console_table_max_ver}
+BuildRequires: php-composer(pear/console_table)                >= %{pear_console_table_min_ver}
+BuildRequires: php-composer(phpdocumentor/reflection-docblock) <  %{phpdocumentor_reflection_docblock_max_ver}
+BuildRequires: php-composer(phpdocumentor/reflection-docblock) >= %{phpdocumentor_reflection_docblock_min_ver}
+BuildRequires: php-composer(phpunit/phpunit)
+BuildRequires: php-composer(psr/log)                           <  %{psr_log_max_ver}
+BuildRequires: php-composer(psr/log)                           >= %{psr_log_min_ver}
+BuildRequires: php-composer(psy/psysh)                         <  %{psysh_min_ver}
+BuildRequires: php-composer(psy/psysh)                         >= %{psysh_min_ver}
+BuildRequires: php-composer(symfony/console)                   <  %{symfony_max_ver}
+BuildRequires: php-composer(symfony/console)                   >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/event-dispatcher)          <  %{symfony_max_ver}
+BuildRequires: php-composer(symfony/event-dispatcher)          >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/finder)                    <  %{symfony_max_ver}
+BuildRequires: php-composer(symfony/finder)                    >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/process)                   <  %{symfony_max_ver}
+BuildRequires: php-composer(symfony/process)                   >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/var-dumper)                <  %{symfony_max_ver}
+BuildRequires: php-composer(symfony/var-dumper)                >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/yaml)                      <  %{symfony_max_ver}
+BuildRequires: php-composer(symfony/yaml)                      >= %{symfony_min_ver}
+BuildRequires: php-composer(webmozart/path-util)               <  %{webmozart_path_util_max_ver}
+BuildRequires: php-composer(webmozart/path-util)               >= %{webmozart_path_util_min_ver}
+# phpcompatinfo (computed from version 8.1.10)
+BuildRequires: php-ctype
+BuildRequires: php-date
+BuildRequires: php-fileinfo
+BuildRequires: php-filter
+BuildRequires: php-hash
+BuildRequires: php-iconv
+BuildRequires: php-json
+BuildRequires: php-pcntl
+BuildRequires: php-pcre
+BuildRequires: php-posix
+BuildRequires: php-reflection
+BuildRequires: php-simplexml
+BuildRequires: php-spl
+## Autoloader
+BuildRequires: php-composer(fedora/autoloader)
+%endif
+
+Requires:      git >= %{git_min_ver}
+Requires:      patch
+Requires:      php-cli
+# composer.json
+Requires:      php(language)                                   >= %{php_min_ver}
+Requires:      php-composer(consolidation/annotated-command)   <  %{consolidation_annotated_command_max_ver}
+Requires:      php-composer(consolidation/annotated-command)   >= %{consolidation_annotated_command_min_ver}
+Requires:      php-composer(consolidation/output-formatters)   <  %{consolidation_output_formatters_max_ver}
+Requires:      php-composer(consolidation/output-formatters)   >= %{consolidation_output_formatters_min_ver}
+Requires:      php-composer(pear/console_table)                >= %{pear_console_table_min_ver}
+Requires:      php-composer(phpdocumentor/reflection-docblock) <  %{phpdocumentor_reflection_docblock_max_ver}
+Requires:      php-composer(phpdocumentor/reflection-docblock) >= %{phpdocumentor_reflection_docblock_min_ver}
+Requires:      php-composer(phpunit/phpunit)
+Requires:      php-composer(psr/log)                           <  %{psr_log_max_ver}
+Requires:      php-composer(psr/log)                           >= %{psr_log_min_ver}
+Requires:      php-composer(psy/psysh)                         <  %{psysh_max_ver}
+Requires:      php-composer(psy/psysh)                         >= %{psysh_min_ver}
+Requires:      php-composer(symfony/console)                   <  %{symfony_max_ver}
+Requires:      php-composer(symfony/console)                   >= %{symfony_min_ver}
+Requires:      php-composer(symfony/event-dispatcher)          <  %{symfony_max_ver}
+Requires:      php-composer(symfony/event-dispatcher)          >= %{symfony_min_ver}
+Requires:      php-composer(symfony/finder)                    <  %{symfony_max_ver}
+Requires:      php-composer(symfony/finder)                    >= %{symfony_min_ver}
+Requires:      php-composer(symfony/var-dumper)                <  %{symfony_max_ver}
+Requires:      php-composer(symfony/var-dumper)                >= %{symfony_min_ver}
+Requires:      php-composer(symfony/yaml)                      <  %{symfony_max_ver}
+Requires:      php-composer(symfony/yaml)                      >= %{symfony_min_ver}
+Requires:      php-composer(webmozart/path-util)               <  %{webmozart_path_util_max_ver}
+Requires:      php-composer(webmozart/path-util)               >= %{webmozart_path_util_min_ver}
+# phpcompatinfo (computed from version 8.1.10)
+Requires:      php-ctype
+Requires:      php-date
+Requires:      php-fileinfo
+Requires:      php-filter
+Requires:      php-hash
+Requires:      php-iconv
+Requires:      php-json
+Requires:      php-pcre
+Requires:      php-posix
+Requires:      php-reflection
+Requires:      php-simplexml
+Requires:      php-spl
+# Autoloader
+Requires:      php-composer(fedora/autoloader)
+
+# Weak dependencies
+%if 0%{?fedora} >= 21
+## composer.json: suggest
+#Suggests:      php-composer(drush/config-extra)
+Suggests:      php-pcntl
+## phpcompatinfo
+Suggests:      php-pecl(apcu)
+Suggests:      php-pecl(Xdebug)
+Suggests:      php-pecl(xhprof)
+%endif
+
+Provides:      php-composer(%{composer_vendor}/%{composer_project}) = %{version}
+
+Obsoletes:     php-drush-drush < %{version}-%{release}
+Provides:      php-drush-drush = %{version}-%{release}
+Obsoletes:     drupal6-drush < %{version}-%{release}
+Provides:      drupal6-drush = %{version}-%{release}
+Obsoletes:     drupal7-drush < %{version}-%{release}
+Provides:      drupal7-drush = %{version}-%{release}
+Provides:      drupal8-drush = %{version}-%{release}
+Provides:      php-pear(%{pear_channel}/%{pear_name}) = %{version}
+
+# This pkg was the only one in this channel so the channel is no longer needed
+Obsoletes: php-channel-drush
+
+%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.
+
+
+%prep
+%setup -qn %{github_name}-%{github_commit}
+
+: Fix "error importing function definition for 'BASH_FUNC_scl'"
+: https://github.com/drush-ops/drush/issues/2065
+%patch0 -p1
+
+: Remove unneeded stuff
+rm -rf drush.bat misc/windrush_build
+
+: W: wrong-file-end-of-line-encoding /usr/share/doc/drush/examples/sandwich.txt
+sed -i 's/\r$//' examples/sandwich.txt
+
+
+%build
+: Create autoloader
+cat <<'AUTOLOAD' | tee autoload.php
+<?php
+/**
+ * Autoloader for %{name} and its' dependencies
+ * (created by %{name}-%{version}-%{release}).
+ */
+require_once '%{phpdir}/Fedora/Autoloader/autoload.php';
+
+\Fedora\Autoloader\Autoload::addPsr4('Drush\\', __DIR__.'/lib/Drush');
+
+\Fedora\Autoloader\Dependencies::required([
+    '%{phpdir}/Consolidation/AnnotatedCommand/autoload.php',
+    '%{phpdir}/Consolidation/OutputFormatters/autoload.php',
+    [
+        '%{phpdir}/phpDocumentor/Reflection/DocBlock2/autoload.php',
+        '%{phpdir}/phpDocumentor/Reflection/DocBlock/autoload.php',
+    ],
+    '%{phpdir}/Psr/Log/autoload.php',
+    '%{phpdir}/Psy/autoload.php',
+    '%{phpdir}/Symfony/Component/Console/autoload.php',
+    '%{phpdir}/Symfony/Component/EventDispatcher/autoload.php',
+    '%{phpdir}/Symfony/Component/Finder/autoload.php',
+    '%{phpdir}/Symfony/Component/VarDumper/autoload.php',
+    '%{phpdir}/Symfony/Component/Yaml/autoload.php',
+    '%{phpdir}/Webmozart/PathUtil/autoload.php',
+]);
+
+\Fedora\Autoloader\Autoload::addPsr0('Console_', '%{pear_phpdir}');
+AUTOLOAD
+
+: Mock Composer autoloader
+mkdir vendor
+ln -s ../autoload.php vendor/autoload.php
+
+
+%install
+mkdir -p %{buildroot}%{drush_dir}
+cp -pr * %{buildroot}%{drush_dir}/
+
+: Bin
+mkdir -p %{buildroot}%{_bindir}
+ln -s %{drush_dir}/drush %{buildroot}%{_bindir}/drush
+
+: Completion
+mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d
+install -pm 0644 drush.complete.sh %{buildroot}%{_sysconfdir}/bash_completion.d/
+
+
+%check
+%if %{with_tests}
+: Create tests bootstrap
+cat <<'AUTOLOAD' | tee tests-autoload.php
+<?php
+require_once '%{buildroot}%{drush_dir}/autoload.php';
+\Fedora\Autoloader\Autoload::addPsr4('Unish\\', __DIR__.'/tests');
+\Fedora\Autoloader\Dependencies::required([
+    '%{phpdir}/Symfony/Component/Process/autoload.php',
+]);
+AUTOLOAD
+
+: Update bootstrap.inc to use generated bootstrap
+sed 's#vendor/autoload\.php#tests-autoload.php#' -i tests/bootstrap.inc
+
+: Skip specific tests
+pushd tests
+    #rm -f \
+    #    pmDownloadTest.php \
+    #    siteSshTest.php \
+    #    sql*Test.php
+popd
+
+UNISH_DRUSH=%{buildroot}%{drush_dir}/drush \
+    %{_bindir}/phpunit --verbose --configuration tests
+%else
+: Tests skipped
+: Build using "--with tests" to enable tests
+%endif
+
+
+%files
+%{!?_licensedir:%global license %%doc}
+# %%license
+# See https://github.com/drush-ops/drush/pull/319
+%doc *.md
+%doc composer.json
+%doc docs
+%doc examples
+%doc mkdocs.yml
+%{_bindir}/drush
+%{drush_dir}
+%exclude %{drush_dir}/*.md
+%exclude %{drush_dir}/box.json.dist
+%exclude %{drush_dir}/composer.json
+%exclude %{drush_dir}/docs
+%exclude %{drush_dir}/drush.complete.sh
+%exclude %{drush_dir}/examples
+%exclude %{drush_dir}/mkdocs.yml
+%exclude %{drush_dir}/tests
+%exclude %{drush_dir}/unish.sh
+%{_sysconfdir}/bash_completion.d/drush.complete.sh
+
+
+%changelog
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.1.10-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue Mar 28 2017 Shawn Iwinski <shawn@iwin.ski> - 8.1.10-2
+- Add max versions to BuildRequires
+- Prepare for php-phpdocumentor-reflection-docblock =>
+  php-phpdocumentor-reflection-docblock2 dependency rename
+
+* Tue Feb 28 2017 Shawn Iwinski <shawn@iwin.ski> - 8.1.10-1
+- Update to 8.1.10 (RHBZ #1426457)
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.1.9-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Sun Jan 15 2017 Shawn Iwinski <shawn@iwin.ski> - 8.1.9-1
+- Update to 8.1.9 (RHBZ #1413321)
+
+* Tue Dec 20 2016 Shawn Iwinski <shawn@iwin.ski> - 8.1.8-3
+- Add missing php-composer(fedora/autoloader) dependency (RHBZ #1406416)
+
+* Sat Dec 03 2016 Shawn Iwinski <shawn@iwin.ski> - 8.1.8-2
+- Fix autoloader
+
+* Sat Dec 03 2016 Shawn Iwinski <shawn@iwin.ski> - 8.1.8-1
+- Update to 8.1.8 (RHBZ #1400079)
+- Switch autoloader from php-composer(symfony/class-loader) to
+  php-composer(fedora/autoloader)
+
+* Wed Nov 02 2016 Shawn Iwinski <shawn@iwin.ski> - 8.1.7-2
+- Remove %%{_sysconfdir}/bash_completion.d directory ownership (RHBZ #1375595)
+- Add php-cli build dependency
+
+* Tue Nov 01 2016 Shawn Iwinski <shawn@iwin.ski> - 8.1.7-1
+- Update to 8.1.7 (RHBZ #1388273)
+
+* Fri Aug 19 2016 Shawn Iwinski <shawn@iwin.ski> - 8.1.3-3
+- Add patch to fix "error importing function definition for `BASH_FUNC_scl'"
+
+* Wed Aug 10 2016 Shawn Iwinski <shawn@iwin.ski> - 8.1.3-2
+- Increase "consolidation/annotated-command" max version
+
+* Tue Aug 09 2016 Shawn Iwinski <shawn@iwin.ski> - 8.1.3-1
+- Update to 8.1.3 (RHBZ #1357097)
+
+* Mon Jun 27 2016 Shawn Iwinski <shawn@iwin.ski> - 6.7.0-3
+- EPEL6 requires "php-pear-Console-Table" instead of "php-composer(pear/console_table)"
+
+* Sat Jun 18 2016 Shawn Iwinski <shawn@iwin.ski> - 6.7.0-2
+- Add missing "php-composer(pear/console_table)" dependency (RHBZ #1347826)
+
+* Fri May 06 2016 Shawn Iwinski <shawn@iwin.ski> - 6.7.0-1
+- Update to 6.7.0
+
+* Sun Jul 19 2015 Shawn Iwinski <shawn@iwin.ski> - 6.6.0-1
+- Initial package obsoleting php-drush-drush
-- 
cgit