On Sat, Aug 05 2023, Lucas Nussbaum wrote:

> I wonder what we should do, because 5000+ failing packages is a lot...

Let's think about the level of trouble we cause trying to tackle
something that has clearly not bothered anyone for years.

>From the packaging side, there are many reasons that proper clean
targets can be difficult:

- Upstream wants to ship things that may get modified during build.  Ie,
  autoconf/automake replaces files they ship because they want it to
  work "out of the box" in some fashion.  Another example is
  documentation; upstream may ship built docs even though we rebuild it
  for completeness.

- Upstream's clean target is insufficient.

- Our own build processes make modifications.  (eg, quilt; yes I know it
  is supposed to be cleaned up but this is not always perfect)

- It is difficult to prepare a proper clean target, because build
  artifacts may lack predictable names (eg, have the architecture
  embedded in them)

Now, what are the possible options for dealing with this?

- Invest a lot of time writing bespoke scripts to handle it

- Copy the upstream source to a temp directory and build from there.
  (Some packages already do this; if we are going to hack in this
  direction all over, why not just do it by default everywhere?)

- Repack the upstream source to exclude files we generate.  But this has
  a ton of downfalls, including breaking the trust chain from upstream
  to us.  It should be a last resort (eg, making the tarball DFSG-free).

- Just tell people to run "git reset --hard HEAD; git clean -xfd"

Personally, I'm a volunteer.  I have X amount of time to devote to
Debian.   I work on Debian because I enjoy it.  It is satisfying!

I maintain packages written in at least 6 different languages.  Some
packages are sleek and modern tools.  One I am about to take over traces
its codebase to 1981 and the upstream author has an explicit goal that
it still builds on operating systems that were discontinued in the
mid-80s.

I have an alias (not just for Debian) that does "git reset --hard HEAD;
git clean -xfd".

Spending hours to make a clean target I have no need for, already have
an equivalent of, and has no real purpose, drains my enthusiasm and
steals time that I could otherwise be using doing more high-value work
like fixing bugs.

Let's focus our energies on things that matter more.

> Should we give up on requiring a 'clean' target that works? After all,
> when 17% of packages are failing, it means that many maintainers don't
> depend on it in their workflow.

Yes.

- John

Reply via email to