summaryrefslogtreecommitdiffstats
path: root/php-cakephp.spec
blob: 830fb25f7c99fc50ba132d77500d08c574acd1f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
# remirepo/fedora spec file for php-cakephp
#
# Copyright (c) 2018-2020 Remi Collet
# License: CC-BY-SA
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#

# https://github.com/cakephp/cakephp/releases
%global gh_commit    00364a31ddc8f713a63a01949f805c293a1c1422
%global gh_short     %(c=%{gh_commit}; echo ${c:0:7})
%global gh_owner     cakephp
%global gh_project   cakephp
%global pk_vendor   cakephp
%global ns_vendor    Cake
%global php_home     %{_datadir}/php
%global with_tests   0%{!?_without_tests:1}

# https://github.com/cakephp/chronos/releases
%global chronos_commit  ba2bab98849e7bf29b02dd634ada49ab36472959
%global chronos_short   %(c=%{chronos_commit}; echo ${c:0:7})
%global chronos_version 1.3.0

Name:           php-%{pk_vendor}
Version:        3.9.4
Release:        1%{?dist}
Summary:        The CakePHP framework

License:        MIT
URL:            https://cakephp.org/
Source0:        %{name}-%{version}-%{gh_short}.tgz
Source1:        makesrc.sh
Source2:        %{name}-chronos-%{chronos_version}-%{chronos_short}.tgz
Source3:        makesrc2.sh

BuildArch:      noarch
%if %{with_tests}
# For tests
BuildRequires:  php(language) >= 5.6
BuildRequires:  php-ctype
BuildRequires:  php-date
BuildRequires:  php-dom
BuildRequires:  php-hash
BuildRequires:  php-intl
BuildRequires:  php-json
BuildRequires:  php-libxml
BuildRequires:  php-mbstring
BuildRequires:  php-pcre
BuildRequires:  php-pdo
BuildRequires:  php-reflection
BuildRequires:  php-simplexml
BuildRequires:  php-spl
# From composer.json, "require-dev": {
#        "cakephp/cakephp-codesniffer": "^3.0",
#        "cakephp/chronos": "^1.2.1",
#        "phpunit/phpunit": "^5.7.14|^6.0"
BuildRequires:  php-composer(phpunit/phpunit)
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
BuildRequires: (php-composer(aura/intl)                    >= 3.0.0 with php-composer(aura/intl)                    < 4)
BuildRequires: (php-composer(psr/log)                      >= 1.0.0 with php-composer(psr/log)                      < 2)
BuildRequires: (php-composer(zendframework/zend-diactoros) >= 1.4.0 with php-composer(zendframework/zend-diactoros) < 2)
%else
BuildRequires:  php-aura-intl                    >= 3.0.0
BuildRequires:  php-PsrLog                       >= 1.0.0
BuildRequires:  php-zendframework-zend-diactoros >= 1.4.0
%endif
BuildRequires:  php-paragonie-random-compat
%endif


%description
CakePHP is a rapid development framework for PHP which uses commonly known
design patterns like Associative Data Mapping, Front Controller, and MVC.
Our primary goal is to provide a structured framework that enables PHP users
at all levels to rapidly develop robust web applications, without any loss
to flexibility.


%package cache
Summary:        CakePHP Collection Library
# From composer.json "require": {
#        "php": ">=5.6.0",
#        "psr/simple-cache": "^1.0.0",
#        "cakephp/core": "^3.6.0"
Requires:       php(language) >= 5.6
Requires:       php-composer(%{pk_vendor}/core) = %{version}
# from main composer.json
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
BuildRequires: (php-composer(psr/simple-cache)             >= 1.0.0 with php-composer(psr/simple-cache)             < 2)
Requires:      (php-composer(psr/simple-cache)             >= 1.0.0 with php-composer(psr/simple-cache)             < 2)
# Optional (from phpcompatinfo report)
Recommends:     php-apcu
Suggests:       php-memcached
Suggests:       php-redis
%else
BuildRequires:  php-psr-simple-cache             >= 1.0.0
Requires:       php-psr-simple-cache             >= 1.0.0
%endif
# From phpcompatinfo report
Requires:       php-date
Requires:       php-pcre
Requires:       php-spl
Provides:       php-composer(%{pk_vendor}/cache) = %{version}

