recipe 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # Build recipe for uri.
  2. #
  3. # Copyright (c) 2018-2019, 2021-2022 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=URI
  19. version=5.10
  20. release=1
  21. pkgname=perl-uri
  22. # Define a category for the output of the package name
  23. pkgcategory=perl
  24. description="
  25. Uniform Resource Identifiers.
  26. This module implements the URI class. Objects of this class represent
  27. \"Uniform Resource Identifier references\" as specified in RFC 2396
  28. (and updated by RFC 2732).
  29. "
  30. homepage=https://metacpan.org/release/URI
  31. license="The Perl 5 License"
  32. tarname=${program}-${version}.tar.gz
  33. # Remote source(s)
  34. fetch=https://cpan.metacpan.org/authors/id/O/OA/OALDERS/$tarname
  35. # Source documentation
  36. docs="CONTRIBUTING.md Changes LICENSE"
  37. docsdir="${docdir}/${pkgname}-${version}"
  38. build() {
  39. unpack "${tardir}/$tarname"
  40. cd "$srcdir"
  41. # Set sane permissions
  42. chmod -R u+w,go-w,a+rX-s .
  43. perl Makefile.PL INSTALLDIRS=vendor
  44. make -j${jobs} V=1 docdir=$docsdir
  45. make -j${jobs} DESTDIR="$destdir" install
  46. # Strip remaining binaries and libraries
  47. find "$destdir" -type f | xargs file | \
  48. awk '/ELF/ && /executable/ || /shared object/' | \
  49. cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
  50. # Clean up inventory file for Perl
  51. # This line removes 'destdir' adding the suffix '.lz' for manpages
  52. find "${destdir}/" -type f -name '.packlist' | while read -r file
  53. do
  54. sed -i \
  55. -e "s|${destdir}||g" \
  56. -e "s|\.[0-9][a-z]*|&.lz|g" \
  57. $file
  58. done
  59. find "${destdir}/" -type f -name 'perllocal.pod' -exec rm -f {} +
  60. # Compress manual pages
  61. if [ -d "${destdir}/$mandir" ] ; then
  62. (
  63. cd "${destdir}/$mandir"
  64. find . -type f -exec lzip -9 {} +
  65. find . -type l | while read -r file
  66. do
  67. ln -sf "$(readlink -- "$file").lz" "${file}.lz"
  68. rm -- "$file"
  69. done
  70. )
  71. fi
  72. # Copy documentation
  73. mkdir -p "${destdir}/$docsdir"
  74. cp -p $docs "${destdir}/$docsdir"
  75. }