diff options
| -rw-r--r-- | php-bartlett-umlwriter-rpm.patch | 89 | ||||
| -rw-r--r-- | php-bartlett-umlwriter.spec | 69 | 
2 files changed, 150 insertions, 8 deletions
diff --git a/php-bartlett-umlwriter-rpm.patch b/php-bartlett-umlwriter-rpm.patch new file mode 100644 index 0000000..5a09d6f --- /dev/null +++ b/php-bartlett-umlwriter-rpm.patch @@ -0,0 +1,89 @@ +diff -up ./bin/umlwriter.rpm ./bin/umlwriter +--- ./bin/umlwriter.rpm	2015-03-31 11:24:18.000000000 +0200 ++++ ./bin/umlwriter	2015-03-31 11:29:43.000000000 +0200 +@@ -1,24 +1,36 @@ +-#!/usr/bin/env php ++#!/usr/bin/php + <?php + $appName = 'umlWriter'; +  +-if (\Phar::running()) { +-    $vendorDir = 'phar://' . strtolower($appName) . '.phar/vendor'; +-} else { +-    $baseDir   = dirname(__DIR__); +-    $vendorDir = $baseDir . '/vendor'; +- +-    if (!file_exists($vendorDir . '/autoload.php')) { +-        $vendorDir = dirname(dirname($baseDir)); +-    } +-} +-require_once $vendorDir . '/autoload.php'; ++putenv('BARTLETT_COMPATINFO_DB=/usr/share/php-bartlett-PHP-CompatInfo/compatinfo.sqlite'); +  + if (PHP_SAPI !== 'cli') { +     return; + } +  ++$vendorDir = '/usr/share/php'; ++require_once $vendorDir . '/PhpParser/Autoloader.php'; ++PhpParser\Autoloader::register(); ++ ++require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php'; ++require_once $vendorDir . '/SebastianBergmann/Version/Version.php'; ++ ++use Symfony\Component\ClassLoader\UniversalClassLoader; ++ ++$loader = new UniversalClassLoader(); ++$loader->registerNamespaces(array( ++    'Symfony\\Component'                  => $vendorDir, ++    'Doctrine\\Common'                    => $vendorDir, ++    'phpDocumentor\\Reflection'           => $vendorDir, ++    'Seld\\JsonLint'                      => $vendorDir, ++    'JsonSchema'                          => $vendorDir, ++    'Bartlett'                            => $vendorDir, ++    'TokenReflection'                     => $vendorDir, ++)); ++$loader->useIncludePath(true); ++$loader->register(); ++ + use Bartlett\UmlWriter\Console\Application; +  +-$application = new Application($appName, '1.0'); ++$application = new Application($appName, '@package_version@'); + $application->run(); +diff -up ./tests/bootstrap.php.rpm ./tests/bootstrap.php +--- ./tests/bootstrap.php.rpm	2015-03-31 09:46:46.000000000 +0200 ++++ ./tests/bootstrap.php	2015-03-31 11:30:51.000000000 +0200 +@@ -1,6 +1,30 @@ + <?php +  + $baseDir   = dirname(__DIR__); +-$vendorDir = $baseDir . '/vendor'; ++$vendorDir = '/usr/share/php'; ++putenv('BARTLETT_COMPATINFO_DB=/usr/share/php-bartlett-PHP-CompatInfo/compatinfo.sqlite'); +  +-require_once $vendorDir . '/autoload.php'; ++require_once $vendorDir . '/PhpParser/Autoloader.php'; ++PhpParser\Autoloader::register(); ++require_once $vendorDir . '/SebastianBergmann/Version/Version.php'; ++require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php'; ++ ++use Symfony\Component\ClassLoader\UniversalClassLoader; ++ ++$loader = new UniversalClassLoader(); ++$loader->registerNamespaces(array( ++    'Symfony\\Component'                  => $vendorDir, ++    'Doctrine\\Common'                    => $vendorDir, ++    'phpDocumentor\\Reflection'           => $vendorDir, ++    'Seld\\JsonLint'                      => $vendorDir, ++    'JsonSchema'                          => $vendorDir, ++    'Bartlett\\UmlWriter'                 => $baseDir . '/src', ++    'Bartlett\\Tests\\UmlWriter'          => $baseDir . '/tests', ++    'Bartlett'                            => $vendorDir, ++    'TokenReflection'                     => $vendorDir, ++)); ++ ++$loader->register(); ++ ++# Class not catched by autoloader ++require $vendorDir . '/Bartlett/Reflect.php'; diff --git a/php-bartlett-umlwriter.spec b/php-bartlett-umlwriter.spec index bf7e229..d683511 100644 --- a/php-bartlett-umlwriter.spec +++ b/php-bartlett-umlwriter.spec @@ -6,16 +6,22 @@  #  # Please, preserve the changelog entries  # -%global gh_commit    0fe1c3a19280e4cd9f136ff3347ae9d0110758ca +%global bootstrap    0 +%global gh_commit    48f1e73fd3716824830185342319e8217e87cc3e  %global gh_short     %(c=%{gh_commit}; echo ${c:0:7})  #global gh_date      20150303  %global gh_owner     llaville  %global gh_project   umlwriter -%global prever       RC1 +%global prever       RC2 +%if %{bootstrap} +%global with_tests   %{?_with_tests:1}%{!?_with_tests:0} +%else +%global with_tests   %{?_without_tests:0}%{!?_without_tests:1} +%endif  Name:           php-bartlett-umlwriter  Version:        1.0.0 -%global specrel 1 +%global specrel 2  Release:        %{?gh_short:0.%{specrel}.%{?gh_date:%{gh_date}git%{gh_short}}%{?prever}}%{!?gh_short:%{specrel}}%{?dist}  Summary:        Create UML class diagrams from your PHP source @@ -24,18 +30,42 @@ License:        BSD  URL:            http://php5.laurent-laville.org/umlwriter/  Source0:        https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}%{?prever}%{?gh_short:-%{gh_short}}.tar.gz +# Autoloader for RPM - die composer ! +Patch0:         %{name}-rpm.patch +  BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)  BuildArch:      noarch  BuildRequires:  php(language) >= 5.3.0 +%if %{with_tests} +BuildRequires:  %{_bindir}/phpunit +BuildRequires:  php-composer(symfony/console)                   >= 2.5 +BuildRequires:  php-composer(sebastian/version)                 >= 1.0 +BuildRequires:  php-composer(bartlett/php-reflect)              >= 3.0 +BuildRequires:  php-composer(andrewsville/php-token-reflection) >= 1.4 +%endif  # From composer.json  #    "require": {  #        "php": ">=5.3.0" -#    "suggest": { -#        "bartlett/php-reflect": "Reverse-engine compatible solution 1", -#        "andrewsville/php-token-reflection": "Reverse-engine compatible solution 2" +#        "symfony/console": "~2.5", +#        "sebastian/version": "~1.0"  Requires:       php(language) >= 5.3.0 -# Notice, we do not require Reflect to avoid circular dependencies +Requires:       php-composer(symfony/console)                   >= 2.5 +Requires:       php-composer(symfony/console)                   <  3 +Requires:       php-composer(sebastian/version)                 >= 1.0 +Requires:       php-composer(sebastian/version)                 <  2 +#    "require-dev": { +#        "bartlett/php-reflect": "3.0.*@dev", +#        "andrewsville/php-token-reflection": "~1.4" +#    "suggest": { +#        "bartlett/php-reflect": "Reverse-engine, default solution", +#        "andrewsville/php-token-reflection": "Reverse-engine, alternative solution" +Requires:       php-composer(bartlett/php-reflect)              >= 3.0 +Requires:       php-composer(bartlett/php-reflect)              <  4 +Requires:       php-composer(andrewsville/php-token-reflection) >= 1.4 +Requires:       php-composer(andrewsville/php-token-reflection) <  2 +# For our patch +Requires:       php-composer(symfony/class-loader)  Provides:       php-composer(bartlett/umlwriter) = %{version} @@ -56,8 +86,10 @@ interface and trait definitions in your PHP project.  %prep  %setup -q -n %{gh_project}-%{gh_commit} +%patch0 -p1 -b .rpm +  sed -e 's/@package_version@/%{version}%{?prever}/' \ -    -i $(find src -name \*.php) +    -i $(find src -name \*.php) bin/umlwriter  %build @@ -69,6 +101,16 @@ rm -rf %{buildroot}  mkdir -p %{buildroot}%{_datadir}/php  cp -pr src/Bartlett %{buildroot}%{_datadir}/php/Bartlett +install -D -p -m 755 bin/umlwriter  %{buildroot}%{_bindir}/umlwriter + + +%check +%if %{with_tests} +%{_bindir}/phpunit -v || : Results ignored for now, known upstream issue #1 +%else +: Test suite disabled +%endif +  %clean  rm -rf %{buildroot} @@ -79,10 +121,21 @@ rm -rf %{buildroot}  %{!?_licensedir:%global license %%doc}  %license LICENSE  %doc composer.json README.* examples +%{_bindir}/umlwriter  %dir %{_datadir}/php/Bartlett       %{_datadir}/php/Bartlett/UmlWriter  %changelog +* Tue Mar 31 2015 Remi Collet <remi@fedoraproject.org> - 1.0.0-0.2.RC2 +- update to 1.0.0RC2 +- add umlwrite command +- add dependencies on symfony/console, symfony/class-loader, +  bartlett/php-reflect, sebastian/version +  and andrewsville/php-token-reflection +- run test suite during build, but ignore results for now +- open https://github.com/llaville/umlwriter/issues/1 test suite issue +- open https://github.com/llaville/umlwriter/issues/2 runtime issue +  * Tue Mar 24 2015 Remi Collet <remi@fedoraproject.org> - 1.0.0-0.1.RC1  - Initial RPM package, version 1.0.0RC1
\ No newline at end of file  | 
