On 2018-08-17 11:46, Adrian Bunk wrote:
> Control: tags -1 - patch
> 
> On Wed, Nov 29, 2017 at 06:06:20PM +0100, Andreas Beckmann wrote:
>> Followup-For: Bug #879816
>> Control: reopen -1
>> Control: tag -1 + patch
>>
>> Hi,
>>
>> I'm reopening this bug because there is still no strict dependency on
>> gcc which whould prevent future occurrences of this bug.
>>
>> It's probably possible to relax the version check in eclipse-titan a
>> bit, but until that is done the dependency on gcc (is that the correct
>> package?) needs to be rather strict. This should trigger the need for a
>> binNMU whenever the gcc version changes.
>>
>> Attached is a patch that records a dependency on the gcc version used at
>> build time. This may not be sufficient if the upstream version part in
>> src:gcc-7 changes, but src:gcc-defaults is not updated. Let's revisit if
>> that happens.
>> ...
>> diff -Nru eclipse-titan-6.3.0/debian/control 
>> eclipse-titan-6.3.0/debian/control
>> --- eclipse-titan-6.3.0/debian/control       2017-10-19 10:58:19.000000000 
>> +0200
>> +++ eclipse-titan-6.3.0/debian/control       2017-11-29 14:25:36.000000000 
>> +0100
>> @@ -25,6 +25,8 @@
>>           make,
>>           perl,
>>           python,
>> +         gcc (>= ${gcc:Version}),
>> +         gcc (<< ${gcc:Version}.0),
>>           ${misc:Depends},
>>           ${shlibs:Depends}
>>  Description: TITAN TTCN-3 toolset from the Eclipse project
>> diff -Nru eclipse-titan-6.3.0/debian/rules eclipse-titan-6.3.0/debian/rules
>> --- eclipse-titan-6.3.0/debian/rules 2017-06-21 12:57:52.000000000 +0200
>> +++ eclipse-titan-6.3.0/debian/rules 2017-11-29 14:29:03.000000000 +0100
>> @@ -12,3 +12,5 @@
>>      $(MAKE) DESTDIR=$(CURDIR)/debian/eclipse-titan prefix=/usr install
>>      find $(CURDIR)/Install -type d -empty -delete
>>  
>> +override_dh_gencontrol:
>> +    dh_gencontrol -- -V'gcc:Version=$(shell dpkg-query -f '$${Version}\n' 
>> -W gcc | sed -e 's/-[^-]*$$//')'
> 
> This patch is now applied, but it does not actually solve the problem:
> 
> gcc is the metapackage, with a >= dependency on the actual compiler 
> (currently gcc-8).
> 
> In other words, gcc-8 8.2.0-3 currently in testing can be used to 
> fulfill the dependency on gcc (<< 4:8.1.0.0).
> 
> Also note that gcc-8 in unstable is constantly following the upstream 
> stable branch, there is not actually bigger changes when upstream 
> happens to cut a release from this branch.
> 
> Realistically, gcc major version is the the only thing that is feasible 
> to do.

The following should work to get the proper versioned dependency,
will need binNMU after each gcc-X minor version bump.

debian/rules:
GCC_PACKAGE     := $(shell dpkg-query -f '$${Depends}\n' -W gcc | sed -r 
's/.*(gcc-[0-9.]*) .*/\1/')
GCC_VERSION     := $(shell dpkg-query -f '$${Version}\n' -W $(GCC_PACKAGE) | 
sed -e 's/-[^-]*$$//')

dh_gencontrol -- -V'gcc:Package=$(GCC_PACKAGE)' -V'gcc:Version=$(GCC_VERSION)'

debian/control:
         ${gcc:Package} (>= ${gcc:Version}),
         ${gcc:Package} (<< ${gcc:Version}.0),

I haven't tested it at all ... :-)
And I'm not questioning whether this strict dependency is any good ...


Andreas

Reply via email to