Re: Is distro-tracker accessible by some sort of API?

2020-01-17 Thread Paul Wise
On Fri, Jan 17, 2020 at 1:11 PM Roberto C. Sánchez wrote:

> My initial thought was to query the tracker for a given package to
> determine its availability.
>
> does source package 'foo' exist in release 'bar'?

I don't know the context for this question but if command-line is
enough then just running `rmadison foo`, `rmadison -u debian foo` or
`rmadison -u udd foo` should work.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise



Re: Is distro-tracker accessible by some sort of API?

2020-01-17 Thread Paul Wise
On Fri, Jan 17, 2020 at 3:18 PM Stuart Prescott wrote:

> FWIW there are python bindings and CLI tools for UDD floating around ... I
> really should package them (and having people interested in them would be
> good motivation for that)

I think it would be great to have those in devscripts, please also
mention them in DevNews once they get accepted into the archive.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise



Re: https://tracker.debian.org/pkg/dballe

2020-01-17 Thread Paul Wise
On Fri, Jan 17, 2020 at 6:18 PM Richard Laager wrote:

> If I'm following correctly: The packager would use rustcc >= y+3 (in
> practice, likely rustcc y+5) to locally build rustcc y+5 and then do a
> binary upload. But if dak (or whatever, I'm not so familiar with the
> server side here) throws away the binary, then we're sunk. So there
> needs to be a way to note that the binary needs to be kept.
>
> Assuming I'm on the right track, here are a couple of questions:

Right.

> In such a case, would the source package have a Build-Depends of >= y+3?
> It seems like it would.

Presumably, but it is definitely possible the maintainer wouldn't know
or wouldn't record which version was needed.

> Could that be the way to indicate a bootstrap upload? In other words, if
> the package has a Build-Depends on one of the binary packages it
> produces that is _not_ satisfied in the suite it's being uploaded to but
> is satisfied by this upload, then it's a bootstrap upload, and the
> binaries should be kept. This would avoiding adding a new field for this
> and would ensure the Build-Depends are set correctly in bootstrapping
> scenarios.

At this time the workflow is like this: ftp-master.d.o accepts or
rejects the source/binaries, then it passes the source to buildd.d.o,
which checks for build-dep installability and passes the source to the
buildds. I think for your proposal to work the build-dep
installability checks would also have to move to ftp-master.d.o.

> Regardless of how the "keep the binaries" flag is implemented... should
> the uploaded binary be published, or should the package be rebuilt? I
> think I'd argue for the latter. The uploaded binary package should be
> installed on the buildd and then the package should be rebuilt from
> source, with _that_ result being put into the archive. This doesn't
> protect against the trojaned-compiler problem, but it does at least
> ensure that the package builds from source.

I definitely agree that all bootstrap binaries, whether built
automatically by the buildds (as proposed by Josch) or hacky
maintainer-built binaries, should get rebuilt on the buildds. We
already did that in the past when importing new architecture packages
from ftp.ports.d.o to ftp-master.d.o.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise



Re: https://tracker.debian.org/pkg/dballe

2020-01-17 Thread Paul Wise
On Fri, 2020-01-17 at 03:45 -0500, Sam Hartman wrote:

> Bootstrap uploads of compilers etc are actually more common than I
> thought before I started following debian-release.

The important part of my statement is that they are special, rather
than that they are rare.

> They are common enough that requiring interactions from ftpmaster and/or
> release team would make being a developer of such packages suck
> significantly more.

Hmm, OK. I can't recall seeing any recently on debian-release.

> If we throw away binaries by default, I do believe we need a mechanism
> for maintainers to signal that this is a bootstrap upload.

My proposed mechanism is that when the buildds cannot do the job due to
need for a bootstrap process, the maintainer should do a binary-only
build (using whatever ugly hacks are needed), dak should import that
into a special part of the archive for bootstrapping packages that need
that and then tell the buildds to do a new non-bootstrap build but
using the bootstrap archive. If bikesheds become a thing, we could even
have one bootstrap archive per instance of a bootstrap being needed.

Like Josch says, where possible, we also want the buildds to be capable
of doing automated bootstrap builds that are enabled by automatic or
maintainer-selected addition of bootstrap related build profiles.

Until the special bootstrap archive and automated bootstrap builds are
implemented, we could of course just import the maintainer bootstrap
binaries into the main archive with a flag saying they need to be
rebuilt before they can enter testing, and then do binNMUs.

