Re: The Future of the Java Stack (also regarding ELN and RHEL)

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

 



On Thu, Sep 10, 2020 at 9:59 PM Matthew Miller <mattdm@xxxxxxxxxxxxxxxxx> wrote:
>
> On Thu, Sep 10, 2020 at 01:50:55PM +0100, Joe Orton wrote:
> > maintain the non-modular packages.  We are not going to promise to
> > commit time and resources to maintain the non-modular packages.
>
> Joe, here's a part I hope you can help me understand better. Modularity
> isn't an entirely new packaging technology. It's simply a layer on top of
> RPM. Modules are made out of RPMs, and by design, their specfiles are
> exactly the same as RPMs which happen to be grouped into modules.

Modularity provides not only a different way of grouping or delivering
RPM packages, but most importantly, a different way of building RPM
packages.

You get a side tag in Koji where you can have private build-only
dependencies that are discarded (filtered) once they are no longer
needed, after module build is done. For build-only packages most of
security vulnerabilities are not exploitable easily, or at all,
therefore are low-severity, which greatly limits maintenance work
required to address them. For example, if upstream tests are ran on an
obsolete, 12-years old version of Tomcat, I don't need to skip tests,
but I can package old Tomcat and run the tests. I don't need to update
that Tomcat or fix security issues as they are not exploitable in
buildroot - Tomcat runs in embedded mode, does not listen on the
network etc. Not something that I could with ursine Tomcat packages -
it would get delivered to users, and we have no control how they use
it - we would need to fix all important user-reported bugs and CVEs as
they are potentially exploitable.

Modularity also introduced the concept of API packages - non-API
packages can have limited usability, with some non-important features
removed. For example if all I need is a small part of Tomcat, I can
reduce tomcat package to build just the tiny parts that I need, which
don't have any dependencies. Again, not something I could do with
ursine Tomcat package.

Another, more concrete example: core Ant doesn't have any dependencies
beyond JDK. It is easy to build and maintain, yet very functional. On
the other hand, full Ant with all the optional tasks depends on more
than 200 Java packages. For the purpose of building all packages that
I am interested in, core Ant with JUnit tasks (total of 3 packages) is
sufficient. Functionalities of Ant like sending emails or image
processing are obviously not needed in this case. If building other
packages is the only use of Ant then it can be maintained much more
easily (3 instead of ~250 packages). But when Ant is ursine package in
Fedora then it should be the full Ant - we can't claim to deliver Ant
to users while it is just part of it. Eclipse in Fedora requires full
Ant too.

> I understand that it's nice to have exactly one workflow, but it doesn't
> seem like it's actually all that much extra effort on top of what you
> already have to do to maintain the module to make a non-modular build. Is
> this something where triggering the non-modular builds in the same way you
> build the module would make a difference?

It's not about the workflow, it is about reducing package maintenance
work that is required. Modularity allows us to greatly reduce the
number of packages by patching-out non-API packages to remove unneeded
features and it allows us to spend less time on fixing bugs in
packages that are used merely as build dependencies and which we don't
intend to be used by end users.

>
> Or is there something else that I'm not seeing?
>
> --
> Matthew Miller
> <mattdm@xxxxxxxxxxxxxxxxx>
> Fedora Project Leader
> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux