** Description changed: ## FFE ## - - THIS IS A WIP [Rationale] pigz currently links against zopfli. However, the zopfli upstream project is archived and not moving for a while, the only use case for zoplfli in pigz is a mode with slower but dense compression. In order to promote pigz to main and ensure it can be secured for the next Ubuntu LTS versions, we want to stop linking it against zopfli. [ Scope ] The idea is to compile pigz with the NOZOPFLI option, effectively dropping the linkage against libzopfli (https://code.launchpad.net/~athos/ubuntu/+source/pigz/+git/pigz/+merge/511331). This will get pigz to no longer have the -11 option, which triggers the zopfli compression. It will also drop the following options: -F -I -J -O, which are all related to the zopfli -11 compression level. + To avoid dealing with several regressions at this point, we add a patch + to pigz to make all dropped options no-ops with a deprecation warning + thrown to stderr. + See the "Other info" section in the end of this report for a reverse dependencies impact analysis. $ seeded-in-ubuntu pigz pigz's binaries are not seeded. - [ Testing ] * Smoke test: - - PPA: https://launchpad.net/~athos/+archive/ubuntu/pigz-zopfli/+packages - - Build: https://launchpadlibrarian.net/876960694/buildlog_ubuntu-stonking-amd64.pigz_2.8-2ubuntu2_BUILDING.txt.gz + - PPA: https://launchpad.net/~athos/+archive/ubuntu/pigz/+packages + - Build: PENDING autopkgtests pass locally. The package installs and upgrades fine as well. See the "Other info" section below for how it affects other packages. [ Other Info ] Why doing this this late in this cycle? This was just identified during the docker.io-app MIR process. We can wait for the next cycle if this is too disruptive, but the earlier we gather user feedback and identify issues, the more prepared we will be for the next LTS release (in case we decide to revert the change and take over upstream maintenance of the dead zopfli package). - The proposed change will remove the "-11" option from the pigz CLI - binary. This will affect any package (and users) calling pigz with that - option to use zopfli denser compression. + Dropping all the zopfli options from the CLI would affect any packages + (and users) calling pigz with that option to use zopfli denser + compression. Deprecating them and falling back to -9 should reduce the + impact for now. A quick search in debian's codesearch (https://codesearch.debian.net/search?q=.*pigz.*-11.*&literal=0) shows that some source packages have calls to "pigz -11" during their build - process in debian/rules. This means that these packages will FTBFS after - this change lands. The same search also shows a few other packages have - runtime calls to `pigz -11`, which may get autopkgtests failing or - result in runtime errors. - - The solution here is to patch all these packages to allow using pigz -9 - in case -11 is not available. These patches should be forwarded to - Debian to allow us to reduce our technical debt due to this change. + process in debian/rules. This means that these packages would FTBFS + without the deprecation patch. The same search also shows a few other + packages have runtime calls to `pigz -11`, which could get autopkgtests + failing or runtime errors. The deprecation patch should also reduce the + impact here. + + Our solution is to fallback to pigz -9 whenever -11 is used. These + patches should be forwarded to Debian to allow us to reduce our + technical debt due to this change. The following packages have the pigz -11 call in d/rules as per the codesearch reference: - node-jquery - underscore - node-terser - roundcube - leaflet - lunr - janus - backbone - roundcube-plugin-contextmenu - libjs-bootbox - uglify-js - node-flatted - json-js - roundcube-skin-classic - roundcube-plugin-authres-status - roundcube-plugin-html5-notifier - roundcube-plugin-thunderbird-labels - roundcube-plugin-keyboard-shortcuts - roundcube-plugin-sauserprefs - leaflet-markercluster - libjs-toastr - libjs-qunit - node-functional-red-black-tree - node-blueimp-md5 - roundcube-skin-larry - roundcube-plugin-message-highlight - roundcube-plugin-compose-addressbook - libjs-webrtc-adapter - node-n3 - libjs-sdp - node-trust-json-document The following packages have the pigz -11 call in the upstream code (potentially runtime) as per the codesearch reference: - mupdf - vips Finally, these are all reverse dependencies (i.e., potentially affected packages) for pigz as per checkrdeps: # The following should have builds tested: -- stonking/main build deps on pigz: node-jquery pigz underscore pigz -- stonking/universe build deps on pigz: backbone pigz janus pigz json-js pigz leaflet pigz leaflet-markercluster pigz libjs-bootbox pigz libjs-qunit pigz libjs-sdp pigz libjs-toastr pigz libjs-webrtc-adapter pigz node-blueimp-md5 pigz node-flatted pigz node-functional-red-black-tree pigz node-lunr pigz node-n3 pigz node-terser pigz node-trust-json-document pigz python-xopen pigz roundcube pigz roundcube-plugin-authres-status pigz roundcube-plugin-compose-addressbook pigz roundcube-plugin-contextmenu pigz roundcube-plugin-html5-notifier pigz roundcube-plugin-keyboard-shortcuts pigz roundcube-plugin-message-highlight pigz roundcube-plugin-sauserprefs pigz roundcube-plugin-thunderbird-labels pigz roundcube-skin-classic pigz roundcube-skin-larry pigz uglify-js pigz xphyle pigz # The following should have autopkgtest runs -- stonking/universe amd64 deps on pigz: awit-dbackup (r) [all] pigz bbmap (r) [all] pigz clonezilla [all] pigz dcm2niix (r) pigz debian-cd [all] pigz docker.io (r) pigz kameleon (r) [all] pigz kup-server (r) [all] pigz mricron (r) pigz python3-cutadapt pigz python3-xopen [all] pigz q2-cutadapt pigz shovill pigz -- stonking/main autopkgtest deps on pigz: node-jquery pigz underscore pigz -- stonking/universe autopkgtest deps on pigz: backbone pigz janus pigz json-js pigz leaflet pigz leaflet-markercluster pigz libjs-bootbox pigz libjs-qunit pigz libjs-sdp pigz libjs-toastr pigz libjs-webrtc-adapter pigz node-blueimp-md5 pigz node-flatted pigz node-functional-red-black-tree pigz node-lunr pigz node-n3 pigz node-terser pigz node-trust-json-document pigz python-xopen pigz roundcube pigz roundcube-plugin-authres-status pigz roundcube-plugin-compose-addressbook pigz roundcube-plugin-contextmenu pigz roundcube-plugin-html5-notifier pigz roundcube-plugin-keyboard-shortcuts pigz roundcube-plugin-message-highlight pigz roundcube-plugin-sauserprefs pigz roundcube-plugin-thunderbird-labels pigz roundcube-skin-classic pigz roundcube-skin-larry pigz uglify-js pigz xphyle pigz + + For the above, any runtime dependencies and dep8 dependencies will be + tested through autopkgtest (if available) during the migration process. + + For the ones that B-D on pigz, we will run local no change rebuilds to + make sure no regressions are introduced, and fix them as appropriate + whenever a regression is found.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2167335 Title: [FFe] do not use zopfli for compression To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pigz/+bug/2167335/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
