Hello everyone.

   I am trying to build a custom debian package with some Zabbix template and 
configuration files for a software of mine.

   My development server is a Debian7 and i am using dpkg 1.16.12.

   I need to pass the "Section" field as a dpkg-genchanges -D option. If i read 
correctly, -D options allows to add/override a field in the control file.

   I tried both:

   * to not add any Section field in the originating control file

   * to add a dummy Section field "tobereplaced"

   In both cases i get an error. This is the case with the dummy section field:

   >> starting dpkg-buildpackage with options: --changes-option=-DSection=java  
-b -us -uc -rfakeroot -i

   dpkg-buildpackage: source package foo-zabbix

   [...]

   dh_gencontrol -- -Vmisc:Depends=zabbix-agent,libzbxpgsql,sudo,bc,unzip 
-DSection=java

   dh_md5sums

   dh_builddeb

   dpkg-deb: building package `foo-zabbix' in 
`../foo-zabbix_1.0~n20180509T160051Z_all.deb'.

    dpkg-genchanges -DSection=java -b 
>../foo-zabbix_1.0~n20180509T160051Z_amd64.changes

   dpkg-genchanges: error: package foo-zabbix has section tobereplaced in 
control file but java in files list

   dpkg-buildpackage: error: dpkg-genchanges gave error exit status 255

   Please note that in the temp building directory the DEBIAN/control file 
actually contains "Section: java" and files file has not been generated yet.

   If i do the same thing with another field, like "Origin", for example, all 
works smoothly, as you can see below:

   >> starting dpkg-buildpackage with options: --changes-option=-DOrigin=zabbix 
 -b -us -uc -rfakeroot -i

   dpkg-buildpackage: source package foo-zabbix

   [...]

   dh_gencontrol -- -Vmisc:Depends=zabbix-agent,libzbxpgsql,sudo,bc,unzip 
-DOrigin=zabbix

   dh_md5sums

   dh_builddeb

   dpkg-deb: building package `foo-zabbix' in 
`../foo-zabbix_1.0~n20180509T155323Z_all.deb'.

    dpkg-genchanges -DOrigin=zabbix -b 
>../foo-zabbix_1.0~n20180509T155323Z_amd64.changes

   dpkg-genchanges: binary-only upload - not including any source code

    dpkg-source -i --after-build foo-zabbix

   dpkg-buildpackage: binary only upload (no source included)

   My hypotesis is that this snippet of code of dpkg-genchanges:

           my $sec = $f2seccf{$f};

           $sec ||= $sourcedefault{'Section'};

           if (!defined($sec)) {

               $sec = '-';

               warning(_g("missing Section for binary package %s; using '-'"), 
$p);

           }

           $sec eq $f2sec{$f} || error(_g("package %s has section %s in " .

                                          "control file but %s in files list"),

                                       $p, $sec, $f2sec{$f});

   does not take into consideration fields passed with a command line option.

   Am I right? Can anyone point me in the right direction to find a solution?

   Thank you a lot in advance.

   Sandro.

Reply via email to