recipe 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. # Build recipe for wget2.
  2. #
  3. # Copyright (c) 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=wget2
  19. version=2.0.0
  20. release=3
  21. # Define a category for the output of the package name
  22. pkgcategory=networking
  23. tarname=${program}-${version}.tar.lz
  24. # Remote source(s)
  25. fetch=https://ftp.gnu.org/gnu/wget/$tarname
  26. description="
  27. The non-interactive network downloader (version 2).
  28. GNU Wget2 is the successor of GNU Wget, a file and recursive website
  29. downloader. Designed and written from scratch it wraps around libwget,
  30. that provides the basic functions needed by a web client.
  31. Wget2 works multi-threaded and uses many features to allow fast operation.
  32. In many cases Wget2 downloads much faster than Wget1.x due to HTTP2,
  33. HTTP compression, parallel connections and use of If-Modified-Since
  34. HTTP header.
  35. "
  36. homepage=https://www.gnu.org/software/wget
  37. license="GPLv3+, LGPLv3+"
  38. # Source documentation
  39. docs="AUTHORS COPYING* ChangeLog NEWS README.md"
  40. docsdir="${docdir}/${program}-${version}"
  41. build()
  42. {
  43. unpack "${tardir}/$tarname"
  44. cd "$srcdir"
  45. # https://lists.gnu.org/archive/html/bug-wget/2021-09/msg00023.html
  46. patch -Np0 -i "${worktree}/patches/wget2/lzlib-link.patch"
  47. # Set sane permissions
  48. chmod -R u+w,go-w,a+rX-s .
  49. ./configure CPPFLAGS="$QICPPFLAGS" CFLAGS="$QICFLAGS" \
  50. LDFLAGS="$QILDFLAGS" \
  51. $configure_args \
  52. --libdir=/usr/lib${libSuffix} \
  53. --infodir=$infodir \
  54. --mandir=$mandir \
  55. --enable-static=no \
  56. --enable-shared=yes \
  57. --with-ssl=gnutls \
  58. --with-gpgme-prefix=/usr \
  59. --without-included-regex \
  60. --with-zlib \
  61. --with-lzip \
  62. --with-bzip2 \
  63. --with-lzma \
  64. --with-zstd \
  65. --without-brotlidec \
  66. --build="$(gcc -dumpmachine)"
  67. make -j${jobs} V=1
  68. make -j${jobs} DESTDIR="$destdir" install
  69. # This binary is the same as the main binary "wget2"
  70. rm "${destdir}/usr/bin/wget2_noinstall"
  71. # Compress info documents deleting index file for the package
  72. if test -d "${destdir}/$infodir"
  73. then
  74. rm -f "${destdir}/${infodir}/dir"
  75. lzip -9 "${destdir}/${infodir}"/*
  76. fi
  77. # Compress and link man pages (if needed)
  78. if test -d "${destdir}/$mandir"
  79. then
  80. (
  81. cd "${destdir}/$mandir"
  82. find . -type f -exec lzip -9 {} +
  83. find . -type l | while read -r file
  84. do
  85. ln -sf "$(readlink -- "$file").lz" "${file}.lz"
  86. rm -- "$file"
  87. done
  88. )
  89. fi
  90. # Copy documentation
  91. mkdir -p "${destdir}/$docsdir"
  92. cp -p $docs "${destdir}/$docsdir"
  93. }