Control: tag -1 + patch Control: retitle -1 please support Build-Depends-Arch On Mon, 12 Sep 2016 12:37:00 +0200 David Kalnischkies <david@kalnischkies.de> wrote: > The difference is that dpkg supports and documents it (e.g. in > deb-src-control(5)), but apt doesn't and e.g. policy doesn't document > it. It even goes as far as saying that such a field does not exist [0]. > See also #823910. > > I am going to write a patch for apt later, but I guess that can't be > considered a bugfix and hence might not be 1.3 material (depending on > how big or not that might turn out to be). I wrote a patch which is attached. Thanks! cheers, josch
diff -Nru apt-1.3~rc4/apt-pkg/deb/debsrcrecords.cc apt-1.3~rc4+nmu1/apt-pkg/deb/debsrcrecords.cc --- apt-1.3~rc4/apt-pkg/deb/debsrcrecords.cc 2016-09-02 20:26:36.000000000 +0200 +++ apt-1.3~rc4+nmu1/apt-pkg/deb/debsrcrecords.cc 2016-09-13 08:04:20.000000000 +0200 @@ -106,11 +106,13 @@ const char *fields[] = {"Build-Depends", "Build-Depends-Indep", "Build-Conflicts", - "Build-Conflicts-Indep"}; + "Build-Conflicts-Indep", + "Build-Depends-Arch", + "Build-Conflicts-Arch"}; BuildDeps.clear(); - for (I = 0; I < 4; I++) + for (I = 0; I < 6; I++) { if (ArchOnly && (I == 1 || I == 3)) continue; diff -Nru apt-1.3~rc4/apt-pkg/srcrecords.cc apt-1.3~rc4+nmu1/apt-pkg/srcrecords.cc --- apt-1.3~rc4/apt-pkg/srcrecords.cc 2016-09-02 20:26:36.000000000 +0200 +++ apt-1.3~rc4+nmu1/apt-pkg/srcrecords.cc 2016-09-13 08:09:42.000000000 +0200 @@ -139,7 +139,9 @@ const char *fields[] = {"Build-Depends", "Build-Depends-Indep", "Build-Conflicts", - "Build-Conflicts-Indep"}; + "Build-Conflicts-Indep", + "Build-Depends-Arch", + "Build-Conflicts-Arch"}; if (unlikely(Type >= sizeof(fields)/sizeof(fields[0]))) return ""; return fields[Type]; diff -Nru apt-1.3~rc4/apt-pkg/srcrecords.h apt-1.3~rc4+nmu1/apt-pkg/srcrecords.h --- apt-1.3~rc4/apt-pkg/srcrecords.h 2016-09-02 20:26:36.000000000 +0200 +++ apt-1.3~rc4+nmu1/apt-pkg/srcrecords.h 2016-09-13 07:30:17.000000000 +0200 @@ -56,7 +56,8 @@ public: enum BuildDep {BuildDepend=0x0,BuildDependIndep=0x1, - BuildConflict=0x2,BuildConflictIndep=0x3}; + BuildConflict=0x2,BuildConflictIndep=0x3, + BuildDependArch=0x4,BuildConflictArch=0x5}; struct BuildDepRec { diff -Nru apt-1.3~rc4/apt-private/private-source.cc apt-1.3~rc4+nmu1/apt-private/private-source.cc --- apt-1.3~rc4/apt-private/private-source.cc 2016-09-02 20:26:36.000000000 +0200 +++ apt-1.3~rc4+nmu1/apt-private/private-source.cc 2016-09-13 07:39:48.000000000 +0200 @@ -620,7 +620,9 @@ for (auto const &dep: Dependencies) { std::string * type; - if (dep.Type == pkgSrcRecords::Parser::BuildConflict || dep.Type == pkgSrcRecords::Parser::BuildConflictIndep) + if (dep.Type == pkgSrcRecords::Parser::BuildConflict || + dep.Type == pkgSrcRecords::Parser::BuildConflictIndep || + dep.Type == pkgSrcRecords::Parser::BuildConflictArch) type = &conflicts; else type = &depends;
Attachment:
signature.asc
Description: signature