# Contributor: dorphell <dorphell@archlinux.org>
# Contributor: Judd Vinet <jvinet@zeroflux.org>

_vers=(4.{2..5})
_realname=docbook-xml
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=${_vers[-1]}
pkgrel=4
epoch=1
pkgdesc="A widely used XML scheme for writing documentation and help"
url="https://www.oasis-open.org/docbook/"
arch=(any)
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
license=('spdx:MIT')
depends=("${MINGW_PACKAGE_PREFIX}-libxml2")
install=docbook-xml-${MSYSTEM}.install
source=("https://archive.docbook.org/xml/4.1.2/docbkx412.zip"
        'LICENSE')
noextract=('docbkx412.zip')
for _ver in ${_vers[@]}; do
  source+=("https://archive.docbook.org/xml/${_ver}/docbook-xml-${_ver}.zip")
  noextract+=("docbook-xml-${_ver}.zip")
done
sha256sums=('30f0644064e0ea71751438251940b1431f46acada814a062870f486c772e7772'
            'adf79c0ee42b5b0d9b0d10def6aca4f7c97a0ce7333b3012af2c929e1ed72b77'
            'acc4601e4f97a196076b7e64b368d9248b07c7abf26b34a02cca40eeebe60fa2'
            '23068a94ea6fd484b004c5a73ec36a66aa47ea8f0d6b62cc1695931f5c143464'
            '02f159eb88c4254d95e831c51c144b1863b216d909b5ff45743a1ce6f5273090'
            '4e4e037a2b83c98c6c94818390d4bdd3f6e10f6ec62dd79188594e26190dc7b4')

package() {
  local ver xml

  mkdir -p "$pkgdir${MINGW_PREFIX}/etc/xml"
  xmlcatalog --noout --create "$pkgdir${MINGW_PREFIX}/etc/xml/docbook-xml"

  mkdir -p docbook-xml-4.1.2
  bsdtar -C docbook-xml-4.1.2 -xf docbkx412.zip
  for ver in ${_vers[@]}; do
    mkdir -p docbook-xml-${ver}
    bsdtar -C docbook-xml-${ver} -xf docbook-xml-${ver}.zip
  done

  for ver in "4.1.2" ${_vers[@]}; do
    pushd docbook-xml-${ver}
    mkdir -p "${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xml-dtd-$ver"
    cp -dr docbook.cat *.dtd ent/ *.mod \
        "${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xml-dtd-$ver"
    popd

    xml=
    case ${ver} in
      4.1.2) xml=' XML' ;;&
      4.[45])
        xmlcatalog --noout --add "public" \
          "-//OASIS//ELEMENTS DocBook XML HTML Tables V${ver}//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/htmltblx.mod" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"
        ;;&
      *)
        xmlcatalog --noout --add "public" \
          "-//OASIS//DTD DocBook XML V${ver}//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/docbookx.dtd" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"

        xmlcatalog --noout --add "public" \
          "-//OASIS//DTD DocBook$xml CALS Table Model V${ver}//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/calstblx.dtd" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"

        xmlcatalog --noout --add "public" \
          "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/soextblx.dtd" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"

        xmlcatalog --noout --add "public" \
          "-//OASIS//ELEMENTS DocBook$xml Information Pool V${ver}//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/dbpoolx.mod" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"

        xmlcatalog --noout --add "public" \
          "-//OASIS//ELEMENTS DocBook$xml Document Hierarchy V${ver}//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/dbhierx.mod" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"

        xmlcatalog --noout --add "public" \
          "-//OASIS//ENTITIES DocBook$xml Additional General Entities V${ver}//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/dbgenent.mod" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"

        xmlcatalog --noout --add "public" \
          "-//OASIS//ENTITIES DocBook$xml Notations V${ver}//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/dbnotnx.mod" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"

        xmlcatalog --noout --add "public" \
          "-//OASIS//ENTITIES DocBook$xml Character Entities V${ver}//EN" \
          "http://www.oasis-open.org/docbook/xml/${ver}/dbcentx.mod" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"

        xmlcatalog --noout --add "rewriteSystem" \
          "http://www.oasis-open.org/docbook/xml/${ver}" \
          "../../share/xml/docbook/xml-dtd-${ver}" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"
        xmlcatalog --noout --add "rewriteURI" \
          "http://www.oasis-open.org/docbook/xml/${ver}" \
          "../../share/xml/docbook/xml-dtd-${ver}" \
          "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xml"
        ;;
    esac
  done

  install -Dt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" -m644 LICENSE

  # Fix permissions
  find "$pkgdir" -type f -exec chmod -c a-x {} +
  chmod -Rc u=rwX,go=rX "${pkgdir}"
}
