summaryrefslogtreecommitdiffstats
path: root/python2-libxml2/PKGBUILD
blob: ada77d2d33dce0b078eb7033629a8fc36d9f5051 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# Maintainer: Pellegrino Prevete <pellegrinoprevete@gmail.com>
# Contributor: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Tom Gundersen <teg@jklm.no>
# Contributor: John Proctor <jproctor@prium.net>
# Contributor: MarsSeed <marcell.meszaros@runbox.eu>

_py="python2"
_pkg="libxml2"
pkgname="${_py}-${_pkg}"
pkgver=2.9.14
_pkgver=2.9.10
pkgrel=2
pkgdesc='XML parsing library, version 2'
_url="https://gitlab.gnome.org/GNOME/${_pkg}"
url="${_url}/-/wikis/home"
arch=(
  x86_64
  aarch64
  i686
  pentium4
  armv7h
  armv6l
)
license=(MIT)
depends=(
  icu
  ncurses
  "${_py}"
  "${_pkg}"
  readline
  xz
  zlib
)
makedepends=(
  git
)
_commit=7846b0a677f8d3ce72486125fa281e92ac9970e8  # tags/v2.9.14^0
_w3_tests="https://www.w3.org/XML/Test/xmlts20130923.tar.gz"
source=(
  "${pkgname}::git+${_url}.git#commit=$_commit"
  no-fuzz.diff # Do not run fuzzing tests
  "${_w3_tests}"
)
sha256sums=(
  'SKIP'
  '3fc010d8c42b93e6d6f1fca6b598a561e9d2c8780ff3ca0c76a31efabaea404f'
  '9b61db9f5dbffa545f4b8d78422167083a8568c59bd1129f94138f936cf6fc1f'
)

pkgver() {
  cd "${pkgname}"
  git describe --tags \
    | sed 's/-rc/rc/;s/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}

prepare() {
  local _msg="Use xmlconf from conformance test suite"
  mkdir -p build
  ln -s xmlconf build/xmlconf || echo "${_msg}"

  cd "${pkgname}"

  # Take patches from https://src.fedoraproject.org/rpms/libxml2/tree/master
  local src
  for src in "${source[@]}"; do
    src="${src%%::*}"
    src="${src##*/}"
    [[ "${src}" = *.diff ]] || continue
    echo "Applying patch ${src}..."
    git apply -3 "../${src}"
  done

  autoreconf -fiv
}

build() (
  local _configure="../${pkgname}/configure"
  local _configure_opts=(
    --prefix=/usr
    --with-threads
    --with-history
    --with-python="/usr/bin/${_py}"
    --with-icu
  )
  local _cflags=(
    "-I/usr/include/${_pkg}-2.9"
  )
  local _ldflags=(
    "-L/usr/lib/${_pkg}-2.9"
  )

  cd build

  CFLAGS="${_cflags[*]}" \
  LDFLAGS="${_ldflags[*]}" \
    "../${pkgname}/configure" "${_configure_opts[@]}"

  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool

  CFLAGS="${_cflags[*]}" \
  LDFLAGS="${_ldflags[*]}" \
    make

  find doc -type f -exec chmod 0644 {} +
)

check() {
  CFLAGS="${_cflags[*]}" \
  LDFLAGS="${_ldflags[*]}" \
  make -C build check
}

package() {
  make DESTDIR="${pkgdir}" -C build install
  "${_py}" -m compileall \
           -d /usr/lib "${pkgdir}/usr/lib"
  "${_py}" -O \
           -m compileall \
           -d /usr/lib "${pkgdir}/usr/lib"

  install -Dm 644 build/COPYING \
          -t "${pkgdir}/usr/share/licenses/${pkgname}"

  rm -rf "${pkgdir}/usr/bin/"
  rm -rf "${pkgdir}/usr/bin/"
  rm -rf "${pkgdir}/usr/include/${_pkg}/libxml"
  rm -rf "${pkgdir}/usr/lib/cmake"
  rm -rf "${pkgdir}/usr/lib/${_pkg}"*
  rm -rf "${pkgdir}/usr/lib/pkgconfig"
  rm -rf "${pkgdir}/usr/lib/xml2Conf.sh"
  rm -rf "${pkgdir}/usr/share/aclocal"
  rm -rf "${pkgdir}/usr/share/doc/${_pkg}"
  rm -rf "${pkgdir}/usr/share/doc/${_pkg}-python-${pkgver}"
  rm -rf "${pkgdir}/usr/share/gtk-doc/html/${_pkg}"
  rm -rf "${pkgdir}/usr/share/man/man1"
  rm -rf "${pkgdir}/usr/share/man/man3"
}

# vim: ts=2 sw=2 et: