From fed0ed380941ba2fd687a03b8d1f73fa3a2ac1be Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 8 Apr 2016 14:46:48 +0200 Subject: php-hoa-praspel: 1.16.01.16 (new package, wip) --- LICENSE | 29 +++++++++ Makefile | 4 ++ composer.json | 49 ++++++++++++++ php-hoa-praspel-autoload.php | 22 +++++++ php-hoa-praspel.spec | 152 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 256 insertions(+) create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 composer.json create mode 100644 php-hoa-praspel-autoload.php create mode 100644 php-hoa-praspel.spec diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..52862ba --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ + New BSD License + + + +Copyright © 2007-2016, Hoa community. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Hoa nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. 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..4a94080 --- /dev/null +++ b/composer.json @@ -0,0 +1,49 @@ +{ + "name" : "hoa/praspel", + "description": "The Hoa\\Praspel library.", + "type" : "library", + "keywords" : ["library", "praspel", "specification", "contract", "test", + "generation", "validation", "precondition", "postcondition", + "invariant"], + "homepage" : "http://hoa-project.net/", + "license" : "BSD-3-Clause", + "authors" : [ + { + "name" : "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name" : "Hoa community", + "homepage": "http://hoa-project.net/" + } + ], + "support": { + "email" : "support@lists.hoa-project.net", + "irc" : "irc://irc.freenode.org/hoaproject", + "source": "http://git.hoa-project.net/" + }, + "require": { + "hoa/compiler" : "~3.0", + "hoa/consistency": "~1.0", + "hoa/exception" : "~1.0", + "hoa/file" : "~1.0", + "hoa/iterator" : "~2.0", + "hoa/protocol" : "~1.0", + "hoa/realdom" : "~1.0", + "hoa/ustring" : "~4.0", + "hoa/visitor" : "~2.0" + }, + "require-dev": { + "hoa/math": "~1.0" + }, + "autoload": { + "psr-4": { + "Hoa\\Praspel\\": "." + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + } +} diff --git a/php-hoa-praspel-autoload.php b/php-hoa-praspel-autoload.php new file mode 100644 index 0000000..a1161b3 --- /dev/null +++ b/php-hoa-praspel-autoload.php @@ -0,0 +1,22 @@ + true, + $vendor . '/Hoa/Consistency/autoload.php' => true, + $vendor . '/Hoa/Exception/autoload.php' => true, + $vendor . '/Hoa/File/autoload.php' => true, + $vendor . '/Hoa/Iterator/autoload.php' => true, + $vendor . '/Hoa/Protocol/autoload.php' => true, + $vendor . '/Hoa/Realdom/autoload.php' => true, + $vendor . '/Hoa/Ustring/autoload.php' => true, + $vendor . '/Hoa/Visitor/autoload.php' => true, + ] as $dep => $mandatory) { + if ($mandatory || file_exists($dep)) require_once($dep); +} + +$fedoraHoaLoader->addNamespace('Hoa\\Praspel\\', __DIR__, true); + diff --git a/php-hoa-praspel.spec b/php-hoa-praspel.spec new file mode 100644 index 0000000..03a62e2 --- /dev/null +++ b/php-hoa-praspel.spec @@ -0,0 +1,152 @@ +# remirepo/fedora spec file for php-hoa-Praspel +# +# Copyright (c) 2016 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global bootstrap 1 +%global gh_commit 14cbe9f7bc887e34f7415fbce3117d7ee7daede6 +#global gh_date 20150728 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner hoaproject +%global gh_project Praspel +%global php_home %{_datadir}/php +%global ns_vendor Hoa +%global ns_project Praspel +%global pk_vendor hoa +%global pk_project praspel +%if %{bootstrap} +%global with_tests 0%{?_with_tests:1} +%else +%global with_tests 0%{!?_without_tests:1} +%endif + +Name: php-%{pk_vendor}-%{pk_project} +Version: 1.16.01.16 +%global specrel 0 +Release: %{?gh_date:0.%{specrel}.%{?prever}%{!?prever:%{gh_date}git%{gh_short}}}%{!?gh_date:%{specrel}}%{?dist} +Summary: The %{ns_vendor}\%{ns_project} library. + +Group: Development/Libraries +License: BSD +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}-%{gh_short}.tar.gz +Source1: %{name}-autoload.php +Source2: http://hoa-project.net/LICENSE + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch +%if %{with_tests} +BuildRequires: php-composer(%{pk_vendor}/compiler) >= 3.0 +BuildRequires: php-composer(%{pk_vendor}/consistency) >= 1.0 +BuildRequires: php-composer(%{pk_vendor}/exception) >= 1.0 +BuildRequires: php-composer(%{pk_vendor}/file) >= 1.0 +BuildRequires: php-composer(%{pk_vendor}/iterator) >= 2.0 +BuildRequires: php-composer(%{pk_vendor}/protocol) >= 1.0 +BuildRequires: php-composer(%{pk_vendor}/realdom) >= 1.0 +BuildRequires: php-composer(%{pk_vendor}/ustring) >= 4.0 +BuildRequires: php-composer(%{pk_vendor}/visitor) >= 2.0 +# from composer.json, "require-dev": { +# "hoa/math": "~1.0" +BuildRequires: php-composer(%{pk_vendor}/math) >= 1.0 +%endif + +# from composer.json, "require": { +# "hoa/compiler" : "~3.0", +# "hoa/consistency": "~1.0", +# "hoa/exception" : "~1.0", +# "hoa/file" : "~1.0", +# "hoa/iterator" : "~2.0", +# "hoa/protocol" : "~1.0", +# "hoa/realdom" : "~1.0", +# "hoa/ustring" : "~4.0", +# "hoa/visitor" : "~2.0" +Requires: php-composer(%{pk_vendor}/compiler) >= 3.0 +Requires: php-composer(%{pk_vendor}/compiler) < 4 +Requires: php-composer(%{pk_vendor}/consistency) >= 1.0 +Requires: php-composer(%{pk_vendor}/consistency) < 2 +Requires: php-composer(%{pk_vendor}/exception) >= 1.0 +Requires: php-composer(%{pk_vendor}/exception) < 2 +Requires: php-composer(%{pk_vendor}/file) >= 1.0 +Requires: php-composer(%{pk_vendor}/file) < 2 +Requires: php-composer(%{pk_vendor}/iterator) >= 2.0 +Requires: php-composer(%{pk_vendor}/iterator) < 3 +Requires: php-composer(%{pk_vendor}/protocol) >= 1.0 +Requires: php-composer(%{pk_vendor}/protocol) < 2 +Requires: php-composer(%{pk_vendor}/realdom) >= 1.0 +Requires: php-composer(%{pk_vendor}/realdom) < 2 +Requires: php-composer(%{pk_vendor}/ustring) >= 4.0 +Requires: php-composer(%{pk_vendor}/ustring) < 5 +Requires: php-composer(%{pk_vendor}/visitor) >= 2.0 +Requires: php-composer(%{pk_vendor}/visitor) < 3 +# from phpcompatinfo report for version 1.16.01.16 +Requires: php-reflection +Requires: php-ctype +Requires: php-pcre +Requires: php-spl + +Provides: php-composer(%{pk_vendor}/%{pk_project}) = %{version} + + +%description +Praspel (PHP Realistic Annotation and Specification Language) +is a formal specification language for PHP. It is based on the +design-by-contract paradigm and uses preconditions, postconditions, +invariants etc. Specifications are written in the comments of the +PHP code (always accessible). Praspel is used for manual or automatic +software validation and verification, thanks to realistic domains. + +The %{ns_vendor}\%{ns_project} library contains compiler, interpreter, +visitors, iterators and other tools around the Praspel language. + +An interesting related project is atoum/praspel-extension. + +Autoloader: %{php_home}/%{ns_vendor}/%{ns_project}/autoload.php + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} +cp %{SOURCE1} autoload.php +cp %{SOURCE2} LICENSE + + +%build +: Nothing + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{php_home}/%{ns_vendor}/%{ns_project} +cp -pr *php %{buildroot}%{php_home}/%{ns_vendor}/%{ns_project}/ +cp -pr *pp %{buildroot}%{php_home}/%{ns_vendor}/%{ns_project}/ +find . -mindepth 1 -maxdepth 1 -type d \! \( -name Test -o -name Documentation \) -print -exec \ + cp -pr {} %{buildroot}%{php_home}/%{ns_vendor}/%{ns_project} \; + + +%check +%if %{with_tests} +%else +: bootstrap build with test suite disabled +%endif + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc composer.json +%doc *md +%{php_home}/%{ns_vendor}/%{ns_project} + + +%changelog +* Fri Apr 8 2016 Remi Collet - 1.16.01.16-0 +- initial package +- bootstrap build + -- cgit