%description cache
CakePHP Caching Library:

The Cache library provides a Cache service locator for interfacing with
multiple caching backends using a simple to use interface.

The caching backends supported are:
*    Files
*    APC
*    Memcached
*    Redis
*    Wincache
*    Xcache


%package collection
Summary:        CakePHP Collection Library
# From composer.json "require": {
#        "php": ">=5.6.0",
Requires:       php(language) >= 5.6
# From phpcompatinfo report
Requires:       php-spl
Provides:       php-composer(%{pk_vendor}/collection) = %{version}

%description collection
CakePHP Collection Library:

The collection classes provide a set of tools to manipulate arrays or
Traversable objects. If you have ever used underscore.js, you have an
idea of what you can expect from the collection classes.


%package core
Summary:        CakePHP Framework Core classes
# From composer.json "require": {
#        "php": ">=5.6.0",
#        "cakephp/utility": "^3.6.0"
Requires:       php(language) >= 5.6
Requires:       php-composer(%{pk_vendor}/utility) = %{version}
# From phpcompatinfo report
Requires:       php-reflection
Requires:       php-json
Requires:       php-mbstring
Requires:       php-pcre
Requires:       php-spl
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
Recommends:     php-composer(%{pk_vendor}/cache) = %{version}
Recommends:     php-composer(%{pk_vendor}/event) = %{version}
%endif
Provides:       php-composer(%{pk_vendor}/core) = %{version}

%description core
CakePHP Framework Core classes:

A set of classes used for configuration files reading and storing.
This library contains the classes that are used as glue for creating the
CakePHP framework.


%package database
Summary:        CakePHP Database Library
# From composer.json "require": {
#        "php": ">=5.6.0",
#        "cakephp/cache": "^3.6.0",
#        "cakephp/core": "^3.6.0",
#        "cakephp/datasource": "^3.6.0"
#        "cakephp/log": "^3.6.0"
Requires:       php(language) >= 5.6
Requires:       php-composer(%{pk_vendor}/cache)      = %{version}
Requires:       php-composer(%{pk_vendor}/core)       = %{version}
Requires:       php-composer(%{pk_vendor}/datasource) = %{version}
Requires:       php-composer(%{pk_vendor}/log)        = %{version}
# From phpcompatinfo report
Requires:       php-pdo
Requires:       php-ctype
Requires:       php-date
Requires:       php-json
Requires:       php-pcre
Requires:       php-spl
Provides:       php-composer(%{pk_vendor}/database) = %{version}

%description database
A flexible and lightweight Database Library for PHP:

This library abstracts and provides help with most aspects of dealing with
relational databases such as keeping connections to the server, building
queries, preventing SQL injections, inspecting and altering schemas, and
with debugging and profiling queries sent to the database.

It adopts the API from the native PDO extension in PHP for familiarity,
but solves many of the inconsistencies PDO has, while also providing
several features that extend PDO's capabilities.

A distinguishing factor of this library when compared to similar database
connection packages, is that it takes the concept of "data types" to its core.
It lets you work with complex PHP objects or structures that can be passed as
query conditions or to be inserted in the database.

The typing system will intelligently convert the PHP structures when passing
them to the database, and convert them back when retrieving.


%package datasource
Summary:        CakePHP Datasource Library
# From composer.json "require": {
#        "php": ">=5.6.0",
#        "cakephp/core": "^3.6.0"
Requires:       php(language) >= 5.6
Requires:       php-composer(%{pk_vendor}/core) = %{version}
# From phpcompatinfo report
Requires:       php-json
Requires:       php-spl
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
Recommends:     php-composer(%{pk_vendor}/utility)    = %{version}
Recommends:     php-composer(%{pk_vendor}/collection) = %{version}
Recommends:     php-composer(%{pk_vendor}/cache)      = %{version}
%endif
Provides:       php-composer(%{pk_vendor}/datasource) = %{version}

