SHA256
1
0
forked from pool/julia
Stefan Brüns 2022-07-05 12:30:51 +00:00 committed by Git OBS Bridge
parent 9c1cb783f2
commit bd3f4624e7
15 changed files with 1269 additions and 124 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cfb9e3d1f844a5bec60ea45b67e4929a36d651ed7f50f11dddbd49874a6bbc2d
size 192575

View File

@ -3,7 +3,13 @@
<sandbox>kvm</sandbox>
<hardware>
<memory>
<size unit="M">2000</size>
<size unit="M">4000</size>
</memory>
</hardware>
<overwrite>
<conditions>
<arch>i586</arch>
<arch>x86_64</arch>
</conditions>
</overwrite>
</constraints>

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>compat</package>
</multibuild>

View File

@ -1,18 +0,0 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="url">https://github.com/JuliaLang/Rmath.git</param>
<param name="scm">git</param>
<param name="versionformat">%h</param>
<param name="revision">226598f</param>
</service>
<service name="tar_scm" mode="disabled">
<param name="url">https://github.com/JuliaLang/libuv.git</param>
<param name="scm">git</param>
<param name="versionformat">%h</param>
<param name="revision">a12eb33</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service>
</services>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e9778129231aeff4e5f6100b0b71d2dbc4306cfc92cf533e527907d4a7a9aa1
size 2271301

3
julia-1.6.3-full.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29aad934582fb4c6dd9f9dd558ad649921f43bc7320eab54407fdf6dd3270a33
size 153730803

View File

@ -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

View File

@ -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 <rodrigo@correas.us>
+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 <rodrigo@correas.us>
+---
+ 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 <rodrigo@correas.us>
+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 <rodrigo@correas.us>
+---
+ 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 <rodrigo@correas.us>
+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 <rodrigo@correas.us>
+---
+ 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 <rodrigo@correas.us>
+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 <rodrigo@correas.us>
+---
+ 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 <rodrigo@correas.us>
+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 <rodrigo@correas.us>
+---
+ 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 <rodrigo@correas.us>
+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 <rodrigo@correas.us>
+---
+ 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 <rodrigo@correas.us>
+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 <rodrigo@correas.us>
+---
+ 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 )

View File

@ -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

15
julia-fix_doc_build.patch Normal file
View File

@ -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

2
julia-rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
# https://github.com/JuliaLang/julia/issues/28564
addFilter("E: devel-file-in-non-devel-package.*/usr/lib.*/julia/.*")

View File

@ -1,3 +1,585 @@
-------------------------------------------------------------------
Wed Nov 24 08:19:54 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Do not try to link to libquadmath for aarch64 and armv6/7
-------------------------------------------------------------------
Sat Oct 23 13:50:11 UTC 2021 - Domenico Panella <pandom79@gmail.com>
- 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 <dlshcbmuipmam@hotmail.com>
- Version bump to 1.6.2.
* Bugfix release, see NEWS.md for details.
-------------------------------------------------------------------
Sat Jun 12 19:24:28 UTC 2021 - Ronan Chagas <ronisbr@gmail.com>
- 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 <ronisbr@gmail.com>
- 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 <ronisbr@gmail.com>
- 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 <dlshcbmuipmam@hotmail.com>
- 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 <r.wyrz@outlook.com>
- 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 <guillaume.gardet@opensuse.org>
- Fix build on aarch64:
* julia-fix-aarch64.patch
-------------------------------------------------------------------
Tue Jun 23 22:02:46 UTC 2020 - Ronan Chagas <ronisbr@gmail.com>
- 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 <andreas.stieger@gmx.de>
- convert to singlespec
-------------------------------------------------------------------
Mon Mar 9 19:05:20 UTC 2020 - Ronan Chagas <ronisbr@gmail.com>
- Remove constraints of CPU flag since it was blocking the builds.
-------------------------------------------------------------------
Fri Feb 7 20:03:23 UTC 2020 - Ronan Chagas <ronisbr@gmail.com>
- 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 <ronisbr@gmail.com>
- Add option `USE_LLVM_SHLIB=1` to fix boo#1114692.
-------------------------------------------------------------------
Mon Sep 23 16:17:55 UTC 2019 - Ronan Chagas <ronisbr@gmail.com>
- 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 <ronisbr@gmail.com>
- 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 <ronisbr@gmail.com>
- Version bump to 1.0.1.
* Bugfix release, no changelog available.
-------------------------------------------------------------------
Mon Sep 24 18:58:18 UTC 2018 - Ronan Chagas <ronisbr@gmail.com>
- 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

View File

@ -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

View File

@ -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
USECLANG=0 \
USE_BINARYBUILDER=0

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a367695686050fdaf206eea45cf6fa445eb012d23501557dd1e6fad4c6dd909a
size 781194