(address . bug-guix@gnu.org)
Hello,
After the recent core update, Geary fails to build. A full build log is
attached. The relevant bit appears to be this:
```
# GLib-DEBUG: g_unix_open_pipe() called with FD_CLOEXEC; please migrate
to using O_CLOEXEC instead
# GLib-DEBUG: g_unix_open_pipe() called with FD_CLOEXEC; please migrate
to using O_CLOEXEC instead
ok 177 /engine/Geary.ImapDb.DatabaseTest/upgrade_0_6
not ok 178
/engine/Geary.ImapDb.DatabaseTest/utf8_case_insensitive_collation
Bail out!
stderr:
Geary.Db-Message: 15:34:23.255: Garbage collection of IMAP database
/tmp/guix-build-geary-44.1.drv-0/geary-imap-db-database-test-6GMHT2/geary-0.6-db/geary.db
failed: Operation was cancelled
Geary.ImapDb.DatabaseTest/utf8_case_insensitive_collation: “á” !=
“BB”
```
The related code in the source tree is at
`test/engine/imap-db-database-test.vala` and specifically the function
`utf8_case_insensitive_collation` which is:
```
public void utf8_case_insensitive_collation() throws GLib.Error {
Database db = new Database(
this.tmp_dir.get_child("test.db"),
GLib.File.new_for_path(_SOURCE_ROOT_DIR).get_child("sql"),
this.tmp_dir.get_child("attachments"),
new
Geary.SimpleProgressMonitor(Geary.ProgressType.DB_UPGRADE),
new
Geary.SimpleProgressMonitor(Geary.ProgressType.DB_VACUUM)
);
db.open.begin(
Geary.Db.DatabaseFlags.CREATE_FILE, null,
this.async_completion
);
db.open.end(async_result());
db.exec("""
CREATE TABLE Test (id INTEGER PRIMARY KEY, test_str TEXT);
INSERT INTO Test (test_str) VALUES ('a');
INSERT INTO Test (test_str) VALUES ('b');
INSERT INTO Test (test_str) VALUES ('B');
INSERT INTO Test (test_str) VALUES ('BB');
INSERT INTO Test (test_str) VALUES ('á');
""");
string[] expected = { "BB", "B", "b", "á", "a" };
Db.Result result = db.query(
"SELECT test_str FROM Test ORDER BY test_str COLLATE
UTF8COLL DESC"
);
int i = 0;
while (!result.finished) {
assert_true(i < expected.length, "Too many rows");
assert_equal(result.string_at(0), expected[i]);
i++;
result.next();
}
assert_true(i == expected.length, "Not enough rows");
// Need to close it again to stop the GC process running
db.close();
}
```
Best,
Juli