Hi Adrian, Quoting Adrian Bunk (2022-03-07 22:42:42) > On Sun, Mar 06, 2022 at 09:25:45PM +0100, Lucas Nussbaum wrote: > >... > > I think that we should reduce the number of packages using the 1.0 format, as > > (1) format 3.0 has many advantages, as documented in > > https://wiki.debian.org/Projects/DebSrc3.0 ; (2) this contributes to > > standardization of packaging practices, lowering the bar for contributors to > > contribute to those packages. > >... > > You are not making a compelling case that these benefits clearly > outweight the substantial costs. > > Such a MBF also: > (1) causes a lot of extra work, and > (2) causes a lot of breakage because such larger packaging changes > are rarely done as careful as would be necessary > > When people are making invasive packaging changes like a dh compat bump > or change the packaging due to such a MBF we often end up with bug > reports like #1000229 where something broke due to that (empty binary > packages are among the more typical breakages). > > Unless a compelling case is made that the benefits of a MBF clearly > outweight these drawbacks, such MBFs usually have a negative benefit. you are absolutely right! So what happens if we address both of these issues by: (1) providing a patch and thus remove "a lot of extra work" being necessary (2) show that the package produces bit-by-bit identical binary packages after the change compared to before by using reproducible builds and thus prevent "a lot of breakage" I did exactly that and rebuilt all the packages found by Lucas with the following changes: $ mkdir -p debian/source $ echo '3.0 (quilt)' >debian/source/format 141 source packages produce bit-by-bit reproducible binary packages after applying this change: abootimg, acpi, amideco, asmix, aspell-el, avfs, aview, avrp, aylet, bfbtester, bindfs, cconv, cdde, cereal, citadel-client, cl-log, coco-cpp, cycfx2prog, daemontools, dbix-easy-perl, debaux, dictconv, ding-libs, dirdiff, dns323-firmware-tools, dv4l, famfamfam-flag, festlex-poslex, festvox-kallpc16k, festvox-kallpc8k, festvox-kdlpc16k, festvox-kdlpc8k, flvstreamer, fortunes-bofh-excuses, gav-themes, gcc-3.3, glbsp, glktermw, glslang, glurp, gnomediaicons, gtkterm, imaprowl, imgvtopgm, jdresolve, jtex-base, judy, kawari8, lakai, libalgorithm-dependency-perl, libanyevent-serialize-perl, libapache2-mod-log-slow, libaudio-scrobbler-perl, libbiblio-isis-perl, libcitadel, libclass-csv-perl, libclass-pluggable-perl, libcrypt-smbhash-perl, libdansguardian-perl, libdata-javascript-anon-perl, libdatapager-perl, libdata-validate-domain-perl, libdbix-dr-perl, libebook-tools-perl, libemail-foldertype-perl, libfile-searchpath-perl, libhtml-element-extended-perl, libhtml-popuptreeselect-perl, libimage-metadata-jpeg-perl, libjcode-pm-perl, libjlayer-java, libjmac-java, liblog-dispatch-filerotate-perl, libmodem-vgetty-perl, libmp4-info-perl, libnbcompat, libnet-finger-perl, libnet-proxy-perl, libropkg-perl, libtemplate-plugin-cycle-perl, libtemplate-plugin-utf8decode-perl, libtext-aligner-perl, libtext-table-perl, libtie-shadowhash-perl, libtimezonemap, libtree-multinode-perl, libunibreak, libuser-perl, libyaml-shell-perl, m16c-flash, manpages-tr, mapivi, midge, moblin-gtk-engine, mpclib3, ng-utils, nomarch, ocamlcreal, ocaml-getopt, ocaml-magic, ocaml-shout, osspsa, pandora-build, pcaputils, pdf2svg, pfqueue, phnxdeco, pidgin-awayonlock, pngmeta, pngnq, powerman, pscan, qprint, randtype, redet, ruby-bsearch, sbox-dtc, scriptaculous, sipcalc, speex, spirv-headers, src2tex, ssh-askpass-fullscreen, stx2any, sylseg-sk, tcsh, tor, ufiformat, uzbek-wordlist, vanessa-adt, vanessa-logger, watchdog, wayland, weston, xinit, xserver-xorg-video-nouveau, xserver-xorg-video-qxl, xsettings-kde, xtide-coastline, yaret, zmakebas Then for the remaining packages we apply these changes and rebuild again: $ mkdir -p debian/source $ echo '3.0 (quilt)' >debian/source/format $ echo single-debian-patch >debian/source/options An additional 223 source packages produce bit-by-bit reproducible binary packages after applying this change: 4g8, aconnectgui, aft, alsamixergui, appconfig, ascdc, asmail, awardeco, baycomusb, beav, binstats, blop, catdvi, cbmplugs, cd-circleprint, chase, chrpath, ciphersaber, cl-regex, coco-cs, coco-java, code2html, codegroup, compartment, console-cyrillic, coolmail, cpipe, crack-attack, crypt++el, cvs, dbus-sharp-glib, debfoster, dictem, dist, dmitry, dnsmasq, docbook-website, dutch, dvdtape, edict-el, eldav, fake, fortunes-it, freebirth, freetable, freetds, funnelweb-doc, fuse-umfuse-ext2, fwanalog, g2p-sk, gkrellm-reminder, gkrellm-thinkbat, gkrellm-xkb, glw, gmemusage, gplaycli, gss-ntlmssp, gwaterfall, gworldclock, hsqldb1.8.0, ifrench-gut, imgsizer, impose+, inn, intel2gas, ipv6calc, its-playback-time, jargon, jgraph, kelbt, knews, libapache-gallery-perl, libdbd-sybase-perl, libdevice-usb-pcsensor-hidtemper-perl, libdmx, libexpect-perl, libfile-chdir-perl, libfontenc, libformula, libfs, libglu, libgraphics-colornames-perl, libgraphics-colorobject-perl, libice, libpciaccess, libperlmenu-perl, libpthread-stubs, libromana-perligata-perl, libsendmail-pmilter-perl, libsm, libtext-chasen-perl, libtext-unaccent-perl, libunity, libx11, libxau, libxaw, libxcb, libxcomposite, libxdmcp, libxext, libxfixes, libxfont, libxi, libxinerama, libxkbfile, libxml-dumper-perl, libxml-rss-feed-perl, libxmu, libxpm, libxpresent, libxrandr, libxrender, libxshmfence, libxss, libxt, libxv, libxvmc, libxxf86dga, libxxf86vm, lice, linklint, loadwatch, logtool, lsmbox, mailagent, make-dfsg, makepasswd, makepatch, makexvpics, markdown, mdm, mesa-demos, mhonarc, mrtg-ping-probe, msr-tools, mtree-netbsd, nini, nlkt, norwegian, nstreams, openoffice.org-en-au, opensp, openuniverse, pccts, pcre2, pgreplay, pixelize, pkg-config, pmw, postmark, prototypejs, proxsmtp, psgml, pytest-multihost, pytest-sourceorder, python-hglib, python-pam, qwo, regionset, rsbackup, sanitizer, searchandrescue, searchandrescue-data, sgrep, sreview, sunxi-tools, svgtune, tablix2, tetrinetx, tkcvs, tolua, transfermii, tua, tuxtype, twm, umview, urlview, vile, vm, watchcatd, wavesurfer, wily, wm-icons, wmtemp, xauth, xcb-proto, xcolors, xcursor-themes, xdm, xfaces, xft, xinput, xjdic, xkeyboard-config, xless, xmix, xorg-docs, xorgproto, xorg-server, xorg-sgml-doctools, xringd, xserver-xorg-input-aiptek, xserver-xorg-input-evdev, xserver-xorg-input-libinput, xserver-xorg-video-amdgpu, xserver-xorg-video-ati, xserver-xorg-video-cirrus, xserver-xorg-video-dummy, xserver-xorg-video-fbdev, xserver-xorg-video-intel, xserver-xorg-video-mga, xserver-xorg-video-neomagic, xserver-xorg-video-openchrome, xserver-xorg-video-r128, xserver-xorg-video-savage, xserver-xorg-video-siliconmotion, xserver-xorg-video-sisusb, xserver-xorg-video-tdfx, xserver-xorg-video-vesa, xserver-xorg-video-vmware, xtrans, yapps2, zfsnap So now we have 364 source packages for which we have a patch and for which we can show that this patch does not change the build output. Do you agree that with those two properties, the advantages of the 3.0 (quilt) format are sufficient such that the change shall be implemented at least for those 364? Thanks! cheers, josch
Attachment:
signature.asc
Description: signature