# Build recipe for xml-sax.
#
# Copyright (c) 2019, 2021 Matias Fonzo, <selk@dragora.org>.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Exit immediately on any error
set -e

program=XML-SAX
version=1.02
release=2

pkgname=perl-xml-sax

# Define a category for the output of the package name
pkgcategory=perl

description="
Simple API for XML.

XML::SAX consists of several framework classes for using and building
Perl SAX2 XML parsers, filters, and drivers. It is designed around the
need to be able to \"plug in\" different SAX parsers to an application
without requiring programmer intervention. Those of you familiar with
the DBI will be right at home. Some of the designs come from the Java
JAXP specification (SAX part), only without the javaness.
"

homepage=https://search.cpan.org/dist/XML-SAX
license="GPLv1+ | Artistic License"

tarname=${program}-${version}.tar.gz

# Remote source(s)
fetch=https://cpan.metacpan.org/authors/id/G/GR/GRANTM/$tarname

# Source documentation
docs="Changes LICENSE README"
docsdir="${docdir}/${pkgname}-${version}"

build()
{
    unpack "${tardir}/$tarname"

    cd "$srcdir"

    # Set sane permissions
    chmod -R u+w,go-w,a+rX-s .

    yes | perl Makefile.PL INSTALLDIRS=vendor

    make -j${jobs} V=1 PERLLIB=blib/lib
    make -j${jobs} PERLLIB=blib/lib DESTDIR="$destdir" install

    # Strip remaining binaries and libraries
    find "$destdir" -type f | xargs file | \
     awk '/ELF/ && /executable/ || /shared object/' | \
      cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

    # Clean up inventory file for Perl

    # This line removes 'destdir' adding the suffix '.lz' for manpages
    find "${destdir}/" -type f -name '.packlist' | while read -r file
    do
         sed -i \
          -e "s|${destdir}||g" \
          -e "s|\.[0-9][a-z]*|&.lz|g" \
          $file
    done

    find "${destdir}/" -type f -name 'perllocal.pod' -exec rm -f {} +

    # Compress manual pages
    if [ -d "${destdir}/$mandir" ] ; then
	(
            cd "${destdir}/$mandir"
	    find . -type f -exec lzip -9 {} +
	    find . -type l | while read -r file
	    do
		ln -sf "$(readlink -- "$file").lz" "${file}.lz"
		rm -- "$file"
	    done
	)
    fi

    # Copy documentation
    mkdir -p "${destdir}/$docsdir"
    cp -p $docs "${destdir}/$docsdir"
}

