[DRE-maint] Bug#1003305: ruby-sqlite3: FTBFS against sqlite3 3.37 or newer
Dan Bungert
daniel.bungert at canonical.com
Fri Jan 7 21:41:27 GMT 2022
Package: ruby-sqlite3
Version: 1.4.2-3build1
Severity: normal
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu jammy
Dear Maintainer,
This bug report was also filed in Ubuntu and can be found at
https://launchpad.net/bugs/1956796
The description, from Dan Bungert, follows:
When built against sqlite 3.37 or newer, the build will fail in test.
Examples:
https://autopkgtest.ubuntu.com/results/autopkgtest-jammy/jammy/amd64/r/ruby-sqlite3/20220107_075823_1a1f3@/log.gz
https://ci.debian.net/data/autopkgtest/unstable/amd64/r/ruby-sqlite3/17951708/log.gz
TC_ResultSet#test_types [/tmp/autopkgtest.J0NEKT/build.hEV/src/test/test_integration_resultset.rb:121]:
Expected: ["integer", "text"]
Actual: ["INTEGER", "TEXT"]
+2 more failures of a similar nature.
As of sqlite 3.37.0, with FossilOrigin-Name:
d2da62a9df63036b02dadca3798de9e623c2680b3ef0c37d2b18bb88693afd7f,
type names for 5 common types BLOB, INT, INTEGER, REAL, and TEXT will be
treated as if they were created in all uppercase.
See attached for my proposed change for Ubuntu to address the test failures.
-Dan
-------------- next part --------------
diff -Nru ruby-sqlite3-1.4.2/debian/changelog ruby-sqlite3-1.4.2/debian/changelog
--- ruby-sqlite3-1.4.2/debian/changelog 2021-12-03 15:07:08.000000000 -0700
+++ ruby-sqlite3-1.4.2/debian/changelog 2022-01-07 14:15:57.000000000 -0700
@@ -1,3 +1,9 @@
+ruby-sqlite3 (1.4.2-3ubuntu1) jammy; urgency=medium
+
+ * Adjust tests for compatibility with sqlite 3.37.0 or newer (LP: #1956796)
+
+ -- Dan Bungert <daniel.bungert at canonical.com> Fri, 07 Jan 2022 14:15:57 -0700
+
ruby-sqlite3 (1.4.2-3build2) jammy; urgency=medium
* No-change upload due to ruby3.0 transition, remove ruby2.7 support.
diff -Nru ruby-sqlite3-1.4.2/debian/control ruby-sqlite3-1.4.2/debian/control
--- ruby-sqlite3-1.4.2/debian/control 2021-02-09 15:26:09.000000000 -0700
+++ ruby-sqlite3-1.4.2/debian/control 2022-01-07 14:15:57.000000000 -0700
@@ -1,7 +1,8 @@
Source: ruby-sqlite3
Section: ruby
Priority: optional
-Maintainer: Debian Ruby Team <pkg-ruby-extras-maintainers at lists.alioth.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss at lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Ruby Team <pkg-ruby-extras-maintainers at lists.alioth.debian.org>
Uploaders: Dmitry Borodaenko <angdraug at debian.org>
Build-Depends: debhelper-compat (= 13),
gem2deb (>= 1),
diff -Nru ruby-sqlite3-1.4.2/debian/patches/series ruby-sqlite3-1.4.2/debian/patches/series
--- ruby-sqlite3-1.4.2/debian/patches/series 2021-02-09 14:22:28.000000000 -0700
+++ ruby-sqlite3-1.4.2/debian/patches/series 2022-01-06 17:05:49.000000000 -0700
@@ -1,2 +1,3 @@
use-slugs-in-faq.diff
drop-vendorizing-tasks.patch
+type-case.patch
diff -Nru ruby-sqlite3-1.4.2/debian/patches/type-case.patch ruby-sqlite3-1.4.2/debian/patches/type-case.patch
--- ruby-sqlite3-1.4.2/debian/patches/type-case.patch 1969-12-31 17:00:00.000000000 -0700
+++ ruby-sqlite3-1.4.2/debian/patches/type-case.patch 2022-01-07 14:15:56.000000000 -0700
@@ -0,0 +1,77 @@
+Description: Use uppercase types for test
+ As of sqlite 3.37.0, with FossilOrigin-Name:
+ d2da62a9df63036b02dadca3798de9e623c2680b3ef0c37d2b18bb88693afd7f,
+ type names for 5 common types BLOB, INT, INTEGER, REAL, and TEXT will be
+ treated as if they were created in all uppercase. This patch does two things
+ about this:
+ 1) Adjust expected types to upper case, as that will always be what newer
+ sqlite actually does for these 5 types
+ 2) adjust created tables to use upper case type names, so that pre-3.37 sqlite
+ uses the type name strings expected by the tests
+Author: Dan Bungert <daniel.bungert at canonical.com>
+Bug-Ubuntu: https://launchpad.net/bugs/1956796
+Forwarded: https://github.com/sparklemotion/sqlite3-ruby/pull/304 ; PR comment
+Last-Update: 2022-01-07
+--- a/test/test_database.rb
++++ b/test/test_database.rb
+@@ -268,12 +268,12 @@
+
+ def test_table_info
+ db = SQLite3::Database.new(':memory:', :results_as_hash => true)
+- db.execute("create table foo ( a integer primary key, b text )")
++ db.execute("create table foo ( a INTEGER primary key, b TEXT )")
+ info = [{
+ "name" => "a",
+ "pk" => 1,
+ "notnull" => 0,
+- "type" => "integer",
++ "type" => "INTEGER",
+ "dflt_value" => nil,
+ "cid" => 0
+ },
+@@ -281,7 +281,7 @@
+ "name" => "b",
+ "pk" => 0,
+ "notnull" => 0,
+- "type" => "text",
++ "type" => "TEXT",
+ "dflt_value" => nil,
+ "cid" => 1
+ }]
+--- a/test/test_integration.rb
++++ b/test/test_integration.rb
+@@ -34,11 +34,11 @@
+
+ def test_table_info_without_defaults_for_version_3_3_8_and_higher
+ @db.transaction do
+- @db.execute "create table no_defaults_test ( a integer default 1, b integer )"
++ @db.execute "create table no_defaults_test ( a INTEGER default 1, b INTEGER )"
+ data = @db.table_info( "no_defaults_test" )
+- assert_equal({"name" => "a", "type" => "integer", "dflt_value" => "1", "notnull" => 0, "cid" => 0, "pk" => 0},
++ assert_equal({"name" => "a", "type" => "INTEGER", "dflt_value" => "1", "notnull" => 0, "cid" => 0, "pk" => 0},
+ data[0])
+- assert_equal({"name" => "b", "type" => "integer", "dflt_value" => nil, "notnull" => 0, "cid" => 1, "pk" => 0},
++ assert_equal({"name" => "b", "type" => "INTEGER", "dflt_value" => nil, "notnull" => 0, "cid" => 1, "pk" => 0},
+ data[1])
+ end
+ end
+--- a/test/test_integration_resultset.rb
++++ b/test/test_integration_resultset.rb
+@@ -4,7 +4,7 @@
+ def setup
+ @db = SQLite3::Database.new(":memory:")
+ @db.transaction do
+- @db.execute "create table foo ( a integer primary key, b text )"
++ @db.execute "create table foo ( a INTEGER primary key, b TEXT )"
+ @db.execute "insert into foo ( b ) values ( 'foo' )"
+ @db.execute "insert into foo ( b ) values ( 'bar' )"
+ @db.execute "insert into foo ( b ) values ( 'baz' )"
+@@ -118,7 +118,7 @@
+ end
+
+ def test_types
+- assert_equal [ "integer", "text" ], @result.types
++ assert_equal [ "INTEGER", "TEXT" ], @result.types
+ end
+
+ def test_columns
More information about the Pkg-ruby-extras-maintainers
mailing list