Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.maint.java > #9941 > unrolled thread

Why dependency on both default-jre and java<N>-runtime

Started byCarnë Draug <carandraug+dev@gmail.com>
First post2017-08-23 20:20 +0200
Last post2017-08-31 04:00 +0200
Articles 8 — 4 participants

Back to article view | Back to linux.debian.maint.java


Contents

  Why dependency on both default-jre and java<N>-runtime Carnë Draug <carandraug+dev@gmail.com> - 2017-08-23 20:20 +0200
    Re: Why dependency on both default-jre and java<N>-runtime Thorsten Glaser <t.glaser@tarent.de> - 2017-08-23 22:50 +0200
      Re: Why dependency on both default-jre and java<N>-runtime Bas Couwenberg <sebastic@xs4all.nl> - 2017-08-24 16:20 +0200
        Re: Why dependency on both default-jre and java<N>-runtime Carnë Draug <carandraug+dev@gmail.com> - 2017-08-25 16:30 +0200
          Re: Why dependency on both default-jre and java<N>-runtime Thorsten Glaser <t.glaser@tarent.de> - 2017-08-25 16:40 +0200
            Re: Why dependency on both default-jre and java<N>-runtime Carnë Draug <carandraug+dev@gmail.com> - 2017-08-29 14:30 +0200
      Re: Why dependency on both default-jre and java<N>-runtime Carnë Draug <carandraug+dev@gmail.com> - 2017-08-24 16:20 +0200
    Re: Why dependency on both default-jre and java<N>-runtime Matthias Klose <doko@debian.org> - 2017-08-31 04:00 +0200

#9941 — Why dependency on both default-jre and java<N>-runtime

FromCarnë Draug <carandraug+dev@gmail.com>
Date2017-08-23 20:20 +0200
SubjectWhy dependency on both default-jre and java<N>-runtime
Message-ID<uhIpY-3XR-13@gated-at.bofh.it>
Hi

I was going through the pkg-java policy and found this [1]:

    Programs must depend on the needed runtime environment
    (default-jre or default-jre-headless if need a GUI or not, and
    java<N>-runtime or java<N>-runtime-headless as provided by
    alternative Java environments).

However, java<N>-runtime packages are virtual packages provided by
default-jre so I don't understand why.  Could anyone clarify?

Thank you
Carnë

[1] https://www.debian.org/doc/packaging-manuals/java-policy/x105.html

[toc] | [next] | [standalone]


#9943

FromThorsten Glaser <t.glaser@tarent.de>
Date2017-08-23 22:50 +0200
Message-ID<uhKL8-5jQ-7@gated-at.bofh.it>
In reply to#9941
On Wed, 23 Aug 2017, Carnë Draug wrote:

> However, java<N>-runtime packages are virtual packages provided by
> default-jre so I don't understand why.  Could anyone clarify?

They are also provided by openjdk-*-jre, so you can, for example,
install a package depending on java6-runtime on wheezy (pre-LTS)
whose default-jre pulled in openjdk-6-jre but run it with
openjdk-7-jre instead of that. Or even openjdk-8-jre backported
yourself.

That’s extremely useful. It’s best to have at most *one* JRE
on any given Debian system, after all. Experience speaking.

