diff --git a/Rmath-226598f.tar.gz b/Rmath-226598f.tar.gz
deleted file mode 100644
index e69646d..0000000
--- a/Rmath-226598f.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cfb9e3d1f844a5bec60ea45b67e4929a36d651ed7f50f11dddbd49874a6bbc2d
-size 192575
diff --git a/_constraints b/_constraints
index c1fca34..0a672c2 100644
--- a/_constraints
+++ b/_constraints
@@ -3,7 +3,13 @@
kvm
- 2000
+ 4000
+
+
+ i586
+ x86_64
+
+
diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..a3cea62
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,3 @@
+
+ compat
+
diff --git a/_service b/_service
deleted file mode 100644
index 9ced630..0000000
--- a/_service
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
- https://github.com/JuliaLang/Rmath.git
- git
- %h
- 226598f
-
-
- https://github.com/JuliaLang/libuv.git
- git
- %h
- a12eb33
-
-
- *.tar
- gz
-
-
\ No newline at end of file
diff --git a/julia-0.3.0.tar.gz b/julia-0.3.0.tar.gz
deleted file mode 100644
index b4be1d4..0000000
--- a/julia-0.3.0.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1e9778129231aeff4e5f6100b0b71d2dbc4306cfc92cf533e527907d4a7a9aa1
-size 2271301
diff --git a/julia-1.6.3-full.tar.gz b/julia-1.6.3-full.tar.gz
new file mode 100644
index 0000000..a4581f0
--- /dev/null
+++ b/julia-1.6.3-full.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:29aad934582fb4c6dd9f9dd558ad649921f43bc7320eab54407fdf6dd3270a33
+size 153730803
diff --git a/julia-env-script-interpreter.patch b/julia-env-script-interpreter.patch
new file mode 100644
index 0000000..4f7b1d4
--- /dev/null
+++ b/julia-env-script-interpreter.patch
@@ -0,0 +1,10 @@
+Index: julia/contrib/julia-config.jl
+===================================================================
+--- julia.orig/contrib/julia-config.jl
++++ julia/contrib/julia-config.jl
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env julia
++#!/usr/bin/julia
+ # This file is a part of Julia. License is MIT: https://julialang.org/license
+
+ import Libdl
diff --git a/julia-fix-mbedtls-build-failure-gcc-11.patch b/julia-fix-mbedtls-build-failure-gcc-11.patch
new file mode 100644
index 0000000..248d4fd
--- /dev/null
+++ b/julia-fix-mbedtls-build-failure-gcc-11.patch
@@ -0,0 +1,351 @@
+Index: julia-1.6.2/deps/mbedtls.mk
+===================================================================
+--- julia-1.6.2.orig/deps/mbedtls.mk
++++ julia-1.6.2/deps/mbedtls.mk
+@@ -5,7 +5,9 @@ MBEDTLS_SRC = mbedtls-$(MBEDTLS_VER)
+ MBEDTLS_URL = https://github.com/ARMmbed/mbedtls/archive/v$(MBEDTLS_VER).tar.gz
+
+ MBEDTLS_OPTS := $(CMAKE_COMMON) -DUSE_SHARED_MBEDTLS_LIBRARY=ON \
+- -DUSE_STATIC_MBEDTLS_LIBRARY=OFF -DENABLE_PROGRAMS=OFF -DCMAKE_BUILD_TYPE=Release
++ -DUSE_STATIC_MBEDTLS_LIBRARY=OFF -DENABLE_PROGRAMS=OFF -DCMAKE_BUILD_TYPE=Release \
++ -DCMAKE_C_FLAGS="${CMAKE_C_FLAGS} -Wno-stringop-overflow -Wno-maybe-uninitialized" \
++ -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wno-stringop-overflow -Wno-maybe-uninitialized"
+
+ MBEDTLS_OPTS += -DENABLE_ZLIB_SUPPORT=OFF
+ ifeq ($(BUILD_OS),WINNT)
+@@ -36,7 +38,8 @@ $(SRCCACHE)/$(MBEDTLS_SRC)/mbedtls-cmake
+ # This patch merged upstream shortly after MBedTLS's 2.25.0 minor release, so chances
+ # are it will be included at least in their next minor release (2.26.0?).
+ cd $(SRCCACHE)/$(MBEDTLS_SRC) && \
+- patch -p1 -f < $(SRCDIR)/patches/mbedtls-cmake-findpy.patch
++ patch -p1 -f < $(SRCDIR)/patches/mbedtls-cmake-findpy.patch && \
++ patch -p1 -f < $(SRCDIR)/patches/mbedtls-fix-build-failure-on-gcc-11.patch
+ echo 1 > $@
+
+ $(BUILDDIR)/$(MBEDTLS_SRC)/build-configured: \
+Index: julia-1.6.2/deps/patches/mbedtls-fix-build-failure-on-gcc-11.patch
+===================================================================
+--- /dev/null
++++ julia-1.6.2/deps/patches/mbedtls-fix-build-failure-on-gcc-11.patch
+@@ -0,0 +1,321 @@
++From 2630f6720df59a2084220b1c06f4730a0a330ea0 Mon Sep 17 00:00:00 2001
++From: Rodrigo Dias Correa
++Date: Wed, 4 Nov 2020 01:55:38 -0300
++Subject: [PATCH 1/7] Fix build failure on gcc-11
++
++Function prototypes changed to use array parameters instead of
++pointers.
++
++Signed-off-by: Rodrigo Dias Correa
++---
++ library/ssl_tls.c | 6 +++---
++ 1 file changed, 3 insertions(+), 3 deletions(-)
++
++diff --git a/library/ssl_tls.c b/library/ssl_tls.c
++index 041578e68f7..ec890d7dcdc 100644
++--- a/library/ssl_tls.c
+++++ b/library/ssl_tls.c
++@@ -680,20 +680,20 @@ static void ssl_calc_finished_ssl( mbedtls_ssl_context *, unsigned char *, int )
++ #endif
++
++ #if defined(MBEDTLS_SSL_PROTO_TLS1) || defined(MBEDTLS_SSL_PROTO_TLS1_1)
++-static void ssl_calc_verify_tls( const mbedtls_ssl_context *, unsigned char *, size_t * );
+++static void ssl_calc_verify_tls( const mbedtls_ssl_context *, unsigned char [36], size_t * );
++ static void ssl_calc_finished_tls( mbedtls_ssl_context *, unsigned char *, int );
++ #endif
++
++ #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
++ #if defined(MBEDTLS_SHA256_C)
++ static void ssl_update_checksum_sha256( mbedtls_ssl_context *, const unsigned char *, size_t );
++-static void ssl_calc_verify_tls_sha256( const mbedtls_ssl_context *,unsigned char *, size_t * );
+++static void ssl_calc_verify_tls_sha256( const mbedtls_ssl_context *,unsigned char [32], size_t * );
++ static void ssl_calc_finished_tls_sha256( mbedtls_ssl_context *,unsigned char *, int );
++ #endif
++
++ #if defined(MBEDTLS_SHA512_C)
++ static void ssl_update_checksum_sha384( mbedtls_ssl_context *, const unsigned char *, size_t );
++-static void ssl_calc_verify_tls_sha384( const mbedtls_ssl_context *, unsigned char *, size_t * );
+++static void ssl_calc_verify_tls_sha384( const mbedtls_ssl_context *, unsigned char [48], size_t * );
++ static void ssl_calc_finished_tls_sha384( mbedtls_ssl_context *, unsigned char *, int );
++ #endif
++ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
++
++From 2c424570e2a85e21273313808e8c5efcf1cfc9d7 Mon Sep 17 00:00:00 2001
++From: Rodrigo Dias Correa
++Date: Tue, 10 Nov 2020 01:38:00 -0300
++Subject: [PATCH 2/7] Fix mismatched function parameters (prototype/definition)
++
++In GCC 11, parameters declared as arrays in function prototypes
++cannot be declared as pointers in the function definition. The
++same is true for the other way around.
++
++The definition of `mbedtls_aes_cmac_prf_128` was changed to match
++its public prototype in `cmac.h`. The type `output` was
++`unsigned char *`, now is `unsigned char [16]`.
++
++In `ssl_tls.c`, all the `ssl_calc_verify_*` variants now use pointers
++for the output `hash` parameter. The array parameters were removed
++because those functions must be compatible with the function pointer
++`calc_verify` (defined in `ssl_internal.h`).
++
++Signed-off-by: Rodrigo Dias Correa
++---
++ library/cmac.c | 2 +-
++ library/ssl_tls.c | 14 +++++++-------
++ 2 files changed, 8 insertions(+), 8 deletions(-)
++
++diff --git a/library/cmac.c b/library/cmac.c
++index 816bf13da38..59ece155eeb 100644
++--- a/library/cmac.c
+++++ b/library/cmac.c
++@@ -420,7 +420,7 @@ int mbedtls_cipher_cmac( const mbedtls_cipher_info_t *cipher_info,
++ */
++ int mbedtls_aes_cmac_prf_128( const unsigned char *key, size_t key_length,
++ const unsigned char *input, size_t in_len,
++- unsigned char *output )
+++ unsigned char output[16] )
++ {
++ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
++ const mbedtls_cipher_info_t *cipher_info;
++diff --git a/library/ssl_tls.c b/library/ssl_tls.c
++index ec890d7dcdc..9d4c4622894 100644
++--- a/library/ssl_tls.c
+++++ b/library/ssl_tls.c
++@@ -680,20 +680,20 @@ static void ssl_calc_finished_ssl( mbedtls_ssl_context *, unsigned char *, int )
++ #endif
++
++ #if defined(MBEDTLS_SSL_PROTO_TLS1) || defined(MBEDTLS_SSL_PROTO_TLS1_1)
++-static void ssl_calc_verify_tls( const mbedtls_ssl_context *, unsigned char [36], size_t * );
+++static void ssl_calc_verify_tls( const mbedtls_ssl_context *, unsigned char*, size_t * );
++ static void ssl_calc_finished_tls( mbedtls_ssl_context *, unsigned char *, int );
++ #endif
++
++ #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
++ #if defined(MBEDTLS_SHA256_C)
++ static void ssl_update_checksum_sha256( mbedtls_ssl_context *, const unsigned char *, size_t );
++-static void ssl_calc_verify_tls_sha256( const mbedtls_ssl_context *,unsigned char [32], size_t * );
+++static void ssl_calc_verify_tls_sha256( const mbedtls_ssl_context *,unsigned char*, size_t * );
++ static void ssl_calc_finished_tls_sha256( mbedtls_ssl_context *,unsigned char *, int );
++ #endif
++
++ #if defined(MBEDTLS_SHA512_C)
++ static void ssl_update_checksum_sha384( mbedtls_ssl_context *, const unsigned char *, size_t );
++-static void ssl_calc_verify_tls_sha384( const mbedtls_ssl_context *, unsigned char [48], size_t * );
+++static void ssl_calc_verify_tls_sha384( const mbedtls_ssl_context *, unsigned char*, size_t * );
++ static void ssl_calc_finished_tls_sha384( mbedtls_ssl_context *, unsigned char *, int );
++ #endif
++ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
++@@ -1667,7 +1667,7 @@ int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl )
++
++ #if defined(MBEDTLS_SSL_PROTO_SSL3)
++ void ssl_calc_verify_ssl( const mbedtls_ssl_context *ssl,
++- unsigned char hash[36],
+++ unsigned char *hash,
++ size_t *hlen )
++ {
++ mbedtls_md5_context md5;
++@@ -1720,7 +1720,7 @@ void ssl_calc_verify_ssl( const mbedtls_ssl_context *ssl,
++
++ #if defined(MBEDTLS_SSL_PROTO_TLS1) || defined(MBEDTLS_SSL_PROTO_TLS1_1)
++ void ssl_calc_verify_tls( const mbedtls_ssl_context *ssl,
++- unsigned char hash[36],
+++ unsigned char *hash,
++ size_t *hlen )
++ {
++ mbedtls_md5_context md5;
++@@ -1752,7 +1752,7 @@ void ssl_calc_verify_tls( const mbedtls_ssl_context *ssl,
++ #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
++ #if defined(MBEDTLS_SHA256_C)
++ void ssl_calc_verify_tls_sha256( const mbedtls_ssl_context *ssl,
++- unsigned char hash[32],
+++ unsigned char *hash,
++ size_t *hlen )
++ {
++ #if defined(MBEDTLS_USE_PSA_CRYPTO)
++@@ -1801,7 +1801,7 @@ void ssl_calc_verify_tls_sha256( const mbedtls_ssl_context *ssl,
++
++ #if defined(MBEDTLS_SHA512_C)
++ void ssl_calc_verify_tls_sha384( const mbedtls_ssl_context *ssl,
++- unsigned char hash[48],
+++ unsigned char *hash,
++ size_t *hlen )
++ {
++ #if defined(MBEDTLS_USE_PSA_CRYPTO)
++
++From 80448aae2c93b7bfe73a05410196e237ef2dd8e1 Mon Sep 17 00:00:00 2001
++From: Rodrigo Dias Correa
++Date: Tue, 10 Nov 2020 02:28:50 -0300
++Subject: [PATCH 3/7] Fix GCC warning about `test_snprintf`
++
++GCC 11 generated the warnings because the parameter `ret_buf`
++was declared as `const char[10]`, but some of the arguments
++provided in `run_test_snprintf` are shorter literals, like "".
++
++Now the type of `ret_buf` is `const char *`.
++Both implementations of `test_snprintf` were fixed.
++
++Signed-off-by: Rodrigo Dias Correa
++---
++ programs/test/selftest.c | 2 +-
++ tests/suites/host_test.function | 2 +-
++ 2 files changed, 2 insertions(+), 2 deletions(-)
++
++diff --git a/programs/test/selftest.c b/programs/test/selftest.c
++index 2aa379b1cf3..41d704073bc 100644
++--- a/programs/test/selftest.c
+++++ b/programs/test/selftest.c
++@@ -158,7 +158,7 @@ static int calloc_self_test( int verbose )
++ }
++ #endif /* MBEDTLS_SELF_TEST */
++
++-static int test_snprintf( size_t n, const char ref_buf[10], int ref_ret )
+++static int test_snprintf( size_t n, const char *ref_buf, int ref_ret )
++ {
++ int ret;
++ char buf[10] = "xxxxxxxxx";
++diff --git a/tests/suites/host_test.function b/tests/suites/host_test.function
++index db53e9784a7..872a3a43ac4 100644
++--- a/tests/suites/host_test.function
+++++ b/tests/suites/host_test.function
++@@ -335,7 +335,7 @@ static int convert_params( size_t cnt , char ** params , int * int_params_store
++ #if defined(__GNUC__)
++ __attribute__((__noinline__))
++ #endif
++-static int test_snprintf( size_t n, const char ref_buf[10], int ref_ret )
+++static int test_snprintf( size_t n, const char *ref_buf, int ref_ret )
++ {
++ int ret;
++ char buf[10] = "xxxxxxxxx";
++
++From eb5d014d8ec82cfebfdd008d890d0e1a114c2abc Mon Sep 17 00:00:00 2001
++From: Rodrigo Dias Correa
++Date: Tue, 10 Nov 2020 02:51:51 -0300
++Subject: [PATCH 4/7] Fix GCC warning in `ssl_calc_finished_tls_sha384`
++
++GCC 11 generated a warning because `padbuf` was too small to be
++used as an argument for `mbedtls_sha512_finish_ret`. The `output`
++parameter of `mbedtls_sha512_finish_ret` has the type
++`unsigned char[64]`, but `padbuf` was only 48 bytes long.
++
++Even though `ssl_calc_finished_tls_sha384` uses only 48 bytes for
++the hash output, the size of `padbuf` was increased to 64 bytes.
++
++Signed-off-by: Rodrigo Dias Correa
++---
++ library/ssl_tls.c | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/library/ssl_tls.c b/library/ssl_tls.c
++index 9d4c4622894..c69de3f1dcb 100644
++--- a/library/ssl_tls.c
+++++ b/library/ssl_tls.c
++@@ -3202,7 +3202,7 @@ static void ssl_calc_finished_tls_sha384(
++ {
++ int len = 12;
++ const char *sender;
++- unsigned char padbuf[48];
+++ unsigned char padbuf[64];
++ #if defined(MBEDTLS_USE_PSA_CRYPTO)
++ size_t hash_size;
++ psa_hash_operation_t sha384_psa = PSA_HASH_OPERATION_INIT;
++
++From 683028a2f721980fa541e49a42cfdce3cc3f1c1d Mon Sep 17 00:00:00 2001
++From: Rodrigo Dias Correa
++Date: Tue, 10 Nov 2020 03:17:36 -0300
++Subject: [PATCH 5/7] Add changelog entry file to `ChangeLog.d`
++
++Signed-off-by: Rodrigo Dias Correa
++---
++ ChangeLog.d/bugfix_3782.txt | 2 ++
++ 1 file changed, 2 insertions(+)
++ create mode 100644 ChangeLog.d/bugfix_3782.txt
++
++diff --git a/ChangeLog.d/bugfix_3782.txt b/ChangeLog.d/bugfix_3782.txt
++new file mode 100644
++index 00000000000..25e18cb1821
++--- /dev/null
+++++ b/ChangeLog.d/bugfix_3782.txt
++@@ -0,0 +1,2 @@
+++Bugfix
+++ * Fix build failures on GCC 11. Fixes #3782.
++
++From d596ca8a1e34b6ef2fda293250829d014e5d33af Mon Sep 17 00:00:00 2001
++From: Rodrigo Dias Correa
++Date: Wed, 25 Nov 2020 00:42:28 -0300
++Subject: [PATCH 6/7] Fix GCC warning in `ssl_calc_finished_tls_sha384`
++
++This commit fixes the same warning fixed by baeedbf9, but without
++wasting RAM. By casting `mbedtls_sha512_finish_ret()`, `padbuf`
++could be kept 48 bytes long without triggering any warnings.
++
++Signed-off-by: Rodrigo Dias Correa
++---
++ library/ssl_tls.c | 13 +++++++++++--
++ 1 file changed, 11 insertions(+), 2 deletions(-)
++
++diff --git a/library/ssl_tls.c b/library/ssl_tls.c
++index c69de3f1dcb..79348bd8dd0 100644
++--- a/library/ssl_tls.c
+++++ b/library/ssl_tls.c
++@@ -3197,12 +3197,15 @@ static void ssl_calc_finished_tls_sha256(
++ #endif /* MBEDTLS_SHA256_C */
++
++ #if defined(MBEDTLS_SHA512_C)
+++
+++typedef int (*finish_sha384_t)(mbedtls_sha512_context*, unsigned char[48]);
+++
++ static void ssl_calc_finished_tls_sha384(
++ mbedtls_ssl_context *ssl, unsigned char *buf, int from )
++ {
++ int len = 12;
++ const char *sender;
++- unsigned char padbuf[64];
+++ unsigned char padbuf[48];
++ #if defined(MBEDTLS_USE_PSA_CRYPTO)
++ size_t hash_size;
++ psa_hash_operation_t sha384_psa = PSA_HASH_OPERATION_INIT;
++@@ -3255,8 +3258,14 @@ static void ssl_calc_finished_tls_sha384(
++ MBEDTLS_SSL_DEBUG_BUF( 4, "finished sha512 state", (unsigned char *)
++ sha512.state, sizeof( sha512.state ) );
++ #endif
+++ /*
+++ * For SHA-384, we can save 16 bytes by keeping padbuf 48 bytes long.
+++ * However, to avoid stringop-overflow warning in gcc, we have to cast
+++ * mbedtls_sha512_finish_ret().
+++ */
+++ finish_sha384_t finish = (finish_sha384_t)mbedtls_sha512_finish_ret;
+++ finish( &sha512, padbuf );
++
++- mbedtls_sha512_finish_ret( &sha512, padbuf );
++ mbedtls_sha512_free( &sha512 );
++ #endif
++
++
++From f06a6144e23a1a8dcc3dd749b993ad88a96063fb Mon Sep 17 00:00:00 2001
++From: Rodrigo Dias Correa
++Date: Wed, 25 Nov 2020 07:30:26 -0300
++Subject: [PATCH 7/7] Change function casting in `ssl_calc_finished_tls_sha384`
++
++`finish_sha384_t` was made more generic by using `unsigned char*`
++instead of `unsigned char[48]` as the second parameter.
++This change tries to make the function casting more robust against
++future improvements of gcc analysis.
++
++Signed-off-by: Rodrigo Dias Correa
++---
++ library/ssl_tls.c | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/library/ssl_tls.c b/library/ssl_tls.c
++index 79348bd8dd0..a1a5859f056 100644
++--- a/library/ssl_tls.c
+++++ b/library/ssl_tls.c
++@@ -3198,7 +3198,7 @@ static void ssl_calc_finished_tls_sha256(
++
++ #if defined(MBEDTLS_SHA512_C)
++
++-typedef int (*finish_sha384_t)(mbedtls_sha512_context*, unsigned char[48]);
+++typedef int (*finish_sha384_t)(mbedtls_sha512_context*, unsigned char*);
++
++ static void ssl_calc_finished_tls_sha384(
++ mbedtls_ssl_context *ssl, unsigned char *buf, int from )
diff --git a/julia-fix-task-build-failure-gcc-11.patch b/julia-fix-task-build-failure-gcc-11.patch
new file mode 100644
index 0000000..34e4470
--- /dev/null
+++ b/julia-fix-task-build-failure-gcc-11.patch
@@ -0,0 +1,13 @@
+--- julia-1.6.3/src/task.c 2021-09-23 19:34:58.000000000 +0200
++++ julia-1.6.3/src/task.c 2021-10-22 09:54:20.765870391 +0200
+@@ -75,8 +75,8 @@
+
+ // empirically, jl_finish_task needs about 64k stack space to infer/run
+ // and additionally, gc-stack reserves 64k for the guard pages
+-#if defined(MINSIGSTKSZ) && MINSIGSTKSZ > 131072
+-#define MINSTKSZ MINSIGSTKSZ
++#if defined(MINSIGSTKSZ)
++#define MINSTKSZ (MINSIGSTKSZ > 131072 ? MINSIGSTKSZ : 131072)
+ #else
+ #define MINSTKSZ 131072
+ #endif
diff --git a/julia-fix_doc_build.patch b/julia-fix_doc_build.patch
new file mode 100644
index 0000000..606fa7e
--- /dev/null
+++ b/julia-fix_doc_build.patch
@@ -0,0 +1,15 @@
+Index: julia-1.6.0/Makefile
+===================================================================
+--- julia-1.6.0.orig/Makefile
++++ julia-1.6.0/Makefile
+@@ -42,10 +42,6 @@ $(foreach link,base $(JULIAHOME)/test,$(
+ julia_flisp.boot.inc.phony: julia-deps
+ @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/src julia_flisp.boot.inc.phony
+
+-# Build the HTML docs (skipped if already exists, notably in tarballs)
+-$(BUILDROOT)/doc/_build/html/en/index.html: $(shell find $(BUILDROOT)/base $(BUILDROOT)/doc \( -path $(BUILDROOT)/doc/_build -o -path $(BUILDROOT)/doc/deps -o -name *_constants.jl -o -name *_h.jl -o -name version_git.jl \) -prune -o -type f -print)
+- @$(MAKE) docs
+-
+ julia-symlink: julia-cli-$(JULIA_BUILD_MODE)
+ ifeq ($(OS),WINNT)
+ @echo '@"%~dp0\'"$$(echo $(call rel_path,$(BUILDROOT),$(JULIA_EXECUTABLE)) | tr / '\\')"\" '%*' > $(BUILDROOT)/julia.bat
diff --git a/julia-rpmlintrc b/julia-rpmlintrc
new file mode 100644
index 0000000..337f5c8
--- /dev/null
+++ b/julia-rpmlintrc
@@ -0,0 +1,2 @@
+# https://github.com/JuliaLang/julia/issues/28564
+addFilter("E: devel-file-in-non-devel-package.*/usr/lib.*/julia/.*")
diff --git a/julia.changes b/julia.changes
index 457fc23..8cb0892 100644
--- a/julia.changes
+++ b/julia.changes
@@ -1,3 +1,585 @@
+-------------------------------------------------------------------
+Wed Nov 24 08:19:54 UTC 2021 - Guillaume GARDET
+
+- Do not try to link to libquadmath for aarch64 and armv6/7
+
+-------------------------------------------------------------------
+Sat Oct 23 13:50:11 UTC 2021 - Domenico Panella
+
+- Version bump to 1.6.3.
+ * Bugfix release, see NEWS.md for details.
+- Add patch 'julia-fix-task-build-failure-gcc-11.patch' to fix
+ task.c build failure using GCC 11.
+
+-------------------------------------------------------------------
+Wed Jul 28 15:11:29 UTC 2021 - kh Lai
+
+- Version bump to 1.6.2.
+ * Bugfix release, see NEWS.md for details.
+
+-------------------------------------------------------------------
+Sat Jun 12 19:24:28 UTC 2021 - Ronan Chagas
+
+- Add patch `julia-fix-mbedtls-build-failure-gcc-11.patch` to fix
+ mbedtls build using GCC 11.
+
+-------------------------------------------------------------------
+Tue May 4 20:13:54 UTC 2021 - Ronan Chagas
+
+- Version bump to 1.6.1.
+- Remove patch `julia-fix_doc_build.patch` because it was applied
+ by upstream.
+- Remove some hidden files from the package.
+
+-------------------------------------------------------------------
+Fri Apr 9 02:07:16 UTC 2021 - Ronan Chagas
+
+- Add patch `julia-fix-use_system_csl.patch` so that we can build
+ using the option `USE_SYSTEM_CSL=1`.
+- Add patch `julia-fix_doc_build.patch` to avoid building the
+ documentation even if when the tarball already contains it.
+ This seems an upstream bug that is triggered with
+ `USE_SYSTEM_CSL=1` together with the previous patch.
+- Add options `__provides_exclude` and `__requires_exclude` to
+ avoid conflict between the bundled libraries and the system
+ ones.
+
+-------------------------------------------------------------------
+Wed Apr 7 03:01:30 UTC 2021 - kh Lai
+
+- Version bump to 1.6.0.
+- Add julia-rpmlintrc to filter devel-file-in-non-devel-package
+ error.
+- Use bundled version of mbedtls-devel instead of system library.
+
+-------------------------------------------------------------------
+Wed Oct 14 17:19:33 UTC 2020 - Radosław Wyrzykowski
+
+- Version bump to 1.5.2, see NEWS.md for details.
+- Drop patch `llvm-8.0.1-gcc-10.patch` - upstream upgraded to LLVM 9
+- Drop patch `julia-fix-aarch64.patch` - already upstream in 1.5
+- Drop reference to icon that disappeared from the source tree.
+
+-------------------------------------------------------------------
+Fri Oct 9 06:20:01 UTC 2020 - Guillaume GARDET
+
+- Fix build on aarch64:
+ * julia-fix-aarch64.patch
+
+-------------------------------------------------------------------
+Tue Jun 23 22:02:46 UTC 2020 - Ronan Chagas
+
+- Version bump to 1.4.2, see NEWS.md for details.
+- Replace the source code with the version with all dependencies.
+ Thus, all the source files related to the dependencies were
+ dropped:
+ * Pkg-f71e2c5a119b9c850f9b357fc8c56068f5b51cc0.tar.gz
+ * libuv-35b1504507a7a4168caae3d78db54d1121b121e1.tar.gz
+ * libwhich-81e9723c0273d78493dc8c8ed570f68d9ce7e89e.tar.gz
+ * llvm-6.0.1.src.tar.xz
+ * openlibm-ce69bf1f32d3e2e9791da36c9e33ba38670d5576.tar.gz
+ * utf8proc-5c632c57426f2e4246e3b64dd2fd088d3920f9e5.tar.gz
+- Add patch `llvm-8.0.1-gcc-10.patch` to fix build of LLVM 8.0.1
+ using gcc 10: https://reviews.llvm.org/D64937.
+- Use bundled version of libgit2 instead of the system library
+ because Julia does not support libgit2-1.0 yet (boo#1173180).
+- Use bundled version of libdSFMT because Julia uses a patch that is
+ not in upstream. Hence, using the system version leads to failures
+ related to RNG.
+- Add new build dependency `libcurl-devel`.
+
+-------------------------------------------------------------------
+Sat Mar 28 19:42:54 UTC 2020 - Andreas Stieger
+
+- convert to singlespec
+
+-------------------------------------------------------------------
+Mon Mar 9 19:05:20 UTC 2020 - Ronan Chagas
+
+- Remove constraints of CPU flag since it was blocking the builds.
+
+-------------------------------------------------------------------
+Fri Feb 7 20:03:23 UTC 2020 - Ronan Chagas
+
+- Version bump to 1.3.1, see NEWS.md for details.
+- Add p7zip as build dependency.
+- Bundle openlibm since Tumbleweed does not have the required
+ version (0.6).
+- Bump bundled dependencies as required by the new v1.3.1.
+ * Pkg.jl: f71e2c5a119b9c850f9b357fc8c56068f5b51cc0
+ * libuv: 35b1504507a7a4168caae3d78db54d1121b121e1
+ * openlibm: ce69bf1f32d3e2e9791da36c9e33ba38670d5576
+ * utf8proc: 5c632c57426f2e4246e3b64dd2fd088d3920f9e5
+
+-------------------------------------------------------------------
+Mon Sep 23 16:48:44 UTC 2019 - Ronan Chagas
+
+- Add option `USE_LLVM_SHLIB=1` to fix boo#1114692.
+
+-------------------------------------------------------------------
+Mon Sep 23 16:17:55 UTC 2019 - Ronan Chagas
+
+- Version bump to 1.2.0, see NEWS.md for details.
+- Bump bundled dependencies as required by the new v1.2.0.
+ * Pkg.jl: 853b3f1fd9895db32b402d89e9dee153b66b2316
+ * utf8proc: 454f60150c7f023526d353e1e6b386f93ee0b116
+
+-------------------------------------------------------------------
+Mon Apr 1 17:57:30 UTC 2019 - Ronan Chagas
+
+- Version bump to 1.1.0, see NEWS.md for details.
+- Bump bundled dependencies as required by the new v1.1.0.
+ * llvm: 6.0.1
+ * Pkg.jl: 853b3f1fd9895db32b402d89e9dee153b66b2316
+ * libuv: 2348256acf5759a544e5ca7935f638d2bc091d60
+
+-------------------------------------------------------------------
+Sun Dec 16 23:39:12 UTC 2018 - ronisbr@gmail.com
+
+- Version bump to 1.0.3.
+ * Bugfix release, no changelog available.
+
+-------------------------------------------------------------------
+Mon Nov 5 16:24:38 UTC 2018 - Ronan Chagas
+
+- Version bump to 1.0.1.
+ * Bugfix release, no changelog available.
+
+-------------------------------------------------------------------
+Mon Sep 24 18:58:18 UTC 2018 - Ronan Chagas
+
+- Version bump to 1.0.0.
+ * v1.0.0 is basically v0.7.0 without deprecation warnings.
+
+-------------------------------------------------------------------
+Wed Aug 8 22:56:27 UTC 2018 - ronisbr@gmail.com
+
+- Version bump to 0.7.0, see NEWS.md for details.
+- Add new required bundled dependency by the new v0.7.0.
+ * libwhich: 81e9723c0273d78493dc8c8ed570f68d9ce7e89e
+- Bump bundled dependencies as required by the new v0.7.0.
+ * libuv: ed3700c849289ed01fe04273a7bf865340b2bd7e
+ * llvm: 6.0.0
+- Update patch `julia-env-script-interpreter.patch`.
+- Remove unnecessary bundled dependency:
+ * Rmath: julia-0.1
+- Remove empty package `julia-examples`.
+
+-------------------------------------------------------------------
+Sun Jul 22 17:40:21 UTC 2018 - ronisbr@gmail.com
+
+- Version bump to 0.6.4.
+ * Bugfix release, no changelog available.
+
+-------------------------------------------------------------------
+Fri Jun 1 17:49:59 UTC 2018 - ronisbr@gmail.com
+
+- Version bump to 0.6.3.
+ * Bugfix release, no changelog available.
+- Bump utf8proc version as required by the new v0.6.3.
+- Change LICENSE.md from %doc to %license.
+
+-------------------------------------------------------------------
+Thu Apr 19 15:01:37 UTC 2018 - guillaume.gardet@opensuse.org
+
+- Pass right MARCH value for ppc64le
+- Build only for supported architectures
+- Fix armv6 build by passing atomic lib to linker
+
+-------------------------------------------------------------------
+Tue Mar 27 09:18:51 UTC 2018 - guillaume.gardet@opensuse.org
+
+- Pass right march option for %arm and aarch64
+
+-------------------------------------------------------------------
+Wed Dec 20 18:19:38 UTC 2017 - ronisbr@gmail.com
+
+- Remove patch `julia-0.6.1-dont-rebuild-docs-on-install.patch`,
+ since the issue was already fixed by upstream.
+- Version bump to 0.6.2.
+ * Bugfix release, no changelog available.
+- Update license information according to file `LICENSE.md`.
+
+-------------------------------------------------------------------
+Wed Nov 1 16:48:18 UTC 2017 - ronisbr@gmail.com
+
+- Run spec-cleaner.
+- Version bump to 0.6.1.
+ * Bugfix release, no changelog available.
+- Add patches:
+ * `julia-0.6.1-dont-rebuild-docs-on-install.patch`
+ This patch avoids documentation rebuilding in `make
+ install` command. For more information, see:
+
+ https://github.com/JuliaLang/julia/issues/24432
+ * `julia-env-script-interpreter.patch`
+ This patch removes a RPMLINT error.
+
+-------------------------------------------------------------------
+Sat Aug 19 14:12:56 UTC 2017 - ronisbr@gmail.com
+
+- Add script to get the right libgit2 version. Hence, it will not
+ be necessary anymore to update the .spec every time libgit2 is
+ updated.
+
+-------------------------------------------------------------------
+Fri Aug 18 13:23:38 UTC 2017 - ronisbr@gmail.com
+
+- Update runtime dependency: `libgit2-25` -> `libgit2-26`.
+
+-------------------------------------------------------------------
+Mon Jul 3 20:14:09 UTC 2017 - ronisbr@gmail.com
+
+- Version bump to 0.6.0, see NEWS.md for details.
+- Remove unneeded patch `julia-disable-llvm-timestamps.patch`.
+
+-------------------------------------------------------------------
+Fri Mar 24 14:26:30 UTC 2017 - ronisbr@gmail.com
+
+- Update runtime dependency: `libgit2-24` -> `libgit2-25`.
+ * Fixes boo#1030824.
+
+-------------------------------------------------------------------
+Wed Mar 8 14:23:06 UTC 2017 - ronisbr@gmail.com
+
+- Version bump to 0.5.1.
+ * Bugfix release, no changelog available.
+- Update patch `julia-disable-llvm-timestamps.patch`.
+
+-------------------------------------------------------------------
+Mon Oct 31 11:51:42 UTC 2016 - ronisbr@gmail.com
+
+- Add `libdSFMT2_2` as runtime dependency, since rpm is not
+ automatically adding it.
+
+-------------------------------------------------------------------
+Tue Sep 20 15:48:03 UTC 2016 - ronisbr@gmail.com
+
+- Version bump to 0.5.0, see NEWS.md for details.
+
+-------------------------------------------------------------------
+Tue Sep 13 17:15:36 UTC 2016 - ronisbr@gmail.com
+
+- Version bump to 0.5.0~rc4.
+ * The changelog will be available when the version 0.5.0 is
+ released.
+- Julia is now built using `libopenblas_openmp0` as the lapack and
+ blas libraries due to upstream advice. For more information, see:
+
+ https://github.com/JuliaLang/julia/issues/18394
+
+- Remove white spaces in .changes files.
+
+-------------------------------------------------------------------
+Tue Aug 30 13:04:20 UTC 2016 - ronisbr@gmail.com
+
+- Fix `julia-debug` dependency.
+- Move `libccalltest.so.debug` to `julia-debug` package
+
+-------------------------------------------------------------------
+Thu Aug 25 14:21:56 UTC 2016 - ronisbr@gmail.com
+
+- Version bump to 0.5.0~rc3;
+ * The changelog will be available when the version 0.5.0 is
+ released.
+- Remove unnecessary build options `USE_SYSTEM_MBEDTLS=1` and
+ `USE_SYSTEM_LIBSSH2=1`, because we are using the system libgit2
+ to build julia. For more information, see:
+ https://github.com/JuliaLang/julia/issues/17884
+
+-------------------------------------------------------------------
+Mon Aug 22 19:20:57 UTC 2016 - ronisbr@gmail.com
+
+- Add `libgit2` as a runtime dependency.
+
+-------------------------------------------------------------------
+Fri Aug 12 13:40:51 UTC 2016 - ronisbr@gmail.com
+
+- Version bump to 0.5.0~rc2.
+ * The changelog will be available when the version 0.5.0 is
+ released.
+
+-------------------------------------------------------------------
+Thu Aug 11 20:54:41 UTC 2016 - ronisbr@gmail.com
+
+- Version bump to 0.5.0~rc1.
+ * The changelog will be available when the version 0.5.0 is
+ released.
+- Add package `julia-debug`, which contains a debugging version of
+ Julia system image and Julia library.
+
+-------------------------------------------------------------------
+Thu Aug 4 17:46:57 UTC 2016 - ronisbr@gmail.com
+
+- User oertel (ro@suse.com) fix the `_constraints` file because the
+ sse flags only exists in x86 architectures. See Request 416497.
+
+-------------------------------------------------------------------
+Wed Jun 22 12:24:50 UTC 2016 - ronisbr@gmail.com
+
+- Version bump to 0.4.6.
+ * Bugfix release, no changelog available.
+- Re-enable i586 architecture.
+ * After the full rebuild caused by gcc6, julia started to
+ correctly build against i586 again. The root cause of the
+ problem was not identified yet.
+
+-------------------------------------------------------------------
+Fri Apr 29 17:49:43 UTC 2016 - ronisbr@gmail.com
+
+- Due to a bug, it is not possible now to build julia against i586
+ with glibc 2.23. The root of the problem has not been determined
+ yet. Two bugs were filled in upstream:
+ _ https://github.com/JuliaLang/julia/issues/16087
+ _ https://llvm.org/bugs/show_bug.cgi?id=27548
+ Thus, the support for julia in i586 architectures is being
+ dropped until this bug is fixed.
+
+-------------------------------------------------------------------
+Mon Mar 21 21:07:12 UTC 2016 - ronisbr@gmail.com
+
+- Version bump to 0.4.5.
+ * Bugfix release, no changelog available.
+ * Note: Version 0.4.4 has a known bug with Pkg.publish
+ (gh#JuliaLang/julia#15381). Thus, it was skipped.
+
+-------------------------------------------------------------------
+Fri Jan 29 14:52:45 UTC 2016 - dimstar@opensuse.org
+
+- Do not install julia.appdata.xml when building julia-compat:
+ The application 'julia' must exist only once in the repository.
+
+-------------------------------------------------------------------
+Thu Jan 21 11:21:38 UTC 2016 - ronisbr@gmail.com
+
+- Add in _constraints the information to build julia package in a
+ machine that supports the following extensions: mmx, sse, sse2,
+ sse3, and ssse3. This is necessary because the main package is
+ built for core2 architecture to improve the performance. The
+ package julia-compat, on the other hand, is built for x86_64 and
+ can be used if the user does not support core2 extensions.
+
+-------------------------------------------------------------------
+Tue Jan 19 11:57:08 UTC 2016 - ronisbr@gmail.com
+
+- Version bump to 0.4.3.
+ * Bugfix release, no changelog available.
+- libuv updated to commit efb40768b7c7bd9f173a7868f74b92b1c5a61a0e
+- Run spec-cleaner.
+
+-------------------------------------------------------------------
+Tue Dec 8 15:15:19 UTC 2015 - ronisbr@gmail.com
+
+- Version bump to 0.4.2.
+ * Bugfix release, no changelog available.
+- libuv updated to commit 9ab431a88fe255dd21e19a11f7fa2dd95774abf4.
+- Run spec-cleaner.
+
+-------------------------------------------------------------------
+Mon Nov 16 12:22:47 UTC 2015 - ronisbr@gmail.com
+
+- Version bump to 0.4.1.
+ * Bugfix release, no changelog available.
+
+-------------------------------------------------------------------
+Mon Oct 12 10:27:17 UTC 2015 - lorddarthfener@gmail.com
+
+- Add missing runtime dependency on libpcre2-8-0
+
+-------------------------------------------------------------------
+Fri Oct 9 21:19:00 UTC 2015 - ronisbr@gmail.com
+
+- Version bump to 0.4.0, see NEWS.md for details.
+
+-------------------------------------------------------------------
+Wed Oct 7 23:04:24 UTC 2015 - ronisbr@gmail.com
+
+- Remove unneeded build dependencies.
+- Version bump to 0.4.0~rc4.
+ * Bugfix and backports towards 0.4 release. No changelog
+ available.
+
+-------------------------------------------------------------------
+Sat Oct 3 20:18:43 UTC 2015 - dmitry_r@opensuse.org
+
+- Add julia-compat package without CPU optimizations
+
+-------------------------------------------------------------------
+Thu Oct 1 01:29:34 UTC 2015 - ronisbr@gmail.com
+
+- Version bump to 0.4.0~rc3.
+ * Bugfix and backports towards 0.4 release. No changelog
+ available.
+
+-------------------------------------------------------------------
+Tue Sep 22 21:25:05 UTC 2015 - ronisbr@gmail.com
+
+- Version bump to 0.4.0~rc2.
+ * Bugfix and backports towards 0.4 release. No changelog
+ available.
+
+-------------------------------------------------------------------
+Fri Sep 18 18:10:24 UTC 2015 - ronisbr@gmail.com
+
+- LLVM 3.3 will be bundle for 0.4 branch.
+ * LLVM 3.3 will be bundle until upstream change the supported
+ version. As it can be seen in upstream issues #9336 and
+ #13209, there are still many problems related with LLVM 3.5,
+ regarding both the build process and the JIT compiler used
+ by Julia. Thus, it is better for now stick with LLVM 3.3.
+ For more information, see:
+ https://github.com/JuliaLang/julia/issues/13208
+ https://github.com/JuliaLang/julia/issues/9336
+
+-------------------------------------------------------------------
+Fri Sep 18 04:38:14 UTC 2015 - ronisbr@gmail.com
+
+- Version bump to 0.4 branch (0.4.0~rc1).
+ * This version needs utf8proc > 1.3. Since it is not available
+ in openSUSE yet, it was decided to bundle the selected
+ upstream version.
+ * This version seems to build correctly with both LLVM 3.5 and
+ 3.7, which are the versions available in 13.2 and
+ Tumbleweed. Thus, it was decided to build julia against
+ system LLVM.
+ * The build process now requires libgit2 and pcre2.
+ * The changes in .spec were obtained from Fedora's
+ julia-nightlies.spec.
+
+- Changelog of verion 0.4.0~rc1.
+ * The complete list of changes related to this release
+ candidate can be seen in:
+ https://github.com/JuliaLang/julia/issues?q=milestone%3A0.4.0+is%3Aclosed
+
+ * Note: a changelog with the notable changes between 0.3 and
+ 0.4 versions are expected in the Julia 0.4 release
+ announcement.
+
+-------------------------------------------------------------------
+Thu Aug 20 14:17:31 UTC 2015 - ronisbr@gmail.com
+
+- Revert: "Build julia using llvm-3_3 package" (Revision 15)
+ * The llvm-3_3 package is conflicting with other packages that
+ depends on llvm and it turns out that it will need a huge
+ amount of work to modify every package spec that depends on
+ llvm to circumvent this problem. Thus, by now, the safest
+ approach is just bundle the supported llvm version in julia
+ package.
+
+-------------------------------------------------------------------
+Wed Jul 29 20:47:04 UTC 2015 - ronisbr@gmail.com
+
+- Update to version 0.3.11
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Sun Jul 26 19:10:15 UTC 2015 - ronisbr@gmail.com
+
+- Drop obsolete julia-disable-llvm-timestamps.patch
+- Fix compiler names (clang++ -> clang++-3.3 in llvm-3_3-clang)
+
+-------------------------------------------------------------------
+Sun Jul 26 18:50:18 UTC 2015 - ronisbr@gmail.com
+
+- Build julia using llvm-3_3 package.
+
+-------------------------------------------------------------------
+Wed Jul 15 06:40:15 UTC 2015 - ronisbr@gmail.com
+
+- Use build-in LLVM 3.3
+- Disable LLVM timestamps
+ * julia-disable-llvm-timestamps.patch
+- Drop obsolete julia_Fix-building-with-MCJIT-LLVM.patch
+- Set required memory to 4 Gb
+
+-------------------------------------------------------------------
+Mon Jul 6 13:53:29 UTC 2015 - ronisbr@gmail.com
+
+- Update to version 0.3.10
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Tue Jun 2 15:33:00 UTC 2015 - ronisbr@gmail.com
+
+- Update to version 0.3.9
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Sat May 2 18:11:07 UTC 2015 - ronisbr@gmail.com
+
+- Update to version 0.3.8
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Wed Mar 25 16:20:44 UTC 2015 - ronisbr@gmail.com
+
+- Update to version 0.3.7
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Fri Feb 20 14:22:10 UTC 2015 - ronisbr@gmail.com
+
+- Update to version 0.3.6
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Sat Jan 10 02:37:17 UTC 2015 - ronisbr@gmail.com
+
+- Update to version 0.3.5
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Mon Dec 29 02:29:15 UTC 2014 - ronisbr@gmail.com
+
+- Update to version 0.3.4
+ * Bugfix release, no changelog available
+
+- Set USE_SYSTEM_LIBM=0
+ * If USE_SYSTEM_LIBM is set to 1, then julia will not use
+ openlibm.
+
+- Set MARCH=pentium4 (32 bits) / MARCH=core2 (64 bits)
+
+- Add libarpack2 to the dependency list
+
+- Remove upstreamed julia-upstream-9221.patch
+
+-------------------------------------------------------------------
+Sat Dec 20 19:42:31 UTC 2014 - ronisbr@gmail.com
+
+- Add julia-upstream-9221.patch to temporarily fix the upstream issue:
+ https://github.com/JuliaLang/julia/issues/8690
+
+-------------------------------------------------------------------
+Sat Dec 20 19:35:16 UTC 2014 - ronisbr@gmail.com
+
+- Fix bug related with build architecture (JULIA_CPU_TARGET) that
+ was added by revision 15 of science repo.
+
+-------------------------------------------------------------------
+Fri Dec 19 13:07:48 UTC 2014 - matwey.kornilov@gmail.com
+
+- Deduce JULIA_TARGET_ARCH from RPM build flags, specifying just
+ JULIA_CPU_TARGET=core2 is not portable
+
+-------------------------------------------------------------------
+Wed Nov 26 13:41:38 UTC 2014 - dmitry_r@opensuse.org
+
+- Update to version 0.3.3
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Tue Oct 21 21:05:20 UTC 2014 - dmitry_r@opensuse.org
+
+- Update to version 0.3.2
+ * Bugfix release, no changelog available
+
+-------------------------------------------------------------------
+Fri Oct 17 13:21:48 UTC 2014 - dmitry_r@opensuse.org
+
+- Update to version 0.3.1
+ * Bugfix release, no changelog available
+
-------------------------------------------------------------------
Thu Aug 21 05:39:43 UTC 2014 - dmitry_r@opensuse.org
diff --git a/julia.spec b/julia.spec
index fe98224..bc373c6 100644
--- a/julia.spec
+++ b/julia.spec
@@ -1,7 +1,7 @@
#
# spec file for package julia
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,65 +12,124 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
-Name: julia
-Version: 0.3.0
-%define rmath_ver 226598f
-%define libuv_ver a12eb33
+# We must not strip binaries in julia, since it can lead to many problems.
+# For example, see:
+#
+# https://github.com/JuliaLang/julia/issues/17941
+%undefine _build_create_debug
+%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
+
+%global __provides_exclude_from ^%{_libdir}/%{name}/.*\\.so$
+
+# List all bundled libraries.
+%global _privatelibs lib(LLVM-.*|ccalltest|dSFMT|git2|llvmcalltest|openlibm|suitesparse_wrapper|mbedcrypto|mbedtls|mbedx509|uv)\\.so.*
+%global __provides_exclude ^(%{_privatelibs})$
+%global __requires_exclude ^(%{_privatelibs})$
+
+%define libjulia_sover_major 1
+%define libjulia_sover_minor 6
+%if "@BUILD_FLAVOR@%{nil}" == "compat"
+%define compat_mode 1
+%else
+%define compat_mode 0
+%endif
+Version: 1.6.3
Release: 0
-Summary: High-level, high-performance dynamic programming language
-License: MIT and GPL-2.0+
-Group: Development/Languages/Other
-Url: http://julialang.org/
-Source0: https://github.com/JuliaLang/julia/archive/v%{version}.tar.gz#/julia-%{version}.tar.gz
-Source1: juliabuildopts
-# external sources
-Source10: libuv-%{libuv_ver}.tar.gz
-Source11: Rmath-%{rmath_ver}.tar.gz
-BuildRequires: arpack-ng-devel
+URL: http://julialang.org/
+Source0: https://github.com/JuliaLang/julia/releases/download/v%{version}/julia-%{version}-full.tar.gz
+Source1: julia-rpmlintrc
+Source99: juliabuildopts
+# PATCH-FIX-OPENSUSE julia-env-script-interpreter.patch ronisbr@gmail.com -- Change script interpreted to avoid errors in rpmlint.
+Patch0: julia-env-script-interpreter.patch
+# PATCH-FIX-OPENSUSE julia-fix_doc_build.patch ronisbr@gmail.com -- Makefile is building the docs with `USE_SYSTEM_CSL=1` even if they are already available in the tarball.
+Patch1: julia-fix_doc_build.patch
+# PATCH-FIX-UPSTREAM julia-fix-mbedtls-build-failure-gcc-11.patch ronisbr@gmail.com - Fix MBEDTLS building using GCC 11.
+Patch2: julia-fix-mbedtls-build-failure-gcc-11.patch
+# PATCH-FIX-UPSTREAM julia-fix-task-build-failure-gcc-11.patch pandom79@gmail.com - Fix task.c building using GCC 11.
+Patch3: julia-fix-task-build-failure-gcc-11.patch
+BuildRequires: arpack-ng-devel >= 3.3.0
BuildRequires: blas-devel
-BuildRequires: dSFMT-devel
+BuildRequires: cmake
BuildRequires: double-conversion-devel
BuildRequires: fdupes
-BuildRequires: fftw3-threads-devel
+BuildRequires: fftw3-threads-devel >= 3.3.4
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
-BuildRequires: gmp-devel
-BuildRequires: lapack-devel
-BuildRequires: libunwind-devel
-BuildRequires: llvm-clang >= 3.3
-BuildRequires: llvm-devel
+BuildRequires: gmp-devel >= 6.1.2
+BuildRequires: hicolor-icon-theme
+BuildRequires: lapack-devel >= 3.5.0
+BuildRequires: libcurl-devel
+BuildRequires: libnghttp2-devel
+BuildRequires: libopenblas_openmp-devel >= 0.3.5
+BuildRequires: libssh2-devel >= 1.9.0
+BuildRequires: libunwind-devel >= 1.3.1
BuildRequires: m4
-BuildRequires: mpfr-devel
+BuildRequires: mpfr-devel >= 4.0.2
BuildRequires: ncurses-devel
-BuildRequires: openlibm-devel
BuildRequires: openspecfun-devel
-BuildRequires: patchelf
-BuildRequires: pcre-devel >= 8.31
+BuildRequires: openssl
+BuildRequires: patchelf >= 0.9
+BuildRequires: pcre2-devel >= 10.31
BuildRequires: perl
+BuildRequires: python >= 2.5
BuildRequires: readline-devel
-BuildRequires: suitesparse-devel
-BuildRequires: utf8proc-devel
-BuildRequires: zlib-devel
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Requires: ncurses
-Requires: readline
-# Julia uses dlopen
-Requires: libblas3
+BuildRequires: suitesparse-devel >= 5.4.0
+BuildRequires: update-desktop-files
+BuildRequires: zlib-devel >= 1.2.11
+Requires: libamd2
+Requires: libarpack2
+Requires: libcamd2
+Requires: libccolamd2
+Requires: libcholmod3
+Requires: libcolamd2
Requires: libfftw3_threads3
-Requires: liblapack3
+Requires: libgmp10
+Requires: libmpfr6
+Requires: libopenblas_openmp0 >= 0.3.5
+Requires: libpcre2-8-0
+Requires: libspqr2
+Requires: libsuitesparseconfig5
+Requires: libumfpack5
+Requires: ncurses
+Requires: p7zip >= 16
+Requires: readline
+Recommends: arpack-ng-devel
Recommends: git
-# Julia uses unversioned .so files
-# https://github.com/JuliaLang/julia/issues/6742
Recommends: gmp-devel
Recommends: mpfr-devel
-Recommends: openlibm-devel
Recommends: openspecfun-devel
-Recommends: pcre-devel
+Recommends: pcre2-devel
Recommends: suitesparse-devel
+%if 0%{?compat_mode} == 0
+Name: julia
+%else
+Name: julia-compat
+%endif
+%if 0%{?compat_mode} == 0
+Summary: High-level, high-performance dynamic programming language
+License: BSD-3-Clause AND GPL-2.0-or-later AND MIT AND Zlib
+Group: Development/Languages/Other
+%else
+Summary: High-level, high-performance dynamic programming language (without CPU optim.)
+License: BSD-3-Clause AND GPL-2.0-or-later AND MIT AND Zlib
+Group: Development/Languages/Other
+%endif
+%if 0%{?compat_mode}
+Conflicts: julia
+Provides: julia = %{version}
+%endif
+# Since the 32-bit julia package is already being built using MARCH=pentium4,
+# which is the most generic flag supported, then the julia-compat mode only
+# makes sense for 64-bit architectures.
+%if 0%{?compat_mode}
+ExclusiveArch: x86_64
+%else
+ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
+%endif
%description
Julia is a high-level, high-performance dynamic programming language for
@@ -85,6 +144,9 @@ generation, signal processing, and string processing.
Summary: Julia development, debugging and testing files
Group: Development/Languages/Other
Requires: %{name} = %{version}
+%if 0%{?compat_mode}
+Conflicts: julia-devel
+%endif
%description devel
Contains library symbolic links and header files for developing applications
@@ -93,6 +155,18 @@ debugging version of Julia. This package is normally not needed when programming
in the Julia language, but rather for embedding Julia into external programs or
debugging Julia itself.
+%package debug
+Summary: Julia debugging
+Group: Development/Languages/Other
+Requires: %{name} = %{version}
+%if 0%{?compat_mode}
+Conflicts: julia-debug
+%endif
+
+%description debug
+Contains a debugging version of Julia system image and Julia library.
+
+%if 0%{?compat_mode} == 0
%package doc
Summary: Julia documentation and code examples
Group: Documentation/Other
@@ -101,35 +175,98 @@ BuildArch: noarch
%description doc
Contains the Julia manual, the reference documentation of the standard library.
-%package examples
-Summary: Julia code examples
-Group: Documentation/Other
-BuildArch: noarch
+%endif
-%description examples
-Contains the Julia code examples.
-
-%{expand:%global juliabuildopts %(cat %{SOURCE1})}
+%{expand:%global juliabuildopts %(cat %{SOURCE99})}
%prep
%setup -q -n julia-%{version}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%ifarch aarch64 %{arm}
+# https://github.com/JuliaLang/julia/issues/41613#issuecomment-976535193
+sed -i 's#$(eval $(call symlink_system_library,CSL,libquadmath,0))##' base/Makefile
+%endif
# remove .gitignore
find . -name ".git*" -exec rm {} \;
-cd deps
-tar xzf %{SOURCE10}
-tar xzf %{SOURCE11}
-mv -T Rmath-%{rmath_ver} Rmath
-mv -T libuv-%{libuv_ver} libuv
-
%build
-make %{?_smp_mflags} %{juliabuildopts}
+
+%if 0%{?compat_mode} == 0
+ %ifarch x86_64
+ %define julia_march core2
+ %endif
+
+ %ifarch %{ix86}
+ %define julia_march pentium4
+ %endif
+
+ %ifarch aarch64
+ %define julia_march armv8-a
+ %endif
+
+ %ifarch armv7l armv7hl
+ %define julia_march armv7-a
+ %endif
+
+ %ifarch armv6l armv6hl
+ %define julia_march armv6
+ %endif
+
+ %ifarch ppc64le
+ %define julia_march ppc64le
+ %endif
+%else
+ # compat_mode is only defined for 64-bit architecture.
+
+ %define julia_march x86-64
+%endif
+
+%ifarch armv6l armv6hl
+export LDFLAGS="$LDFLAGS -latomic"
+%endif
+
+# We need these compilation flags to avoid error when building MBEDTLS with
+# GCC-11.
+# Ref.: https://build.opensuse.org/package/show/security:tls/mbedtls
+export CFLAGS="%{optflags} -Wno-stringop-overflow -Wno-maybe-uninitialized"
+export CXXLAGS="%{optflags} -Wno-stringop-overflow -Wno-maybe-uninitialized"
+
+%define julia_builddir %{_builddir}/%{name}/
+make %{?_smp_mflags} \
+ MARCH=%{julia_march} \
+%ifarch aarch64
+ JULIA_CPU_TARGET="generic" \
+%endif
+ prefix=%{_prefix} \
+ bindir=%{_bindir} \
+ libdir=%{_libdir} \
+ libexecdir=%{_libexecdir} \
+ datarootdir=%{_datarootdir} \
+ includedir=%{_includedir} \
+ sysconfdir=%{_sysconfdir} \
+ %{juliabuildopts} \
+ release debug
+
+%check
+# The tests will only pass if openblas is being used.
+# make %{?_smp_mflags} test
%install
make install DESTDIR=%{buildroot} \
+ MARCH=%{julia_march} \
+%ifarch aarch64
+ JULIA_CPU_TARGET="generic" \
+%endif
prefix=%{_prefix} \
+ bindir=%{_bindir} \
libdir=%{_libdir} \
+ libexecdir=%{_libexecdir} \
+ datarootdir=%{_datarootdir} \
+ includedir=%{_includedir} \
sysconfdir=%{_sysconfdir} \
%{juliabuildopts}
@@ -140,53 +277,94 @@ gzip %{buildroot}/%{_mandir}/man1/julia.1
cd %{buildroot}/%{_mandir}/man1/
ln -sf julia.1.gz julia-debug.1.gz
-# Symbolic link of the library libjulia.so for the julia-devel package.
-cd %{buildroot}/%{_libdir}
-ln -s julia/libjulia.so libjulia.so
-
rm -f %{buildroot}%{_libdir}/julia/libuv.a
rm -f %{buildroot}%{_datadir}/julia/base/build.h
rm -f %{buildroot}%{_datadir}/julia/base/Makefile
-%check
-# cd test && make all
+# Fix documentation directories.
+mkdir -p %{buildroot}%{_docdir}/julia
+mv -f %{buildroot}%{_datadir}/doc/julia/* %{buildroot}%{_docdir}/julia/
+rm -r %{buildroot}%{_datadir}/doc/julia
-%post devel -p /sbin/ldconfig
+# Remove execution permission on documentation files.
+chmod -x+X -R %{buildroot}%{_docdir}/julia/*
+# Remove hidden files from stdlib.
+pushd %{buildroot}%{_datadir}/julia/stdlib/
+find . -name ".codecov.yml" -exec rm -rf {} \;
+find . -name ".gitignore" -exec rm -rf {} \;
+find . -name ".travis.yml" -exec rm -rf {} \;
+popd
+
+%if 0%{?compat_mode}
+rm -rf %{buildroot}%{_docdir}/julia/
+
+# The 'application' object must be only provided by one package
+# Alternatively, we could rename the .appdata and .desktop file to have
+# both applications show up in a valid way, but that would require the
+# -compat appdata to be modified to make the difference clear
+rm %{buildroot}%{_datadir}/appdata/julia.appdata.xml
+%endif
+
+# Remove duplicated files.
+%fdupes %{buildroot}%{_datadir}/
+
+%suse_update_desktop_file -r julia Science Math
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+%post devel -p /sbin/ldconfig
%postun devel -p /sbin/ldconfig
+%post debug -p /sbin/ldconfig
+%postun debug -p /sbin/ldconfig
%files
-%defattr(-,root,root)
-%doc CONTRIBUTING.md LICENSE.md NEWS.md README.md
+%doc CONTRIBUTING.md NEWS.md README.md
+%license LICENSE.md
%{_bindir}/julia
-%{_libdir}/julia/
%dir %{_datadir}/julia
%{_datadir}/julia/base
-%{_datadir}/julia/helpdb.jl
-%{_mandir}/man1/julia.1.*
+%{_datadir}/julia/base.cache
+%{_datadir}/julia/stdlib
+%{_datadir}/julia/cert.pem
+%if !%{?compat_mode}
+%dir %{_datadir}/appdata/
+%{_datadir}/appdata/julia.appdata.xml
+%endif
+%{_datadir}/applications/julia.desktop
+%{_libdir}/julia/
+%{_libdir}/libjulia.so.%{libjulia_sover_major}.%{libjulia_sover_minor}
+%{_mandir}/man1/julia.1%{?ext_man}
%dir %{_sysconfdir}/julia/
-%config(noreplace) %{_sysconfdir}/julia/juliarc.jl
-# Exclude development files.
-%exclude %{_libdir}/julia/libjulia-debug.so
+%config(noreplace) %{_sysconfdir}/julia/startup.jl
+# Exclude debugging files.
+%exclude %{_libdir}/julia/libccalltest.so.debug
+%exclude %{_libdir}/julia/sys-debug.so
+# Exclude documentation.
+%exclude %{_docdir}/julia/html
%files devel
-%defattr(-,root,root)
-%{_bindir}/julia-debug
%{_datadir}/julia/test/
+%{_datadir}/julia/julia-config.jl
%{_includedir}/julia/
+%{_libdir}/libjulia.so.%{libjulia_sover_major}
%{_libdir}/libjulia.so
-%{_libdir}/julia/libjulia-debug.so
-%{_mandir}/man1/julia-debug.1.*
+%files debug
+%{_bindir}/julia-debug
+%{_libdir}/libjulia-debug.so.%{libjulia_sover_major}.%{libjulia_sover_minor}
+%{_libdir}/libjulia-debug.so.%{libjulia_sover_major}
+%{_libdir}/libjulia-debug.so
+%{_libdir}/julia/libccalltest.so.debug
+%{_libdir}/julia/sys-debug.so
+%{_mandir}/man1/julia-debug.1%{?ext_man}
+
+%if 0%{?compat_mode} == 0
%files doc
-%defattr(-,root,root)
-%docdir %{_datadir}/julia/doc
-%{_datadir}/julia/doc
-%exclude %{_datadir}/julia/doc/Makefile
-%exclude %{_datadir}/julia/doc/README.md
-
-%files examples
-%defattr(-,root,root)
-%{_datadir}/julia/examples
+%{_docdir}/julia
+%exclude %{_docdir}/julia/CONTRIBUTING.md
+%exclude %{_docdir}/julia/NEWS.md
+%exclude %{_docdir}/julia/README.md
+%endif
%changelog
diff --git a/juliabuildopts b/juliabuildopts
index 4e0504b..37e0a00 100644
--- a/juliabuildopts
+++ b/juliabuildopts
@@ -1,16 +1,19 @@
-JULIA_CPU_TARGET=core2 \
-USE_SYSTEM_LLVM=1 \
+BUNDLE_DEBUG_LIBS=1 \
+NO_GIT=1 \
+USE_SYSTEM_LLVM=0 \
USE_SYSTEM_LIBUNWIND=1 \
USE_SYSTEM_READLINE=1 \
USE_SYSTEM_PCRE=1 \
-USE_SYSTEM_LIBM=1 \
-USE_SYSTEM_OPENLIBM=1 \
+USE_SYSTEM_LIBM=0 \
+USE_SYSTEM_OPENLIBM=0 \
USE_SYSTEM_OPENSPECFUN=1 \
-USE_SYSTEM_DSFMT=1 \
+USE_SYSTEM_DSFMT=0 \
USE_SYSTEM_BLAS=1 \
-LIBBLASNAME=libblas.so.3 \
+LIBBLAS=-lopenblas \
+LIBBLASNAME=libopenblas \
USE_SYSTEM_LAPACK=1 \
-LIBBLASNAME=liblapack.so.3 \
+LIBLAPACK=-libopenblas \
+LIBLAPACKNAME=libopenblas \
USE_SYSTEM_FFTW=1 \
LIBFFTWNAME=libfftw3_threads.so.3 \
LIBFFTWFNAME=libfftw3f_threads.so.3 \
@@ -20,13 +23,19 @@ USE_SYSTEM_ARPACK=1 \
USE_SYSTEM_SUITESPARSE=1 \
USE_SYSTEM_ZLIB=1 \
USE_SYSTEM_GRISU=1 \
-USE_SYSTEM_RMATH=0 \
USE_SYSTEM_LIBUV=0 \
-USE_SYSTEM_UTF8PROC=1 \
+USE_SYSTEM_UTF8PROC=0 \
+USE_SYSTEM_PATCHELF=1 \
+USE_SYSTEM_P7ZIP=1 \
+USE_SYSTEM_MBEDTLS=0 \
+USE_SYSTEM_LIBSSH2=1 \
+USE_SYSTEM_LIBGIT2=0 \
+USE_SYSTEM_CURL=1 \
+USE_SYSTEM_NGHTTP2=1 \
+USE_SYSTEM_CSL=1 \
USE_MKL=0 \
USE_BLAS64=0 \
-USE_LLVM_SHLIB=0 \
-LLVM_LLC=llc \
-LLVM_CONFIG=/usr/bin/llvm-config \
+USE_LLVM_SHLIB=1 \
VERBOSE=1 \
-USECLANG=1
\ No newline at end of file
+USECLANG=0 \
+USE_BINARYBUILDER=0
diff --git a/libuv-a12eb33.tar.gz b/libuv-a12eb33.tar.gz
deleted file mode 100644
index c8cd43f..0000000
--- a/libuv-a12eb33.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a367695686050fdaf206eea45cf6fa445eb012d23501557dd1e6fad4c6dd909a
-size 781194