• This repository has been archived on 15/Apr/2024
  • Stars
    star
    135
  • Rank 269,297 (Top 6 %)
  • Language
    Shell
  • Created over 9 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SystemRequirements mappings for R packages

sysreqs

SystemRequirements for R packages

Introduction

Many R packages require system libraries or other external software to build or run. The SystemRequirements field in the package DESCRIPTION file should declare these dependencies, as free form text. This makes it difficult to automate building and checking of R packages, since we need to guess which software should be installed on the build machine.

The sysreqs project formalizes these requirements, and provides a database with API to quickly find out which Homebrew, Debian, Ubuntu, RHEL/Centos, etc packages or other software needs to be available to build and use R packages.

In this README:

Supported platforms

Distributions using deb package format:

  • Ubuntu Linux
  • Debian Linux

Distributions using rpm package format:

  • Fedora Linux (recent releases)
  • RedHat and CentOS Linux (recent releases)

Distributions using the PKGBUILD package format:

  • Arch Linux

Non-native package formats:

  • HomeBrew package manager on MacOS
  • Pacman/Rtools on Windows (forthcoming)

Database format

The sysreqs database is a JSON document store. Each document contains mappings for a single canonical system requirement. It contains both the mappings to SystemRequirements fields, and platform dependent packages or URLs.

Below an example to make this clear. Several R packages require the libxml2 library. For building these packages from source, the libxml2 development headers are needed as well. The R packages refer to libxml2 in different ways. E.g. igraph has simply libxml2 and XML has libxml2 (>= 2.6.3) in their SystemRequirements fields.

{
  "libxml2": {
    "sysreqs": "libxml2",
    "platforms": {
       "DEB": "libxml2-dev",
       "OSX/brew": null,
       "RPM": "libxml2-devel"
    }
  }
}

Some notes:

Database access

See API docs at https://sysreqs.r-hub.io/

Contributing

Your contributions are welcome! More details below.

Adding or completing entries

Please read about the data format first. Entries should be added or improved via pull requests.

  • If a package (of yours or not) has a dependency that's not listed here yet, open a pull request to add it. You don't need to have it mapped to all platforms yet. Example of such a PR.

  • You can also make a pull request to add a mapping to a platform. Example of such a PR.

Reporting your use case

If you maintain a public platform/tool using sysreqsdb, make a PR to this repo updating the section below. Please put your tool at the very end of the list.

Use cases of the database

  • R-hub

  • The codemetar package, R package for the CodeMeta project, uses the sysreqs API to parse the SystemRequirements field.

  • The containerit package uses the sysreqs API to derive system requirements of packages for automatically creating a Dockerfile based on a collection of packages.

License

MIT Β© The R Consortium

More Repositories

1

rhub

R-hub API client
R
347
star
2

r-minimal

Minimal Docker images for R
Shell
155
star
3

pkgsearch

Search R packages on CRAN
R
107
star
4

cranlogs.app

RStudio CRAN mirror downloads, web app
JavaScript
100
star
5

proposal

r-hub: the everything-builder the R community needs. This is the original r-hub proposal, as submitted to the R Consortium
97
star
6

sysreqs

R package to install system requirements
R
80
star
7

cranlogs

Download Logs from the RStudio CRAN Mirror
R
79
star
8

cransays

Creates an Overview of CRAN Incoming Submissions πŸ“¬
R
77
star
9

crandb

Database of CRAN R packages
R
60
star
10

rhub2

The 'R-hub' package builder, v2
R
41
star
11

rversions

R versions, release dates and nicknames
R
39
star
12

evercran

Experimental
Shell
35
star
13

homebrew-cran

Building R binary packages using homebrew
Ruby
26
star
14

cranlike

Manage files in a CRAN-like repository
R
25
star
15

rhub-linux-builders

Docker configuration for the R-hub Linux builders
Perl
23
star
16

actions

GitHub Actions for R-hub
R
21
star
17

node-install-rstats

Download and install R, from node.js
JavaScript
16
star
18

jenkins-log-stream

Stream the output of a Jenkins job
JavaScript
15
star
19

containers

Docker containers for R-hub
Dockerfile
15
star
20

solarischeck

Scripts to R CMD check an R package on Solaris
Shell
11
star
21

blog

The R-hub blog
HTML
11
star
22

cchecksbadges

CRAN checks Badges
Ruby
10
star
23

rhub-server

Deploy your own R-hub-like server -- experimental
JavaScript
9
star
24

rhub-frontend

The R-hub web site. It stores uploads internally, and adds the submission to a message queue, to be picked up by another process
JavaScript
9
star
25

cran.github.io

CRAN @ github web page
CSS
7
star
26

cranatgh

Mirror CRAN @ GitHub
R
7
star
27

docs

R-hub documentation website
HTML
6
star
28

repos

Custom R package repositories β€” work in progress!
5
star
29

api.app

The R-hub API
JavaScript
4
star
30

rversions.app

R versions web app
HTML
4
star
31

pandoc-builders

Docker images to build pandoc binaries for various Linux distributions
Makefile
4
star
32

rhub-node

Constants and utility functions for dealing with R and CRAN packages from node.js
JavaScript
4
star
33

rhub-backend

The back-end of r-hub. A node.js process that picks up submissions from a message queue, creates Jenkins jobs for them, and starts building the Jenkins job.
JavaScript
4
star
34

node-rversions

Query current and old R versions
JavaScript
3
star
35

sysreqs.app

R / CRAN package requirements online database and API
JavaScript
3
star
36

r-builder

Tools to build R
R
3
star
37

wincheck

R CMD check on Windows, in a (somewhat) isolated environment
PowerShell
2
star
38

feedback

r-hub feedback
2
star
39

localbuilder

Build binary Linux packages in R-hub Docker containers - Abandoned...
R
2
star
40

r-constants

R related information that does not change very often
JavaScript
2
star
41

r-builds

Shell
2
star
42

presentations

Presentations about r-hub
HTML
1
star
43

branding

R-hub branding
1
star
44

rhub-jenkins

Jenkins Docker image. It is based on the official image, and adds some capabilities to set the admin password, install plugins, etc., all via supplying environment variables
Shell
1
star
45

log

The captain's log
CSS
1
star
46

builddeps

Find the build-time dependencies of a package
R
1
star
47

rtools42

1
star
48

search

JavaScript
1
star
49

cran-mirror

R
1
star
50

macoscheck

R CMD check as a temporary user on macOS
Shell
1
star
51

mac-tools

Tools for R and R packages
1
star
52

rhubctrl

⚠️ Work in progress! An R package that contains configuration information and functions to deploy and instance of r-hub. If you want to try r-hub on your local machine or server(s), you need this repository.
Ruby
1
star
53

ppa

Ubuntu packages for R-hub
Shell
1
star
54

rtools43

1
star
55

rtools44

Rtools44
1
star
56

repos-rpm

RPM packages for https://github.com/r-hub/repos
1
star
57

crandeps

R package to query CRAN (reverse) dependencies and calculate the full DAG
R
1
star