ISTR we have done similar things when importing whole architectures to
ftp-master so I think some parts or flags for some of these things
might already be in place.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise


signature.asc
Description: This is a digitally signed message part


Bug#949198: (no subject)

2020-01-17 Thread Thiago Andrade Marques
Subject: ITP: parsero -- Audit tool for robots.txt of a site
Package: wnpp
Owner: Thiago Andrade Marques 
Severity: wishlist

* Package name: parsero
  Version : 0.0+git20140929.e5b585a
  Upstream Author : Javier Nieto 
* URL : https://github.com/behindthefirewalls/Parsero/
* License : (GPL-2+
  Programming Lang: Python3
  Description : Audit tool for robots.txt of a site

Parsero reads the Robots.txt file of a web server and looks at the Disallow 
entries.
The Disallow entries tell the search engines what directories or files hosted 
on a
web server must not be indexed. For example, "Disallow: /portal/login" means 
that the
content on www.example.com/portal/login it's not allowed to be indexed by 
crawlers
like Google, Bing, Yahoo... This is the way the administrator have to not share
sensitive or private information with the search engines.



Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Paul Wise
On Fri, 2020-01-17 at 10:58 +0100, Johannes Schauer wrote:
> Quoting Simon McVittie (2020-01-16 19:47:02)
> > I think I dimly remember someone setting up "the buildd from hell" which
> > deliberately did this as a QA mechanism, but it doesn't seem to have
> > continued in any systematic way.
> 
> is there more information about it somewhere? My inbox has only two emails 
> from
> xnox and pabs (in CC) about it. How did it work?

I found a reference to it on the wiki:

https://wiki.debian.org/qa.debian.org/ArchiveTesting#TODO

Some discussions about it that I found:

Subject: rebuilding the archive in a dirty chroot: results
<20080125142515.ga18...@xanadu.blop.info>

Subject: Meaning of the "Altering package upload rules"
<20080216130228.ga32...@pcpool00.mathematik.uni-freiburg.de>
<20080216181247.GA13475@garfield>

Subject: Use of the Build-Conflicts field


Subject: Re: Please drop anacron from task-desktop


-- 
bye,
pabs

https://wiki.debian.org/PaulWise


signature.asc
Description: This is a digitally signed message part


Bug#949186: ITP: python3-clap -- command line arguments parser

2020-01-17 Thread Paulo Henrique de Lima Santana (phls)
Package: wnpp
Severity: wishlist
Owner: "Paulo Henrique de Lima Santana (phls)" 

* Package name: python3-clap
  Version : 0.14.0
  Upstream Author : Marek Marecki 
* URL : https://github.com/marekjm/clap
* License : GPL-3+
  Programming Lang: Python
  Description : command line arguments parser

 CLAP aims at being powerful and advanced command line interface library for
 Python 3 language. Having built-in support for modes, optional and obligatory
 options, options with arguments (with type-checking with arbitrary types) it
 enables programmers to create rich command line interfaces for Python 3
 programs.
 .
 Features:
   * Support for single-level and nested modes (with per-mode and global
 options).
   * Support for grouped short options (ls -lhR).
   * Support for long options with or without equal-sign-connected arguments
 (--log=./file.log and --log ./file.log are both correct).
   * Support for option aliases (short/long names).
   * Support for typed arguments (str, int, float built-in and other arbitrary
 types via callbacks).
   * Built-in type checking of option arguments.
   * Support for multiple arguments for options (e.g. --point 0 0).
   * Checking for missing arguments with options which require them.
   * Checking for conflicting options (eg. --quiet must not come with option
 --verbose).
   * Support for options that MUST be passed to the program.
   * Support for options required by other options (e.g. --key requires
 --value).
   * Support for options wanted by other options (e.g. --which wants --this or
 --that or both).
   * Good set of exceptions with detailed error messages.
   * Ability to load interface from JSON descriptions.
   * Automatic generation of help screens (for your-tool help command) with
 per-mode, per-option, and per-operand descriptions, usage examples,
 and more.
   * Support for shortcuts for command names (shortest-unique name is
 sufficient for CLAP to resolve the command, it is not necessary to
 write full names).
 .
 CLAP is not the most easy to use command line arguments parser for Python,
 but that it is one of the most powerful (if not the most powerful) framework
 for writing command line interfaces. With excellent support for modes,
 options, and operands, automatic input verification, and help screen
 generation you get a big return on your investment.



Re: https://tracker.debian.org/pkg/dballe

2020-01-17 Thread Richard Laager
On 1/17/20 6:55 AM, Sam Hartman wrote:
>> "Johannes" == Johannes Schauer  writes:
> 
> Johannes> or have a mechanism that allows maintainers to tell buildds 
> "please build this
> Johannes> source package with build profiles X and Y enabled". That would 
> then build the
> Johannes> binary packages necessary to do a full build in a second upload.
> 
> That doesn't help.
> 
> If I need version y+3 of rustcc to build y+5 of rustcc and only y is in
> the archive, no build profile is going to help me.

If I'm following correctly: The packager would use rustcc >= y+3 (in
practice, likely rustcc y+5) to locally build rustcc y+5 and then do a
binary upload. But if dak (or whatever, I'm not so familiar with the
server side here) throws away the binary, then we're sunk. So there
needs to be a way to note that the binary needs to be kept.

