%global fontname        source-code-pro
%global fontarchive     source-code-pro
%global filename        SourceCode
%global foundry         adobe
%global fontconf        61-%{foundry}-%{fontname}
%global commit          release
%global fontext         otf
%global fontvarext      ttf
%global fontsstat       OTF
%global fontsvar        VF
%global fontsvarpref    var
%global tmp_ttx         TMP_ttx
%global tmp_edited      TMP_ttx2
%global tmp_fonts       TMP_fonts

%global common_desc \
%{expand:
This font was designed by Paul D. Hunt as a companion to Source Sans. It has
the same weight range as the corresponding Source Sans design.  It supports
a wide range of languages using the Latin script, and includes all the
characters in the Adobe Latin 4 glyph set.}


Name:           %{foundry}-%{fontname}-fonts
%global version_roman  2.042
%global version_italic 1.062
%global version_vf     1.026
Version:        %{version_roman}.%{version_italic}.%{version_vf}
Release:        K01%{?dist}
Epoch:          1
Summary:        A set of mono-spaced OpenType fonts designed for coding environments

License:        OFL
URL:            https://github.com/adobe-fonts/source-code-pro
Source0:        %{fontarchive}-%{commit}.zip
Source1:        %{name}.conf
Source2:        fix_names.pl


BuildArch:      noarch
BuildRequires:  fontpackages-devel
BuildRequires:  perl
BuildRequires:  perl-XML-LibXML
BuildRequires:  fonttools
Requires:       %{name}-common = %{epoch}:%{version}-%{release}


%description
%common_desc

This package includes only static fonts.

#####################


%package        common
Summary:        Common files of %{name}

%description    common
%common_desc

This package consists of files used by other %{name} packages.



#####################




%package        %{fontsvarpref}
Summary:        Source Code Pro is a set of OpenType fonts that have been designed to work well in user interface (UI) environments.
Requires:       %{name}-common = %{epoch}:%{version}-%{release}
Conflicts:      adobe-source-code-vf-fonts

%description    %{fontsvarpref}
%common_desc

This package includes only variable fonts.


#----------------------------------------------------------------------#


%prep
%setup  -q -c %{fontarchive}-%{commit}


%build

# Fix the FontFamily names.
rm -fr %{tmp_ttx}
mkdir -p %{tmp_ttx}
ttx -f -q -d %{tmp_ttx} %{fontarchive}-%{commit}/%{fontsstat}/*.%{fontext}
perl %{SOURCE2} in=%{tmp_ttx} out=%{tmp_edited} NoWidth
rm -fr %{tmp_fonts}
mkdir -p %{tmp_fonts}
ttx -f -q -d %{tmp_fonts} %{tmp_edited}/*.ttx

# Add prefix to variable fonts.
for f in %{fontarchive}-%{commit}/%{fontsvar}/*.%{fontvarext}; do
	fn=${f##*/}
	mv -- "$f" "%{fontarchive}-%{commit}/%{fontsvar}/%{fontsvarpref}-$fn"
done

%install

install -m 0755 -d %{buildroot}%{_fontdir}
install -m 0644 -p %{tmp_fonts}/*.%{fontext} %{buildroot}%{_fontdir}
install -m 0644 -p %{fontarchive}-%{commit}/%{fontsvar}/%{fontsvarpref}-*.%{fontvarext} %{buildroot}%{_fontdir}

install -m 0755 -d %{buildroot}%{_fontconfig_templatedir} \
                   %{buildroot}%{_fontconfig_confdir}

# Repeat for every font family
install -m 0644 -p %{SOURCE1} \
        %{buildroot}%{_fontconfig_templatedir}/%{fontconf}.conf

for fconf in %{fontconf}.conf \
              ; do
  ln -s %{_fontconfig_templatedir}/$fconf \
        %{buildroot}%{_fontconfig_confdir}/$fconf
done

%files
%defattr(0644,root,root,-)
%{_fontdir}/%{filename}*.%{fontext}

%files %{fontsvarpref}
%defattr(0644,root,root,-)
%{_fontdir}/%{fontsvarpref}-%{filename}*.%{fontvarext}

%files common
%defattr(0644,root,root,-)
%doc %{fontarchive}-%{commit}/README.md
%license %{fontarchive}-%{commit}/LICENSE.md
%{_fontconfig_confdir}/%{fontconf}.conf
%{_fontconfig_templatedir}/%{fontconf}.conf

%changelog
* Sat Mar 8 2025 Karlis Kalviskis <karlo@lu.lv> - 3.052-K01
- Initial release.
- Patched static font name table.