diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bfc7aa0..1a0e787 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,14 +27,15 @@ jobs: run: echo "matrix=$(ls -1 -d packages/* | grep -v gsl | tr '\n' '\0' | xargs -0 -n 1 basename | jq -Rsc '. / "\n" - [""]')" >> $GITHUB_OUTPUT test-package: - name: ${{ matrix.stack }} + name: ${{ matrix.stack }} on ${{ matrix.os }} needs: list-tests runs-on: ubuntu-latest strategy: matrix: stack: ${{ fromJSON(needs.list-tests.outputs.matrix) }} + os: [focal, jammy] container: - image: rstudio/shinyapps-package-dependencies:focal + image: rstudio/shinyapps-package-dependencies:${{ matrix.os }} steps: - uses: actions/checkout@v3 - run: ./test ${{ matrix.stack }} diff --git a/CHANGELOG.md b/CHANGELOG.md index ed5a52d..7636a55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +## September 22nd 2023 + +### Added + * Dockerfile and `make` / CI configurations for an Ubuntu jammy (22.04)-based environment. + +### UPDATED + * Updated packages as necessary to support jammy as a base OS. + * `dockxtractr` is available in jammy, but the installation currently supports .docx only, not .doc. + +### REMOVED + * `magick` no longer needs any extra packages installed to function properly. + * `convertGraph` was removed from CRAN and has only one archived release from 2016, so is not being supported in this repository. + ## March 15th 2021 ### UPDATED diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f2a61dc..280c43d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,8 +10,8 @@ Steps ===== 1. [Fork](https://help.github.com/articles/fork-a-repo) the repository on Github 2. Create a named feature branch (like `add_package_x_support`) -3. Write your change ([see next section below](https://github.com/rstudio/shinyapps-package-dependencies/blob/master/CONTRIBUTING.md#how-to-add-system-dependency-support-for-an-r-package)) -4. Write tests for your change ([see next section below](https://github.com/rstudio/shinyapps-package-dependencies/blob/master/CONTRIBUTING.md#how-to-add-system-dependency-support-for-an-r-package)) +3. Write your change ([see next section below](https://github.com/rstudio/shinyapps-package-dependencies/blob/main/CONTRIBUTING.md#how-to-add-system-dependency-support-for-an-r-package)) +4. Write tests for your change ([see next section below](https://github.com/rstudio/shinyapps-package-dependencies/blob/main/CONTRIBUTING.md#how-to-add-system-dependency-support-for-an-r-package)) 5. Run the tests, ensuring they all pass 6. Submit a [Pull Request](https://help.github.com/articles/creating-a-pull-request) using Github diff --git a/Dockerfile.focal b/Dockerfile.focal index 7aceda7..df18eaf 100644 --- a/Dockerfile.focal +++ b/Dockerfile.focal @@ -1,5 +1,4 @@ FROM ubuntu:focal -MAINTAINER RStudio Docker # update apt & install packages RUN apt-get update -qq && \ diff --git a/Dockerfile.jammy b/Dockerfile.jammy new file mode 100644 index 0000000..930150e --- /dev/null +++ b/Dockerfile.jammy @@ -0,0 +1,126 @@ +FROM ubuntu:jammy + +# Configure apt-get to use the mirror in us-east-1 instead of the Docker default of archive.ubuntu.com +RUN sed -i "s/archive.ubuntu.com/us-east-1.ec2.archive.ubuntu.com/g" /etc/apt/sources.list + +# update apt & install packages +RUN apt-get update -qq && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + build-essential \ + cmake \ + curl \ + git \ + gnupg \ + libboost-all-dev \ + libcurl4-openssl-dev \ + locales \ + lsb-release \ + openssh-client \ + protobuf-compiler \ + sudo && \ + rm -rf /var/lib/apt/lists/* + +# add R apt repository +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0x51716619e084dab9 && \ + echo "deb http://cran.rstudio.com/bin/linux/ubuntu jammy-cran40/" >> /etc/apt/sources.list.d/cran-rstudio.list + +# Ensure FreeTDS is added to unixodbc upon installation +RUN echo tdsodbc freetds/addtoodbc boolean true | debconf-set-selections + +# Install libraries & database related packages separately to break up the layers +RUN apt-get update -qq && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + gdebi-core \ + jags \ + libaio1 \ + libatlas3-base \ + libcairo2 \ + libcairo2-dev \ + libev-dev \ + libfftw3-dev \ + libgdal-dev \ + libgraphviz-dev \ + libgsl0-dev \ + libmagick++-dev \ + libmysqlclient21 \ + libmysqlclient-dev \ + libnetcdf-dev \ + libpcre2-dev \ + libprocps-dev \ + libproj-dev \ + libprotoc-dev \ + libquantlib0-dev \ + libsasl2-dev \ + libssh-dev \ + libsqliteodbc \ + libxml2-dev \ + libxt-dev \ + libxt6 \ + odbc-postgresql \ + tdsodbc \ + unixodbc \ + unixodbc-dev \ + wget \ + zip && \ + rm -rf /var/lib/apt/lists/* + +# Install the RStudio Professional Drivers (includes mysql drivers) +RUN wget -q https://cdn.rstudio.com/drivers/7C152C12/installer/rstudio-drivers_2023.05.0_amd64.deb && \ + gdebi -n rstudio-drivers_2023.05.0_amd64.deb && \ + cat /opt/rstudio-drivers/odbcinst.ini.sample >> /etc/odbcinst.ini && \ + rm rstudio-drivers_2023.05.0_amd64.deb + +# Install JDK and Cargo separately to avoid the recommended packages +RUN apt-get update -qq && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openjdk-11-jdk cargo && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update -qq && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + python3-dev \ + python3-pip \ + python3-venv \ + python3-virtualenv && \ + rm -rf /var/lib/apt/lists/* + +# Install Julia +RUN wget -q https://julialang-s3.julialang.org/bin/linux/x64/1.9/julia-1.9.1-linux-x86_64.tar.gz && \ + tar -C /usr/local -zxf julia-1.9.1-linux-x86_64.tar.gz && \ + ln -s /usr/local/julia-1.9.1/bin/julia /usr/local/bin/julia && \ + rm julia-1.9.1-linux-x86_64.tar.gz + +# Install of texlive. Use --no-install-recommends to avoid installing ~750MB of documentation +RUN apt-get update -qq && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + texlive-full && \ + rm -rf /var/lib/apt/lists/* + + +# add in the less secure openssl config file +# End-user applications can optionally reference this file to allow connection to less secure systems. +# https://community.rstudio.com/t/rmysql-to-mysql-database-on-aws-ssl-connection-error-after-deploying/100676 +COPY insecure-openssl.cnf /etc/ssl/insecure-openssl.cnf + +RUN apt-get update -qq && \ + DEBIAN_FRONTEND=noninteractive TZ='Etc/UTC' apt-get install tzdata && \ + apt-get install -s r-base-core r-base-dev | sed -e "/The following additional packages will be installed/,/^\w/!d;//d" -e "s/\br-.*\b//g" | xargs apt-get install -y + +# set default locale +RUN update-locale --reset LANG=C.UTF-8 + +# set a non-default global location for Renviron.site. +# This would typically be found at $R_HOME/etc/Renviron.site, but we'd like it not to be a layer in the per-R version images. +# https://stat.ethz.ch/R-manual/R-devel/library/base/html/Startup.html +ENV R_ENVIRON /etc/R/Renviron.site +COPY Renviron.site /etc/R/Renviron.site + +ARG R_VERSION=4.3.1 + +# Install R +RUN wget -q https://cdn.rstudio.com/r/ubuntu-2204/R-${R_VERSION}-ubuntu-2204.tar.gz -O /tmp/R-${R_VERSION}.tar.gz && \ + mkdir -p /opt/R && \ + tar zx -C /opt/R -f /tmp/R-${R_VERSION}.tar.gz && \ + ln -s /opt/R/${R_VERSION}/bin/R /usr/bin/R && \ + ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/bin/Rscript && \ + ln -s /opt/R/${R_VERSION}/lib/R /usr/lib/R && \ + rm /tmp/R-${R_VERSION}.tar.gz diff --git a/Makefile b/Makefile index c319d70..39e355f 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,25 @@ PACKAGE_DIRS := $(wildcard packages/*) PACKAGES := $(notdir ${PACKAGE_DIRS}) PACKAGE_TESTS := $(PACKAGES:%=test-%) -R_VERSION := 4.2.2 +R_VERSION := 4.3.1 # Docker image is built on Docker Hub https://hub.docker.com/repository/docker/rstudio/shinyapps-package-dependencies/ docker-build-%: docker build -t rstudio/shinyapps-package-dependencies:$* --build-arg R_VERSION=$(R_VERSION) -f Dockerfile.$* . -test-xenial-%: - docker run --rm --name spd-xenial-$* -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:xenial /shinyapps/test $* - -test-all-xenial: - docker run --rm --name spd-xenial -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:xenial /shinyapps/test - test-focal-%: docker run --rm --name spd-focal-$* -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:focal /shinyapps/test $* test-all-focal: docker run --rm --name spd-focal -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:focal /shinyapps/test -test-all: test-all-focal test-all-xenial +test-jammy-%: + docker run --rm --name spd-jammy-$* -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:jammy /shinyapps/test $* + +test-all-jammy: + docker run --rm --name spd-jammy -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:jammy /shinyapps/test + + +test-all: test-all-focal test-all-jammy -.PHONY: test-all-focal test-all-xenial +.PHONY: test-all-focal test-all-jammy diff --git a/README.md b/README.md index 8cb496d..6567786 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Some R packages require other software and libraries to be installed on the host function. This repository is used in [shinyapps.io](https://www.shinyapps.io/) to install those dependencies if a user's shinyapp utilizes an R package that requires other libraries/software to be install. -To contribute to this repository, read [CONTRIBUTING.md](https://github.com/rstudio/shinyapps-package-dependencies/blob/master/CONTRIBUTING.md) +To contribute to this repository, read [CONTRIBUTING.md](https://github.com/rstudio/shinyapps-package-dependencies/blob/main/CONTRIBUTING.md) If you'd like to request the addition of support of a specific R package, [open a github issue](https://github.com/rstudio/shinyapps-package-dependencies/issues). diff --git a/Renviron.site b/Renviron.site new file mode 100644 index 0000000..634f7da --- /dev/null +++ b/Renviron.site @@ -0,0 +1,4 @@ +LANG=C.UTF-8 + +# Otherwise timedatectl will get called which leads to 'no systemd' inside Docker +TZ=UTC diff --git a/insecure-openssl.cnf b/insecure-openssl.cnf new file mode 100644 index 0000000..addf6ef --- /dev/null +++ b/insecure-openssl.cnf @@ -0,0 +1,363 @@ +# +# OpenSSL example configuration file. +# This is mostly being used for generation of certificate requests. +# + +# Note that you can include other files from the main configuration +# file using the .include directive. +#.include filename + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . + +# Extra OBJECT IDENTIFIER info: +#oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# System default +openssl_conf = default_conf + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] + +# We can add new OIDs in here for use by 'ca', 'req' and 'ts'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +# Policies used by the TSA examples. +tsa_policy1 = 1.2.3.4.1 +tsa_policy2 = 1.2.3.4.5.6 +tsa_policy3 = 1.2.3.4.5.7 + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several certs with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem# The private key + +x509_extensions = usr_cert # The extensions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 365 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = default # use public key default MD +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 2048 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extensions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString (PKIX recommendation before 2004) +# utf8only: only UTF8Strings (PKIX recommendation after 2004). +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. +string_mask = utf8only + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = AU +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Some-State + +localityName = Locality Name (eg, city) + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Internet Widgits Pty Ltd + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +#organizationalUnitName_default = + +commonName = Common Name (e.g. server FQDN or YOUR name) +commonName_max = 64 + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This is required for TSA certificates. +# extendedKeyUsage = critical,timeStamping + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer + +basicConstraints = critical,CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Some might want this also +# nsCertType = sslCA, emailCA + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo + +#################################################################### +[ tsa ] + +default_tsa = tsa_config1 # the default TSA section + +[ tsa_config1 ] + +# These are used by the TSA reply generation only. +dir = ./demoCA # TSA root directory +serial = $dir/tsaserial # The current serial number (mandatory) +crypto_device = builtin # OpenSSL engine to use for signing +signer_cert = $dir/tsacert.pem # The TSA signing certificate + # (optional) +certs = $dir/cacert.pem # Certificate chain to include in reply + # (optional) +signer_key = $dir/private/tsakey.pem # The TSA private key (optional) +signer_digest = sha256 # Signing digest to use. (Optional) +default_policy = tsa_policy1 # Policy if request did not specify it + # (optional) +other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) +digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) +accuracy = secs:1, millisecs:500, microsecs:100 # (optional) +clock_precision_digits = 0 # number of digits after dot. (optional) +ordering = yes # Is ordering defined for timestamps? + # (optional, default: no) +tsa_name = yes # Must the TSA name be included in the reply? + # (optional, default: no) +ess_cert_id_chain = no # Must the ESS cert id chain be included? + # (optional, default: no) +ess_cert_id_alg = sha1 # algorithm to compute certificate + # identifier (optional, default: sha1) + +[default_conf] +ssl_conf = ssl_sect + +[ssl_sect] +system_default = system_default_sect + +[system_default_sect] +MinProtocol = TLSv1 +CipherString = DEFAULT@SECLEVEL=1 diff --git a/packages/ChemmineOB/install b/packages/ChemmineOB/install index c074fbf..940cd26 100644 --- a/packages/ChemmineOB/install +++ b/packages/ChemmineOB/install @@ -4,9 +4,9 @@ set -e OS_CODENAME=$(lsb_release -cs) -if [ "${OS_CODENAME}" == "focal" ]; then - echo "deb-src http://archive.ubuntu.com/ubuntu/ focal universe" >> /etc/apt/sources.list - echo "deb-src http://archive.ubuntu.com/ubuntu/ focal-updates universe" >> /etc/apt/sources.list +if [ "${OS_CODENAME}" == "focal" ] || [ "${OS_CODENAME}" == "jammy" ]; then + echo "deb-src http://archive.ubuntu.com/ubuntu/ ${OS_CODENAME} universe" >> /etc/apt/sources.list + echo "deb-src http://archive.ubuntu.com/ubuntu/ ${OS_CODENAME}-updates universe" >> /etc/apt/sources.list apt-get update -qq apt-get install -y libopenbabel-dev libeigen3-dev else diff --git a/packages/animation/install b/packages/animation/install index b97199c..aa4ff01 100644 --- a/packages/animation/install +++ b/packages/animation/install @@ -12,19 +12,6 @@ apt-get install -y software-properties-common # the installers for imported packages, so we need to install libmagick++-dev # here as well. -if [ $OS_CODENAME == "xenial" ]; then - add-apt-repository -y ppa:cran/imagemagick -fi - -# check for supported platform (whitelisted ubuntu versions) -if [ $OS_CODENAME == "xenial" ]; then - add-apt-repository ppa:jonathonf/ffmpeg-4 -fi - apt-get update -qq -if [ $OS_CODENAME == "focal" ]; then - apt-get install -y libmagick++-dev ffmpeg graphicsmagick pdftk x264 x265 -else - apt-get install -y libmagick++-dev ffmpeg graphicsmagick libav-tools pdftk x264 x265 -fi +apt-get install -y libmagick++-dev ffmpeg graphicsmagick pdftk x264 x265 diff --git a/packages/convertGraph/install b/packages/convertGraph/install deleted file mode 100644 index 780da32..0000000 --- a/packages/convertGraph/install +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -set -x -set -e - -apt-get update -qq -DEBIAN_FRONTEND=noninteractive apt-get install -y phantomjs diff --git a/packages/convertGraph/test.R b/packages/convertGraph/test.R deleted file mode 100644 index 2435471..0000000 --- a/packages/convertGraph/test.R +++ /dev/null @@ -1,3 +0,0 @@ -options(download.file.method="curl") -install.packages("convertGraph", repos="https://cran.rstudio.com") -convertGraph::convertGraph("./example.svg", "./example.png", path="/usr/bin/phantomjs") diff --git a/packages/docxtractr/install b/packages/docxtractr/install index 9cbf1d6..cd03a12 100755 --- a/packages/docxtractr/install +++ b/packages/docxtractr/install @@ -7,8 +7,5 @@ if [ "${OS_CODENAME}" == "focal" ]; then echo "docxtractr is not supported on Ubuntu 20.04 due to: https://github.com/rstudio/shinyapps-package-dependencies/issues/282" else apt-get update -qq - apt-get install -y software-properties-common - add-apt-repository ppa:libreoffice/ppa - apt-get update -qq - apt-get install -y libreoffice + apt-get install -y --no-install-recommends libreoffice fi diff --git a/packages/docxtractr/test.R b/packages/docxtractr/test.R index 660cad6..fd7a063 100644 --- a/packages/docxtractr/test.R +++ b/packages/docxtractr/test.R @@ -4,8 +4,8 @@ print("docxtractr is not supported on 20.04 due to https://github.com/rstudio/sh install.packages("docxtractr", repos = "https://cran.rstudio.com") mytempdir = tempdir() -mydestfile = tempfile(tmpdir = mytempdir, fileext = ".doc") -dl = download.file(url = "http://www.iiswc.org/iiswc2013/sample.doc", destfile = mydestfile) +mydestfile = tempfile(tmpdir = mytempdir, fileext = ".docx") +dl = download.file(url = "https://filesamples.com/samples/document/docx/sample2.docx", destfile = mydestfile) docxtractr:::lo_find() res = docxtractr::read_docx(mydestfile) diff --git a/packages/magick/install b/packages/magick/install deleted file mode 100755 index 40dceb1..0000000 --- a/packages/magick/install +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -set -x -set -e - -OS_CODENAME=$(lsb_release -cs) - -apt-get update -qq -apt-get install -y software-properties-common - -# these sysdeps are available by default in bionic -if [ ${OS_CODENAME} == "xenial" ]; then - apt-get install -y python-software-properties - # PPA has recent ImageMagick versions for for Ubuntu Trusty/Xenial - add-apt-repository -y ppa:cran/imagemagick - apt-get update -qq -fi - -apt-get install -y libmagick++-dev - - -if [ ${OS_CODENAME} == "focal" ]; then - # the default policy file for debian based imagemagick is overly strict for an environment such as shinapps.io - # remove this file to use the default imagemagick policy. - rm /etc/ImageMagick-6/policy.xml -fi diff --git a/packages/magick/test.R b/packages/magick/test.R deleted file mode 100644 index 23823f0..0000000 --- a/packages/magick/test.R +++ /dev/null @@ -1,15 +0,0 @@ -# Install from CRAN -install.packages("magick", repos = "https://cran.rstudio.com") - -# Run example from the manual -library(magick) -docdir <- Sys.getenv("R_DOC_DIR", R.home("doc")) -img <- magick::image_read(file.path(docdir, "html", "logo.jpg")) - -# Create a pdf -image_write(wizard, - tempfile(pattern = "pdftemp", fileext = '.pdf'), - density = 55, - format = 'pdf', - comment = "Edit PDFs and Images" -) diff --git a/test b/test index 93f9a37..91c58f9 100755 --- a/test +++ b/test @@ -19,6 +19,10 @@ apt-get install -qq -y moreutils DIR=`dirname $0` +# Make the repo root, wherever it got mounted in, the current directory. +# Helps tests that read/write test fixture files to find them. +cd "${DIR}" || exit 1 + if [ $# -eq 0 ]; then PACKAGES=$(ls -1 -d $DIR/packages/* | grep -v gsl | tr '\n' '\0' | xargs -0 -n 1 basename) else