From bd3f4624e79ab363c50de4110a02828ba8014b01f1b0ab367dc6a285ca1779b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Tue, 5 Jul 2022 12:30:51 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=113 --- Rmath-226598f.tar.gz | 3 - _constraints | 8 +- _multibuild | 3 + _service | 18 - julia-0.3.0.tar.gz | 3 - julia-1.6.3-full.tar.gz | 3 + julia-env-script-interpreter.patch | 10 + julia-fix-mbedtls-build-failure-gcc-11.patch | 351 +++++++++++ julia-fix-task-build-failure-gcc-11.patch | 13 + julia-fix_doc_build.patch | 15 + julia-rpmlintrc | 2 + julia.changes | 582 +++++++++++++++++++ julia.spec | 344 ++++++++--- juliabuildopts | 35 +- libuv-a12eb33.tar.gz | 3 - 15 files changed, 1269 insertions(+), 124 deletions(-) delete mode 100644 Rmath-226598f.tar.gz create mode 100644 _multibuild delete mode 100644 _service delete mode 100644 julia-0.3.0.tar.gz create mode 100644 julia-1.6.3-full.tar.gz create mode 100644 julia-env-script-interpreter.patch create mode 100644 julia-fix-mbedtls-build-failure-gcc-11.patch create mode 100644 julia-fix-task-build-failure-gcc-11.patch create mode 100644 julia-fix_doc_build.patch create mode 100644 julia-rpmlintrc delete mode 100644 libuv-a12eb33.tar.gz 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