Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package julia for openSUSE:Factory checked in at 2021-04-12 12:36:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/julia (Old) and /work/SRC/openSUSE:Factory/.julia.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "julia" Mon Apr 12 12:36:48 2021 rev:45 rq:884115 version:1.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/julia/julia.changes 2020-11-23 18:47:06.841159486 +0100 +++ /work/SRC/openSUSE:Factory/.julia.new.2401/julia.changes 2021-04-12 12:39:43.449533854 +0200 @@ -1,0 +2,20 @@ +Fri Apr 9 02:07:16 UTC 2021 - Ronan Chagas <[email protected]> + +- 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 <[email protected]> +- 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. + +------------------------------------------------------------------- Old: ---- julia-1.5.2-full.tar.gz New: ---- julia-1.6.0-full.tar.gz julia-fix-use_system_csl.patch julia-fix_doc_build.patch julia-rpmlintrc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ julia.spec ++++++ --- /var/tmp/diff_new_pack.J0UoKR/_old 2021-04-12 12:39:45.381536100 +0200 +++ /var/tmp/diff_new_pack.J0UoKR/_new 2021-04-12 12:39:45.385536104 +0200 @@ -1,7 +1,7 @@ # # spec file for package julia # -# Copyright (c) 2020 SUSE LLC +# 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 @@ -23,20 +23,35 @@ %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})$ + +# Temporary workaround to apply Patch1 that must be removed with Julia 1.6.1. +%global _default_patch_fuzz 2 + %define libjulia_sover_major 1 -%define libjulia_sover_minor 5 +%define libjulia_sover_minor 6 %if "@BUILD_FLAVOR@%{nil}" == "compat" %define compat_mode 1 %else %define compat_mode 0 %endif -Version: 1.5.2 +Version: 1.6.0 Release: 0 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 [email protected] -- Change script interpreted to avoid errors in rpmlint. Patch0: julia-env-script-interpreter.patch +# PATCH-FIX-UPSTREAM julia-fix-use_system_csl.patch [email protected] -- Fix build process with `USE_SYSTEM_CSL=1`. +Patch1: julia-fix-use_system_csl.patch +# PATCH-FIX-OPENSUSE julia-fix_doc_build.patch [email protected] -- Makefile is building the docs with `USE_SYSTEM_CSL=1` even if they are already available in the tarball. +Patch2: julia-fix_doc_build.patch BuildRequires: arpack-ng-devel >= 3.3.0 BuildRequires: blas-devel BuildRequires: cmake @@ -49,11 +64,11 @@ 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: mbedtls-devel >= 2.16.0 BuildRequires: mpfr-devel >= 4.0.2 BuildRequires: ncurses-devel BuildRequires: openspecfun-devel @@ -97,11 +112,11 @@ %endif %if 0%{?compat_mode} == 0 Summary: High-level, high-performance dynamic programming language -License: MIT AND GPL-2.0-or-later AND BSD-3-Clause AND Zlib +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: MIT AND GPL-2.0-or-later AND BSD-3-Clause AND Zlib +License: BSD-3-Clause AND GPL-2.0-or-later AND MIT AND Zlib Group: Development/Languages/Other %endif %if 0%{?compat_mode} @@ -168,6 +183,8 @@ %prep %setup -q -n julia-%{version} %patch0 -p1 +%patch1 -p1 +%patch2 -p1 # remove .gitignore find . -name ".git*" -exec rm {} \; ++++++ julia-1.5.2-full.tar.gz -> julia-1.6.0-full.tar.gz ++++++ /work/SRC/openSUSE:Factory/julia/julia-1.5.2-full.tar.gz /work/SRC/openSUSE:Factory/.julia.new.2401/julia-1.6.0-full.tar.gz differ: char 5, line 1 ++++++ julia-fix-use_system_csl.patch ++++++ >From 336cdf80f38b89b42e2fb72e1057f6fced1493d0 Mon Sep 17 00:00:00 2001 From: Elliot Saba <[email protected]> Date: Tue, 6 Apr 2021 14:10:05 -0700 Subject: [PATCH] [build] Add `symlink_system_library` calls for CSL (#40217) * [build] Add `symlink_system_library` calls for CSL We differentiate between a `USE_BINARYBUILDER_CSL=0` configuration (where we copy the CSL libraries into the Julia build tree) versus a `USE_SYSTEM_CSL=1` configuration (where we symlink them in a manner similar to other system libararies) * Expand `JL_PRIVATE_LIBS-1` for versioned library names as well Without this, we fail to install things like `libgcc_s.so.1` when installed into the private libdir by `symlink_system_libraries`. --- Make.inc | 23 +++++++++++++- Makefile | 7 ++-- base/Makefile | 88 ++++++++++++++++++++++++++++++--------------------- deps/csl.mk | 40 ++++++++--------------- 4 files changed, 92 insertions(+), 66 deletions(-) diff --git a/Make.inc b/Make.inc index 5bcf86bc2e413..04181edf07596 100644 --- a/Make.inc +++ b/Make.inc @@ -596,6 +596,21 @@ else SHLIB_EXT := so endif +ifeq ($(OS),WINNT) +define versioned_libname +$$(if $(2),$(1)-$(2).$(SHLIB_EXT),$(1).$(SHLIB_EXT)) +endef +else ifeq ($(OS),Darwin) +define versioned_libname +$$(if $(2),$(1).$(2).$(SHLIB_EXT),$(1).$(SHLIB_EXT)) +endef +else +define versioned_libname +$$(if $(2),$(1).$(SHLIB_EXT).$(2),$(1).$(SHLIB_EXT)) +endef +endif + + ifeq ($(SHLIB_EXT), so) define SONAME_FLAGS -Wl,-soname=$1 @@ -1148,6 +1163,8 @@ BB_TRIPLET_LIBGFORTRAN := $(subst $(SPACE),-,$(filter-out cxx%,$(subst -,$(SPACE BB_TRIPLET_CXXABI := $(subst $(SPACE),-,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI)))) BB_TRIPLET := $(subst $(SPACE),-,$(filter-out cxx%,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI))))) +LIBGFORTRAN_VERSION := $(subst libgfortran,,$(filter libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN)))) + # This is the set of projects that BinaryBuilder dependencies are hooked up for. BB_PROJECTS := BLASTRAMPOLINE OPENBLAS LLVM SUITESPARSE OPENLIBM GMP MBEDTLS LIBSSH2 NGHTTP2 MPFR CURL LIBGIT2 PCRE LIBUV LIBUNWIND DSFMT OBJCONV ZLIB P7ZIP CSL define SET_BB_DEFAULT @@ -1480,8 +1497,12 @@ ifneq ($(findstring $(OS),Linux FreeBSD),) LIBGCC_NAME := libgcc_s.$(SHLIB_EXT).1 endif - +# USE_SYSTEM_CSL causes it to get symlinked into build_private_shlibdir +ifeq ($(USE_SYSTEM_CSL),1) +LIBGCC_BUILD_DEPLIB := $(call dep_lib_path,$(build_libdir),$(build_private_shlibdir)/$(LIBGCC_NAME)) +else LIBGCC_BUILD_DEPLIB := $(call dep_lib_path,$(build_libdir),$(build_shlibdir)/$(LIBGCC_NAME)) +endif LIBGCC_INSTALL_DEPLIB := $(call dep_lib_path,$(libdir),$(private_shlibdir)/$(LIBGCC_NAME)) # USE_SYSTEM_LIBM and USE_SYSTEM_OPENLIBM causes it to get symlinked into build_private_shlibdir diff --git a/Makefile b/Makefile index 72b2cf3ffb829..f7bad6350c77e 100644 --- a/Makefile +++ b/Makefile @@ -290,8 +290,11 @@ endif done \ done for suffix in $(JL_PRIVATE_LIBS-1) ; do \ - lib=$(build_private_libdir)/$${suffix}.$(SHLIB_EXT); \ - $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \ + for lib in $(build_private_libdir)/$${suffix}.$(SHLIB_EXT)*; do \ + if [ "$${lib##*.}" != "dSYM" ]; then \ + $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \ + fi \ + done \ done endif # Install `7z` into libexec/ diff --git a/base/Makefile b/base/Makefile index e024e546f94d3..2bef6aab7f1f4 100644 --- a/base/Makefile +++ b/base/Makefile @@ -169,53 +169,69 @@ endif # echo "$$P" define symlink_system_library -symlink_$1: $$(build_private_libdir)/$1.$$(SHLIB_EXT) -$$(build_private_libdir)/$1.$$(SHLIB_EXT): - REALPATH=`$$(call spawn,$$(build_depsbindir)/libwhich) -p $$(notdir $$@)` && \ - $$(call resolve_path,REALPATH) && \ - [ -e "$$$$REALPATH" ] && \ - ([ ! -e "$$@" ] || rm "$$@") && \ - echo ln -sf "$$$$REALPATH" "$$@" && \ - ln -sf "$$$$REALPATH" "$$@" -ifneq ($2,) -ifneq ($$(USE_SYSTEM_$2),0) -SYMLINK_SYSTEM_LIBRARIES += symlink_$1 -endif +libname_$2 := $$(notdir $(call versioned_libname,$2,$3)) +libpath_$2 := $$(shell $$(call spawn,$$(build_depsbindir)/libwhich) -p $$(libname_$2) 2>/dev/null) +symlink_$2: $$(build_private_libdir)/$$(libname_$2) +$$(build_private_libdir)/$$(libname_$2): + @if [ -e "$$(libpath_$2)" ]; then \ + REALPATH=$$(libpath_$2); \ + $$(call resolve_path,REALPATH) && \ + [ -e "$$$$REALPATH" ] && \ + ([ ! -e "$$@" ] || rm "$$@") && \ + echo ln -sf "$$$$REALPATH" "$$@" && \ + ln -sf "$$$$REALPATH" "$$@"; \ + else \ + if [ "$4" != "ALLOW_FAILURE" ]; then \ + echo "System library symlink failure: Unable to locate $$(libname_$2) on your system!" >&2; \ + false; \ + fi; \ + fi +ifneq ($$(USE_SYSTEM_$1),0) +SYMLINK_SYSTEM_LIBRARIES += symlink_$2 endif endef # the following excludes: libuv.a, libutf8proc.a -$(eval $(call symlink_system_library,$(LIBMNAME))) ifneq ($(USE_SYSTEM_LIBM),0) -SYMLINK_SYSTEM_LIBRARIES += symlink_$(LIBMNAME) +$(eval $(call symlink_system_library,LIBM,$(LIBMNAME))) else ifneq ($(USE_SYSTEM_OPENLIBM),0) -SYMLINK_SYSTEM_LIBRARIES += symlink_$(LIBMNAME) +$(eval $(call symlink_system_library,OPENLIBM,$(LIBMNAME))) endif -$(eval $(call symlink_system_library,libpcre2-8,PCRE)) -$(eval $(call symlink_system_library,libdSFMT,DSFMT)) -$(eval $(call symlink_system_library,$(LIBBLASNAME),BLAS)) +$(eval $(call symlink_system_library,CSL,libgcc_s,1)) +ifneq (,$(LIBGFORTRAN_VERSION)) +$(eval $(call symlink_system_library,CSL,libgfortran,$(LIBGFORTRAN_VERSION))) +endif +$(eval $(call symlink_system_library,CSL,libquadmath,0)) +$(eval $(call symlink_system_library,CSL,libstdc++,6)) +# We allow libssp, libatomic and libgomp to fail as they are not available on all systems +$(eval $(call symlink_system_library,CSL,libssp,0,ALLOW_FAILURE)) +$(eval $(call symlink_system_library,CSL,libatomic,1,ALLOW_FAILURE)) +$(eval $(call symlink_system_library,CSL,libgomp,1,ALLOW_FAILURE)) +$(eval $(call symlink_system_library,PCRE,libpcre2-8)) +$(eval $(call symlink_system_library,DSFMT,libdSFMT)) +$(eval $(call symlink_system_library,BLAS,$(LIBBLASNAME))) ifneq ($(LIBLAPACKNAME),$(LIBBLASNAME)) -$(eval $(call symlink_system_library,$(LIBLAPACKNAME),LAPACK)) +$(eval $(call symlink_system_library,LAPACK,$(LIBLAPACKNAME))) endif -$(eval $(call symlink_system_library,libgmp,GMP)) -$(eval $(call symlink_system_library,libmpfr,MPFR)) -$(eval $(call symlink_system_library,libmbedtls,MBEDTLS)) -$(eval $(call symlink_system_library,libmbedcrypto,MBEDTLS)) -$(eval $(call symlink_system_library,libmbedx509,MBEDTLS)) -$(eval $(call symlink_system_library,libssh2,LIBSSH2)) -$(eval $(call symlink_system_library,libnghttp2,NGHTTP2)) -$(eval $(call symlink_system_library,libcurl,CURL)) -$(eval $(call symlink_system_library,libgit2,LIBGIT2)) -$(eval $(call symlink_system_library,libamd,SUITESPARSE)) -$(eval $(call symlink_system_library,libcamd,SUITESPARSE)) -$(eval $(call symlink_system_library,libccolamd,SUITESPARSE)) -$(eval $(call symlink_system_library,libcholmod,SUITESPARSE)) -$(eval $(call symlink_system_library,libcolamd,SUITESPARSE)) -$(eval $(call symlink_system_library,libumfpack,SUITESPARSE)) -$(eval $(call symlink_system_library,libspqr,SUITESPARSE)) -$(eval $(call symlink_system_library,libsuitesparseconfig,SUITESPARSE)) +$(eval $(call symlink_system_library,GMP,libgmp)) +$(eval $(call symlink_system_library,MPFR,libmpfr)) +$(eval $(call symlink_system_library,MBEDTLS,libmbedtls)) +$(eval $(call symlink_system_library,MBEDTLS,libmbedcrypto)) +$(eval $(call symlink_system_library,MBEDTLS,libmbedx509)) +$(eval $(call symlink_system_library,LIBSSH2,libssh2)) +$(eval $(call symlink_system_library,NGHTTP2,libnghttp2)) +$(eval $(call symlink_system_library,CURL,libcurl)) +$(eval $(call symlink_system_library,LIBGIT2,libgit2)) +$(eval $(call symlink_system_library,SUITESPARSE,libamd)) +$(eval $(call symlink_system_library,SUITESPARSE,libcamd)) +$(eval $(call symlink_system_library,SUITESPARSE,libccolamd)) +$(eval $(call symlink_system_library,SUITESPARSE,libcholmod)) +$(eval $(call symlink_system_library,SUITESPARSE,libcolamd)) +$(eval $(call symlink_system_library,SUITESPARSE,libumfpack)) +$(eval $(call symlink_system_library,SUITESPARSE,libspqr)) +$(eval $(call symlink_system_library,SUITESPARSE,libsuitesparseconfig)) # EXCLUDED LIBRARIES (installed/used, but not vendored for use with dlopen): # libunwind endif # WINNT diff --git a/deps/csl.mk b/deps/csl.mk index 095d4ceec4a1e..423201cbb5a0c 100644 --- a/deps/csl.mk +++ b/deps/csl.mk @@ -19,48 +19,34 @@ $$(build_shlibdir)/$(1): | $$(build_shlibdir) [ -n "$$$${SRC_LIB}" ] && cp $$$${SRC_LIB} $$(build_shlibdir) endef -ifeq ($(OS),WINNT) -define gen_libname -$$(if $(2),lib$(1)-$(2).$(SHLIB_EXT),lib$(1).$(SHLIB_EXT)) -endef -else ifeq ($(OS),Darwin) -define gen_libname -$$(if $(2),lib$(1).$(2).$(SHLIB_EXT),lib$(1).$(SHLIB_EXT)) -endef -else -define gen_libname -$$(if $(2),lib$(1).$(SHLIB_EXT).$(2),lib$(1).$(SHLIB_EXT)) -endef -endif - # libgfortran has multiple names; we're just going to copy any version we can find # Since we're only looking in the location given by `$(FC)` this should only succeed for one. -$(eval $(call copy_csl,$(call gen_libname,gfortran,3))) -$(eval $(call copy_csl,$(call gen_libname,gfortran,4))) -$(eval $(call copy_csl,$(call gen_libname,gfortran,5))) +$(eval $(call copy_csl,$(call versioned_libname,libgfortran,3))) +$(eval $(call copy_csl,$(call versioned_libname,libgfortran,4))) +$(eval $(call copy_csl,$(call versioned_libname,libgfortran,5))) # These are all libraries that we should always have -$(eval $(call copy_csl,$(call gen_libname,quadmath,0))) -$(eval $(call copy_csl,$(call gen_libname,stdc++,6))) -$(eval $(call copy_csl,$(call gen_libname,ssp,0))) -$(eval $(call copy_csl,$(call gen_libname,atomic,1))) -$(eval $(call copy_csl,$(call gen_libname,gomp,1))) +$(eval $(call copy_csl,$(call versioned_libname,libquadmath,0))) +$(eval $(call copy_csl,$(call versioned_libname,libstdc++,6))) +$(eval $(call copy_csl,$(call versioned_libname,libssp,0))) +$(eval $(call copy_csl,$(call versioned_libname,libatomic,1))) +$(eval $(call copy_csl,$(call versioned_libname,libgomp,1))) ifeq ($(OS),WINNT) # Windwos has special gcc_s names ifeq ($(ARCH),i686) -$(eval $(call copy_csl,$(call gen_libname,gcc_s_sjlj,1))) +$(eval $(call copy_csl,$(call versioned_libname,libgcc_s_sjlj,1))) else -$(eval $(call copy_csl,$(call gen_libname,gcc_s_seh,1))) +$(eval $(call copy_csl,$(call versioned_libname,libgcc_s_seh,1))) endif else -$(eval $(call copy_csl,$(call gen_libname,gcc_s,1))) +$(eval $(call copy_csl,$(call versioned_libname,libgcc_s,1))) endif # winpthread is only Windows, pthread is only others ifeq ($(OS),WINNT) -$(eval $(call copy_csl,$(call gen_libname,winpthread,1))) +$(eval $(call copy_csl,$(call versioned_libname,libwinpthread,1))) else -$(eval $(call copy_csl,$(call gen_libname,pthread,0))) +$(eval $(call copy_csl,$(call versioned_libname,libpthread,0))) endif get-csl: ++++++ julia-fix_doc_build.patch ++++++ 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 ++++++ julia-rpmlintrc ++++++ # https://github.com/JuliaLang/julia/issues/28564 addFilter("E: devel-file-in-non-devel-package.*/usr/lib.*/julia/.*") ++++++ juliabuildopts ++++++ --- /var/tmp/diff_new_pack.J0UoKR/_old 2021-04-12 12:39:45.481536216 +0200 +++ /var/tmp/diff_new_pack.J0UoKR/_new 2021-04-12 12:39:45.481536216 +0200 @@ -27,10 +27,12 @@ USE_SYSTEM_UTF8PROC=0 \ USE_SYSTEM_PATCHELF=1 \ USE_SYSTEM_P7ZIP=1 \ -USE_SYSTEM_MBEDTLS=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=1 \