%description datasource
CakePHP Datasource Library:

This library contains interfaces for implementing Repositories and
Entities using any data source, a class for managing connections to
datasources and traits to help you quickly implement the interfaces
provided by this package.


%package event
Summary:        CakePHP Event Library
# From composer.json "require": {
#        "php": ">=5.6.0",
#        "cakephp/core": "^3.6.0"
Requires:       php(language) >= 5.6
Requires:       php-composer(%{pk_vendor}/core) = %{version}
# From phpcompatinfo report
Requires:       php-pcre
Requires:       php-spl
Provides:       php-composer(%{pk_vendor}/event) = %{version}

%description event
CakePHP Event Library:

CakePHP event dispatcher library that helps implementing the observer pattern.


%package log
Summary:        logging library
# From composer.json "require": {
#        "php": ">=5.6.0",
#        "cakephp/core": "^3.6.0",
#        "psr/log": "^1.0.0"
Requires:       php(language) >= 5.6
Requires:       php-composer(%{pk_vendor}/core) = %{version}
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
Requires:      (php-composer(psr/log)                      >= 1.0.0 with php-composer(psr/log)                      < 2)
%else
Requires:       php-PsrLog                       >= 1.0.0
%endif
# From phpcompatinfo report
Requires:       php-date
Requires:       php-json
Requires:       php-posix
Requires:       php-spl
Provides:       php-composer(%{pk_vendor}/log) = %{version}

%description log
CakePHP logging library with support for multiple different streams.


%package utility
Summary:        CakePHP Utility Classes
# From composer.json "require": {
#        "php": ">=5.6.0",
#        "cakephp/core": "^3.6.0"
Requires:       php(language) >= 5.6
Requires:       php-composer(%{pk_vendor}/core) = %{version}
Requires:       php-paragonie-random-compat
# From phpcompatinfo report
Requires:       php-simplexml
Requires:       php-ctype
Requires:       php-dom
Requires:       php-hash
Requires:       php-intl
Requires:       php-json
Requires:       php-libxml
Requires:       php-mbstring
Requires:       php-pcre
Requires:       php-spl
Provides:       php-composer(%{pk_vendor}/utility) = %{version}

%description utility
CakePHP Utility Classes:

This library provides a range of utility classes that are used throughout
the CakePHP framework.


%prep
%setup -q -n %{gh_project}-%{gh_commit} -a 2
mv chronos-*/src src/Chronos


%build
: ===== Generate test autoloader for full framework
mkdir vendor
cat << 'EOF' | tee vendor/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\', dirname(__DIR__).'/src');
\Fedora\Autoloader\Autoload::addPsr4('Cake\\Test\\',                      dirname(__DIR__).'/tests');
\Fedora\Autoloader\Autoload::addPsr4('TestApp\\',                         dirname(__DIR__).'/tests/test_app/TestApp');
\Fedora\Autoloader\Autoload::addPsr4('TestPlugin\\',                      dirname(__DIR__).'/tests/test_app/Plugin/TestPlugin/src');
\Fedora\Autoloader\Autoload::addPsr4('TestPlugin\\Test\\',                dirname(__DIR__).'/tests/test_app/Plugin/TestPlugin/tests');
\Fedora\Autoloader\Autoload::addPsr4('TestPluginTwo\\',                   dirname(__DIR__).'/tests/test_app/Plugin/TestPluginTwo/src');
\Fedora\Autoloader\Autoload::addPsr4('Company\\TestPluginThree\\',        dirname(__DIR__).'/tests/test_app/Plugin/Company/TestPluginThree/src');
\Fedora\Autoloader\Autoload::addPsr4('TCompany\\TestPluginThree\\Test\\', dirname(__DIR__).'/tests/test_app/Plugin/Company/TestPluginThree/tests');
\Fedora\Autoloader\Autoload::addPsr4('ParentPlugin\\',                    dirname(__DIR__).'/tests/test_app/Plugin/ParentPlugin/src');
\Fedora\Autoloader\Autoload::addPsr4('PluginJs\\',                        dirname(__DIR__).'/tests/test_app/Plugin/PluginJs/src');
\Fedora\Autoloader\Dependencies::required([
    dirname(__DIR__).'/src/Chronos/carbon_compat.php',
    dirname(__DIR__).'/src/Core/functions.php',
    dirname(__DIR__).'/src/Collection/functions.php',
    dirname(__DIR__).'/src/I18n/functions.php',
    dirname(__DIR__).'/src/Utility/bootstrap.php',
    '%{php_home}/Aura/Intl/autoload.php',
    '%{php_home}/Psr/Log/autoload.php',
    '%{php_home}/Psr/SimpleCache/autoload.php',
    '%{php_home}/Zend/Diactoros/autoload.php',
    '%{php_home}/random_compat/autoload.php',
]);
EOF

