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

