This repository has been archived by the owner on May 20, 2023. It is now read-only.
/
PKGBUILD
153 lines (122 loc) · 4.9 KB
/
PKGBUILD
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
141
142
143
144
145
146
147
148
149
150
151
152
153
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgbase="sqlite"
pkgname=('sqlite' 'sqlite-tcl' 'sqlite-analyzer' 'lemon' 'sqlite-doc')
_srcver=3350100
_docver=${_srcver}
#_docver=3330000
pkgver=3.35.1
pkgrel=2
pkgdesc="A C library that implements an SQL database engine"
arch=('x86_64')
license=('custom:Public Domain')
url="https://www.sqlite.org/"
makedepends=('tcl' 'readline' 'zlib')
source=(https://www.sqlite.org/2021/sqlite-src-${_srcver}.zip
https://www.sqlite.org/2021/sqlite-doc-${_docver}.zip
sqlite-lemon-system-template.patch
tracker-workaround.diff
license.txt)
options=('!emptydirs' '!makeflags') # json extensions breaks parallel build
# upstream now switched to sha3sums - currently not suppoerted by makepkg
sha256sums=('8cb60d7cc55c410fcd6990fe92802fda02760efa4fe3569a677e3e8dcdf8b107'
'3bb955ea75606e735955aa0b680d72d91cde367b6d3e38ee14b88a588deb6a4f'
'55746d93b0df4b349c4aa4f09535746dac3530f9fd6de241c9f38e2c92e8ee97'
'8f2134e31d489e3eadd2564a8a950797202bddc67cae553b8694d19eb455e2c1'
'4e57d9ac979f1c9872e69799c2597eeef4c6ce7224f3ede0bf9dc8d217b1e65d')
prepare() {
cd sqlite-src-$_srcver
# patch taken from Fedora
# https://src.fedoraproject.org/rpms/sqlite/blob/master/f/sqlite.spec
patch -Np1 -i ../sqlite-lemon-system-template.patch
# workaround
# https://www.sqlite.org/forum/forumpost/1061e627d0
# https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/161#note_1059821
patch -Np1 -i ../tracker-workaround.diff
# autoreconf -vfi
}
build() {
export CPPFLAGS="$CPPFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1 \
-DSQLITE_ENABLE_UNLOCK_NOTIFY \
-DSQLITE_ENABLE_DBSTAT_VTAB=1 \
-DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
-DSQLITE_SECURE_DELETE \
-DSQLITE_MAX_VARIABLE_NUMBER=250000 \
-DSQLITE_MAX_EXPR_DEPTH=10000"
# build sqlite
cd sqlite-src-$_srcver
./configure --prefix=/usr \
--disable-static \
--disable-amalgamation \
--enable-fts3 \
--enable-fts4 \
--enable-fts5 \
--enable-rtree \
--enable-json1 \
TCLLIBDIR=/usr/lib/sqlite$pkgver
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make
# build additional tools
make showdb showjournal showstat4 showwal sqldiff sqlite3_analyzer
}
package_sqlite() {
pkgdesc="A C library that implements an SQL database engine"
depends=('readline' 'zlib')
provides=("sqlite3=$pkgver")
replaces=("sqlite3")
cd sqlite-src-$_srcver
make DESTDIR="${pkgdir}" install
install -m755 showdb showjournal showstat4 showwal sqldiff "${pkgdir}"/usr/bin/
# install manpage
install -m755 -d "${pkgdir}"/usr/share/man/man1
install -m644 sqlite3.1 "${pkgdir}"/usr/share/man/man1/
# license - no linking required because pkgbase=pkgname
install -D -m644 "${srcdir}"/license.txt "${pkgdir}"/usr/share/licenses/${pkgbase}/license.txt
# split out tcl extension
mkdir "$srcdir"/tcl
mv "$pkgdir"/usr/lib/sqlite* "$srcdir"/tcl
}
package_sqlite-tcl() {
pkgdesc="sqlite Tcl Extension Architecture (TEA)"
depends=('sqlite')
provides=("sqlite3-tcl=$pkgver")
replaces=("sqlite3-tcl")
install -m755 -d "${pkgdir}"/usr/lib
mv "$srcdir"/tcl/* "${pkgdir}"/usr/lib
# install manpage
install -m755 -d "${pkgdir}"/usr/share/man/mann
install -m644 "${srcdir}"/sqlite-src-$_srcver/autoconf/tea/doc/sqlite3.n "${pkgdir}"/usr/share/man/mann/
# link license
install -m755 -d "${pkgdir}"/usr/share/licenses
ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}"
}
package_sqlite-analyzer() {
pkgdesc="An analysis program for sqlite3 database files"
depends=('sqlite' 'tcl')
cd sqlite-src-$_srcver
install -m755 -d "${pkgdir}"/usr/bin
install -m755 sqlite3_analyzer "${pkgdir}"/usr/bin/
}
package_lemon() {
# https://www.sqlite.org/lemon.html
pkgdesc="A parser generator"
depends=('glibc')
cd sqlite-src-$_srcver
# ELF file ('usr/bin/lemon') lacks FULL RELRO, check LDFLAGS. - no fix found so far
install -Dm755 lemon ${pkgdir}/usr/bin/lemon
install -Dm644 lempar.c ${pkgdir}/usr/share/lemon/lempar.c
mkdir -p "${pkgdir}"/usr/share/doc/${pkgname}
cp ../sqlite-doc-${_docver}/lemon.html "${pkgdir}"/usr/share/doc/${pkgname}/
install -m755 -d "${pkgdir}"/usr/share/licenses
ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}"
}
package_sqlite-doc() {
pkgdesc="most of the static HTML files that comprise this website, including all of the SQL Syntax and the C/C++ interface specs and other miscellaneous documentation"
#arch=('any') - not yet supported
provides=("sqlite3-doc=$pkgver")
replaces=("sqlite3-doc")
cd sqlite-doc-${_docver}
mkdir -p "${pkgdir}"/usr/share/doc/${pkgbase}
cp -R * "${pkgdir}"/usr/share/doc/${pkgbase}/
rm "${pkgdir}"/usr/share/doc/${pkgbase}/lemon.html
}