summaryrefslogtreecommitdiffstats
path: root/packaging/spec.xsl
blob: 7521c1ebd068a0adb8839fbbf57d164b73fc32e0 (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
<!-- Transform rpm-info.xml into a SPEC File -->
<xsl:stylesheet version="1.0" xml:space="preserve" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output encoding="UTF-8" indent="no" method="text" omit-xml-declaration="no" standalone="no" version="1.0"/>

<!-- Note: do not indent this file!  Any whitespace here
     will be reproduced in the output -->

  <xsl:param name="lang" select="'en'" />
  <xsl:param name="docbase" select="'example-tutorial'" />

<xsl:template match="/"># Fedora Documentation Specfile
%define	docbase	<xsl:value-of select="$docbase"/>
# We may not be using this because of the way that $FDPDIR commutes
# into the sed(1) command below
%{!?fdpdir:%define localbuild 1}
%{!?fdpdir:%define fdpdir %{_datadir}/fedora/doc}
%define fdpdir %{_datadir}/fedora/doc

Summary:	Fedora Documentation: %{docbase}
Name:		fedora-doc-%{docbase}
Version:	<xsl:value-of select="/rpm-info/changelog/revision[@role = 'doc'][1]/@number"/>
Release:	<xsl:value-of select="/rpm-info/changelog/revision[@role = 'rpm'][1]/@number"/>
License:	<xsl:call-template name="rpm-license"><xsl:with-param name='license' select='/rpm-info/license/rights'/></xsl:call-template>
#License:	<xsl:value-of select="/rpm-info/license/rights"/> (Version <xsl:value-of select="/rpm-info/license/version"/>)
Url:		http://fedora.redhat.com/projects/docs
Source0:	%{docbase}-%{version}.src.tar.gz
Source1:	%{name}-gnome.desktop
Source2: 	%{name}-kde.desktop
Source3:	%{name}-khelp.desktop
<xsl:for-each select="/rpm-info/titles/translation">Source<xsl:value-of
	select="position()+3" />:	%{name}-<xsl:choose><xsl:when
	  test="@lang = 'en'">C</xsl:when><xsl:otherwise><xsl:value-of
	    select="@lang"/></xsl:otherwise></xsl:choose>.omf
</xsl:for-each>
Group:		Documentation
BuildArch:	noarch
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires:	scrollkeeper &gt;= 0.3.11
Requires:	fedora-doc-common
BuildRequires:	xmlto
BuildRequires:	kdelibs
# Used if builder does not specify common files locally
%{?localbuild:%{expand:BuildRequires: fedora-doc-common}}

%description
<xsl:value-of select="/rpm-info/titles/translation[@lang='en']/desc" />

<xsl:for-each select="/rpm-info/titles/translation"><xsl:if test="@lang != 'en'">%package        <xsl:value-of select="@lang"/>
Summary:        Fedora Documentation - <xsl:value-of select="title"/>
Group:          Documentation

%description	<xsl:value-of select="@lang"/>
<xsl:value-of select="desc"/></xsl:if>

</xsl:for-each>
%prep
%setup -q -n %{docbase}-%{version}
#export GLOBIGNORE=rpm-info.xml
for i in $RPM_BUILD_DIR/%{docbase}-%{version}/{*/*.xml,Makefile}
do
	%{__sed} -i 's;\(\.\./\)\{1,\}docs-common;%{fdpdir}/docs-common;g' "$i"
done


%build
make html FDPDIR=%{fdpdir} %{!?localbuild:DRAFT="no"}
<xsl:for-each select="/rpm-info/titles/translation">
mkdir kde-<xsl:value-of select="@lang"/>
meinproc --output kde-<xsl:value-of select="@lang"/>/index.docbook \
	 --cache kde-<xsl:value-of select="@lang"/>/index.cache.bz2 \
	 <xsl:value-of select="@lang"/>/%{docbase}-<xsl:value-of select="@lang"/>.xml
</xsl:for-each>

%install
for DIR in $RPM_BUILD_ROOT%{_datadir}/applications/kde \
	   $RPM_BUILD_ROOT%{_datadir}/apps/khelpcenter/plugins/Fedora \
	   $RPM_BUILD_ROOT%{_datadir}/omf/fedora-doc-%{docbase} \
	   <xsl:for-each select="/rpm-info/titles/translation">$RPM_BUILD_ROOT%{_docdir}/HTML/<xsl:value-of select="@lang"/>/fedora-doc-%{docbase} \
	   $RPM_BUILD_ROOT%{_datadir}/fedora/doc/fedora-doc-%{docbase}/<xsl:choose><xsl:when test="@lang = 'en'">C</xsl:when><xsl:otherwise><xsl:value-of select="@lang"/></xsl:otherwise></xsl:choose> \
	   </xsl:for-each>; do
	install -d -m 755 "$DIR"
done
export GLOBIGNORE=rpm-info.xml
desktop-file-install --vendor fedora \
		     --dir $RPM_BUILD_ROOT%{_datadir}/applications \
		     --add-category X-Fedora \
		     %{SOURCE1}
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/applications/kde
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/apps/khelpcenter/plugins/Fedora
install -m 644 en/*-en.xml $RPM_BUILD_ROOT%{_datadir}/fedora/doc/fedora-doc-%{docbase}/C
<xsl:for-each select="/rpm-info/titles/translation">install -m 644 %{SOURCE<xsl:value-of select="position()+3"/>} $RPM_BUILD_ROOT%{_datadir}/omf/fedora-doc-%{docbase}
<xsl:if test="@lang != 'en'">install -m 644 <xsl:value-of select="@lang"/>/*-<xsl:value-of select="@lang"/>.xml $RPM_BUILD_ROOT%{_datadir}/fedora/doc/fedora-doc-%{docbase}/<xsl:value-of select="@lang"/></xsl:if>
pushd %{docbase}-<xsl:value-of select="@lang"/>
find . -type d | xargs -i \
     install -d -m 755 $RPM_BUILD_ROOT%{_docdir}/HTML/<xsl:value-of select="@lang"/>/fedora-doc-%{docbase}/{}
find . -type f | xargs -i \
     install -D -m 644 {} $RPM_BUILD_ROOT%{_docdir}/HTML/<xsl:value-of select="@lang"/>/fedora-doc-%{docbase}/{}
popd
</xsl:for-each>

%clean
/bin/rm -rf $RPM_BUILD_ROOT

<xsl:for-each select="/rpm-info/titles/translation">
%post	<xsl:if test="@lang != 'en'"><xsl:value-of select="@lang"/></xsl:if>
/usr/bin/scrollkeeper-update || true

%postun	<xsl:if test="@lang != 'en'"><xsl:value-of select="@lang"/></xsl:if>
/usr/bin/scrollkeeper-update || true
</xsl:for-each>

%files
%defattr(-, root, root, -)
%dir %{_datadir}/fedora/doc/fedora-doc-%{docbase}
%dir %{_datadir}/fedora/doc/fedora-doc-%{docbase}/C
%{_datadir}/fedora/doc/fedora-doc-%{docbase}/C/*
%{_datadir}/applications/*.desktop
%{_datadir}/applications/kde/*.desktop
%{_datadir}/apps/khelpcenter/plugins/Fedora/*.desktop
%dir %{_datadir}/omf/fedora-doc-%{docbase}
%{_datadir}/omf/fedora-doc-%{docbase}/fedora-doc-%{docbase}-C.omf
%{_docdir}/HTML/en/fedora-doc-%{docbase}/*

<xsl:for-each select="/rpm-info/titles/translation"><xsl:if test="@lang != 'en'">
%files	<xsl:value-of select="@lang"/>
%defattr(-, root, root, -)
%dir %{_datadir}/fedora/doc/fedora-doc-%{docbase}/<xsl:value-of select="@lang"/>
%{_datadir}/fedora/doc/fedora-doc-%{docbase}/<xsl:value-of select="@lang"/>/*
%{_datadir}/omf/fedora-doc-%{docbase}/fedora-doc-%{docbase}-<xsl:value-of select="@lang"/>.omf
%{_docdir}/HTML/<xsl:value-of select="@lang"/>/fedora-doc-%{docbase}/*
</xsl:if></xsl:for-each>

%changelog
<xsl:for-each select="/rpm-info/changelog/revision"><xsl:if 
	test="@role='rpm'">* <xsl:value-of select="@date"/> - <xsl:call-template
	  name="packager"><xsl:with-param name="who"
	    select="author/@worker"/></xsl:call-template> - <xsl:value-of
	  select="following-sibling::revision[@role='doc']/@number"/>-<xsl:value-of select="@number"/>
- <xsl:value-of select="details"/>

</xsl:if></xsl:for-each>
</xsl:template>

  <xsl:include href="templates.xsl"/>
</xsl:stylesheet>