Skip to content

Commit 5ab9cd8

Browse files
authored
Merge pull request #352 from sparklemotion/351-fix-tarball-packaging
fix: sqlite tarball packaging
2 parents 8ab3ecc + d37f248 commit 5ab9cd8

File tree

6 files changed

+31
-23
lines changed

6 files changed

+31
-23
lines changed

.github/workflows/gem-install.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- uses: actions/cache@v3
2424
with:
2525
path: ports/archives
26-
key: ports-archives-tarball-${{hashFiles('ext/sqlite3/extconf.rb')}}
26+
key: ports-archives-tarball-${{hashFiles('ext/sqlite3/extconf.rb','dependencies.yml')}}
2727
- uses: ruby/setup-ruby-pkgs@v1
2828
with:
2929
ruby-version: "3.1"
@@ -38,7 +38,7 @@ jobs:
3838
- uses: actions/cache@v3
3939
with:
4040
path: ports/archives
41-
key: ports-archives-tarball-${{hashFiles('ext/sqlite3/extconf.rb')}}
41+
key: ports-archives-tarball-${{hashFiles('ext/sqlite3/extconf.rb','dependencies.yml')}}
4242
- uses: ruby/setup-ruby-pkgs@v1
4343
with:
4444
ruby-version: "3.1"
@@ -158,7 +158,7 @@ jobs:
158158
- uses: actions/cache@v3
159159
with:
160160
path: ports/archives
161-
key: ports-archives-tarball-${{hashFiles('ext/sqlite3/extconf.rb')}}
161+
key: ports-archives-tarball-${{hashFiles('ext/sqlite3/extconf.rb','dependencies.yml')}}
162162
- run: |
163163
docker run --rm -v "$(pwd):/sqlite3" -w /sqlite3 \
164164
larskanis/rake-compiler-dock-mri-${{matrix.plat}}:1.2.1 \

bin/test-gem-file-contents

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,12 @@ describe File.basename(gemfile) do
117117
end
118118

119119
it "contains the port files" do
120+
# TODO: once Ruby 2.7 is no longer supported, use symbolize_names: true
121+
dependencies = YAML.load_file(File.join(__dir__, "..", "dependencies.yml"))
122+
sqlite_tarball = File.basename(dependencies[:sqlite3][:files].first[:url])
120123
actual_ports = gemfile_contents.grep(%r{^ports/})
121-
assert_equal(1, actual_ports.count { |f| File.fnmatch?("ports/archives/sqlite-autoconf-*.tar.gz", f) })
122-
assert_equal(1, actual_ports.length)
124+
125+
assert_equal(["ports/archives/#{sqlite_tarball}"], actual_ports)
123126
end
124127

125128
it "contains the patch files" do

dependencies.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# TODO: stop using symbols here once we no longer support Ruby 2.7 and can rely on symbolize_names
2+
:sqlite3:
3+
# checksum verified by first checking the published sha3(256) checksum against https://sqlite.org/download.html:
4+
#
5+
# $ sha3sum -a 256 ports/archives/sqlite-autoconf-3390400.tar.gz
6+
# 431328e30d12c551da9ba7ef2122b269076058512014afa799caaf62ca567090 ports/archives/sqlite-autoconf-3390400.tar.gz
7+
#
8+
# $ sha256sum ports/archives/sqlite-autoconf-3390400.tar.gz
9+
# f31d445b48e67e284cf206717cc170ab63cbe4fd7f79a82793b772285e78fdbb ports/archives/sqlite-autoconf-3390400.tar.gz
10+
#
11+
:version: "3.39.4"
12+
:files:
13+
- :url: "https://sqlite.org/2022/sqlite-autoconf-3390400.tar.gz"
14+
:sha256: "f31d445b48e67e284cf206717cc170ab63cbe4fd7f79a82793b772285e78fdbb"

ext/sqlite3/extconf.rb

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
require "mkmf"
22
require "mini_portile2"
3+
require "yaml"
34

45
module Sqlite3
56
module ExtConf
@@ -131,23 +132,8 @@ def sqlite3_config
131132
end
132133

133134
def mini_portile_config
134-
{
135-
sqlite3: {
136-
# checksum verified by first checking the published sha3(256) checksum against https://sqlite.org/download.html:
137-
#
138-
# $ sha3sum -a 256 ports/archives/sqlite-autoconf-3390400.tar.gz
139-
# 431328e30d12c551da9ba7ef2122b269076058512014afa799caaf62ca567090 ports/archives/sqlite-autoconf-3390400.tar.gz
140-
#
141-
# $ sha256sum ports/archives/sqlite-autoconf-3390400.tar.gz
142-
# f31d445b48e67e284cf206717cc170ab63cbe4fd7f79a82793b772285e78fdbb ports/archives/sqlite-autoconf-3390400.tar.gz
143-
#
144-
version: "3.39.4",
145-
files: [{
146-
url: "https://sqlite.org/2022/sqlite-autoconf-3390400.tar.gz",
147-
sha256: "f31d445b48e67e284cf206717cc170ab63cbe4fd7f79a82793b772285e78fdbb",
148-
}],
149-
}
150-
}
135+
# TODO: once Ruby 2.7 is no longer supported, use symbolize_names: true
136+
YAML.load_file(File.join(package_root_dir, "dependencies.yml"))
151137
end
152138

153139
def abort_could_not_find(missing)

rakelib/native.rake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ require "bundler/gem_tasks"
44
require "rubygems/package_task"
55
require "rake/extensiontask"
66
require "rake_compiler_dock"
7+
require "yaml"
78

89
cross_rubies = ["3.1.0", "3.0.0", "2.7.0", "2.6.0"]
910
cross_platforms = [
@@ -41,7 +42,10 @@ def add_file_to_gem(relative_source_path)
4142
end
4243

4344
task gem_build_path do
44-
archive = Dir.glob(File.join("ports", "archives", "sqlite-autoconf-*.tar.gz")).first
45+
# TODO: once Ruby 2.7 is no longer supported, use symbolize_names: true
46+
dependencies = YAML.load_file(File.join(__dir__, "..", "dependencies.yml"))
47+
sqlite_tarball = File.basename(dependencies[:sqlite3][:files].first[:url])
48+
archive = Dir.glob(File.join("ports", "archives", sqlite_tarball)).first
4549
add_file_to_gem(archive)
4650

4751
patches = %x(#{["git", "ls-files", "patches"].shelljoin}).split("\n").grep(/\.patch\z/)

sqlite3.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ Gem::Specification.new do |s|
4444
"LICENSE",
4545
"LICENSE-DEPENDENCIES",
4646
"README.md",
47+
"dependencies.yml",
4748
"ext/sqlite3/aggregator.c",
4849
"ext/sqlite3/aggregator.h",
4950
"ext/sqlite3/backup.c",

0 commit comments

Comments
 (0)