bye,
//mirabilos
-- 
tarent solutions GmbH
Rochusstraße 2-4, D-53123 Bonn • http://www.tarent.de/
Tel: +49 228 54881-393 • Fax: +49 228 54881-235
HRB 5168 (AG Bonn) • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg

    *************************************************

    **Besuchen Sie uns auf der dmexco!**
    13. und 14. September 2017, Messe Köln,** Halle 7.1, Stand E042**
    Digital Marketing Exposition & Conference
    [www.tarent.de/dmexco](http://www.tarent.de/dmexco)

    Wir empfehlen unseren Vortrag
    "Wettbewerbsanalyse im Handel: Preisvergleich online und offline"
    am 13. September, 18:00 Uhr im Speaker's Forum / Broadway

    *************************************************

    **Visit us at dmexco!**
    September 13th and 14th, 2017, Messe Köln,** Hall 7.1, Booth E042**
    Digital Marketing Exposition & Conference
    [www.tarent.de/dmexco](http://www.tarent.de/dmexco)

    We recommend our presentation
    "Competitor analysis in retail: price comparison online and offline"
    on September 13th, at 6 pm at the Speaker's Corner / Broadway

    *************************************************

[toc] | [prev] | [next] | [standalone]


#9944

FromBas Couwenberg <sebastic@xs4all.nl>
Date2017-08-24 16:20 +0200
Message-ID<ui19g-7EU-1@gated-at.bofh.it>
In reply to#9943
On 2017-08-24 16:15, Carnë Draug wrote:
> Thank you for the answer but I still don't understand.  I get how the
> use of virtual packages for java<N>-runtime allows one to choose
> OpenJDK or Oracle JDK.  What I don't understand is the default-jre
> *and* java<N>-runtime.  Actually, I don't understand the default-jre
> at all if one also needs to specify a minimum java version via
> java<N>-runtime.

The first package in a list of alternatives must a be real package due 
to limitation on the build daemons, which only consider the first 
package in a list of alternatives.

Kind Regards,

Bas

[toc] | [prev] | [next] | [standalone]


#9947

FromCarnë Draug <carandraug+dev@gmail.com>
Date2017-08-25 16:30 +0200
Message-ID<uinMt-5ah-17@gated-at.bofh.it>
In reply to#9944
On 24 August 2017 at 15:17, Bas Couwenberg <sebastic@xs4all.nl> wrote:
> On 2017-08-24 16:15, Carnë Draug wrote:
>>
>> Thank you for the answer but I still don't understand.  I get how the
>> use of virtual packages for java<N>-runtime allows one to choose
>> OpenJDK or Oracle JDK.  What I don't understand is the default-jre
>> *and* java<N>-runtime.  Actually, I don't understand the default-jre
>> at all if one also needs to specify a minimum java version via
>> java<N>-runtime.
>
>
> The first package in a list of alternatives must a be real package due to
> limitation on the build daemons, which only consider the first package in a
> list of alternatives.
>
> Kind Regards,
>
> Bas

But there are no alternatives.  The current policy says it must be
dependent on one *and* the other.  That is, that it should have
something like this line:

    Depends: default-jre, java6-runtime

I may be reading the policy wrong, or missing the bigger picture on
how this interact.

Best Regards,
Carnë

[toc] | [prev] | [next] | [standalone]


#9948

FromThorsten Glaser <t.glaser@tarent.de>
Date2017-08-25 16:40 +0200
Message-ID<uinWa-5dr-25@gated-at.bofh.it>
In reply to#9947
On Fri, 25 Aug 2017, Carnë Draug wrote:

> dependent on one *and* the other.  That is, that it should have
> something like this line:
> 
>     Depends: default-jre, java6-runtime

No, that’s definitely wrong. The whole idea is that
① you don’t need default-jre but can use a different one that
  also provides java6-runtime
② you can’t Depends just on a virtual package with no real
  alternative (which must be the first, for a while, for buildds)

bye,
//mirabilos
-- 
tarent solutions GmbH
Rochusstraße 2-4, D-53123 Bonn • http://www.tarent.de/
Tel: +49 228 54881-393 • Fax: +49 228 54881-235
HRB 5168 (AG Bonn) • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg

    *************************************************

    **Besuchen Sie uns auf der dmexco!**
    13. und 14. September 2017, Messe Köln,** Halle 7.1, Stand E042**
    Digital Marketing Exposition & Conference
    [www.tarent.de/dmexco](http://www.tarent.de/dmexco)

    Wir empfehlen unseren Vortrag
    "Wettbewerbsanalyse im Handel: Preisvergleich online und offline"
    am 13. September, 18:00 Uhr im Speaker's Forum / Broadway

    *************************************************

    **Visit us at dmexco!**
    September 13th and 14th, 2017, Messe Köln,** Hall 7.1, Booth E042**
    Digital Marketing Exposition & Conference
    [www.tarent.de/dmexco](http://www.tarent.de/dmexco)

    We recommend our presentation
    "Competitor analysis in retail: price comparison online and offline"
    on September 13th, at 6 pm at the Speaker's Corner / Broadway

    *************************************************

[toc] | [prev] | [next] | [standalone]


#9959

FromCarnë Draug <carandraug+dev@gmail.com>
Date2017-08-29 14:30 +0200
Message-ID<ujNOx-2zB-1@gated-at.bofh.it>
In reply to#9948
On 25 August 2017 at 15:32, Thorsten Glaser <t.glaser@tarent.de> wrote:
> On Fri, 25 Aug 2017, Carnë Draug wrote:
>
>> dependent on one *and* the other.  That is, that it should have
>> something like this line:
>>
>>     Depends: default-jre, java6-runtime
>
> No, that’s definitely wrong. The whole idea is that
> ① you don’t need default-jre but can use a different one that
>   also provides java6-runtime
> ② you can’t Depends just on a virtual package with no real
>   alternative (which must be the first, for a while, for buildds)

Ok.  I looked into some packages and see now that they are not
actually dependent on both.  The policy says "and" but it means that
both should be listed on a list of alternative dependencies.  That's
not really clear but I guess that if it said "or" it could mean that
only of those dependencies need to be listed as dependencies.

I rewrote that paragraph of the policy in the hopes to make it clear
and also explain the reasoning for the alternative [1].  Could someone
please review it?

Thank you
Carnë

[1] https://github.com/carandraug/debian-java-policy/commit/bf4eaed67f993c2af7be8fe43f06a4ec7c13ef93

[toc] | [prev] | [next] | [standalone]


#9945

FromCarnë Draug <carandraug+dev@gmail.com>
Date2017-08-24 16:20 +0200
Message-ID<ui19g-7EU-3@gated-at.bofh.it>
In reply to#9943
On 23 August 2017 at 21:43, Thorsten Glaser <t.glaser@tarent.de> wrote:
> On Wed, 23 Aug 2017, Carnë Draug wrote:
>
>> However, java<N>-runtime packages are virtual packages provided by
>> default-jre so I don't understand why.  Could anyone clarify?
>
> They are also provided by openjdk-*-jre, so you can, for example,
> install a package depending on java6-runtime on wheezy (pre-LTS)
> whose default-jre pulled in openjdk-6-jre but run it with
> openjdk-7-jre instead of that. Or even openjdk-8-jre backported
> yourself.
>
> That’s extremely useful. It’s best to have at most *one* JRE
> on any given Debian system, after all. Experience speaking.
>
> bye,
> //mirabilos

Hi

Thank you for the answer but I still don't understand.  I get how the
use of virtual packages for java<N>-runtime allows one to choose
OpenJDK or Oracle JDK.  What I don't understand is the default-jre
*and* java<N>-runtime.  Actually, I don't understand the default-jre
at all if one also needs to specify a minimum java version via
java<N>-runtime.

Using your example, installing a package on wheezy that is dependent
on default-jre and java6-runtime allows one to use openjdk-7-jre
instead (I guess wheezy default-jre was once openjdk-6-jre).

However, being dependent on java6-runtime alone would suffice since
openjdk-7-jre would also provide it.  The extra dependency on
default-jre would only add openjdk-6-runtime which was not actually
necessary.

I'm probably missing something important on how the java alternatives
and jre's work.  I'm packaging a java program now (been doing some
work on the imagej package for debian-med), I would like to understand
this properly.

Thank you
Carnë

[toc] | [prev] | [next] | [standalone]


#9963

FromMatthias Klose <doko@debian.org>
Date2017-08-31 04:00 +0200
Message-ID<ukmVY-7zT-19@gated-at.bofh.it>
In reply to#9941
On 23.08.2017 20:11, Carnë Draug wrote:
> Hi
> 
> I was going through the pkg-java policy and found this [1]:
> 
>     Programs must depend on the needed runtime environment
>     (default-jre or default-jre-headless if need a GUI or not, and
>     java<N>-runtime or java<N>-runtime-headless as provided by
>     alternative Java environments).
> 
> However, java<N>-runtime packages are virtual packages provided by
> default-jre so I don't understand why.  Could anyone clarify?

others explained already, here is another reason for the

  default-jre | *-runtime

dependency:  If you have multiple openjdk versions in the archive, during
transition periods and as backports, then this dependency makes sure that you
always get the default dependency.  I have seen a lot of users complaining about
packages pulling in openjdk-9 unintended, which only use *-runtime as a dependency.

Matthias

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.maint.java


csiph-web