[Rd] binary R packages for GNU/Linux
Lluís Revilla
||u|@@rev|||@ @end|ng |rom gm@||@com
Mon Feb 10 16:37:54 CET 2025
Adding a different project to this discussion:
Recently at the R repository working group a project to provide them for
multiple distributions and toolchain was presented.
See the documentation about what do they (Patrick Schratz) share:
https://docs.r-package-binaries.devxy.io/index.html
The existence of these projects (Alpine, RedHat, Fedora, Ubuntu, r2u, P3M,
r-universe, ...) providing binaries show there is interest even if there
are multiple combinations of platforms, toolchains and library versions.
If these projects cooperate between them (as shown by r2u project) and with
CRAN, I think this will reduce duplicated effort and help the users (and
repositories).
Binaries could be served in multiple places matching what R requires and/or
what the distribution uses without much more (technical) effort.
Cheers,
Lluís
On Mon, 10 Feb 2025 at 16:35, Carl Boettiger <cboettig using gmail.com> wrote:
> Great discussion.
>
> Just to note another example I don't think was mentioned -- The r-universe
> project also builds binaries for Linux (Ubuntu latest)
> https://docs.r-universe.dev/install/binaries.html (as well as other
> targets
> including wasm). It also provides binaries for Bioconductor and packages
> on any git-based version control platform (e.g. GitHub).
>
> R Universe is open source and a top-level project of the R Consortium.
>
> Cheers,
>
> Carl
>
> ---
> Carl Boettiger
> http://carlboettiger.info/
>
>
> On Mon, Feb 10, 2025 at 5:30 AM Iñaki Ucar <iucar using fedoraproject.org>
> wrote:
>
> > On Mon, 10 Feb 2025 at 14:09, Dirk Eddelbuettel <edd using debian.org> wrote:
> > >
> > >
> > > On 10 February 2025 at 11:00, Tobias Verbeke wrote:
> > > | Another argument to demonstrate the feasibility is the r2u project
> > > | (https://github.com/eddelbuettel/r2u). It offers CRAN as Ubuntu
> > Binaries, but
> > > | in order to build these Ubuntu Binaries it actually makes use of the
> > binary R
> > > | packages built by PPM. Quoting from
> > https://eddelbuettel.github.io/r2u/: "For
> > > | the CRAN binaries we either repackage P3M/RSPM/PPM builds (where
> > > | available) or build natively." They cover all CRAN packages. The
> usage
> > of PPM
> > > | as a source is, of course, a weakness (in the grand scheme of
> things),
> > but
> > > | the point here is about the feasibility of building the packages in a
> > > | portable way per version of a particular distribution, architecture
> > etc.
> > >
> > > As you brought this up, allow me to clarify: The re-use (where
> possible)
> > is
> > > simply a shortcut "where possible". Each day when I cover updated
> > packages,
> > > I hit maybe 5 per cent of packages where for reasons I still cannot
> > decipher
> > > p3m.dev does not have a binary, so I build those 5 per cent from
> source.
> > > Similarly for the approx 450 BioConductor packages all builds are from
> > > source.
> > >
> > > Rebuilding everything from source "just because we want to" is entirely
> > > possible but as it is my time waiting for binaries I currently do not
> > force
> > > full rebuilds but I easily could. Also note that about 22% of packages
> > > contain native code, leaving 78% which are not. Re-use is even simpler
> > there
> > > as these 78% as they contain only (portable) R processing. So if we
> > wanted to
> > > compile all native packages for Ubuntu, we could. It is a resourcing
> > issue
> > > that has not yet been a prioruty for me. Inaki does it for Fedora,
> Detlef
> > > does it for OpenSUSE.
> >
> > And for completeness, [1] is where we painstakingly* maintain a list
> > of system dependencies, [2] is where the daily magic happens for
> > keeping track of CRAN, and [3] performs the heavy-lifting and
> > publishes an RPM repository with the result.
> >
> > [1] https://github.com/cran4linux/sysreqs
> > [2] https://github.com/cran4linux/cran2copr
> > [3] https://copr.fedorainfracloud.org/coprs/iucar/cran
> >
> > *Because, you know, SystemRequirements.
> >
> > > The more important point of these package is the full system
> > integration. You
> > > do get _all_ binary dependencies declared, exactly as a
> > distribution-native
> > > package (of which Debian/Ubuntu have a bit over 1k) would. Guaranteed.
> > > Reliably. Fast. That is a big step up for large deployments, for
> > testing, for
> > > less experienced users.
> > >
> > > So thanks for starting a discussion around this as 'we' as a community
> > are
> > > falling a bit short here.
> >
> > Indeed, thank you, Tobias.
> >
> > > One open question is if we could pull something off
> > > that works like the Python wheels and offers cross-distro builds,
> ideally
> > > without static linking. Your "CRAN libraries" added to the ld.so path
> > may do
> > > this. I do not know how feasible / involved this would be so so far I
> > > concentrated on doing something simpler -- but feasible and reliable by
> > > working exactly as the distribution packages work.
> >
> > It would be perfectly feasible to maintain sync'ed builds (in terms of
> > version) of system dependencies at CRAN-provided (RPM, APT...)
> > repositories as compat packages for various distributions, then all
> > packages could be built once and shipped everywhere (i.e. cross-distro
> > builds). Collaterally, this would increase reproducibility of package
> > checks to a certain extent.
> >
> > I offered my help in these matters in the past, but was kindly
> > declined. That hand remains extended.
> >
> > Best,
> > Iñaki
> >
> > >
> > > All that said, thanks for the starting this discussion!
> > >
> > > Cheers, Dirk
> > >
> > > --
> > > dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
> > >
> > > ______________________________________________
> > > R-devel using r-project.org mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-devel
> > >
> >
> >
> > --
> > Iñaki Úcar
> >
> > ______________________________________________
> > R-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
[[alternative HTML version deleted]]
More information about the R-devel
mailing list