Hi,

Thank you for your message and your help to improve the
patch towards the quality standard of Debian.

There are still some questions left on the best way to 
package a debian-port support in debootstrap.


Le vendredi 20 avril à 00h 16mn 13s (+0200), Raphael Hertzog a écrit :
> On Wed, 18 Apr 2018, Hideki Yamane wrote:
> > control: tags -1 +pending
> 
> It's not "pending" because it's not yet pushed to the official git
> repository. I don't know if you just forgot to push or if willingly kept
> it out for now...
> 
> But please can you avoid committing intrusive changes before seeking
> reviews ?
> 
> I know that I encouraged you to work on debootstrap but now I feel
> responsible to double check all your work because I found out (an
> non-negligible rate) of simple mistakes and discutable design decisions
> in what you submitted so far.
> 
> >  Adjust it to current git code, could you check it, please?
> 
> I feel really uncomfortable with this patch. It's really intrusive
> and adds tons of perl code in a codebase that was not depending
> on perl. The comment even suggests that we would need an alternative
> C implementation in case perl is not available (and that C implementation
> is not provided here). And the perl code is actually duplicating
> code from libdpkg-perl.

I am afraid debootstrap already depends on perl (it
doesn't show up in the control file as perl-base
is Essential) : it ships a perl function 'pkg_details'
inline (see file /usr/share/debootstrap/functions line 1323
in debootstrap version 1.0.97)

There is no perl in debian-installer, and a C helper is 
provided by the udeb package 'bootstrap-base' as 
/usr/lib/debootstrap/pkgdetails (debootstrap-udeb is arch:all 
and bootstrap-base is arch:any)

I followed the same path to add a debian-ports support. Surely, 
the perl code would greatly benefit from the eye of a perl 
specialist (I am not).

As far as I know, there is no C implementation of sort_pkgs
packaged in debian-installer yet (for an example of what I
have in mind, see 
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=885878#44

deduplicate from Colin Watson 
https://launchpadlibrarian.net/14818796/234486.diff
seems to have a similar purpose - I haven't tested it yet)

Should the perl code depends on libdpkg-perl or is it bearable
to inline the needed functions ? The former avoids code duplication
with benefits in size and maintainability, the latter keeps the
dependencies to a minimum (wget, perl-base).

As far as I know, there are three main use cases of debootstrap :
1. create a debian chroot on a host running debian (or similar)
2. in debian-installer (base-installer step)
3. "to install Debian GNU/Linux from a Unix/Linux system"
(https://www.debian.org/releases/stable/amd64/apds03.html.en)

Depending on libdpkg-perl is beneficial to the first use case,
and inlining the functions to the third.

> 
> IMO the special casing for ports.debian.org architectures should be
> handled in a dedicated wrapper. And maybe debootstrap needs new features
> to make this wrapper possible.

May I ask what for new features you have in mind ?

> 
> But I ask you to not commit this unless you get other reviews explaining
> that this change is OK despite the above comments.
> 
> Alternatively, some sort of middle ground would be to provide a script
> dedicated to stuff hosted ports.debian.org, the main script would be
> unmodified and the hackish code would be hidden in a script that the user
> would have to request explicitly.
> 
> Cheers,
> -- 
> Raphaël Hertzog ◈ Debian Developer
> 
> Support Debian LTS: https://www.freexian.com/services/debian-lts.html
> Learn to master Debian: https://debian-handbook.info/get/


Is the hope of a debian-ports support in debootstrap still
(not too un)reasonable ?

Regards,
JH Chatenet

Reply via email to