Assuming I'm on the right track, here are a couple of questions:

In such a case, would the source package have a Build-Depends of >= y+3?
It seems like it would.

Could that be the way to indicate a bootstrap upload? In other words, if
the package has a Build-Depends on one of the binary packages it
produces that is _not_ satisfied in the suite it's being uploaded to but
is satisfied by this upload, then it's a bootstrap upload, and the
binaries should be kept. This would avoiding adding a new field for this
and would ensure the Build-Depends are set correctly in bootstrapping
scenarios.

Regardless of how the "keep the binaries" flag is implemented... should
the uploaded binary be published, or should the package be rebuilt? I
think I'd argue for the latter. The uploaded binary package should be
installed on the buildd and then the package should be rebuilt from
source, with _that_ result being put into the archive. This doesn't
protect against the trojaned-compiler problem, but it does at least
ensure that the package builds from source.

-- 
Richard



signature.asc
Description: OpenPGP digital signature


Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Daniel Schepler
On Fri, Jan 17, 2020 at 2:05 AM Johannes Schauer  wrote:
> yes, probably a communication problem. I think you are talking about [1] from
> August 11 last year? I replied the same day, telling you to please file a bug
> with your patches to continue discussion there. But then there was no response
> from you anymore and I don't find your bug in the BTS. Maybe my mail got lost
> somehow or I fail finding the bug you filed?

It seems the reply must have gotten lost somehow - I don't see it anywhere.

> I'm also very excited about having yet another chroot backend being integrated
> into sbuild! Though my first comment would be the same as I gave those asking
> for a docker backend in #867176: maybe try adding that backend to autopkgtest
> first. Then more people would profit from having that type of backend 
> available
> and no additional changes would be needed in sbuild because sbuild can already
> use autopkgtest backends for package building.

OK, I'll try to get the patch submitted either tonight or tomorrow.
(What I need to clean up is that it's interspersed with changes I made
to have it run with a personal distribution build I've been tinkering
with.  On a quick review, I now notice it's also interspersed with
changes to support using eatmydata only on the apt install commands
and only if not in schroot-update mode, instead of having to put it
into schroot config to apply to all commands - which seems reasonable
to split out into a separate patch to submit.  I also haven't yet
updated documentation files.)

One quick question: I don't see any mention of
$options->{'DISABLE_NETWORK'} in lib/Sbuild/ChrootAutopkgtest.pm,
whereas my new lib/Sbuild/ChrootNspawn.pm does support it.  If I'm not
missing something, then I wonder what it would take to add
DISABLE_NETWORK support to the autopkgtest sbuild engine.
-- 
Daniel Schepler



Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Johannes Schauer
Hi,

Quoting Daniel Schepler (2020-01-17 17:58:09)
> > I'm also very excited about having yet another chroot backend being
> > integrated into sbuild! Though my first comment would be the same as I gave
> > those asking for a docker backend in #867176: maybe try adding that backend
> > to autopkgtest first. Then more people would profit from having that type
> > of backend available and no additional changes would be needed in sbuild
> > because sbuild can already use autopkgtest backends for package building.
> OK, I'll try to get the patch submitted either tonight or tomorrow.

thank you!! :)

