Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package transmission for openSUSE:Factory checked in at 2023-01-28 19:59:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/transmission (Old) and /work/SRC/openSUSE:Factory/.transmission.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "transmission" Sat Jan 28 19:59:59 2023 rev:94 rq:1061421 version:3.00 Changes: -------- --- /work/SRC/openSUSE:Factory/transmission/transmission.changes 2022-04-06 21:51:03.079868489 +0200 +++ /work/SRC/openSUSE:Factory/.transmission.new.32243/transmission.changes 2023-01-28 20:09:59.386646649 +0100 @@ -1,0 +2,6 @@ +Wed Jan 25 20:26:23 UTC 2023 - Michael Vetter <mvet...@suse.com> + +- boo#1207555: Transmission can't open Bittorrent v2 torrents + Add transmission-hybrid-torrent-length.patch + +------------------------------------------------------------------- New: ---- transmission-hybrid-torrent-length.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ transmission.spec ++++++ --- /var/tmp/diff_new_pack.bX65Qg/_old 2023-01-28 20:09:59.914649545 +0100 +++ /var/tmp/diff_new_pack.bX65Qg/_new 2023-01-28 20:09:59.914649545 +0100 @@ -1,7 +1,7 @@ # # spec file for package transmission # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -28,6 +28,7 @@ Source1: transmission-qt.desktop Source3: README.openSUSE Patch0: harden_transmission-daemon.service.patch +Patch1: transmission-hybrid-torrent-length.patch BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: intltool @@ -123,6 +124,7 @@ %setup cp %{SOURCE3} . %patch0 -p1 +%patch1 -p1 %build sed -i '/^Icon=/ s/$/-qt/' qt/transmission-qt.desktop ++++++ transmission-hybrid-torrent-length.patch ++++++ Transmission skips hybrid torrents https://github.com/transmission/transmission/issues/1813 Index: transmission-3.00/libtransmission/variant-benc.c =================================================================== --- transmission-3.00.orig/libtransmission/variant-benc.c +++ transmission-3.00/libtransmission/variant-benc.c @@ -142,7 +142,7 @@ err: return EILSEQ; } -static tr_variant* get_node(tr_ptrArray* stack, tr_quark* key, tr_variant* top, int* err) +static tr_variant* get_node(tr_ptrArray* stack, tr_quark* key, bool *key_has_value, tr_variant* top, int* err) { tr_variant* node = NULL; @@ -158,10 +158,10 @@ static tr_variant* get_node(tr_ptrArray* { node = tr_variantListAdd(parent); } - else if (*key != 0 && tr_variantIsDict(parent)) + else if (key_has_value && tr_variantIsDict(parent)) { node = tr_variantDictAdd(parent, *key); - *key = 0; + *key_has_value = false; } else { @@ -184,6 +184,7 @@ int tr_variantParseBenc(void const* buf_ uint8_t const* bufend = bufend_in; tr_ptrArray stack = TR_PTR_ARRAY_INIT; tr_quark key = 0; + bool key_has_value = 0; tr_variantInit(top, 0); @@ -212,7 +213,7 @@ int tr_variantParseBenc(void const* buf_ buf = end; - if ((v = get_node(&stack, &key, top, &err)) != NULL) + if ((v = get_node(&stack, &key, &key_has_value, top, &err)) != NULL) { tr_variantInitInt(v, val); } @@ -223,7 +224,7 @@ int tr_variantParseBenc(void const* buf_ ++buf; - if ((v = get_node(&stack, &key, top, &err)) != NULL) + if ((v = get_node(&stack, &key, &key_has_value, top, &err)) != NULL) { tr_variantInitList(v, 0); tr_ptrArrayAppend(&stack, v); @@ -235,7 +236,7 @@ int tr_variantParseBenc(void const* buf_ ++buf; - if ((v = get_node(&stack, &key, top, &err)) != NULL) + if ((v = get_node(&stack, &key, &key_has_value, top, &err)) != NULL) { tr_variantInitDict(v, 0); tr_ptrArrayAppend(&stack, v); @@ -245,7 +246,7 @@ int tr_variantParseBenc(void const* buf_ { ++buf; - if (tr_ptrArrayEmpty(&stack) || key != 0) + if (tr_ptrArrayEmpty(&stack) || key_has_value) { err = EILSEQ; break; @@ -274,11 +275,12 @@ int tr_variantParseBenc(void const* buf_ buf = end; - if (key == 0 && !tr_ptrArrayEmpty(&stack) && tr_variantIsDict(tr_ptrArrayBack(&stack))) + if (!key_has_value && !tr_ptrArrayEmpty(&stack) && tr_variantIsDict(tr_ptrArrayBack(&stack))) { key = tr_quark_new(str, str_len); + key_has_value = true; } - else if ((v = get_node(&stack, &key, top, &err)) != NULL) + else if ((v = get_node(&stack, &key, &key_has_value, top, &err)) != NULL) { tr_variantInitStr(v, str, str_len); }