Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package soju for openSUSE:Factory checked in at 2026-10-07 19:35:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/soju (Old) and /work/SRC/openSUSE:Factory/.soju.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "soju" Wed Oct 7 19:35:17 2026 rev:3 rq:1383012 version:0.11.1 Changes: -------- --- /work/SRC/openSUSE:Factory/soju/soju.changes 2026-09-12 21:25:04.911842787 +0200 +++ /work/SRC/openSUSE:Factory/.soju.new.3698736/soju.changes 2026-10-07 19:36:14.525783557 +0200 @@ -1,0 +2,8 @@ +Wed Sep 30 09:30:19 UTC 2026 - Mia Herkt <[email protected]> + +- Update to 0.11.1: + * service: fix missing formatting directive in Printf call + * database/sqlite: fix build with modernc.org/sqlite + * fileupload/fs: don't leave partial file behind on error + +------------------------------------------------------------------- Old: ---- soju-0.11.0.tar.gz soju-0.11.0.tar.gz.sig New: ---- soju-0.11.1.tar.gz soju-0.11.1.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ soju.spec ++++++ --- /var/tmp/diff_new_pack.1ZMvrB/_old 2026-10-07 19:36:17.291899202 +0200 +++ /var/tmp/diff_new_pack.1ZMvrB/_new 2026-10-07 19:36:17.293899286 +0200 @@ -17,7 +17,7 @@ Name: soju -Version: 0.11.0 +Version: 0.11.1 Release: 0 Summary: IRCv3 bouncer License: AGPL-3.0-only ++++++ soju-0.11.0.tar.gz -> soju-0.11.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soju-0.11.0/database/sqlite.go new/soju-0.11.1/database/sqlite.go --- old/soju-0.11.0/database/sqlite.go 2026-09-08 11:01:50.000000000 +0200 +++ new/soju-0.11.1/database/sqlite.go 2026-09-24 17:23:59.000000000 +0200 @@ -7,14 +7,12 @@ "database/sql" sqldriver "database/sql/driver" _ "embed" - "errors" "fmt" "math" "strings" "time" "unicode" - "github.com/mattn/go-sqlite3" "github.com/prometheus/client_golang/prometheus" promcollectors "github.com/prometheus/client_golang/prometheus/collectors" "gopkg.in/irc.v4" @@ -140,14 +138,6 @@ return tx.Commit() } -func (db *SqliteDB) isErrUnique(err error) bool { - var sqliteErr *sqlite3.Error - if !errors.As(err, &sqliteErr) { - return false - } - return sqliteErr.ExtendedCode == sqlite3.ErrConstraintUnique -} - func (db *SqliteDB) RegisterMetrics(r prometheus.Registerer) error { return r.Register(promcollectors.NewDBStatsCollector(db.db, "main")) } @@ -733,7 +723,7 @@ } cert.ID, err = res.LastInsertId() } - if db.isErrUnique(err) { + if isSqliteErrUnique(err) { return ErrDuplicateDeviceCertificate } return err diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soju-0.11.0/database/sqlite_mattn.go new/soju-0.11.1/database/sqlite_mattn.go --- old/soju-0.11.0/database/sqlite_mattn.go 2026-09-08 11:01:50.000000000 +0200 +++ new/soju-0.11.1/database/sqlite_mattn.go 2026-09-24 17:23:59.000000000 +0200 @@ -3,8 +3,10 @@ package database import ( + "errors" + _ "codeberg.org/emersion/go-sqlite3-fts5" - _ "github.com/mattn/go-sqlite3" + "github.com/mattn/go-sqlite3" ) var sqliteDriver = "sqlite3" @@ -12,3 +14,11 @@ // See https://kerkour.com/sqlite-for-servers // Keep in sync with modernc counterpart. const sqliteOptions = "_foreign_keys=true&_busy_timeout=5000&_journal_mode=WAL&_synchronous=NORMAL&_txlock=immediate" + +func isSqliteErrUnique(err error) bool { + var sqliteErr *sqlite3.Error + if !errors.As(err, &sqliteErr) { + return false + } + return sqliteErr.ExtendedCode == sqlite3.ErrConstraintUnique +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soju-0.11.0/database/sqlite_modernc.go new/soju-0.11.1/database/sqlite_modernc.go --- old/soju-0.11.0/database/sqlite_modernc.go 2026-09-08 11:01:50.000000000 +0200 +++ new/soju-0.11.1/database/sqlite_modernc.go 2026-09-24 17:23:59.000000000 +0200 @@ -3,10 +3,22 @@ package database import ( - _ "modernc.org/sqlite" + "errors" + + "modernc.org/sqlite" + sqlitelib "modernc.org/sqlite/lib" ) var sqliteDriver = "sqlite" // Keep in sync with mattn counterpart. const sqliteOptions = "_pragma=foreign_keys(true)&_pragma=busy_timeout(5000)&_pragma=journal_mode(WAL)&_pragma=synchronous(NORMAL)&_txlock=immediate" + +func isSqliteErrUnique(err error) bool { + var sqliteErr *sqlite.Error + if !errors.As(err, &sqliteErr) { + return false + } + // TODO: check extended error code (requires upstream patch) + return sqliteErr.Code() == sqlitelib.SQLITE_CONSTRAINT +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soju-0.11.0/fileupload/fs.go new/soju-0.11.1/fileupload/fs.go --- old/soju-0.11.0/fileupload/fs.go 2026-09-08 11:01:50.000000000 +0200 +++ new/soju-0.11.1/fileupload/fs.go 2026-09-24 17:23:59.000000000 +0200 @@ -90,9 +90,11 @@ defer f.Close() if _, err := io.Copy(f, r); err != nil { + os.Remove(f.Name()) return "", fmt.Errorf("failed to write file: %w", err) } if err := f.Close(); err != nil { + os.Remove(f.Name()) return "", fmt.Errorf("failed to close file: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soju-0.11.0/service.go new/soju-0.11.1/service.go --- old/soju-0.11.0/service.go 2026-09-08 11:01:50.000000000 +0200 +++ new/soju-0.11.1/service.go 2026-09-24 17:23:59.000000000 +0200 @@ -162,7 +162,7 @@ } else { logger = ctx.srv.Logger } - logger.Printf("command without handler and subcommands invoked:", words[0]) + logger.Printf("command without handler and subcommands invoked: %v", words[0]) return fmt.Errorf("command %q not found", words[0]) } ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/soju/vendor.tar.zst /work/SRC/openSUSE:Factory/.soju.new.3698736/vendor.tar.zst differ: char 7, line 1
