Skip to content

Commit

Permalink
php-composer-semver: 1.0.0 - New package
Browse files Browse the repository at this point in the history
  • Loading branch information
remicollet committed Oct 4, 2015
1 parent f5c2e2b commit db0f437
Show file tree
Hide file tree
Showing 4 changed files with 160 additions and 0 deletions.
4 changes: 4 additions & 0 deletions php/php-composer-semver/Makefile
@@ -0,0 +1,4 @@
SRCDIR := $(shell pwd)
NAME := $(shell basename $(SRCDIR))
include ../../common/Makefile

27 changes: 27 additions & 0 deletions php/php-composer-semver/makesrc.sh
@@ -0,0 +1,27 @@
#!/bin/bash

NAME=$(sed -n '/^Name:/{s/.* //;p}' *.spec)
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}

echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION\n"

echo "Cloning..."
git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT

echo "Getting commit..."
pushd $PROJECT-$COMMIT
git checkout $COMMIT
cp composer.json ../composer-$VERSION.json
popd

echo "Archiving..."
tar czf $NAME-$VERSION-$SHORT.tgz --exclude .git $PROJECT-$COMMIT

echo "Cleaning..."
rm -rf $PROJECT-$COMMIT

echo "Done."
15 changes: 15 additions & 0 deletions php/php-composer-semver/php-composer-semver-autoload.php
@@ -0,0 +1,15 @@
<?php
/* Autoloader for composer/spdx-licenses and its dependencies */

$vendorDir = '/usr/share/php';
// Use Symfony autoloader
if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) {
if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) {
require_once $vendorDir . '/Symfony/Component/ClassLoader/ClassLoader.php';
}

$fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader();
$fedoraClassLoader->register();
}

$fedoraClassLoader->addPrefix('Composer\\Semver\\', dirname(dirname(__DIR__)));
114 changes: 114 additions & 0 deletions php/php-composer-semver/php-composer-semver.spec
@@ -0,0 +1,114 @@
# remirepo spec/Fedora file for php-composer-semver
#
# Copyright (c) 2015 Remi Collet
# License: CC-BY-SA
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#
%global gh_commit d0e1ccc6d44ab318b758d709e19176037da6b1ba
%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
#global gh_date 20150717
%global gh_owner composer
%global gh_project semver
%global php_home %{_datadir}/php
%global with_tests 0%{!?_without_tests:1}

Name: php-composer-semver
Version: 1.0.0
Release: 1%{?gh_date:.%{gh_date}git%{gh_short}}%{?dist}
Summary: Semver library that offers utilities, version constraint parsing and validation

Group: Development/Libraries
License: MIT
URL: https://github.com/%{gh_owner}/%{gh_project}
# git snapshot to get upstream test suite
Source0: %{name}-%{version}-%{gh_short}.tgz
Source1: makesrc.sh
Source2: %{name}-autoload.php

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%if %{with_tests}
# For tests
BuildRequires: php(language) >= 5.3.2
BuildRequires: php-json
BuildRequires: php-pcre
BuildRequires: php-spl
# From composer.json, "require-dev": {
# "phpunit/phpunit": "~4.5",
# "phpunit/phpunit-mock-objects": "~2.3"
BuildRequires: php-composer(phpunit/phpunit) >= 4.5
BuildRequires: php-composer(phpunit/phpunit-mock-objects) >= 2.3
# Autoloader
BuildRequires: php-composer(symfony/class-loader)
%endif

# From composer.json, "require": {
# "php": ">=5.3.2",
Requires: php(language) >= 5.3.2
# From phpcompatinfo report for version 1.0.0 (SpdxLicenses.php only)
Requires: php-pcre
Requires: php-spl
# Autoloader
Requires: php-composer(symfony/class-loader)

Provides: php-composer(%{gh_owner}/%{gh_project}) = %{version}


%description
Semver library that offers utilities, version constraint parsing
and validation.

Originally written as part of composer/composer, now extracted and
made available as a stand-alone library.

To use this library, you just have to add, in your project:
require_once '%{_datadir}/php/Composer/Semver/autoload.php';


%prep
%setup -q -n %{gh_project}-%{gh_commit}

cp %{SOURCE2} src/autoload.php


%build
# Empty build section, most likely nothing required.


%install
rm -rf %{buildroot}

: Library
mkdir -p %{buildroot}%{php_home}/Composer/
cp -pr src %{buildroot}%{php_home}/Composer/Semver


%check
%if %{with_tests}
%{_bindir}/phpunit \
--bootstrap %{buildroot}%{php_home}/Composer/Semver/autoload.php \
--verbose
%else
: Test suite disabled
%endif


%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root,-)
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc composer.json
%doc *.md
%dir %{php_home}/Composer
%{php_home}/Composer/Semver


%changelog
* Sun Oct 4 2015 Remi Collet <remi@fedoraproject.org> - 1.0.0-1
- initial package, version 1.0.0

0 comments on commit db0f437

Please sign in to comment.