diff --git a/.Rbuildignore b/.Rbuildignore
index b69480f327595e22c7f4b5bf11591725ce79295f..054b8eadc8e6d49c4d92caa307fd453b1fc6ea8a 100644
--- a/.Rbuildignore
+++ b/.Rbuildignore
@@ -6,3 +6,4 @@
 [.]INI$
 ^\.gitlab-ci\.yml$
 ^ci$
+^\.devcontainer$
diff --git a/DESCRIPTION b/DESCRIPTION
index 95aa6a488b5b0c73af039d0fc5b1213f488317a1..20f77c34ab83541923ac615e6c7dfcd182824d6e 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -26,4 +26,5 @@ Imports:
     terra,
     tidyquery,
     tidyr,
+    xfun,
     xml2
diff --git a/R/sic_run_fortran.R b/R/sic_run_fortran.R
index 8a658507d5d729a5eb75be1c84653c35cc9f762b..3e7c096814ed5dac7b88021670b25e5cfc27eabb 100644
--- a/R/sic_run_fortran.R
+++ b/R/sic_run_fortran.R
@@ -86,11 +86,17 @@ sic_run_fortran <- function(cfg, prog, params) {
     type = "cmd2"
   )
   logger::log_debug(cmd_line)
-  shell(
-    cmd_line,
-    wait = T,
-    translate = T
-  )
+  if (xfun::is_windows()) {
+    r <- shell(
+      cmd_line,
+      wait = T,
+      translate = T
+    )
+  } else {
+    r <- system(paste("wine", cmd_line))
+  }
+  attr(r, "cmd_line") <- cmd_line
+  return(r)
 }
 
 #' @noRd