> One quick question: I don't see any mention of $options->{'DISABLE_NETWORK'}
> in lib/Sbuild/ChrootAutopkgtest.pm, whereas my new lib/Sbuild/ChrootNspawn.pm
> does support it.  If I'm not missing something, then I wonder what it would
> take to add DISABLE_NETWORK support to the autopkgtest sbuild engine.

it would require some way to tell the autopkgtest backends to disable network.
To my knowledge that is not possible. So as of today, the only backend where
you can disable network for the build (not the apt install) is the "unshare"
backend.

More info here:
https://wiki.debian.org/sbuild#Disabling_network_access_for_dpkg-buildpackage

Thanks!

cheers, josch


signature.asc
Description: signature


Re: Deprecating regex/fnmatch fallback for package arguments, and 1.9.6 highlights

2020-01-17 Thread Andrei POPESCU
On Mi, 15 ian 20, 23:11:38, Julian Andres Klode wrote:
> Starting with APT 2.0 (1.9.6 in experimental), the apt(8) binary will
> not try to interpret package names passed on the command-line as regular 
> expressions or fnmatch() style patterns. Future versions of apt-get(8)
> and apt-cache(8) will follow that change, following the release of bullseye.

[...]
 
> # In other news
> 
> - Cache generation is about 16% faster for a single-arch amd64 
>   stretch chroot (in memory, on a Core i5-8250U powered T480s)
> - Hashing is now done by gcrypt, offering about 50% performance
>   improvement on the same platform due to hardware-accelerated
>   implementations of SHA.

Any plans to integrate apt-file (functionality) in 'apt search'?

Kind regards,
Andrei
-- 
http://wiki.debian.org/FAQsFromDebianUser


signature.asc
Description: PGP signature


Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Helmut Grohne
Hi Daniel,

On Thu, Jan 16, 2020 at 08:50:25AM -0800, Daniel Schepler wrote:
> However, I've been getting push back on some of these, with
> maintainers of the opinion that it isn't actually a bug.  So, I
> thought I'd consult here to get more opinions on whether these are
> true bugs, or whether I'm at fault for trying to run dpkg-buildpackage
> manually instead of using it through pbuilder or sbuild.

Given that I'm also bootstrapping Debian (in a different setting), I'm
running into much the same problems. However, when I file bugs about
build failures in non-standard environments, I don't receive the
push-back that you describe. I cannot reproduce your experience. It's a
rare thing for maintainers to tell me that I'm filing a non-bug and I do
file a *lot* of bugs. Could it be that your sample is very small or
biased? Maybe you can give examples?

In any case, the consensus seems to be that FTBFS in a non-standard
environment is a bug, but not an RC one. And in general, you get to
discuss less with maintainers if your bug includes a patch. ;)

Helmut



Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Helmut Grohne
Hi Daniel,

On Thu, Jan 16, 2020 at 12:04:12PM -0800, Daniel Schepler wrote:
> Also, by the way, the amd64 -> i386 cross built core packages largely
> worked OK, with the exception of gcc-9, which ended up with incorrect
> include-fixed/limits.h, and with a compiler that required -lssp when
> building with -fstack-protector-strong or -fstack-protector as almost
> all Debian packages do.  To anybody on the list: is there something I
> did wrong with the cross build there, which was to run
> "dpkg-buildpackage -a i386 -B -Pcross"?)

This sounds a lot like you're running into
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80677.

Cross building gcc tends to not work in my experience, see:
http://crossqa.debian.net/src/gcc-8
http://crossqa.debian.net/src/gcc-9

For gcc-9, the --host flag is not properly passed down to the gm2
component. This is reported as
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92336.

I think the expectation that it works is misguided.

Adding DEB_BUILD_OPTIONS=nocheck might increase your chances of a
successful build.

Quite certainly, more work is needed here. Unfortunately, we sorely lack
porters and everyone seems to expect that things just work without
anyone doing the work.

Helmut



Re: Is distro-tracker accessible by some sort of API?

2020-01-17 Thread Stuart Prescott
Hi Roberto

> does source package 'foo' exist in release 'bar'?
> 
> Looking at the UDD wiki page and the associated examples, it seems like
> the query I need is something roughly like:
> 
> SELECT COUNT(*) FROM public.packages WHERE source='foo' AND release='bar';
> 
> Is this the best approach?

FWIW there are python bindings and CLI tools for UDD floating around ... I 
really should package them (and having people interested in them would be 
good motivation for that)

$ ipython3

