Bug#879176: transition: lz4
Hi, all. 2017-10-23 10:04 GMT+09:00 Nobuhiro Iwamatsu : > Hi, all. > > Thanks for your comment. > > 2017-10-22 1:37 GMT+09:00 Emilio Pozuelo Monfort : >> Control: tags -1 moreinfo >> >> On 20/10/17 11:13, Mattia Rizzolo wrote: >>> On Fri, Oct 20, 2017 at 12:32:06PM +0900, Nobuhiro Iwamatsu wrote: I'd like to push lz4 1.8.0 into unstable. The library packge name has not changed since the previous version. However, some API have been removed . Therefore, lz4 1.8.0 requires transition processing, >>> >>> Since, as the symbols diff you attached, this version removes symbols, >>> therefore breaking the ABI, shouldn't the SONAME be changed as well, >>> together with the package name (i.e. liblz4-1 → liblz4-2). >> >> Yes, if symbols are removed, then the ABI is broken and the library needs to >> bump the SONAME. Worst case, if upstream doesn't want to bump it, you can >> rename >> the package to e.g. liblz4-1a, with Conflicts/Breaks/Replaces against >> liblz4-1. >> The SONAME bump is preferred though so that liblz4-1 and liblz4-2 are >> co-installable, which eases both the transition and upgrades. > > I see. I undetstood. > >> >> We could ignore the fact that symbols were removed IF those symbols weren't >> part >> of the public ABI (e.g. they weren't exported in the public headers). Which >> seems to be the case here from a quick grep, but I don't know this library >> well >> enough to affirm that... > > OK, I will check the dependencies of the library and the software that uses > it. > I checked the binary and source code of packages that depend on lz4 and I confirmed that they do not affect the ABI changed this time. Therefore, we do not need to do transition. And Julian's comment, we can see that we do not need to do this. Thanks, Julian. Best regards, Nobuhiro -- Nobuhiro Iwamatsu iwamatsu at {nigauri.org / debian.org} GPG ID: 40AD1FA6
Bug#879176: transition: lz4
On Fri, Oct 20, 2017 at 12:32:06PM +0900, Nobuhiro Iwamatsu wrote: > Package: release.debian.org > Severity: normal > User: release.debian@packages.debian.org > Usertags: transition > > Dear release team, > > I'd like to push lz4 1.8.0 into unstable. > The library packge name has not changed since the previous version. However, > some API have been removed . Therefore, lz4 1.8.0 requires transition > processing, > I think. > > - > index f0ecbd4..ce4cf98 100644 > --- a/debian/liblz4-1.symbols > +++ b/debian/liblz4-1.symbols > @@ -5,6 +5,7 @@ liblz4.so.1 liblz4-1 #MINVER# > LZ4F_compressFrame@Base 0.0~r127 > LZ4F_compressFrameBound@Base 0.0~r127 > LZ4F_compressUpdate@Base 0.0~r127 > + LZ4F_compressionLevel_max@Base 1.8.0 > LZ4F_createCompressionContext@Base 0.0~r127 > LZ4F_createDecompressionContext@Base 0.0~r127 > LZ4F_decompress@Base 0.0~r127 > @@ -13,7 +14,9 @@ liblz4.so.1 liblz4-1 #MINVER# > LZ4F_freeDecompressionContext@Base 0.0~r127 > LZ4F_getErrorName@Base 0.0~r127 > LZ4F_getFrameInfo@Base 0.0~r127 > + LZ4F_getVersion@Base 1.7.5 > LZ4F_isError@Base 0.0~r127 > + LZ4F_resetDecompressionContext@Base 1.8.0 > LZ4_compress@Base 0.0~r113 > LZ4_compressBound@Base 0.0~r114 > LZ4_compressHC2@Base 0.0~r113 > @@ -37,8 +40,6 @@ liblz4.so.1 liblz4-1 #MINVER# > LZ4_compress_fast@Base 0.0~r130 > LZ4_compress_fast_continue@Base 0.0~r130 > LZ4_compress_fast_extState@Base 0.0~r130 > - LZ4_compress_fast_force@Base 0.0~r130 > - LZ4_compress_forceExtDict@Base 0.0~r119 > LZ4_compress_limitedOutput@Base 0.0~r113 > LZ4_compress_limitedOutput_continue@Base 0.0~r113 > LZ4_compress_limitedOutput_withState@Base 0.0~r113 > @@ -54,7 +55,6 @@ liblz4.so.1 liblz4-1 #MINVER# > LZ4_decompress_fast_withPrefix64k@Base 0.0~r113 > LZ4_decompress_safe@Base 0.0~r113 > LZ4_decompress_safe_continue@Base 0.0~r119 > - LZ4_decompress_safe_forceExtDict@Base 0.0~r127 > LZ4_decompress_safe_partial@Base 0.0~r113 > LZ4_decompress_safe_usingDict@Base 0.0~r119 > LZ4_decompress_safe_withPrefix64k@Base 0.0~r113 > @@ -80,15 +80,4 @@ liblz4.so.1 liblz4-1 #MINVER# > LZ4_uncompress@Base 0.0~r114 > LZ4_uncompress_unknownOutputSize@Base 0.0~r114 > LZ4_versionNumber@Base 0.0~r122 > - XXH32@Base 0.0~r127 > - XXH32_createState@Base 0.0~r127 > - XXH32_digest@Base 0.0~r127 > - XXH32_freeState@Base 0.0~r127 > - XXH32_reset@Base 0.0~r127 > - XXH32_update@Base 0.0~r127 > - XXH64@Base 0.0~r127 > - XXH64_createState@Base 0.0~r127 > - XXH64_digest@Base 0.0~r127 > - XXH64_freeState@Base 0.0~r127 > - XXH64_reset@Base 0.0~r127 > - XXH64_update@Base 0.0~r127 > + LZ4_versionString@Base 1.8.0 None of the removed symbols seem to be meant for public consumption or even had a header file. Hence they were never part of the ABI, and thus there is no ABI break, and therefore, no SONAME bump. Upstream just did not use symbol visibility to hide them from the library. -- debian developer - deb.li/jak | jak-linux.org - free software dev ubuntu core developer i speak de, en
Bug#879176: transition: lz4
Hi, all. Thanks for your comment. 2017-10-22 1:37 GMT+09:00 Emilio Pozuelo Monfort : > Control: tags -1 moreinfo > > On 20/10/17 11:13, Mattia Rizzolo wrote: >> On Fri, Oct 20, 2017 at 12:32:06PM +0900, Nobuhiro Iwamatsu wrote: >>> I'd like to push lz4 1.8.0 into unstable. >>> The library packge name has not changed since the previous version. However, >>> some API have been removed . Therefore, lz4 1.8.0 requires transition >>> processing, >> >> Since, as the symbols diff you attached, this version removes symbols, >> therefore breaking the ABI, shouldn't the SONAME be changed as well, >> together with the package name (i.e. liblz4-1 → liblz4-2). > > Yes, if symbols are removed, then the ABI is broken and the library needs to > bump the SONAME. Worst case, if upstream doesn't want to bump it, you can > rename > the package to e.g. liblz4-1a, with Conflicts/Breaks/Replaces against > liblz4-1. > The SONAME bump is preferred though so that liblz4-1 and liblz4-2 are > co-installable, which eases both the transition and upgrades. I see. I undetstood. > > We could ignore the fact that symbols were removed IF those symbols weren't > part > of the public ABI (e.g. they weren't exported in the public headers). Which > seems to be the case here from a quick grep, but I don't know this library > well > enough to affirm that... OK, I will check the dependencies of the library and the software that uses it. > > Cheers, > Emilio Best regards, Nobuhiro -- Nobuhiro Iwamatsu iwamatsu at {nigauri.org / debian.org} GPG ID: 40AD1FA6
Bug#879176: transition: lz4
Control: tags -1 moreinfo On 20/10/17 11:13, Mattia Rizzolo wrote: > On Fri, Oct 20, 2017 at 12:32:06PM +0900, Nobuhiro Iwamatsu wrote: >> I'd like to push lz4 1.8.0 into unstable. >> The library packge name has not changed since the previous version. However, >> some API have been removed . Therefore, lz4 1.8.0 requires transition >> processing, > > Since, as the symbols diff you attached, this version removes symbols, > therefore breaking the ABI, shouldn't the SONAME be changed as well, > together with the package name (i.e. liblz4-1 → liblz4-2). Yes, if symbols are removed, then the ABI is broken and the library needs to bump the SONAME. Worst case, if upstream doesn't want to bump it, you can rename the package to e.g. liblz4-1a, with Conflicts/Breaks/Replaces against liblz4-1. The SONAME bump is preferred though so that liblz4-1 and liblz4-2 are co-installable, which eases both the transition and upgrades. We could ignore the fact that symbols were removed IF those symbols weren't part of the public ABI (e.g. they weren't exported in the public headers). Which seems to be the case here from a quick grep, but I don't know this library well enough to affirm that... Cheers, Emilio
Bug#879176: transition: lz4
On Fri, Oct 20, 2017 at 12:32:06PM +0900, Nobuhiro Iwamatsu wrote: > I'd like to push lz4 1.8.0 into unstable. > The library packge name has not changed since the previous version. However, > some API have been removed . Therefore, lz4 1.8.0 requires transition > processing, Since, as the symbols diff you attached, this version removes symbols, therefore breaking the ABI, shouldn't the SONAME be changed as well, together with the package name (i.e. liblz4-1 → liblz4-2). -- regards, Mattia Rizzolo GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`. more about me: https://mapreri.org : :' : Launchpad user: https://launchpad.net/~mapreri `. `'` Debian QA page: https://qa.debian.org/developer.php?login=mattia `- signature.asc Description: PGP signature
Bug#879176: transition: lz4
Package: release.debian.org Severity: normal User: release.debian@packages.debian.org Usertags: transition Dear release team, I'd like to push lz4 1.8.0 into unstable. The library packge name has not changed since the previous version. However, some API have been removed . Therefore, lz4 1.8.0 requires transition processing, I think. - index f0ecbd4..ce4cf98 100644 --- a/debian/liblz4-1.symbols +++ b/debian/liblz4-1.symbols @@ -5,6 +5,7 @@ liblz4.so.1 liblz4-1 #MINVER# LZ4F_compressFrame@Base 0.0~r127 LZ4F_compressFrameBound@Base 0.0~r127 LZ4F_compressUpdate@Base 0.0~r127 + LZ4F_compressionLevel_max@Base 1.8.0 LZ4F_createCompressionContext@Base 0.0~r127 LZ4F_createDecompressionContext@Base 0.0~r127 LZ4F_decompress@Base 0.0~r127 @@ -13,7 +14,9 @@ liblz4.so.1 liblz4-1 #MINVER# LZ4F_freeDecompressionContext@Base 0.0~r127 LZ4F_getErrorName@Base 0.0~r127 LZ4F_getFrameInfo@Base 0.0~r127 + LZ4F_getVersion@Base 1.7.5 LZ4F_isError@Base 0.0~r127 + LZ4F_resetDecompressionContext@Base 1.8.0 LZ4_compress@Base 0.0~r113 LZ4_compressBound@Base 0.0~r114 LZ4_compressHC2@Base 0.0~r113 @@ -37,8 +40,6 @@ liblz4.so.1 liblz4-1 #MINVER# LZ4_compress_fast@Base 0.0~r130 LZ4_compress_fast_continue@Base 0.0~r130 LZ4_compress_fast_extState@Base 0.0~r130 - LZ4_compress_fast_force@Base 0.0~r130 - LZ4_compress_forceExtDict@Base 0.0~r119 LZ4_compress_limitedOutput@Base 0.0~r113 LZ4_compress_limitedOutput_continue@Base 0.0~r113 LZ4_compress_limitedOutput_withState@Base 0.0~r113 @@ -54,7 +55,6 @@ liblz4.so.1 liblz4-1 #MINVER# LZ4_decompress_fast_withPrefix64k@Base 0.0~r113 LZ4_decompress_safe@Base 0.0~r113 LZ4_decompress_safe_continue@Base 0.0~r119 - LZ4_decompress_safe_forceExtDict@Base 0.0~r127 LZ4_decompress_safe_partial@Base 0.0~r113 LZ4_decompress_safe_usingDict@Base 0.0~r119 LZ4_decompress_safe_withPrefix64k@Base 0.0~r113 @@ -80,15 +80,4 @@ liblz4.so.1 liblz4-1 #MINVER# LZ4_uncompress@Base 0.0~r114 LZ4_uncompress_unknownOutputSize@Base 0.0~r114 LZ4_versionNumber@Base 0.0~r122 - XXH32@Base 0.0~r127 - XXH32_createState@Base 0.0~r127 - XXH32_digest@Base 0.0~r127 - XXH32_freeState@Base 0.0~r127 - XXH32_reset@Base 0.0~r127 - XXH32_update@Base 0.0~r127 - XXH64@Base 0.0~r127 - XXH64_createState@Base 0.0~r127 - XXH64_digest@Base 0.0~r127 - XXH64_freeState@Base 0.0~r127 - XXH64_reset@Base 0.0~r127 - XXH64_update@Base 0.0~r127 + LZ4_versionString@Base 1.8.0 - I tested building packages that depend on lz4 1.8.0. apt Build OK borgbackup Build OK c-blosc Build OK dovecot Build OK groonga Build OK hhvm Build OK hilive Build OK imagevis3d Build OK libarchive Build OK librdkafka Build OK mtbl FTBFS, Fixed in experimental. Depend auto-mtbl transition. mysql-5.7 FTBFS, not in testing. We can ignore this. ocserv Build OK openconnect Build OK openvpn Build OK php-horde-lz4 Build OK pytables Build OK python-lz4 Build OK ros-ros-comm Build OK sambamba FTBFS, ldc issue #878837. We can ignore this. spice-gtk Build OK squashfs-tools Build OK systemd Build OK terminology Build OK spice Build OK wireshark Build OK Ben file: title = "lz4"; is_affected = .depends ~ "/liblz4-1 \(>=/"; is_good = .depends ~ "/liblz4-1 \(>= 1.8.0\)/"; is_bad = .depends ~ "/liblz4-1 \(>= 0.0~r*\)/"; -- System Information: Debian Release: buster/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 4.11.0-2-amd64 (SMP w/8 CPU cores) Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8), LANGUAGE=ja_JP.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) -- Nobuhiro Iwamatsu iwamatsu at {nigauri.org / debian.org} GPG ID: 40AD1FA6