%define fontname        dejavu
%define fontdir         %{_datadir}/fonts/%{fontname}
%define fontconfdir     %{_sysconfdir}/fonts/conf.d

%define archivename     %{fontname}-sfd-%{archiveversion}

%define alphatag        .20071025svn2022
#define alphatag        .rc1

%define archiveversion  20071025-2022
#define archiveversion  %{version}


# Let the perl maintainer worry about Unicode.org data files
%define Blocks          %(eval "$(%{__perl} -V:privlibexp)"; echo $privlibexp)/unicore/Blocks.txt
%define UnicodeData     %(eval "$(%{__perl} -V:privlibexp)"; echo $privlibexp)/unicore/UnicodeData.txt

Name:      %{fontname}-fonts
Version:   2.21
Release:   0.3%{?alphatag}%{?dist}
Summary:   DejaVu fonts, mature typefaces

Group:     User Interface/X
License:   Modifiable & redistributable, with naming restrictions
URL:       http://%{fontname}.sf.net/
Source0:   %{?!alphatag:http://prdownloads.sourceforge.net/%{fontname}}%{?alphatag:%{fontname}.sourceforge.net/snapshots}/%{archivename}.tar.bz2

# DejaVu fontconfig setup
Source1:   %{name}-fontconfig.conf
Source2:   %{name}-fontconfig-unhint-small.conf
# DejaVu fontconfig setup (experimental families)
Source3:   %{name}-experimental-fontconfig.conf
Source4:   %{name}-experimental-fontconfig-unhint-small.conf
# DejaVu LGC setup
Source5:   %{name}-lgc-fontconfig.conf
Source6:   %{name}-lgc-fontconfig-unhint-small.conf

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# Older fontforge versions will not work due to sfd format changes
BuildRequires: fontforge > 20070501
BuildRequires: perl(Font::TTF)
# Needed to compute unicode coverage
BuildRequires: %{Blocks} %{UnicodeData}
BuildArch: noarch

%description
The DejaVu fonts are a font family based on the "Bitstream Vera" fonts release
1.10. Its purpose is to provide a wider range of characters while maintaining
the original look and feel through the process of collaborative development.

This package includes the typefaces the DejaVu project considers mature.


%package experimental
Group:    User Interface/X
Summary:  DejaVu fonts, experimental typefaces
# Does not really make sense without the core typefaces
Requires: %{name} = %{version}-%{release}


%description experimental
The DejaVu fonts are a font family based on the "Bitstream Vera" fonts release
1.10. Its purpose is to provide a wider range of characters while maintaining
the original look and feel through the process of collaborative development.

This package includes the typefaces the DejaVu project considers experimental.


%package -n %{fontname}-lgc-fonts
Group:    User Interface/X
Summary:  DejaVu fonts, Latin Greek Cyrillic subset
# Could possibly conflict with the main package, as there's really no sense to
# install both
#Conflicts: %{name} <= %{version}-%{release}


%description -n %{fontname}-lgc-fonts
The DejaVu fonts are a font family based on the "Bitstream Vera" fonts release
1.10. Its purpose is to provide a wider range of characters while maintaining
the original look and feel through the process of collaborative development.

This package includes a subset of DejaVu typefaces limited to Latin, Greek and
Cyrillic glyphs.


%prep
%setup -q -n %{archivename}


%build
make %{?_smp_mflags} VERSION=%{version} FC-LANG="" \
     BLOCKS=%{Blocks} UNICODEDATA=%{UnicodeData}

%check
make check


%install
rm -fr %{buildroot}

# Fonts
install -m 0755 -d %{buildroot}%{fontdir}
install -m 0644 -p build/*.ttf  %{buildroot}%{fontdir}

# Fontconfig tweaks
install -m 0755 -d %{buildroot}%{fontconfdir}
install -m 0644 -p %{SOURCE1} %{buildroot}%{fontconfdir}/57-%{fontname}.conf
install -m 0644 -p %{SOURCE2} %{buildroot}%{fontconfdir}/20-unhint-small-%{fontname}.conf
install -m 0644 -p %{SOURCE3} %{buildroot}%{fontconfdir}/61-%{fontname}-experimental.conf
install -m 0644 -p %{SOURCE4} %{buildroot}%{fontconfdir}/20-unhint-small-%{fontname}-experimental.conf
install -m 0644 -p %{SOURCE5} %{buildroot}%{fontconfdir}/58-%{fontname}-lgc.conf
install -m 0644 -p %{SOURCE6} %{buildroot}%{fontconfdir}/20-unhint-small-%{fontname}-lgc.conf


%clean
rm -fr %{buildroot}


%post
if [ -x %{_bindir}/fc-cache ]; then
  %{_bindir}/fc-cache -f %{fontdir}
fi


%postun
if [ "$1" = "0" ]; then
  if [ -x %{_bindir}/fc-cache ]; then
    %{_bindir}/fc-cache -f %{fontdir}
  fi
fi


%post experimental
if [ -x %{_bindir}/fc-cache ]; then
  %{_bindir}/fc-cache -f %{fontdir}
fi


%postun experimental
if [ "$1" = "0" ]; then
  if [ -x %{_bindir}/fc-cache ]; then
    %{_bindir}/fc-cache -f %{fontdir}
  fi
fi


%post -n %{fontname}-lgc-fonts
if [ -x %{_bindir}/fc-cache ]; then
  %{_bindir}/fc-cache -f %{fontdir}
fi


%postun -n %{fontname}-lgc-fonts
if [ "$1" = "0" ]; then
  if [ -x %{_bindir}/fc-cache ]; then
    %{_bindir}/fc-cache -f %{fontdir}
  fi
fi



%files
%defattr(0644,root,root,0755)
%doc AUTHORS BUGS LICENSE NEWS README
%doc build/unicover.txt build/langcover.txt build/status.txt

%config(noreplace) %{fontconfdir}/20-unhint-small-%{fontname}.conf
%config(noreplace) %{fontconfdir}/57-%{fontname}.conf

%dir %{fontdir}
%{fontdir}/*.ttf
%exclude %{fontdir}/DejaVu*Condensed*.ttf
%exclude %{fontdir}/DejaVu*ExtraLight*.ttf
%exclude %{fontdir}/DejaVuSerif*Italic.ttf
%exclude %{fontdir}/DejaVuLGC*.ttf


%files experimental
%defattr(0644,root,root,0755)

%config(noreplace) %{fontconfdir}/20-unhint-small-%{fontname}-experimental.conf
%config(noreplace) %{fontconfdir}/61-%{fontname}-experimental.conf

%{fontdir}/DejaVu*Condensed*.ttf
%{fontdir}/DejaVu*ExtraLight*.ttf
%{fontdir}/DejaVuSerif*Italic.ttf


%files -n %{fontname}-lgc-fonts
%defattr(0644,root,root,0755)
%doc AUTHORS BUGS LICENSE NEWS README
%doc build/unicover-lgc.txt build/langcover-lgc.txt

%config(noreplace) %{fontconfdir}/20-unhint-small-%{fontname}-lgc.conf
%config(noreplace) %{fontconfdir}/58-%{fontname}-lgc.conf

%dir %{fontdir}
%{fontdir}/DejaVuLGC*.ttf


%changelog
* Wed Oct 25 2007 <nicolas.mailhot at laposte.net>
☺ 2.21-0.3.20071025svn2022
 ✓ Makefile patch dropped upstream
 ✓ add -f to fc-cache calls
 ✓ completely align LGC and FULL fontconfig rules
 ✓ remove / from directory macros

* Sun Oct 21 2007 <nicolas.mailhot at laposte.net>
☢ 2.21-0.2.20071017svn2019
⚠ Still very experimental version:
  ✓ update makefile patch
  ✓ split lgc hinting file like in the other packages
  ✓ move lgc to prio 58 as should have been done when liberation was added

* Sun Oct 21 2007 <nicolas.mailhot at laposte.net>
☢ 2.21-0.1.20071014svn2016
⚠ Very experimental version to test major changes:
  ✓ new fontforge version
  ✓ use of a real makefile at last
  ✓ replacing standalone lgc package with subpackage generated with the rest

* Tue Sep 18 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.20-1
✓ 2.20 final
✓ bugfix release (Hebrew fixes mostly)

* Sat Aug 11 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.19-1
✓ 2.19 final
✓ expand macro use

* Sun Jul 1 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.18-1
✓ 2.18 final
✓ Major new release adding Tifinagh (ⵞⵥⴼⴻ), N'ko (ߝߧߜ) and Georgian (ლფჱႫႿ)
  (Georgian created by Besarion Paata Gugushvili ბესარიონ პაატა გუგუშვილი)

* Wed Jun 27 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.18-0.2.rc1
✓ 2.18-rc1

* Sun Jun 3 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☢ 2.18-0.1.20070616svn1889
⚠ early snapshot to test new fontforge

* Sun Jun 3 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.17-5
✓ declare DejaVu a valid Bitstream Prima™ substitute

* Thu May 31 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.17-3
✓ small spec cleanups

* Sat May 26 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.17-2
✓ perl-Font-TTF has been fixed upstream, use perl(Font::TTF) BR
✓ remove comment about /etc/fonts/conf.d ownership, as it's now owned
   by filesystem

* Sun May 13 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.17-1
✓ rebase scriptlets from guidelines
✓ fontforge broke compat: BR the current version, ask for a version bump
  before 2.18 is released
✓ simplify font directory naming
✓ clean up fc5 obsoletes
✓ remove technical mes files from doc

* Fri May 11 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.17-0.3.rc1
✓ fontconfig setup has stabilized and can be marked noreplace now
☺ 2.17-0.2.rc1
✓ mimick Vera unhint conf split
☺ 2.17-0.1.rc1
✓ 2.17 rc1
✓ make room for liberations font conf file

* Mon Apr 2 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.16-1

* Tue Mar 20 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.16-0.1.20070319svn1699
✓ early snapshot to account for F7T3 freeze

* Tue Jan 30 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
☺ 2.14-2
✓ Adds Dejavu Sans Oblique small fixes (by Ben Laenen to address Debian
  bug #408311, collected by Davide Viti)

* Sun Jan 21 2007 Nicolas Mailhot <nicolas.mailhot at laposte.net>
✓ 2.14 final