: ===== Generate "cache" autoloader
cat << 'EOF' | tee src/Cache/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\Cache\\', __DIR__);
\Fedora\Autoloader\Dependencies::required([
    dirname(__DIR__) . '/Core/autoload.php',
    '%{php_home}/Psr/SimpleCache/autoload.php',
]);
EOF

: ===== Generate "collection" autoloader
cat << 'EOF' | tee src/Collection/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\Collection\\', __DIR__);
\Fedora\Autoloader\Dependencies::required([
    __DIR__ . '/functions.php',
]);
EOF

: ===== Generate "core" autoloader
cat << 'EOF' | tee src/Core/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\Core\\', __DIR__);
\Fedora\Autoloader\Dependencies::required([
    dirname(__DIR__) . '/Utility/autoload.php',
    __DIR__ . '/functions.php',
]);
EOF

: ===== Generate "database" autoloader
cat << 'EOF' | tee src/Database/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\Database\\', __DIR__);
\Fedora\Autoloader\Dependencies::required([
    dirname(__DIR__) . '/Cache/autoload.php',
    dirname(__DIR__) . '/Core/autoload.php',
    dirname(__DIR__) . '/Datasource/autoload.php',
    dirname(__DIR__) . '/Log/autoload.php',
]);
EOF

: ===== Generate "datasource" autoloader
cat << 'EOF' | tee src/Datasource/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\Datasource\\', __DIR__);
\Fedora\Autoloader\Dependencies::required([
    dirname(__DIR__) . '/Core/autoload.php',
]);
EOF

: ===== Generate "event" autoloader
cat << 'EOF' | tee src/Event/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\Event\\', __DIR__);
\Fedora\Autoloader\Dependencies::required([
    dirname(__DIR__) . '/Core/autoload.php',
]);
EOF

: ===== Generate "log" autoloader
cat << 'EOF' | tee src/Log/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\Log\\', __DIR__);
\Fedora\Autoloader\Dependencies::required([
    dirname(__DIR__) . '/Core/autoload.php',
    '%{php_home}/Psr/Log/autoload.php',
]);
EOF

: ===== Generate "utility" autoloader
cat << 'EOF' | tee src/Utility/autoload.php
<?php
require_once '%{php_home}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Cake\\Utility\\', __DIR__);
\Fedora\Autoloader\Dependencies::required([
    dirname(__DIR__) . '/Core/autoload.php',
    __DIR__ . '/bootstrap.php',
    '%{php_home}/random_compat/autoload.php',
]);
EOF


