[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#858655: Please move Java dependencies to libreoffice-java-common



Hi,

On Sun, Mar 26, 2017 at 01:18:00AM -0400, Daniel Richard G. wrote:
> Of course. I don't care too much which specific components need Java
> (unless e.g. Writer one day starts requiring it); I just want to tell
> apt-get "no Java!" and let it do its thing.

Then install the various modules manually. If you want "libreoffice" you
want "libreoffice-base" which recommends libreoffice-sdbc-hsqlb (as that's
the db engine) which is - as said - written in Java.

> > It's the base stuff without which Java stuff inside LO won't work.
> > Basically anything needed for Java in LO is inside that one (besides
> > those which belong into the UNO runtime environment or have
> > specializied packages).
> 
> Right. I'd like to be able to say, let's not install that package
> (lo-java-common), and end up with a clean install of LO sans Java stuff.

You can do that right now, too. Just avoid the Java-using modules. You already
were on the right track, except that as you say -wiki-publisher missed the JRE
depends and the script-provider-* missed the -java-common depends.

That will be fixed.

But your wish goes further and thus this bug can only be wontfix.

> > > This doesn't make much sense to me. I can't decline installation of
> > > lo-java-common, but I can decline default-jre, yet some of the
> > > resulting
> >
> > It does make perfect sense.
> 
> How are the *.jar files in lo-java-common useful without a Java runtime?
> It doesn't make sense to me for the dependencies to say that these files
> are required, when the component required to use them does not need to
> be installed.

They are not. If you used one of them (which you probably won't run into
given even the wizards are Java) you get told you want Java. Basically it's
only support libraries for Java extensions and the script provider stuff and
some (minor) filters.

That -script-provider-{bsh,js} don't have the Depends: is a bug. That is
acknowledged and will be fixed.

> > > What I would like to see is for all the various LibreOffice packages
> > > that can/must make use of Java to Depends:/Recommends:/Suggests:
> >
> > That is *exactly* what we have right now.
> 
> My apologies, I left out an important bit in that paragraph: to also
> move all the JRE dependencies to lo-java-common. So when LO as a whole
> is being installed, the only package that actually pulls in the JRE is
> lo-java-common.

As I said, libreoffice-java-common just contains libraries.

https://www.debian.org/doc/packaging-manuals/java-policy/x126.html

"Libraries must not depend on a Java runtime."

(This policy applies to unoil, which is the only public library - where this
applies - here. Yeah, didn't splt it out to a libunoil-java, but if I did this
it would open new can of worms, especially in the C++ libs case right now
put together in one uno-libs3...)

> > libreoffice installs everything you need. Including a JRE.
> >
> > If you don't want it/want more control, install the various modules
> > yourself. The only one where you really do need Java is Base (and
> > the script providers mentioned above and the Java-based extensions
> > of course)
> 
> "libreoffice" already does not have a hard dependency on a JRE, so there
> is no need to give up the metapackage abstraction. I can do without Base
> if that absolutely requires a Java runtime, and the other stuff isn't
> interesting.

Then don't install the metapackage.

> (I don't want to start worrying about the list of all the various
> LibreOffice components, because that defeats the purpose of having
> metapackages.)

No, it doesn't.

> > > lo-java-common, and then have lo-java-common Depends: default-jre et
> > > al. That way, when installing LibreOffice, I can decline lo-java-
> > > common, the JRE won't get pulled in, and no LibreOffice package that
> > > requires Java (or is related to one that does) will get installed.
> >
> > If you install "libreoffice" you install Base.
> >
> > Which 100% needs Java right now (because of -sdbc-hsqldb). Of course,
> > if you disable Recommends:, you won't see it, but it's there.[1]
> 
> Uh... you're aware that it's possible to install a package with some
> (neither all/none) of its Recommends: being applied, yes?

Yes.

100% as said above was admittedly oversimplicating as it only applies to the
hsqldb driver...

This is a compromise. One might want no Java (as you) and thus I didn't
want to force it on anyone in -base itself.
E.g. Because you use Firebird or connect to MySQL or PostgreSQL via Base.

So I only recommend the hsqldb driver in base-drivers. Recommends: installing
is per default on and people who disable it (should) know what they do and
eventually can install -sdbc-hsqldb theirselves.

> > One could argue -java-common should suggest or recommend a JRE, but I
> > am a bit wary of that, as said, you don't _need_ it for "normal" LO
> > operation.
> 
> Having lo-java-common Recommends: a JRE would be fine---as long as that
> was the only JRE dependency, that would then allow me to decline all Java-
> requiring components by declining lo-java-common.

If at all, only a Suggests: (see above)

But this discussion is artificial, if there was a Recommends: there *any* module
which needs Java needs *extra* Depends on it as - as you say yourself - one
can install without Recommends and _THEN_ the package would be broken. So any
package requiring Java would still needs to Depend on Java _in addition_.

Regards,

Rene
> 


Reply to: