From f22e33525c4c5f433cd45e4237fe5d9b5718e3ad Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 30 Mar 2021 18:44:48 +0200 Subject: New package --- .gitignore | 9 +++ Makefile | 4 ++ composer.json | 27 +++++++ makesrc.sh | 32 +++++++++ php-doctrine-deprecations.spec | 158 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 230 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 composer.json create mode 100755 makesrc.sh create mode 100644 php-doctrine-deprecations.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..13af741 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..5cc7ac1 --- /dev/null +++ b/composer.json @@ -0,0 +1,27 @@ +{ + "name": "doctrine/deprecations", + "type": "library", + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "license": "MIT", + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0|^8.0|^9.0", + "psr/log": "^1.0", + "doctrine/coding-standard": "^6.0|^7.0|^8.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "autoload": { + "psr-4": {"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"} + }, + "autoload-dev": { + "psr-4": { + "DeprecationTests\\": "test_fixtures/src", + "Doctrine\\Foo\\": "test_fixtures/vendor/doctrine/foo" + } + } +} diff --git a/makesrc.sh b/makesrc.sh new file mode 100755 index 0000000..9a194e7 --- /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 $NAME-$VERSION-$SHORT.tgz already there +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-vcs $PROJECT-$COMMIT + + echo "Cleaning..." + rm -rf $PROJECT-$COMMIT + + echo "Done." +fi diff --git a/php-doctrine-deprecations.spec b/php-doctrine-deprecations.spec new file mode 100644 index 0000000..0eb752e --- /dev/null +++ b/php-doctrine-deprecations.spec @@ -0,0 +1,158 @@ +# remirepo/fedora spec file for php-doctrine-deprecations +# +# Copyright (c) 2021 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# + +%bcond_without tests + +%global gh_commit 9504165960a1f83cc1480e2be1dd0a0478561314 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner doctrine +%global gh_project deprecations +# packagist +%global pk_vendor %{gh_owner} +%global pk_project %{gh_project} +# Namespace +%global ns_vendor Doctrine +%global ns_project Deprecations + +Name: php-%{pk_vendor}-%{pk_project} +Version: 0.5.3 +Release: 1%{?dist} +Summary: A small layer on top of trigger_error or PSR-3 logging + +License: MIT +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: %{name}-%{version}-%{gh_short}.tgz +Source1: makesrc.sh + +BuildArch: noarch +BuildRequires: php(language) >= 7.1 +BuildRequires: php-fedora-autoloader-devel +%if %{with tests} +# From composer.json +# "require-dev": { +# "phpunit/phpunit": "^7.0|^8.0|^9.0", +# "psr/log": "^1.0", +# "doctrine/coding-standard": "^6.0|^7.0|^8.0" +# remirepo:1 +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 +BuildRequires: (php-composer(psr/log) >= 1.0 with php-composer(psr/log) < 2) +# remirepo:3 +%else +BuildRequires: php-PsrLog +%endif +BuildRequires: phpunit9 +%endif + +# From composer.json +# "require": { +# "php": "^7.1 || ^8.0", +# "suggest": { +# "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + +Requires: php(language) >= 7.1 +# remirepo:1 +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 +Requires: (php-composer(psr/log) >= 1.0 with php-composer(psr/log) < 2) +# remirepo:3 +%else +Requires: php-PsrLog +%endif +# From phpcompatinfo report for version 0.5.3 +# Only core and standard + +# Autoloader +Requires: php-composer(fedora/autoloader) + +Provides: php-composer(%{pk_vendor}/%{pk_project}) = %{version} + + +%description +A small (side-effect free by default) layer on top of +trigger_error(E_USER_DEPRECATED) or PSR-3 logging. + +* no side-effects by default, making it a perfect fit for libraries + that don't know how the error handler works they operate under +* options to avoid having to rely on error handlers global state by + using PSR-3 logging +* deduplicate deprecation messages to avoid excessive triggering and + reduce overhead + +We recommend to collect Deprecations using a PSR logger instead of +relying on the global error handler. + +Autoloader: %{_datadir}/php/%{ns_vendor}/%{ns_project}/autoload.php + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + + +%build +: Generate a simple autoloader +%{_bindir}/phpab \ + --output lib/%{ns_vendor}/%{ns_project}/autoload.php \ + --template fedora \ + lib/%{ns_vendor} + +cat << 'EOF' | tee -a lib/%{ns_vendor}/%{ns_project}/autoload.php + +\Fedora\Autoloader\Dependencies::required([ + '%{_datadir}/php/Psr/Log/autoload.php', +]); +EOF + + +%install +mkdir -p %{buildroot}%{_datadir}/php/%{ns_vendor} +cp -pr lib/%{ns_vendor}/%{ns_project} %{buildroot}%{_datadir}/php/%{ns_vendor}/%{ns_project} + + +%check +%if %{with tests} +: Generate autoloader +mkdir vendor +%{_bindir}/phpab \ + --output vendor/autoload.php \ + --template fedora \ + test_fixtures/src \ + test_fixtures/vendor/doctrine/foo + +cat << 'EOF' | tee -a vendor/autoload.php +\Fedora\Autoloader\Dependencies::required([ + '%{buildroot}%{_datadir}/php/%{ns_vendor}/%{ns_project}/autoload.php', +]); +EOF + +ret=0 +for cmd in php php73 php74 php80; do + if which $cmd; then + $cmd %{_bindir}/phpunit9 \ + --verbose || ret=1 + fi +done + +exit $ret +%else +: Test suite disabled +%endif + + +%files +# remirepo:1 +%{!?_licensedir:%global license %%doc} +# https://github.com/doctrine/deprecations/issues/26 +#license LICENSE +%doc *.md +%doc composer.json +%{_datadir}/php/%{ns_vendor}/%{ns_project}/ + + +%changelog +* Tue Mar 30 2021 Remi Collet - 0.5.3-1 +- initial package -- cgit