%install
#: Library
mkdir -p                %{buildroot}%{php_home}/%{ns_vendor}
cp -pr src/Cache        %{buildroot}%{php_home}/%{ns_vendor}/
cp -pr src/Collection   %{buildroot}%{php_home}/%{ns_vendor}/
cp -pr src/Core         %{buildroot}%{php_home}/%{ns_vendor}/
cp -pr src/Database     %{buildroot}%{php_home}/%{ns_vendor}/
cp -pr src/Datasource   %{buildroot}%{php_home}/%{ns_vendor}/
cp -pr src/Event        %{buildroot}%{php_home}/%{ns_vendor}/
cp -pr src/Log          %{buildroot}%{php_home}/%{ns_vendor}/
cp -pr src/Utility      %{buildroot}%{php_home}/%{ns_vendor}/


%check
%if %{with_tests}
: Check our autoloaders
php -r '
require "%{buildroot}%{php_home}/%{ns_vendor}/Cache/autoload.php";
exit (class_exists("Cake\\Cache\\Cache") ? 0 : 1);
'
php -r '
require "%{buildroot}%{php_home}/%{ns_vendor}/Collection/autoload.php";
exit (class_exists("Cake\\Collection\\Collection") ? 0 : 1);
'
php -r '
require "%{buildroot}%{php_home}/%{ns_vendor}/Core/autoload.php";
exit (class_exists("Cake\\Core\\App") ? 0 : 1);
'
php -r '
require "%{buildroot}%{php_home}/%{ns_vendor}/Database/autoload.php";
exit (class_exists("Cake\\Database\\Connection") ? 0 : 1);
'
php -r '
require "%{buildroot}%{php_home}/%{ns_vendor}/Datasource/autoload.php";
exit (class_exists("Cake\\Datasource\\RulesChecker") ? 0 : 1);
'
php -r '
require "%{buildroot}%{php_home}/%{ns_vendor}/Event/autoload.php";
exit (class_exists("Cake\\Event\\Event") ? 0 : 1);
'
php -r '
require "%{buildroot}%{php_home}/%{ns_vendor}/Log/autoload.php";
exit (class_exists("Cake\\Log\\Log") ? 0 : 1);
'
php -r '
require "%{buildroot}%{php_home}/%{ns_vendor}/Utility/autoload.php";
exit (class_exists("Cake\\Utility\\Hash") ? 0 : 1);
'

: Run upstream test suites
ret=0
phpunit tests/TestCase/Cache        --verbose || ret=1
%if 0%{?rhel} == 6 || 0%{?rhel} == 7
: skip for missing laminas used in Http component
%else
phpunit tests/TestCase/Core         --verbose || ret=1
%endif
phpunit tests/TestCase/Collection   --verbose || ret=1
%if 0%{?rhel} == 6
: skip suite as sqlite is too old
%else
phpunit tests/TestCase/Database     --filter '^((?!(testMarshal)).)*$' --verbose || ret=1
phpunit tests/TestCase/Datasource   --verbose || ret=1
%endif
phpunit tests/TestCase/Event        --verbose || ret=1
phpunit tests/TestCase/Log          --verbose || ret=1
phpunit tests/TestCase/Utility      --verbose || ret=1
exit $ret
%else
: Test suite disabled
%endif