In [1]: import uddcache.udd
In [2]: udd = uddcache.udd.Udd()
In [3]: pkg = udd.BindPackage('libc6', arch='amd64', release='bullseye')

In [4]: pkg.IsAvailable()
Out[4]: True

In [5]: pkg = udd.BindPackage('no-such-package', arch='amd64', 
release='bullseye')
In [6]: pkg.IsAvailable()
Out[6]: False


$ udd-cache versions libc6
Package: libc6 None/amd64
squeeze:   2.11.3-4
wheezy:2.13-38+deb7u10
wheezy-security:   2.13-38+deb7u12
jessie:2.19-18+deb8u10
jessie-security:   2.19-18+deb8u10
stretch-security:  2.24-11+deb9u1
stretch:   2.24-11+deb9u4
buster:2.28-10
bullseye:  2.29-7
sid:   2.29-9
experimental:  2.30-0experimental1

$ udd-cache versions libc6 --release bullseye
Package: libc6 bullseye/amd64
bullseye:  2.29-7

$ udd-cache versions no-such-package --release bullseye
No package named 'no-such-package' was found in bullseye/amd64.

cheers
Stuart

-- 
Stuart Prescotthttp://www.nanonanonano.net/   stu...@nanonanonano.net
Debian Developer   http://www.debian.org/ stu...@debian.org
GPG fingerprint90E2 D2C1 AD14 6A1B 7EBB 891D BBC1 7EBB 1396 F2F7



Bug#949155: ITP: tvm -- Deep Learning compiler

2020-01-17 Thread Wookey
Package: wnpp
Severity: wishlist
Owner: Wookey 

* Package name: tvm
  Version : 0.6.0
  Upstream Author : Apache tvm incubator project
* URL : https://tvm.apache.org/
* License : Apache 2.0
  Programming Lang: C++, (with go, java, python, rust parts)
  Description : Deep Learning compiler


TVM is a deep learning compiler stack for CPUs, GPUs, and specialized
accelerators. It interfaces between the productivity-focused deep
learning frameworks, and the performance-  or efficiency-oriented
hardware backends. TVM compiles deep learning models in Keras, MXNet,
PyTorch, Tensorflow, CoreML, and DarkNet into minimum deployable modules
on various hardware backends (CPUs, GPUs and specialised accelerators).
It also provides tools to auto-generate and optimize tensor operators on
more backends with better performance.

This is part of the growing stack of AI software.

If anyone else is interested in helping with this package that would
be great because I know very little about AI. I'm mostly interested
because this piece is the next step up above low-level support like
openCL, arm compute library and armNN (neural network accelerator
support), which I am also working on/helping with. I do have access to
people with clue in linaro, where this packaging will be initially
tested, but in the longer term people actually using AI tools in
debian would be best place to look after this.



Re: Source-only upload and build profiles

2020-01-17 Thread Simon McVittie
On Fri, 17 Jan 2020 at 18:08:59 +0530, Pirate Praveen wrote:
> I tried uploading node-webpack with DEB_BUILD_PROFILES=nocheck sbuild -s
> --source-only-changes

That doesn't mean what you think it does. My understanding is that the
profiles only affect the binaries that *you* built, which were omitted
from the source-only .changes anyway.

Built-For-Profiles: nocheck is information about the binaries you built
not being the "official" version, not a request to buildds to build this
source code with different options.

> This is required because node-uglifyjs-webpack-plugin has dependency on
> webpack (it actually requires files from webpack).

I believe the intention is that you might use build-profiles to bootstrap
your own build environment, but when you upload binaries to the real Debian
archive, they are always meant to be built *without* profiles.

So if you have two packages, foo Build-Depends: bar  and
bar Build-Depends: foo , you'd have to do something like this:

