sbuild breaks lp-buildd with symlinks to .dsc files
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
sbuild (Debian) |
Fix Released
|
Unknown
|
|||
sbuild (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
We're currently carrying a delta in our sbuild which reverts a commit in the upstream [1] which purports to fix a bug [2]. There's no bug associated with this delta, which allegedly fixes a build failure in lp-buildd. The delta in question is documented under d/p/abs-
--- a/bin/sbuild
+++ b/bin/sbuild
@@ -84,10 +84,6 @@ sub main () {
my $jobname = $ARGV[0];
my $source_dir = 0;
- if (-e $jobname) {
- $jobname = abs_path($jobname);
- }
-
if (-d $jobname) {
$jobname = create_
if ($jobname eq '.') {
@@ -171,6 +167,7 @@ sub main () {
sub create_
my $dsc = shift;
+ $dsc = abs_path($dsc);
open(my $pipe, '-|', 'dpkg-parsechan
'-l' . $dsc . '/debian/
Despite digging around the bug and code history of lp-buildd around the time the sbuild patch was introduced, I've come up empty for additional information on why this change was introduced. As requested in the merge LP: #1974177, I'm filing this bug largely to try and track whether this delta is still required.
We could simply remove the patch and "see what happens" but I'm reluctant to do that given the potentially wide-ranging breakage that could result. Ideally, this needs some more in-depth investigation by someone either more familiar with lp-buildd, or the time to set up a local test environment to determine whether we should still be carrying this patch.
[1]: https:/
[2]: https:/
Changed in sbuild (Debian): | |
status: | Unknown → New |
Changed in sbuild (Debian): | |
status: | New → Fix Released |
The changelog entry that introduces this changes says: abs-path- revert. patch: Revert upstream commit that breaks lp-buildd by causing symlinks to files not ending in .dsc to no longer be buildable.
I was able to reproduce the problem:
pull-debian-source -d distro-info 1.1 info_1. 1_with_ diffent_ ending. txt info_1. 1_with_ diffent_ ending. txt distro-info_1.1.dsc
mv distro-info_1.1.dsc distro-
ln -s distro-
sbuild -d unstable distro-info_1.1.dsc
abs_path() expands jobname from 'distro- info_1. 1.dsc' to '/full/ path/to/ distro- info_1. 1_with_ diffent_ ending. txt'. Then it tries to fetch that source file (instead of using it as dsc file).