%files cache
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc src/Cache/composer.json
%doc src/Cache/*md
%{php_home}/%{ns_vendor}/Cache
%exclude %{php_home}/%{ns_vendor}/Cache/*.md
%exclude %{php_home}/%{ns_vendor}/Cache/composer.json

%files collection

%{!?_licensedir:%global license %%doc}
%license src/Collection/LICENSE.txt
%doc src/Collection/composer.json
%doc src/Collection/*md
%dir %{php_home}/%{ns_vendor}
     %{php_home}/%{ns_vendor}/Collection
%exclude %{php_home}/%{ns_vendor}/Collection/*.md
%exclude %{php_home}/%{ns_vendor}/Collection/composer.json
%exclude %{php_home}/%{ns_vendor}/Collection/LICENSE.txt

%files core
%{!?_licensedir:%global license %%doc}
%license src/Core/LICENSE.txt
%doc src/Core/composer.json
%doc src/Core/*md
%dir %{php_home}/%{ns_vendor}
     %{php_home}/%{ns_vendor}/Core
%exclude %{php_home}/%{ns_vendor}/Core/*.md
%exclude %{php_home}/%{ns_vendor}/Core/composer.json
%exclude %{php_home}/%{ns_vendor}/Core/LICENSE.txt

%files database
%{!?_licensedir:%global license %%doc}
%license src/Database/LICENSE.txt
%doc src/Database/composer.json
%doc src/Database/*md
%{php_home}/%{ns_vendor}/Database
%exclude %{php_home}/%{ns_vendor}/Database/*.md
%exclude %{php_home}/%{ns_vendor}/Database/composer.json
%exclude %{php_home}/%{ns_vendor}/Database/LICENSE.txt

%files datasource
%{!?_licensedir:%global license %%doc}
%license src/Datasource/LICENSE.txt
%doc src/Datasource/composer.json
%doc src/Datasource/*md
%{php_home}/%{ns_vendor}/Datasource
%exclude %{php_home}/%{ns_vendor}/Datasource/*.md
%exclude %{php_home}/%{ns_vendor}/Datasource/composer.json
%exclude %{php_home}/%{ns_vendor}/Datasource/LICENSE.txt

%files event
%{!?_licensedir:%global license %%doc}
%license src/Event/LICENSE.txt
%doc src/Event/composer.json
%doc src/Event/*md
%{php_home}/%{ns_vendor}/Event
%exclude %{php_home}/%{ns_vendor}/Event/*.md
%exclude %{php_home}/%{ns_vendor}/Event/composer.json
%exclude %{php_home}/%{ns_vendor}/Event/LICENSE.txt

%files log
%{!?_licensedir:%global license %%doc}
%license src/Log/LICENSE.txt
%doc src/Log/composer.json
%doc src/Log/*md
%{php_home}/%{ns_vendor}/Log
%exclude %{php_home}/%{ns_vendor}/Log/*.md
%exclude %{php_home}/%{ns_vendor}/Log/composer.json
%exclude %{php_home}/%{ns_vendor}/Log/LICENSE.txt

%files utility
%{!?_licensedir:%global license %%doc}
%license src/Utility/LICENSE.txt
%doc src/Utility/composer.json
%doc src/Utility/*md
%{php_home}/%{ns_vendor}/Utility
%exclude %{php_home}/%{ns_vendor}/Utility/*.md
%exclude %{php_home}/%{ns_vendor}/Utility/composer.json
%exclude %{php_home}/%{ns_vendor}/Utility/LICENSE.txt


%changelog
* Mon Nov 16 2020 Remi Collet <remi@remirepo.net> - 3.9.4-1
- update to 3.9.4

* Tue Oct  6 2020 Remi Collet <remi@remirepo.net> - 3.9.3-1
- update to 3.9.3

* Mon Aug 31 2020 Remi Collet <remi@remirepo.net> - 3.9.2-1
- update to 3.9.2

* Mon Aug 10 2020 Remi Collet <remi@remirepo.net> - 3.9.1-1
- update to 3.9.1

* Mon Jun 22 2020 Remi Collet <remi@remirepo.net> - 3.9.0-1
- update to 3.9.0
- add dependency on paragonie/random_compat

* Fri May  8 2020 Remi Collet <remi@remirepo.net> - 3.8.12-1
- update to 3.8.12

* Mon Apr  6 2020 Remi Collet <remi@remirepo.net> - 3.8.11-1
- update to 3.8.11

* Sat Feb 22 2020 Remi Collet <remi@remirepo.net> - 3.8.10-1
- update to 3.8.10

* Mon Jan 27 2020 Remi Collet <remi@remirepo.net> - 3.8.9-1
- update to 3.8.9

* Thu Jan  2 2020 Remi Collet <remi@remirepo.net> - 3.8.8-1
- update to 3.8.8

* Mon Dec  9 2019 Remi Collet <remi@remirepo.net> - 3.8.7-1
- update to 3.8.7

* Tue Dec  3 2019 Remi Collet <remi@remirepo.net> - 3.8.6-2
- use Chronos 1.3.0

* Thu Nov  7 2019 Remi Collet <remi@remirepo.net> - 3.8.6-1
- update to 3.8.6

* Mon Oct  7 2019 Remi Collet <remi@remirepo.net> - 3.8.5-1
- update to 3.8.5

* Mon Sep 16 2019 Remi Collet <remi@remirepo.net> - 3.8.4-1
- update to 3.8.4

* Sun Sep  1 2019 Remi Collet <remi@remirepo.net> - 3.8.3-1
- update to 3.8.3

* Tue Aug 20 2019 Remi Collet <remi@remirepo.net> - 3.8.2-1
- update to 3.8.2

* Mon Jul 15 2019 Remi Collet <remi@remirepo.net> - 3.8.1-1
- update to 3.8.1

* Thu Jun 27 2019 Remi Collet <remi@remirepo.net> - 3.8.0-1
- update to 3.8.0

* Thu Jun 20 2019 Remi Collet <remi@remirepo.net> - 3.7.9-1
- update to 3.7.9

* Tue Jun 18 2019 Remi Collet <remi@remirepo.net> - 3.7.8-3
- use Chronos 1.2.8

* Tue Jun 11 2019 Remi Collet <remi@remirepo.net> - 3.7.8-2
- use Chronos 1.2.7

* Sun Jun  2 2019 Remi Collet <remi@remirepo.net> - 3.7.8-1
- update to 3.7.8
- use Chronos 1.2.6

* Wed Apr 24 2019 Remi Collet <remi@remirepo.net> - 3.7.7-1
- update to 3.7.7
- use Chronos 1.2.5

* Wed Apr 10 2019 Remi Collet <remi@remirepo.net> - 3.7.6-1
- update to 3.7.6

* Thu Mar 14 2019 Remi Collet <remi@remirepo.net> - 3.7.5-1
- update to 3.7.5

* Mon Feb 11 2019 Remi Collet <remi@remirepo.net> - 3.7.4-1
- update to 3.7.4
- add event subpackage
- use Chronos 1.2.4

* Tue Jan 22 2019 Remi Collet <remi@remirepo.net> - 3.7.3-1
- update to 3.7.3

* Fri Jan  4 2019 Remi Collet <remi@remirepo.net> - 3.7.2-1
- update to 3.7.2
- add log subpackage
- database requires log

* Tue Dec 18 2018 Remi Collet <remi@remirepo.net> - 3.7.1-1
- update to 3.7.1

* Thu Dec 13 2018 Remi Collet <remi@remirepo.net> - 3.7.0-1
- update to 3.7.0
- use Chronos 1.2.3

* Mon Nov  5 2018 Remi Collet <remi@remirepo.net> - 3.6.16-1
- update to 3.6.16

* Tue Oct  2 2018 Remi Collet <remi@remirepo.net> - 3.6.12-1
- update to 3.6.12

* Mon Sep  3 2018 Remi Collet <remi@remirepo.net> - 3.6.11-1
- update to 3.6.11

* Tue Aug 14 2018 Remi Collet <remi@remirepo.net> - 3.6.10-1
- update to 3.6.10

* Thu Jul 26 2018 Remi Collet <remi@remirepo.net> - 3.6.9-1
- update to 3.6.9

* Tue Jul 24 2018 Remi Collet <remi@remirepo.net> - 3.6.8-1
- update to 3.6.8

* Mon Jul  9 2018 Remi Collet <remi@remirepo.net> - 3.6.7-1
- update to 3.6.7

* Mon Jun 25 2018 Remi Collet <remi@remirepo.net> - 3.6.6-1
- update to 3.6.6

* Mon Jun 11 2018 Remi Collet <remi@remirepo.net> - 3.6.5-1
- Initial packaging with cache, collection, core, database,
  database and utility sub-packages