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

Re: Request for TC to rule on a course of action for supporting build-arch



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.

Attachment: signature.asc
Description: Digital signature


Reply to: