sqlite3 1.6.4-x86-linux → 1.6.5.rc1-x86-linux
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/INSTALLATION.md +43 -4
- data/ext/sqlite3/extconf.rb +11 -4
- data/lib/sqlite3/version.rb +3 -3
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9eeba481a3d5a6cafca126b796e209986112ae80521cfeb78b3e0fffd381cd09
|
4
|
+
data.tar.gz: fe938f491e7678fe3db283e86ef9f2ef816dbde9277b3783203cffbbb0d0d9c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 563e03be6565091502ccd74664cc1880b8f0ef8950cbe9bfb0c2f8b4bb08054b89f1f750352511ae248d787403be1f162e0a6dda328b0cc4c06dad3f42ff8081
|
7
|
+
data.tar.gz: 990c6714c13166ef6a3ecb0424ebd770e6e876087d99ceb9d13335d598d75b749c0abb76e5864517ef0a0b92688bcc8f9a61567a9273616567f71afdbd4d018f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# sqlite3-ruby Changelog
|
2
2
|
|
3
|
+
## 1.6.5.rc1 / 2023-09-08
|
4
|
+
|
5
|
+
### Packaging
|
6
|
+
|
7
|
+
* Allow setting compiler flags for the sqlite library via a `--with-sqlite-cflags` argument to `extconf.rb`. See `INSTALLATION.md` for more information. [#401, #402] (@flavorjones)
|
8
|
+
|
9
|
+
|
3
10
|
## 1.6.4 / 2023-08-26
|
4
11
|
|
5
12
|
### Dependencies
|
data/INSTALLATION.md
CHANGED
@@ -73,6 +73,45 @@ user 0m23.361s
|
|
73
73
|
sys 0m5.839s
|
74
74
|
```
|
75
75
|
|
76
|
+
##### Controlling compilation flags for sqlite
|
77
|
+
|
78
|
+
Upstream sqlite allows for the setting of some parameters at compile time. If you're an expert and would like to set these, you may do so at gem install time in two different ways ...
|
79
|
+
|
80
|
+
**If you're installing the gem using `gem install`** then you can pass in these compile-time flags like this:
|
81
|
+
|
82
|
+
``` sh
|
83
|
+
gem install sqlite3 --platform=ruby -- \
|
84
|
+
--with-sqlite-cflags="-DSQLITE_DEFAULT_CACHE_SIZE=9999 -DSQLITE_DEFAULT_PAGE_SIZE=4444"
|
85
|
+
```
|
86
|
+
|
87
|
+
or the equivalent:
|
88
|
+
|
89
|
+
``` sh
|
90
|
+
CFLAGS="-DSQLITE_DEFAULT_CACHE_SIZE=9999 -DSQLITE_DEFAULT_PAGE_SIZE=4444" \
|
91
|
+
gem install sqlite3 --platform=ruby
|
92
|
+
```
|
93
|
+
|
94
|
+
**If you're installing the gem using `bundler`** then you should first pin the gem to the "ruby" platform gem, so that you are compiling from source:
|
95
|
+
|
96
|
+
``` ruby
|
97
|
+
# Gemfile
|
98
|
+
gem "sqlite3", force_ruby_platform: true # requires bundler >= 2.3.18
|
99
|
+
```
|
100
|
+
|
101
|
+
and then set up a bundler config parameter for `build.sqlite3`:
|
102
|
+
|
103
|
+
``` sh
|
104
|
+
bundle config set build.sqlite3 \
|
105
|
+
"--with-sqlite-cflags='-DSQLITE_DEFAULT_CACHE_SIZE=9999 -DSQLITE_DEFAULT_PAGE_SIZE=4444'"
|
106
|
+
```
|
107
|
+
|
108
|
+
NOTE the use of single quotes within the double-quoted string to ensure the space between compiler flags is interpreted correctly. The contents of your `.bundle/config` file should look like:
|
109
|
+
|
110
|
+
``` yaml
|
111
|
+
---
|
112
|
+
BUNDLE_BUILD__SQLITE3: "--with-sqlite-cflags='-DSQLITE_DEFAULT_CACHE_SIZE=9999 -DSQLITE_DEFAULT_PAGE_SIZE=4444'"
|
113
|
+
```
|
114
|
+
|
76
115
|
|
77
116
|
#### System libsqlite3
|
78
117
|
|
@@ -167,14 +206,14 @@ db.load_extension("/path/to/sqlite/spellfix.o")
|
|
167
206
|
db.execute("CREATE VIRTUAL TABLE demo USING spellfix1;")
|
168
207
|
```
|
169
208
|
|
170
|
-
### How do I use
|
209
|
+
### How do I use my own sqlite3 shared library?
|
171
210
|
|
172
|
-
Some
|
211
|
+
Some folks have strong opinions about what features they want compiled into sqlite3; or may be using a package like SQLite Encryption Extension ("SEE"). This section will explain how to get your Ruby application to load that specific shared library.
|
173
212
|
|
174
213
|
If you've installed your alternative as an autotools-style installation, the directory structure will look like this:
|
175
214
|
|
176
215
|
```
|
177
|
-
/opt/
|
216
|
+
/opt/sqlite3
|
178
217
|
├── bin
|
179
218
|
│ └── sqlite3
|
180
219
|
├── include
|
@@ -199,7 +238,7 @@ You can build this gem against that library like this:
|
|
199
238
|
```
|
200
239
|
gem install sqlite3 --platform=ruby -- \
|
201
240
|
--enable-system-libraries \
|
202
|
-
--with-opt-dir=/opt/
|
241
|
+
--with-opt-dir=/opt/sqlite
|
203
242
|
```
|
204
243
|
|
205
244
|
Explanation:
|
data/ext/sqlite3/extconf.rb
CHANGED
@@ -51,12 +51,13 @@ module Sqlite3
|
|
51
51
|
minimal_recipe.tap do |recipe|
|
52
52
|
recipe.configure_options += ["--enable-shared=no", "--enable-static=yes"]
|
53
53
|
ENV.to_h.tap do |env|
|
54
|
-
|
54
|
+
user_cflags = with_config("sqlite-cflags")
|
55
|
+
more_cflags = [
|
55
56
|
"-fPIC", # needed for linking the static library into a shared library
|
56
57
|
"-O2", # see https://github.com/sparklemotion/sqlite3-ruby/issues/335 for some benchmarks
|
57
58
|
"-fvisibility=hidden", # see https://github.com/rake-compiler/rake-compiler-dock/issues/87
|
58
59
|
]
|
59
|
-
env["CFLAGS"] = [env["CFLAGS"],
|
60
|
+
env["CFLAGS"] = [user_cflags, env["CFLAGS"], more_cflags].flatten.join(" ")
|
60
61
|
recipe.configure_options += env.select { |k,v| ENV_ALLOWLIST.include?(k) }
|
61
62
|
.map { |key, value| "#{key}=#{value.strip}" }
|
62
63
|
end
|
@@ -234,17 +235,23 @@ module Sqlite3
|
|
234
235
|
|
235
236
|
Flags only used when building and using the packaged libraries:
|
236
237
|
|
238
|
+
--with-sqlite-cflags=CFLAGS
|
239
|
+
Explicitly pass compiler flags to the sqlite library build. These flags will
|
240
|
+
appear on the commandline before any flags set in the CFLAGS environment
|
241
|
+
variable. This is useful for setting compilation options in your project's
|
242
|
+
bundler config. See INSTALLATION.md for more information.
|
243
|
+
|
237
244
|
--enable-cross-build
|
238
245
|
Enable cross-build mode. (You probably do not want to set this manually.)
|
239
246
|
|
240
247
|
|
241
|
-
Environment variables used for compiling the C extension:
|
248
|
+
Environment variables used for compiling the gem's C extension:
|
242
249
|
|
243
250
|
CC
|
244
251
|
Use this path to invoke the compiler instead of `RbConfig::CONFIG['CC']`
|
245
252
|
|
246
253
|
|
247
|
-
Environment variables passed through to the compilation of
|
254
|
+
Environment variables passed through to the compilation of sqlite:
|
248
255
|
|
249
256
|
CC
|
250
257
|
CPPFLAGS
|
data/lib/sqlite3/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqlite3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.5.rc1
|
5
5
|
platform: x86-linux
|
6
6
|
authors:
|
7
7
|
- Jamis Buck
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-08
|
13
|
+
date: 2023-09-08 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: |-
|
16
16
|
This module allows Ruby programs to interface with the SQLite3
|
@@ -117,9 +117,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
117
|
version: 3.3.dev
|
118
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
|
-
- - "
|
120
|
+
- - ">"
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
122
|
+
version: 1.3.1
|
123
123
|
requirements: []
|
124
124
|
rubygems_version: 3.3.26
|
125
125
|
signing_key:
|