recipe 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. # Build recipe for xml-sax.
  2. #
  3. # Copyright (c) 2019, 2021 Matias Fonzo, <selk@dragora.org>.
  4. #
  5. # Licensed under the Apache License, Version 2.0 (the "License");
  6. # you may not use this file except in compliance with the License.
  7. # You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. # Exit immediately on any error
  17. set -e
  18. program=XML-SAX
  19. version=1.02
  20. release=2
  21. pkgname=perl-xml-sax
  22. # Define a category for the output of the package name
  23. pkgcategory=perl
  24. description="
  25. Simple API for XML.
  26. XML::SAX consists of several framework classes for using and building
  27. Perl SAX2 XML parsers, filters, and drivers. It is designed around the
  28. need to be able to \"plug in\" different SAX parsers to an application
  29. without requiring programmer intervention. Those of you familiar with
  30. the DBI will be right at home. Some of the designs come from the Java
  31. JAXP specification (SAX part), only without the javaness.
  32. "
  33. homepage=https://search.cpan.org/dist/XML-SAX
  34. license="GPLv1+ | Artistic License"
  35. tarname=${program}-${version}.tar.gz
  36. # Remote source(s)
  37. fetch=https://cpan.metacpan.org/authors/id/G/GR/GRANTM/$tarname
  38. # Source documentation
  39. docs="Changes LICENSE README"
  40. docsdir="${docdir}/${pkgname}-${version}"
  41. build()
  42. {
  43. unpack "${tardir}/$tarname"
  44. cd "$srcdir"
  45. # Set sane permissions
  46. chmod -R u+w,go-w,a+rX-s .
  47. yes | perl Makefile.PL INSTALLDIRS=vendor
  48. make -j${jobs} V=1 PERLLIB=blib/lib
  49. make -j${jobs} PERLLIB=blib/lib DESTDIR="$destdir" install
  50. # Strip remaining binaries and libraries
  51. find "$destdir" -type f | xargs file | \
  52. awk '/ELF/ && /executable/ || /shared object/' | \
  53. cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
  54. # Clean up inventory file for Perl
  55. # This line removes 'destdir' adding the suffix '.lz' for manpages
  56. find "${destdir}/" -type f -name '.packlist' | while read -r file
  57. do
  58. sed -i \
  59. -e "s|${destdir}||g" \
  60. -e "s|\.[0-9][a-z]*|&.lz|g" \
  61. $file
  62. done
  63. find "${destdir}/" -type f -name 'perllocal.pod' -exec rm -f {} +
  64. # Compress manual pages
  65. if [ -d "${destdir}/$mandir" ] ; then
  66. (
  67. cd "${destdir}/$mandir"
  68. find . -type f -exec lzip -9 {} +
  69. find . -type l | while read -r file
  70. do
  71. ln -sf "$(readlink -- "$file").lz" "${file}.lz"
  72. rm -- "$file"
  73. done
  74. )
  75. fi
  76. # Copy documentation
  77. mkdir -p "${destdir}/$docsdir"
  78. cp -p $docs "${destdir}/$docsdir"
  79. }