- build foo with DEB_BUILD_PROFILES=nocheck
- build bar normally
- rebuild foo normally
- delete the temporary DEB_BUILD_PROFILES=nocheck version of foo
  (don't upload it)
- upload either foo or bar with binaries (built with no profiles)
- upload the other package, with or without binaries

(This matters more for profiles that might alter the content of the
packages, like nodoc, stage1, stage2, or any profile that is not "safe".)

smcv



Re: Is distro-tracker accessible by some sort of API?

2020-01-17 Thread Roberto C . Sánchez
On Fri, Jan 17, 2020 at 02:41:26AM +, Paul Wise wrote:
> On Thu, Jan 16, 2020 at 7:06 PM Roberto C. Sánchez wrote:
> 
> > I've read the distro-tracker documentation and it seems like interaction
> > is by visiting with a web browser or via email.  Is there an official or
> > even unofficial API for access to data in distro-tracker?
> 
> There are a few APIs defined in the URL configuration:
> 
> https://salsa.debian.org/qa/distro-tracker/tree/master/distro_tracker/project/urls.py
> 
> Which kind of APIs were you looking for and what did you intend to use
> them for? Most of the tracker data is just imports from elsewhere (UDD
> mostly) so it might be better for you to use that data instead.
> 
OK.  That's helpful.  I'm sure I have heard of UDD over the years and
just not really paid it much mind since it wasn't relevant to my needs
at the time.

My initial thought was to query the tracker for a given package to
determine its availability.

The particular question I'm trying to answer is:

does source package 'foo' exist in release 'bar'?

Looking at the UDD wiki page and the associated examples, it seems like
the query I need is something roughly like:

SELECT COUNT(*) FROM public.packages WHERE source='foo' AND release='bar';

Is this the best approach?

Regards,

-Roberto

-- 
Roberto C. Sánchez



Re: https://tracker.debian.org/pkg/dballe

2020-01-17 Thread Sam Hartman
> "Johannes" == Johannes Schauer  writes:

Johannes> or have a mechanism that allows maintainers to tell buildds 
"please build this
Johannes> source package with build profiles X and Y enabled". That would 
then build the
Johannes> binary packages necessary to do a full build in a second upload.

That doesn't help.

If I need version y+3 of rustcc to build y+5 of rustcc and only y is in
the archive, no build profile is going to help me.

There are a lot of packages that need themselves to build themselves in
Debian.
It's not just a new arch issue.



Source-only upload and build profiles

2020-01-17 Thread Pirate Praveen

Hi,
I tried uploading node-webpack with DEB_BUILD_PROFILES=nocheck sbuild 
-s --source-only-changes


https://tracker.debian.org/news/1094664/accepted-node-webpack-4300-2-source-into-experimental/

But it seems the buildd did not consider Built-For-Profiles: nocheck in 
the source.changes file. I think I will have to do a binary included 
upload, but it'd be nice if buildd can support build profiles.


This is required because node-uglifyjs-webpack-plugin has dependency on 
webpack (it actually requires files from webpack).


Thanks
Praveen




Re: https://tracker.debian.org/pkg/dballe

2020-01-17 Thread Johannes Schauer
Quoting Sam Hartman (2020-01-17 09:45:43)
> > "Paul" == Paul Wise  writes:
> 
> Paul> On Mon, Jan 13, 2020 at 4:11 PM Wouter Verhelst wrote:
> >> You'll make it unnecessarily harder to bootstrap environments that need
> >> themselves to build if you do that.
> 
> Paul> The idea here is that bootstrap builds are special and so they 
> should
> Paul> be very explicit rather than happen as a side effect of regular 
> upload
> Paul> workflows. Since they are relatively rare, making them explicit via
> Paul> this mechanism shouldn't be too much of an imposition and on balance
> Paul> might be the right way to go.
> 
> Bootstrap uploads of compilers etc are actually more common than I
> thought before I started following debian-release.
> They are common enough that requiring interactions from ftpmaster and/or
> release team would make being a developer of such packages suck
> significantly more.
> 
> If we throw away binaries by default, I do believe we need a mechanism for
> maintainers to signal that this is a bootstrap upload.

or have a mechanism that allows maintainers to tell buildds "please build this
source package with build profiles X and Y enabled". That would then build the
binary packages necessary to do a full build in a second upload.

In an even better world, dak would figure out itself, that a source package
first has to be built with build profiles X and Y and then schedule a full
build afterwards.

Thanks!

cheers, josch


signature.asc
Description: signature


Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Guillem Jover
On Fri, 2020-01-17 at 11:12:50 +0100, Ansgar wrote:
> Johannes Schauer writes:
> > My advice would also be to switch from debootstrap to mmdebstrap because the
> > latter is able to create a chroot with only Essential:yes packages in it 
> > while
> > debootstrap includes Priority:required packages as well. Alternatively,
> > debootstrap could gain a variant only installing Essential:yes packages and
> > their dependencies (why doesn't it have that already?).
> 
> Debian doesn't support systems that don't have "required" packages
> installed. So buildds should have them installed.

If these statements are based on the policy quote below, then I do
not agree. I don't see why e2fsprogs would need to be installed on
a chroot, as long as there's nothing depending on it, for example.

> Policy states:
> "Removing a required package may cause your system to become totally
> broken and you may not even be able to use dpkg to put things back, so
> only do so if you know what you are doing."

That seems wrong, or inaccurate at best. dpkg should never depend on
anything that is not part of the pseudo-essential set (strictly
speaking only Essential:yes + awk-virtual), or that it depends on
explicitly. So as long as a package has not been forced out, dpkg
must work.

Removing a required package (that is not Essential:yes) might indeed
render your system broken, but what broken means or in what context is
not qualified there. This could apply to systems that get booted for
example, but not to chroots. A package that relies on another package
that is Priority:required and not Essential:yes, and that it does not
depend on, is just broken.

Here's the current list of these packages on my system:

  $ aptitude -F '%p' search '~prequired !~E'
  debconf
  e2fsprogs
  gcc-10-base
  gcc-9-base
  libpam-modules
  libpam-modules-bin
  libpam-runtime
  mawk
  mount
  passwd
  tzdata

And most of these are actually part of the pseudo-essential set
anyway, and cannot be removed w/o force.

That passage in policy might have made sense some time ago, when
Priority:required almost matched the pseudo-essential set, and when we
didn't have a separation of "dpkg-essential" and "boot-essential".

Regards,
Guillem



Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Simon Richter
Hi,

On Thu, Jan 16, 2020 at 08:50:25AM -0800, Daniel Schepler wrote:

> I've been running a manual test bootstrap of Debian (starting with
> cross-compiled packages amd64 -> i386 up to the point I was able to
> install debhelper), and posting a few bugs I've found along the way.
> These are where I found that having extra packages installed during
> the dpkg-buildpackage run either failed or resulted in broken
> packages.  (Some examples of the type of thing I mean: #948522,
> #887902.)

I would expect a sensible package build to not depend on package
relationships that aren't declared, in either way, but things in /usr/local
are outside the control of the package system.

So a package that enables an optional feature if a particular other package
is installed, but there is neither a build dependency nor a build conflict
declared is a bug to me.

The Build-Conflicts should still be avoided, by an explicit configure
option "disable this feature".

   Simon



Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Ansgar
Johannes Schauer writes:
> My advice would also be to switch from debootstrap to mmdebstrap because the
> latter is able to create a chroot with only Essential:yes packages in it while
> debootstrap includes Priority:required packages as well. Alternatively,
> debootstrap could gain a variant only installing Essential:yes packages and
> their dependencies (why doesn't it have that already?).

Debian doesn't support systems that don't have "required" packages
installed.  So buildds should have them installed.  Policy states:
"Removing a required package may cause your system to become totally
broken and you may not even be able to use dpkg to put things back, so
only do so if you know what you are doing."

"Essential" packages just have additional requirements (in particular
essential packages must work even in the "unpacked" state).

Ansgar



Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Johannes Schauer
Hi Daniel, Sam and all,

Quoting Sam Hartman (2020-01-17 01:27:52)
> > "Daniel" == Daniel Schepler  writes:
> 
> Daniel> (Incidentally, another offshoot was creating local patches to 
> sbuild
> Daniel> which add an operation mode using systemd-nspawn --ephemeral to 
> start
> Daniel> a container (along with the base being a BTRFS subvolume to speed 
> up
> Daniel> the cloning), systemd-run -M debian-sid-amd64-xxx
> Daniel> [--property=PrivateNetwork=yes] cmd..., etc.  When I sent a 
> message to
> Daniel> sbu...@packages.debian.org there didn't seem to be any interest in
> Daniel> having me clean up the patches and send them on.
> 
> This sounds like a communication problem or something.  Having
> systemd-nspawn container support in sbuild would be really helpful.
> Would you be willing to try reaching out to the sbuild maintainers
> again?  If you don't get an answer, in a month or so, please reach out
> to me as DPL.  My job would not to be to convince the maintainer to
> accept your patches, but rather to facilitate communication so you can
> get a clear answer.  The DPL does that from time to time when things seem to
> have broken down.

yes, probably a communication problem. I think you are talking about [1] from
August 11 last year? I replied the same day, telling you to please file a bug
with your patches to continue discussion there. But then there was no response
from you anymore and I don't find your bug in the BTS. Maybe my mail got lost
somehow or I fail finding the bug you filed?

I'm also very excited about having yet another chroot backend being integrated
into sbuild! Though my first comment would be the same as I gave those asking
for a docker backend in #867176: maybe try adding that backend to autopkgtest
first. Then more people would profit from having that type of backend available
and no additional changes would be needed in sbuild because sbuild can already
use autopkgtest backends for package building.

Let me also use this opportunity to ask for help with maintaining sbuild. If
any of you reading this ever felt that sbuild was the thing that is worth your
time, please feel free to reach out to me. We need to make a new release fixing
some easy but important bugs that accumulated in the BTS. I would be very happy
to review and apply people's patches. :)

Thanks!

cheers, josch

[1] cadf0c45pjydq+hmqetg6atdqp8ojw8cr3z1kz2ktu9z3ua3...@mail.gmail.com


signature.asc
Description: signature


Re: Is running dpkg-buildpackage manually from the command line forbidden?

2020-01-17 Thread Johannes Schauer
Hi,

Quoting Simon McVittie (2020-01-16 19:47:02)
> I think I dimly remember someone setting up "the buildd from hell" which
> deliberately did this as a QA mechanism, but it doesn't seem to have
> continued in any systematic way.

is there more information about it somewhere? My inbox has only two emails from
xnox and pabs (in CC) about it. How did it work?

> I think in an ideal world, we'd have better tools for those users to build
> modified packages in a way that more closely resembles what happens on the
> production Debian infrastructure - which might for instance mean CI services,
> or my vectis[1] tool, or sbuild-debian-developer-setup, or even autopkgtest
> (which is really for testing packages, but as a side-effect, it knows how to
> build packages in an environment that in practice is going to be
> close-to-minimal).

My advice would also be to switch from debootstrap to mmdebstrap because the
latter is able to create a chroot with only Essential:yes packages in it while
debootstrap includes Priority:required packages as well. Alternatively,
debootstrap could gain a variant only installing Essential:yes packages and
their dependencies (why doesn't it have that already?).

> pbuilder and the usual sbuild+schroot setup have the disadvantage of
> requiring root privileges and crossing privilege boundaries, but vectis uses
> virtual machines (in practice this means kvm group membership or udev/logind
> uaccess, to get write access to /dev/kvm) and as namespace/container stuff
> gets more powerful and more trusted, I'd hope that we'll get a better ability
> to install build-dependencies and do builds in unprivileged containers.

That can be done with sbuild. With --chroot-mode=unshare, sbuild looks for
rootfs tarballs in ~/.cache/sbuild or you can give it your own tarball with the
--chroot option. Since you can create rootfs tarballs without sudo using
mmdebstrap, you can setup arbitrary chroots and build packages without any
process running with root privileges.

If you don't like the security implications of unshared user namespaces, then
you might want to try --chroot-mode=autopkgtest and
--autopkgtest-virt-server=qemu. Using --autopkgtest-virt-server-opts you can
then supply any qemu compatible system image. Using mmdebstrap with fakechroot
mode and guestfish you can create these system images without becoming root and
without having to enable kernel.unprivileged_userns_clone.

Or if lxc/lxd are the unprivileged containers you are talking about, then you
can just use --autopkgtest-virt-server=lxc and let sbuild do builds in your
existing lxc container.

Thanks!

cheers, josch


signature.asc
Description: signature


Re: https://tracker.debian.org/pkg/dballe

2020-01-17 Thread Sam Hartman
> "Paul" == Paul Wise  writes:

Paul> On Mon, Jan 13, 2020 at 4:11 PM Wouter Verhelst wrote:
>> You'll make it unnecessarily harder to bootstrap environments that need
>> themselves to build if you do that.

Paul> The idea here is that bootstrap builds are special and so they should
Paul> be very explicit rather than happen as a side effect of regular upload
Paul> workflows. Since they are relatively rare, making them explicit via
Paul> this mechanism shouldn't be too much of an imposition and on balance
Paul> might be the right way to go.

Bootstrap uploads of compilers etc are actually more common than I
thought before I started following debian-release.
They are common enough that requiring interactions from ftpmaster and/or
release team would make being a developer of such packages suck
significantly more.

If we throw away binaries by default, I do believe we need a mechanism
for maintainers to signal that this is a bootstrap upload.

--Sam