File xmlcharent.spec of Package xmlcharent

#
# 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