From 430f25ae485508d91be5a14b6554ed4222add529 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 20 Mar 2023 10:20:48 +0100 Subject: new package --- .gitignore | 9 +++ Makefile | 3 + composer.json | 42 ++++++++++++++ makesrc.sh | 32 +++++++++++ php-phpstan-phpdoc-parser.spec | 122 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 208 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 composer.json create mode 100755 makesrc.sh create mode 100644 php-phpstan-phpdoc-parser.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01f0400 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +clog +package-*.xml +*.tgz +*.tar.bz2 +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a2cd659 --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..3b902ae --- /dev/null +++ b/composer.json @@ -0,0 +1,42 @@ +{ + "name": "phpstan/phpdoc-parser", + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "license": "MIT", + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "config": { + "platform": { + "php": "7.4.6" + }, + "sort-packages": true, + "allow-plugins": { + "phpstan/extension-installer": true + } + }, + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "autoload-dev": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "tests/PHPStan" + ] + } + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/makesrc.sh b/makesrc.sh new file mode 100755 index 0000000..65c4fd8 --- /dev/null +++ b/makesrc.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +NAME=$(basename $PWD) +OWNER=$(sed -n '/^%global gh_owner/{s/.* //;p}' $NAME.spec) +PROJECT=$(sed -n '/^%global gh_project/{s/.* //;p}' $NAME.spec) +VERSION=$(sed -n '/^Version:/{s/.* //;p}' $NAME.spec) +COMMIT=$(sed -n '/^%global gh_commit/{s/.* //;p}' $NAME.spec) +SHORT=${COMMIT:0:7} + +if [ -f $NAME-$VERSION-$SHORT.tgz ]; then + echo Skip $NAME-$VERSION-$SHORT.tgz +else + echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION\n" + + echo "Cloning..." + rm -rf $PROJECT-$COMMIT + git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT + + echo "Getting commit..." + pushd $PROJECT-$COMMIT + git checkout $COMMIT || exit 1 + cp composer.json ../composer.json + popd + + echo "Archiving..." + tar czf $NAME-$VERSION-$SHORT.tgz --exclude .git $PROJECT-$COMMIT + + echo "Cleaning..." + rm -rf $PROJECT-$COMMIT + + echo "Done." +fi diff --git a/php-phpstan-phpdoc-parser.spec b/php-phpstan-phpdoc-parser.spec new file mode 100644 index 0000000..3c429f1 --- /dev/null +++ b/php-phpstan-phpdoc-parser.spec @@ -0,0 +1,122 @@ +# remirepo/Fedora spec file for php-phpstan-phpdoc-parser +# +# Copyright (c) 2023 Remi Collet +# License: CC-BY-SA-4.0 +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# + +%bcond_without tests + +%global gh_commit e27e92d939e2e3636f0a1f0afaba59692c0bf571 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner phpstan +%global gh_project phpdoc-parser +%global php_home %{_datadir}/php +%global namespace PHPStan +%global library PhpDocParser +%global major %nil + +Name: php-%{gh_owner}-%{gh_project}%{major} +Version: 1.16.1 +Release: 1%{?dist} +Summary: PHPDoc parser with support for nullable, intersection and generic types + +License: MIT +URL: https://github.com/%{gh_owner}/%{gh_project} +# git snapshot to retrieve test suite +Source0: %{gh_commit}/%{name}-%{version}-%{gh_short}.tgz +Source1: makesrc.sh + +BuildArch: noarch +# Tests +%if %{with tests} +BuildRequires: php(language) >= 7.2 +BuildRequires: php-json +BuildRequires: php-pcre +# From composer, "require-dev": { +# "php-parallel-lint/php-parallel-lint": "^1.2", +# "phpstan/extension-installer": "^1.0", +# "phpstan/phpstan": "^1.5", +# "phpstan/phpstan-phpunit": "^1.1", +# "phpstan/phpstan-strict-rules": "^1.0", +# "phpunit/phpunit": "^9.5", +# "symfony/process": "^5.2" +%global phpunit %{_bindir}/phpunit9 +BuildRequires: phpunit9 >= 9.5 +%endif +# Autoloader +BuildRequires: php-fedora-autoloader-devel + +# From composer, "require": { +# "php": "^7.2 || ^8.0" +Requires: php(language) >= 7.2 +# Autoloader +Requires: php-composer(fedora/autoloader) +# From phpcompatinfo report for version 2.4.2 +Requires: php-json +Requires: php-pcre + +Provides: php-composer(%{gh_owner}/%{gh_project}) = %{version} + + +%description +Next generation phpDoc parser with support for intersection types and generics. + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + + +%build +phpab --template fedora --output src/autoload.php src + + +%install +: library +mkdir -p %{buildroot}%{php_home}/%{namespace}/ +cp -pr src %{buildroot}%{php_home}/%{namespace}/%{library}%{major} + + +%check +%if %{with tests} +mkdir vendor +cat << 'EOF' | tee vendor/autoload.php + - 1.16.1-1 +- initial package -- cgit