xmlcharent/xmlcharent.spec

171 lines
5.3 KiB
RPMSpec
Raw Normal View History

#
# spec file for package xmlcharent (Version 0.3)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: xmlcharent
BuildRequires: sgml-skel unzip
License: BSD3c
Group: Productivity/Publishing/XML
BuildArch: noarch
AutoReqProv: on
Requires: sgml-skel libxml2
%define regcat /usr/bin/sgml-register-catalog
PreReq: %{regcat} /usr/bin/xmlcatalog /usr/bin/edit-xml-catalog
PreReq: sed grep awk
Version: 0.3
Release: 405
Summary: XML Character Entities
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: http://www.oasis-open.org/committees/docbook/%{name}/%{version}/%{name}-%{version}.zip
Source1: catalog.xml
Source2: CATALOG.xmlcharent
Url: http://www.oasis-open.org/committees/docbook/xmlcharent/
%description
XML encodings for the 19 standard character entity sets defined in
non-normative Annex D of [ISO 8879:1986].
%define INSTALL install -m755 -s
%define INSTALL_DIR install -d -m755
%define INSTALL_DATA install -m644
%define INSTALL_SCRIPT install -m755 -o root -g root
%define sgml_dir %{_datadir}/sgml
%define sgml_var_dir /var/lib/sgml
%define sgml_mod_dir %{sgml_dir}/xmlcharent
%define xml_dir %{_datadir}/xml
%define xml_mod_dir %{xml_dir}/entities/%{name}/%{version}
%define sgml_config_dir /var/lib/sgml
%define sgml_sysconf_dir %{_sysconfdir}/sgml
%define xml_config_dir /var/lib/xml
%define xml_sysconf_dir %{_sysconfdir}/xml
%prep
%setup -n %{name} -c -T
unzip -aq %{S:0}
sed 's|@VERSION@|%{version}|
s|@DIR@|%{xml_mod_dir}|' %{S:1} >catalog.xml
sed 's|@VERSION@|%{version}|
s|@DIR@|%{xml_mod_dir}|' %{S:2} >CATALOG.%{name}
#%setup -q -n %{name}
%build
# # lynx -width=300 -dump entities-2002-03-19.html \
# # | grep '\(Public\|System\) identifier' \
# # | awk -F 'entifier: ' '
# # / System i/ {printf "\"%s\"\n", gensub(/.*\//,"%{sgml_dir_iso}/", g, $2)}
# # / Public i/ {printf "PUBLIC \"-//%s\" ", $2}' > CATALOG.xmlcharent
# {
# for f in iso-*.ent; do
# {
# grep ' *ISO 8879:1986' $f | sed 's:^ \+::' \
# | awk '{printf "PUBLIC \"-//%s\"", $0}';
# echo " \"%{sgml_dir_iso}/$f\"";
# }
# done
# } > CATALOG.xmlcharent
# sed 's:%{xml_mod_dir}/::' CATALOG.xmlcharent > sgml.catalog
# Prep XML catalog fragment
%define FOR_ROOT_CAT for-catalog-%{name}-%{version}.xml
xmlcatbin=/usr/bin/xmlcatalog
# build root catalog fragment
rm -f %{FOR_ROOT_CAT}.tmp
$xmlcatbin --noout --create %{FOR_ROOT_CAT}.tmp
CATALOG=%{xml_mod_dir}/catalog.xml
$xmlcatbin --noout --add "delegatePublic" "ISO 8879:1986//ENTITIES" \
"file://$CATALOG" %{FOR_ROOT_CAT}.tmp
# Create tag
sed '/<catalog/a\
<group id="%{name}-%{version}">
/<\/catalog/i\
</group>' \
%{FOR_ROOT_CAT}.tmp > %{FOR_ROOT_CAT}
%install
%{INSTALL_DIR} %{buildroot}{%{xml_mod_dir},%{sgml_dir},%{sgml_var_dir}}
%{INSTALL_DATA} catalog.xml *.ent %{buildroot}%{xml_mod_dir}
%{INSTALL_DATA} CATALOG.xmlcharent %{buildroot}%{sgml_var_dir}
pushd %{buildroot}%{sgml_dir}
ln -sf ../../../var/lib/sgml/CATALOG.* .
popd
pushd %{buildroot}%{xml_mod_dir}
for f in *.ent; do
ln -sf "$f" "${f/-}"
done
popd
# parse-sgml-catalog.sh CATALOG.xmlcharent > CATALOG.norm
# sgml2xmlcat.sh -i CATALOG.norm \
# -l -s '%{buildroot}/usr/share/sgml' -p xmlcharent
#
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/xml
install -m644 %{FOR_ROOT_CAT} ${RPM_BUILD_ROOT}%{_sysconfdir}/xml
#
%define all_cat xmlcharent
%post
if [ -x %{regcat} ]; then
for c in %{all_cat}; do
grep -q -e "%{sgml_dir}/CATALOG.$c\\>" /etc/sgml/catalog \
|| %{regcat} -a %{sgml_dir}/CATALOG.$c >/dev/null 2>&1 || :
done
fi
xmlcatbin=usr/bin/xmlcatalog
%if %suse_version < 810
# autobuild on 8.0 does not install it early enough
[ -x $xmlcatbin ] || {
echo "warning: $xmlcatbin does not exist"
echo "create etc/xml/catalog etc. manually"
exit 0
}
%endif
if [ -x /usr/bin/edit-xml-catalog ]; then
/usr/bin/edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \
--add /etc/xml/%{FOR_ROOT_CAT}
fi
%postun
if [ "$1" = "0" -a -x %{regcat} ]; then
for c in %{all_cat}; do
%{regcat} -r %{sgml_dir}/CATALOG.$c >/dev/null 2>&1 || :
done
fi
xmlcatbin=/usr/bin/xmlcatalog
# remove entries only on removal of file
if [ ! -f %{xml_sysconf_dir}/%{FOR_ROOT_CAT} -a -x /usr/bin/edit-xml-catalog ] ; then
/usr/bin/edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \
--del %{name}-%{version}
fi
%clean
rm -fr $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
# %doc entities-*.html
%{xml_mod_dir}
%config %{_sysconfdir}/xml/%{FOR_ROOT_CAT}
%config %{sgml_var_dir}/CATALOG.*
# %{sgml_dir}/ISO*
%{sgml_dir}/CATALOG.*
%dir %{xml_dir}/entities
%dir %{xml_dir}/entities/xmlcharent
%changelog