On Sat, Jun 11, 2011 at 12:19:47PM +0100, Roger Leigh wrote: > On Sat, Jun 11, 2011 at 01:04:00AM -0700, Steve Langasek wrote: > > Hi Roger, > > > > On Sat, Jun 11, 2011 at 02:02:52AM +0100, Roger Leigh wrote: > > > On Tue, Jun 07, 2011 at 11:14:14AM +0200, Tollef Fog Heen wrote: > > > > ]] Steve Langasek > > > Summarised: > > > - autodetection with "make -qn" breaks few, if any packages. > > > > This is one of the key questions, but without a very clear answer. Which of > > the rows in your output correspond to packages that *may* have been broken > > by autodetection? I'm not sure how to aggregate the rows in the first query > > to get this answer, and the rows in the second query all seem to be keyed on > > build status when building with build-arch unconditionally. What is > > interesting to know when evaluating the autodetection solution is if there > > are any regressions in package buildability when comparing *only* to the > > current use of 'debian/rules build', and I don't get that from these tables. > > That should be in the last table, though it might not be clear. > Here we are comparing whether autodetection or unconditional use > succeed or fail compared with current successful use. Here we > ignore all packages which are currently unbuildable with current > dpkg-buildpackage.
I've now completed the rebuilds with a static archive, and the results are below. Explanations for what everything is are the same as the previous mail, so I've not duplicated them here. There's a discrepancy of 1-2 packages between the different rebuilds (one in arch detection, one in apt update), so it's much more consistent than the previous rebuild. Regards, Roger SELECT strategy, COUNT (*) FROM builds GROUP BY strategy ORDER BY strategy; ┌───────────────┬───────┐ │ strategy │ count │ ├───────────────┼───────┤ │ autodetect │ 16087 │ │ unconditional │ 16087 │ │ unpatched │ 16087 │ └───────────────┴───────┘ (3 rows) SELECT b.strategy, b.status, b.failstage, b.found_missing AS found, b.used_missing AS used, COUNT(*) FROM builds AS b GROUP by b.strategy,b.status,b.failstage,b.found_missing,b.used_missing ORDER BY strategy,status,failstage,b.found_missing,b.used_missing; found=build-arch target autodetected used=build-arch target used when missing (f is good, t is bad) Summary of all builds: ┌───────────────┬────────────┬────────────────┬───────┬──────┬───────┐ │ strategy │ status │ failstage │ found │ used │ count │ ├───────────────┼────────────┼────────────────┼───────┼──────┼───────┤ │ autodetect │ attempted │ build │ f │ f │ 362 │ │ autodetect │ attempted │ build │ t │ f │ 255 │ │ autodetect │ failed │ install-deps │ │ f │ 151 │ │ autodetect │ failed │ unpack │ │ f │ 3 │ │ autodetect │ skipped │ arch-check │ │ f │ 6990 │ │ autodetect │ successful │ │ f │ f │ 4542 │⁵ │ autodetect │ successful │ │ t │ f │ 3784 │⁴ ├───────────────┼────────────┼────────────────┼───────┼──────┼───────┤ │ unconditional │ attempted │ build │ │ f │ 372 │ │ unconditional │ attempted │ build │ │ t │ 3990 │³ │ unconditional │ failed │ apt-get-update │ │ f │ 1 │ │ unconditional │ failed │ init │ │ f │ 1 │ │ unconditional │ failed │ install-deps │ │ f │ 151 │ │ unconditional │ failed │ unpack │ │ f │ 3 │ │ unconditional │ skipped │ arch-check │ │ f │ 6990 │ │ unconditional │ successful │ │ │ f │ 4579 │² ├───────────────┼────────────┼────────────────┼───────┼──────┼───────┤ │ unpatched │ attempted │ build │ │ f │ 555 │ │ unpatched │ failed │ apt-get-update │ │ f │ 1 │ │ unpatched │ failed │ init │ │ f │ 1 │ │ unpatched │ failed │ install-deps │ │ f │ 152 │ │ unpatched │ failed │ unpack │ │ f │ 3 │ │ unpatched │ skipped │ arch-check │ │ f │ 6989 │ │ unpatched │ successful │ │ │ f │ 8386 │¹ └───────────────┴────────────┴────────────────┴───────┴──────┴───────┘ ¹Without the patch, all builds use the build target ²Always using the build-arch target, only packages with build-arch (or dh/cdbs users) build successfully ³Failed builds are mainly due to lack of a build-arch target ⁴Autodetected presence of build-arch and build using build-arch ⁵Failed autodetection of build-arch; build used instead CREATE VIEW orig AS SELECT package,version,status,failstage,found_missing,used_missing FROM builds WHERE (strategy='unpatched'); CREATE VIEW auto AS SELECT package,version,status,failstage,found_missing,used_missing FROM builds WHERE (strategy='autodetect'); CREATE VIEW break AS SELECT package,version,status,failstage,found_missing,used_missing FROM builds WHERE (strategy='unconditional'); SELECT a.status AS status, a.found_missing AS found_missing, a.used_missing as used_missing, COUNT(*) FROM orig AS o INNER JOIN auto AS a ON o.package=a.package AND o.version=a.version WHERE o.status='successful' AND (a.status='successful' OR (a.status='attempted' AND a.failstage='build')) GROUP BY a.status, a.found_missing, a.used_missing ORDER BY a.status, a.found_missing, a.used_missing; Summary of autodetection: ┌────────────┬───────────────┬──────────────┬───────┐ │ status │ found_missing │ used_missing │ count │ ├────────────┼───────────────┼──────────────┼───────┤ │ attempted │ f │ f │ 65 │ │ attempted │ t │ f │ 4 │ │ successful │ f │ f │ 4535 │ │ successful │ t │ f │ 3781 │ └────────────┴───────────────┴──────────────┴───────┘ (4 rows) SELECT b.status AS status, b.found_missing AS found_missing, b.used_missing as used_missing, COUNT(*) FROM orig AS o INNER JOIN break AS b ON o.package=b.package AND o.version=b.version WHERE o.status='successful' AND (b.status='successful' OR (b.status='attempted' AND b.failstage='build')) GROUP BY b.status, b.found_missing, b.used_missing ORDER BY b.status, b.found_missing, b.used_missing; Summary of unconditional build-arch use: ┌────────────┬───────────────┬──────────────┬───────┐ │ status │ found_missing │ used_missing │ count │ ├────────────┼───────────────┼──────────────┼───────┤ │ attempted │ │ f │ 70 │ │ attempted │ │ t │ 3741 │ │ successful │ │ f │ 4572 │ └────────────┴───────────────┴──────────────┴───────┘ (3 rows) SELECT a.status AS ad_status, a.found_missing AS ad_missing, a.used_missing as ad_used, b.status AS uc_status, b.used_missing AS uc_used, COUNT(*) FROM orig AS o INNER JOIN auto AS a ON o.package=a.package AND o.version=a.version INNER JOIN break AS b ON o.package=b.package AND o.version=b.version WHERE o.status='successful' AND (a.status='successful' OR (a.status='attempted' AND a.failstage='build')) AND (b.status ='successful' OR (b.status='attempted' AND b.failstage='build')) GROUP BY ad_status, ad_missing, ad_used, uc_status, uc_used ORDER BY ad_status, uc_status, ad_missing, ad_used, uc_used; Differences between autodetection and unconditional use (only looking where build was successful for unpatched dpkg using build rule only) ad=autodetect, uc=unconditional ┌────────────┬────────────┬─────────┬────────────┬─────────┬───────┐ │ ad_status │ ad_missing │ ad_used │ uc_status │ uc_used │ count │ ├────────────┼────────────┼─────────┼────────────┼─────────┼───────┤ │ attempted │ f │ f │ attempted │ f │ 65 │ 1 │ attempted │ t │ f │ attempted │ t │ 4 │ 2 ├────────────┼────────────┼─────────┼────────────┼─────────┼───────┤ │ successful │ f │ f │ attempted │ f │ 3 │ 3 │ successful │ t │ f │ attempted │ f │ 2 │ 4 │ successful │ t │ f │ attempted │ t │ 3737 │ 5 ├────────────┼────────────┼─────────┼────────────┼─────────┼───────┤ │ successful │ f │ f │ successful │ f │ 4531 │ 6 │ successful │ t │ f │ successful │ f │ 40 │ 7 └────────────┴────────────┴─────────┴────────────┴─────────┴───────┘ 1) Failed to build for both (build-arch present) SELECT o.package || '_' || o.version AS package FROM orig AS o INNER JOIN auto AS a ON o.package=a.package AND o.version=a.version INNER JOIN break AS b ON o.package=b.package AND o.version=b.version WHERE o.status='successful' AND a.status='attempted' AND a.found_missing=false AND a.used_missing=false AND b.status ='attempted' AND b.used_missing=false; ┌───────────────────────────┐ │ package │ ├───────────────────────────┤ │ argyll_1.1.1-2 │ │ atlas_3.8.4-3 │ │ avbin_7-1.1 │ │ bmf_0.9.4-5 │ │ bsdgames_2.17-19 │ │ bsdiff_4.3-10 │ │ cameleon_1.9.20-1 │ │ camlidl_1.05-13 │ │ camomile_0.7.2-2 │ │ caret_5.6.4~dfsg.1-1 │ │ cherokee_1.2.2-2 │ │ c-icap_1:0.1.5-1 │ │ coolkey_1.1.0-8 │ │ distcc_3.1-4 │ │ drbd8_2:8.3.9-1 │ │ dsdp_5.8-8 │ │ emoslib_000380+dfsg-3 │ │ espeakedit_1.43.03-1 │ │ eterm_0.9.5-2 │ │ etherpuppet_0.3-1 │ │ euler_1.61.0-8 │ │ fbcat_0.2-2 │ │ fbreader_0.12.10dfsg-3 │ │ feel++_0.91.0~svn7079-1 │ │ freeradius_2.1.10+dfsg-3 │ │ garlic_1.6-1 │ │ gelemental_1.2.0-6 │ │ gnustep-back_0.18.0-3 │ │ gurlchecker_0.13.1-2 │ │ htp_1.16-3 │ │ hyperestraier_1.4.13-3 │ │ ilmbase_1.0.1-3 │ │ imlib2_1.4.4-1 │ │ infon_0~r198-3 │ │ iptables_1.4.10-1 │ │ jlint_3.0-4.4 │ │ libiptcdata_1.0.4-1 │ │ libwebp_0.1.2-1 │ │ libxml2_2.7.8.dfsg-3 │ │ libxslt_1.1.26-7 │ │ loadlin_1.6e-1 │ │ mp3splt-gtk_0.5.6-1.2 │ │ mtink_1.0.16-3 │ │ mumble_1.2.3-2 │ │ ocamlgraph_1.7-1 │ │ ocaml-libvirt_0.6.1.0-2 │ │ openexr_1.6.1-4.1 │ │ openr2_1.3.0-2 │ │ plplot_5.9.5-4 │ │ polybori_0.5~rc1-2.1 │ │ python-prctl_1.1.1-1 │ │ qmk-groundstation_1.0.1-2 │ │ rpm_4.9.0-5 │ │ scmxx_0.9.0-2.2 │ │ suricata_1.0.3-1 │ │ synopsis_0.12-7 │ │ taglib_1.7-1 │ │ tnef_1.4.8-1 │ │ ttyload_0.5-4 │ │ unbound_1.4.10-1 │ │ weechat_0.3.5-1 │ │ wkhtmltopdf_0.9.9-3 │ │ wmbattery_2.40 │ │ xml2_0.4-3 │ │ yasr_0.6.9-1 │ └───────────────────────────┘ (65 rows) 2) Failed to build for both (build-arch missing) ┌───────────────────────────────┐ │ package │ ├───────────────────────────────┤ │ diffutils_1:3.0-1 │ │ libgtk2-imageview-perl_0.05-1 │ │ libgtk2-notify-perl_0.05-1 │ │ xawtv_3.95.dfsg.1-8.2 │ └───────────────────────────────┘ (4 rows) 3) Built only with autodetection ┌─────────────────────┐ │ package │ ├─────────────────────┤ │ ed_1.4-3 │ │ gbrowse_2.26~dfsg-3 │ │ skanlite_0.7-2 │ └─────────────────────┘ (3 rows) 4) Built only with autodetection ┌──────────────────────┐ │ package │ ├──────────────────────┤ │ kicad_0.0.20110507-1 │ │ leave_1.12-2 │ └──────────────────────┘ (2 rows) 5) Built only with autodetection (build-arch missing) [expected] 6) Successful builds [expected] 7) Failed autodetection ┌───────────────────────────────────────────────┐ │ package │ ├───────────────────────────────────────────────┤ │ akonadi_1.5.3-2 │ │ cliquer_1.21-1 │ │ coq_8.3.pl2+dfsg-1 │ │ flog_1.8-3 │ │ fonttools_2.3-1 │ │ isomd5sum_1:1.0.5-2 │ │ kde4libs_4:4.6.3-3 │ │ kdeaccessibility_4:4.6.3-1 │ │ kdeadmin_4:4.6.3-1 │ │ kdeartwork_4:4.6.3-2 │ │ kdebase_4:4.6.3-1 │ │ kdebase-runtime_4:4.6.3-1 │ │ kdebase-workspace_4:4.6.3-1 │ │ kdeedu_4:4.6.3-2 │ │ kdegames_4:4.6.3-1 │ │ kdegraphics_4:4.6.3-1 │ │ kdemultimedia_4:4.6.3-1 │ │ kdenetwork_4:4.6.3-1 │ │ kdepim_4:4.4.11.1+l10n-1 │ │ kdepimlibs_4:4.6.3-1 │ │ kdepim-runtime_4:4.4.11.1-2 │ │ kdeplasma-addons_4:4.6.3-1 │ │ kdesdk_4:4.6.3-1 │ │ kdetoys_4:4.6.3-1 │ │ kdeutils_4:4.6.3-1 │ │ kdewebdev_4:4.6.3-1 │ │ libtommath_0.42.0-1 │ │ mg_20110120-1 │ │ phonon_4:4.6.0really4.5.0-3 │ │ phonon-backend-gstreamer_4:4.6.0really4.5.1-1 │ │ phonon-backend-vlc_0.4.0-1 │ │ phonon-backend-xine_4:4.6.0really4.4.4-3 │ │ pkg-kde-tools_0.14.0 │ │ polkit-kde-1_0.99.0-2 │ │ polkit-qt-1_0.99.0-3 │ │ postpone_0.1 │ │ qca2_2.0.3-1 │ │ qca2-plugin-ossl_2.0.0~beta3-1 │ │ qimageblitz_1:0.0.6-3 │ │ spring_0.82.7.1+dfsg1-3 │ └───────────────────────────────────────────────┘ (40 rows) -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/ `- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
signature.asc
Description: Digital signature