recipe 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. # Build recipe for xml-sax.
  2. #
  3. # Copyright (c) 2019 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. program=XML-SAX
  17. version=1.02
  18. release=1
  19. pkgname=xml-sax
  20. # Set 'outdir' for a nice and well-organized output directory
  21. outdir="${outdir}/${arch}/perl"
  22. description="
  23. Simple API for XML.
  24. XML::SAX consists of several framework classes for using and building
  25. Perl SAX2 XML parsers, filters, and drivers. It is designed around the
  26. need to be able to \"plug in\" different SAX parsers to an application
  27. without requiring programmer intervention. Those of you familiar with
  28. the DBI will be right at home. Some of the designs come from the Java
  29. JAXP specification (SAX part), only without the javaness.
  30. "
  31. homepage=http://search.cpan.org/dist/XML-SAX
  32. license="GPLv1+ | Artistic License"
  33. tarname=${program}-${version}.tar.gz
  34. # Remote source(s)
  35. fetch=http://cpan.metacpan.org/authors/id/G/GR/GRANTM/$tarname
  36. # Source documentation
  37. docs="Changes LICENSE README"
  38. docsdir="${docdir}/${pkgname}-${version}"
  39. build()
  40. {
  41. set -e
  42. unpack "${tardir}/$tarname"
  43. cd "$srcdir"
  44. # Set sane permissions
  45. chmod -R u+w,go-w,a+rX-s .
  46. yes | perl Makefile.PL INSTALLDIRS=vendor
  47. make -j${jobs} V=1 PERLLIB=blib/lib
  48. make -j${jobs} PERLLIB=blib/lib DESTDIR="$destdir" install
  49. # Strip remaining binaries and libraries
  50. find "$destdir" -type f | xargs file | \
  51. awk '/ELF/ && /executable/ || /shared object/' | \
  52. cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
  53. # Clean up inventory file for Perl
  54. # This line removes 'destdir' adding the suffix '.lz' for manpages
  55. find "${destdir}/" -type f -name '.packlist' | while read -r file
  56. do
  57. sed -i \
  58. -e "s|${destdir}||g" \
  59. -e "s|\.[0-9][a-z]*|&.lz|g" \
  60. $file
  61. done
  62. find "${destdir}/" -type f -name 'perllocal.pod' -exec rm -f {} +
  63. # Compress manual pages
  64. if [ -d "${destdir}/$mandir" ] ; then
  65. (
  66. cd "${destdir}/$mandir"
  67. find . -type f -exec lzip -9 '{}' +
  68. find . -type l | while read -r file
  69. do
  70. ln -sf "$(readlink -- "$file").lz" "${file}.lz"
  71. rm -- "$file"
  72. done
  73. )
  74. fi
  75. # Copy documentation
  76. mkdir -p "${destdir}${docsdir}"
  77. cp -p $docs "${destdir}${docsdir}/"
  78. }