Control: tags -1 pending

Hi Peter, Johannes,

I have been preparing a new upload of freetype to Debian unstable, and was
about to include these patches.  I am very much a fan of bootstrappability
of the archive, and would like to help move this forward.

However, I have to say that it's been very difficult for me to independently
verify that these are correct changes that will facilitate cycle-breaking
and bootstrapping.

In bug #752270, Peter refers to the "Feedback arc set" section of
http://bootstrap.debian.net/amd64/ .  Reviewing the information at
<http://bootstrap.debian.net/amd64/#fas>, I find no references to freetype
at present.

I do find freetype included in the full listing for SCC #1 under "Amount of
Cycles through Edges", but this only shows that freetype has
build-dependencies on docbook-to-man and libx11-dev (which I know), it
doesn't show me how these dependencies are involved in a cycle.

The docbook-to-man cycle, I'm able to work out for myself manually: freetype
build-depends docbook-to-man depends opensp build-depends poppler-utils
build-depends freetype.  This seems to be a false cycle because
docbook-to-man depends on sp | opensp, and sp does not build-depend on
freetype.

The libx11-dev cycle, I do not see where the cycle is when I eyeball the
dependencies.  So I was hoping to easily be able to find this information in
the linked bootstrap reports.

Peter then links to <http://bootstrap.debian.net/source/freetype.html>. 
This page doesn't provide much information at all - just a table of versions
and architectures (is an x good or bad or does it just mean information is
available?) and a link for version 2.5.2-4.

If I follow that link, I see it takes me to
<http://bootstrap.debian.net/source/%5B%5Bu'gnat-4.6',%20u's390x',%20u'4.6.4-4'%5D%5D_2.5.2-4.html>.
 
This is obviously incorrect.

If I manually correct the URL to
<http://bootstrap.debian.net/source/freetype_2.5.2-4.html>, I get a page
that includes a list of "cycles", but only shows 10 of these by default (out
of 236).  And the first 10 cycles it lists are all about opensp again.

Finally, after asking for 100 rows at a time, I start to see some relevant
information which starts to make sense:

  src:freetype ⇢ libx11-dev → src:libxdmcp ⇢ w3m → src:w3m ⇢ libimlib2-dev
  src:freetype ⇢ libx11-dev → src:libx11 ⇢ w3m → src:gpm ⇢ texlive-base
  src:freetype ⇢ libx11-dev → src:libx11 ⇢ w3m → src:w3m ⇢ libimlib2-dev
  src:freetype ⇢ libx11-dev → src:libxcb ⇢ python-xcbgen → src:python2.7 ⇢ 
blt-dev
  src:freetype ⇢ libx11-dev → src:libx11 ⇢ w3m → src:w3m ⇢ libimlib2-dev
  src:freetype ⇢ libx11-dev → src:libxcb ⇢ python-xcbgen → src:python2.7 ⇢ 
tk-dev
  src:freetype ⇢ libx11-dev → src:libxcb ⇢ python → src:python2.7 ⇢ tk-dev
  src:freetype ⇢ libx11-dev → src:libx11 ⇢ w3m → src:gpm ⇢ texlive-base
  src:freetype ⇢ libx11-dev → src:libxcb ⇢ python → src:python2.7 ⇢ xvfb

The report then starts to show some repetition, with cycles that have been
listed previously shown again but listed separately for different
architectures for no visible reason.

Some of these cycles make sense.  libimlib2-dev, I recognize as a
reverse-dependency of libfreetype6-dev.  But many of the others do not.  It
appears that even here, the information about the cycle has been *truncated*
to only show the first 6 packages in the cycle.  texlive-base, blt-dev,
tk-dev, xvfb do not depend on freetype.  So it's very difficult to interpret
the provided information to understand where the cycles are, to understand
why freetype is the right place to make the change.

In the end, I have satisfied myself (by manually testing with apt) that
enough of these package cycles are real that yes, freetype should have a
build profile, and I will therefore be applying these patches in my upload.
However, as someone who does care about bootstrappability, I wanted to give
you this feedback about the difficulty I had finding the pertinent
information.

As I commented from the audience during the bootstrapping talk at this
year's DebConf, I think success in making Debian bootstrappable will
heavily depend on being able to surface the required work in a way that is
parallelizable across all Debian maintainers.  I think this experience shows
just how far we are from that currently, if it takes me this much effort to
confirm the cycles when someone else has /already/ done the work of
identifying it and supplying a patch.

Please let me know if there is some other forum where you would like me to
raise these concerns.  I would very much like to see this cycle information
exposed in a way that I can dive into it.


BTW, along the way I made a few changes to the provided patch to
debian/rules.

- Your patch excludes the ft2demos from the unpack and patch targets based
  on the build profile.  I disagree with this; I realize that it makes the
  build faster and this might be useful during the critical path of a
  bootstrap, but I think the unpack+patch stages of the build should always
  behave consistently and that this is more important than the optimization.
  So I omitted these parts of the patch.

- Your patch keys on the value of the DEB_BUILD_PROFILES environment
  variable to determine whether to try to build ft2demos.  You may notice
  that elsewhere in debian/rules, I am already using dh_listpackages to omit
  various packages if they (for whatever reason) are not being built.
  I've therefore changed debian/rules to use this consistently, as in:

ifneq (,$(filter $(demospkg), $(shell dh_listpackages)))
        dh_auto_build -D $(ft2demos_u) -- TOP_DIR=../$(freetype_u) \
                OBJ_DIR=../$(freetype_u)/objs
endif

  This relies on the behavior of debhelper to properly omit the package from
  dh_listpackages when building with a build profile.  However, we
  build-depend on that version of debhelper anyway for debian/control syntax
  compatibility, so I don't think that's an obstacle.


Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slanga...@ubuntu.com                                     vor...@debian.org

Attachment: signature.asc
Description: Digital signature

Reply via email to