summaryrefslogtreecommitdiffstats
path: root/php-pecl-md4c.spec
blob: d19ed5eb4f08a20071502e40b7a42abd93973a95 (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
# remirepo spec file for php-pecl-md4c
#
# Copyright (c) 2024 Remi Collet
# License: CC-BY-SA-4.0
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#

%{?scl:%scl_package      php-pecl-md4c}

%global pecl_name        md4c
%global ini_name         40-%{pecl_name}.ini
%global upstream_version 1.0.0
%global upstream_prever  dev
%global upstream_rpmrel  DEV
%global sources          %{pecl_name}-%{upstream_version}%{?upstream_prever}

Summary:       Convert Markdown to HTML
Name:          %{?scl_prefix}php-pecl-%{pecl_name}
Version:       %{upstream_version}%{?upstream_prever:~%{upstream_rpmrel}}
Release:       1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
# Copy/paste library http://github.com/mity/md4c is MIT
# Extension is MIT
License:       MIT
URL:           https://pecl.php.net/package/%{pecl_name}
Source0:       https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz

BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
# See https://github.com/eklausme/php-md4c/issues/13
BuildRequires: %{?scl_prefix}php-devel >= 8.0
BuildRequires: %{?scl_prefix}php-pear

Requires:      %{?scl_prefix}php(zend-abi) = %{php_zend_api}
Requires:      %{?scl_prefix}php(api) = %{php_core_api}

Provides:      bundled(md4c) = 0.5.2
Provides:      %{?scl_prefix}php-%{pecl_name}               = %{version}
Provides:      %{?scl_prefix}php-%{pecl_name}%{?_isa}       = %{version}
Provides:      %{?scl_prefix}php-pecl(%{pecl_name})         = %{version}
Provides:      %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}


%description
This extension provides one simple PHP function md4c_toHtml() to convert
Markdown or CommonMark to HTML.

This function uses the MD4C library written in C and is currently the fastest
conversion routine,
see https://talk.commonmark.org/t/why-is-md4c-so-fast-c/2520/12

Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl})}.


%prep
%setup -q -c 
# Don't install/register tests
sed -e 's/role="test"/role="src"/' \
    -e '/LICENSE/s/role="doc"/role="src"/' \
    -i package.xml

# Drop in the bit of configuration
cat > %{ini_name} << 'EOF'
; Enable %{pecl_name} extension module
extension = %{pecl_name}.so
EOF


%build
%{?dtsenable}

cd %{sources}
%{__phpize}
[ -f Makefile.global ] && GLOBAL=Makefile.global || GLOBAL=build/Makefile.global
sed -e 's/INSTALL_ROOT/DESTDIR/' -i $GLOBAL

%configure \
    --enable-md4c \
    --with-php-config=%{__phpconfig}

%make_build


%install
%{?dtsenable}
cd %{sources}

: Install the extension
%make_install

: Install the configuration file
install -D -m 644 ../%{ini_name} %{buildroot}%{php_inidir}/%{ini_name}

: Install the package XML file
install -D -m 644 ../package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml

: Install Documentation
for i in $(grep 'role="doc"' ../package.xml | sed -e 's/^.*name="//;s/".*$//')
do install -Dpm 644 $i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i
done


%check
: Minimal load test for NTS extension
%{__php} --no-php-ini \
    --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \
    --modules | grep '^%{pecl_name}$'


%files
%license %{sources}/LICENSE*
%{pecl_xmldir}/%{name}.xml

%config(noreplace) %{php_inidir}/%{ini_name}
%{php_extdir}/%{pecl_name}.so


%changelog
* Mon Dec  2 2024 Remi Collet <remi@remirepo.net> - 1.0.0~DEV-1
- initial package, version 1.0.0dev
- open https://github.com/eklausme/php-md4c/issues/12 version inconsistency
- open https://github.com/eklausme/php-md4c/issues/13 PHP version compatibility