From da19ec347022950f14e538d21ecd07b66c7ab201 Mon Sep 17 00:00:00 2001 From: Jeroen Ooms Date: Tue, 26 Sep 2023 13:40:53 +0200 Subject: [PATCH] Windows: update libs --- .github/workflows/R-CMD-check.yaml | 14 +++++++++----- DESCRIPTION | 2 +- NEWS.md | 4 ++++ src/Makevars.ucrt | 3 --- src/Makevars.win | 17 ++++++++++------- tools/winlibs.R | 23 ++++++++++++++++------- 6 files changed, 40 insertions(+), 23 deletions(-) delete mode 100644 src/Makevars.ucrt diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index a88695a..62cee47 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -1,4 +1,4 @@ -# Workflow derived from https://github.com/r-lib/actions/tree/master/examples +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: @@ -16,10 +16,11 @@ jobs: fail-fast: false matrix: config: - - {os: macOS-latest, r: 'release'} - - {os: windows-latest, r: '3.6'} + - {os: macos-latest, r: 'release'} + - {os: windows-latest, r: 'devel'} - {os: windows-latest, r: 'release'} - - {os: windows-2022, r: 'devel'} + - {os: windows-latest, r: '4.2'} + - {os: windows-latest, r: '4.1'} - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - {os: ubuntu-latest, r: 'release'} - {os: ubuntu-latest, r: 'oldrel-1'} @@ -41,6 +42,9 @@ jobs: - uses: r-lib/actions/setup-r-dependencies@v2 with: - extra-packages: rcmdcheck + extra-packages: any::rcmdcheck + needs: check - uses: r-lib/actions/check-r-package@v2 + with: + upload-snapshots: true diff --git a/DESCRIPTION b/DESCRIPTION index 6bd721f..0b23d15 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: RMySQL -Version: 0.10.25 +Version: 0.10.26 Title: Database Interface and 'MySQL' Driver for R Description: Legacy 'DBI' interface to 'MySQL' / 'MariaDB' based on old code ported from S-PLUS. A modern 'MySQL' client based on 'Rcpp' is available diff --git a/NEWS.md b/NEWS.md index 8fc226f..3bf5ecb 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +# Version 0.10.26 + + * Windows: update libs with arm support + # Version 0.10.25 * Replace sprintf with snprintf for CRAN diff --git a/src/Makevars.ucrt b/src/Makevars.ucrt deleted file mode 100644 index ed1cc83..0000000 --- a/src/Makevars.ucrt +++ /dev/null @@ -1,3 +0,0 @@ -CRT=-ucrt -TLS_LIBS=-lbcrypt -include Makevars.win diff --git a/src/Makevars.win b/src/Makevars.win index 5993566..59b0e6d 100644 --- a/src/Makevars.win +++ b/src/Makevars.win @@ -1,14 +1,17 @@ -VERSION = 3.2.5 -RWINLIB = ../windows/libmariadbclient-$(VERSION) -TLS_LIBS ?= -lssl -lcrypto +RWINLIB = ../windows/libmariadbclient + +ifeq ($(R_COMPILED_BY),gcc 8.3.0) +TLS_LIBS = -lssl -lcrypto +endif CXX_STD=CXX11 PKG_CPPFLAGS = -I$(RWINLIB)/include/mariadb -PKG_LIBS= -L$(RWINLIB)/lib${R_ARCH}${CRT} \ - -lmariadbclient $(TLS_LIBS) -lz -lsecur32 -lshlwapi -lcrypt32 -lgdi32 -lws2_32 -pthread +PKG_LIBS = \ + -L$(RWINLIB)/lib$(R_ARCH) \ + -L$(RWINLIB)/lib \ + -lmariadbclient $(TLS_LIBS) -lz -lbcrypt -lsecur32 -lshlwapi -lcrypt32 -lgdi32 -lws2_32 -pthread -#all: clean -all: winlibs +all: clean winlibs clean: rm -f $(SHLIB) $(OBJECTS) diff --git a/tools/winlibs.R b/tools/winlibs.R index 234866a..b7bacf3 100644 --- a/tools/winlibs.R +++ b/tools/winlibs.R @@ -1,9 +1,18 @@ -# Link against libmariadbclient static libraries -VERSION <- commandArgs(TRUE) -if(!file.exists(sprintf("../windows/libmariadbclient-%s/include/mariadb/mysql.h", VERSION))){ - if(getRversion() < "3.3.0") setInternet2() - download.file(sprintf("https://github.com/rwinlib/libmariadbclient/archive/v%s.zip", VERSION), "lib.zip", quiet = TRUE) +if(!file.exists("../windows/libssl/include/mysql.h")){ + unlink("../windows", recursive = TRUE) + url <- if(grepl("aarch", R.version$platform)){ + "https://github.com/r-windows/bundles/releases/download/libmariadbclient-3.2.5/libmariadbclient-3.2.5-clang-aarch64.tar.xz" + } else if(grepl("clang", Sys.getenv('R_COMPILED_BY'))){ + "https://github.com/r-windows/bundles/releases/download/libmariadbclient-3.2.5/libmariadbclient-3.2.5-clang-x86_64.tar.xz" + } else if(getRversion() >= "4.2") { + "https://github.com/r-windows/bundles/releases/download/libmariadbclient-3.2.5/libmariadbclient-3.2.5-ucrt-x86_64.tar.xz" + } else { + "https://github.com/rwinlib/libmariadbclient/archive/v3.2.5.tar.gz" + } + download.file(url, basename(url), quiet = TRUE) dir.create("../windows", showWarnings = FALSE) - unzip("lib.zip", exdir = "../windows") - unlink("lib.zip") + untar(basename(url), exdir = "../windows", tar = 'internal') + unlink(basename(url)) + setwd("../windows") + file.rename(list.files(), 'libmariadbclient') }