[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: proposed MBF: packages still using source format 1.0



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


Reply to: